「非選択状態でも逆インデント」の版間の差分
ナビゲーションに移動
検索に移動
<source>タグを<syntaxhighlight>タグに置き換える |
メソッド名の修正(マクロリファレンス:3:Selection オブジェクト#Unindent メソッドを参照) |
||
| (同じ利用者による、間の8版が非表示) | |||
| 1行目: | 1行目: | ||
このマクロは[https://www.haijin-boys.com/software/mery/mery-3-5-0#11 Mery Ver 3.5.6]で追加された「何も選択していないとき、Shift + Tab キーで逆インデント」と同機能です。 | |||
== 概要 == | |||
最終書き込み 2012/03/30 の[https://www.haijin-boys.com/discussions/1720 ちょっとクロさん!!!!!!!!!!!!!(要望)] でユーケーさんが求めていた非選択状態での逆インデント。選択状態では標準機能の逆インデントを実行するので、Shift + Tab に割り当てできます。カーソルは実行時の文字位置(x位置ではなく)を維持します。 | |||
([http:// | ([https://web.archive.org/web/20130501072057/http://haijin-boys.com/index.php?fuseaction=weblog.entryInquire&entry_id=5041fb10749ab2.98527205 ブログのコメント] より転載) | ||
<syntaxhighlight lang="javascript"> | == ソースコード == | ||
(function(){ | <syntaxhighlight lang="javascript" copy> | ||
#title = "非選択状態でも逆インデント" | |||
(function() { | |||
Redraw = false; | |||
var sel = document.selection; | |||
var flg = sel.IsEmpty; | |||
if (flg) { | |||
var curPointX = sel.GetActivePointX(mePosLogical); | |||
var curPointY = sel.GetActivePointY(mePosLogical); | |||
sel.EndOfLine(mePosLogical); | |||
var endPointX = sel.GetActivePointX(mePosLogical); | |||
sel.SelectLine(); | |||
} | |||
sel.Unindent(); | |||
if (flg) { | |||
var topchar = sel.Text.charAt(0); | |||
sel.Collapse(meCollapseStart); | |||
sel.EndOfLine(mePosLogical); | |||
curPointX -= (endPointX - sel.GetActivePointX(mePosLogical)); | |||
sel.SetActivePoint(mePosLogical, curPointX, curPointY, false); | |||
} | |||
Redraw = true; | |||
})(); | })(); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
2025年11月25日 (火) 21:19時点における最新版
このマクロはMery Ver 3.5.6で追加された「何も選択していないとき、Shift + Tab キーで逆インデント」と同機能です。
概要[編集]
最終書き込み 2012/03/30 のちょっとクロさん!!!!!!!!!!!!!(要望) でユーケーさんが求めていた非選択状態での逆インデント。選択状態では標準機能の逆インデントを実行するので、Shift + Tab に割り当てできます。カーソルは実行時の文字位置(x位置ではなく)を維持します。
(ブログのコメント より転載)
ソースコード[編集]
#title = "非選択状態でも逆インデント"
(function() {
Redraw = false;
var sel = document.selection;
var flg = sel.IsEmpty;
if (flg) {
var curPointX = sel.GetActivePointX(mePosLogical);
var curPointY = sel.GetActivePointY(mePosLogical);
sel.EndOfLine(mePosLogical);
var endPointX = sel.GetActivePointX(mePosLogical);
sel.SelectLine();
}
sel.Unindent();
if (flg) {
var topchar = sel.Text.charAt(0);
sel.Collapse(meCollapseStart);
sel.EndOfLine(mePosLogical);
curPointX -= (endPointX - sel.GetActivePointX(mePosLogical));
sel.SetActivePoint(mePosLogical, curPointX, curPointY, false);
}
Redraw = true;
})();
スポンサーリンク