非選択状態でも逆インデント

このマクロは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;
})();
スポンサーリンク