「非選択状態でも逆インデント」の版間の差分

提供: MeryWiki
ナビゲーションに移動 検索に移動
ページの作成:「<pre> 最終書き込み 2012/03/30 の「ちょっとクロさん!!!!!!!!!!!!!(要望) 」 でユーケーさんが求めていた非選択...」
 
MSY-07 (トーク | 投稿記録)
 
(同じ利用者による、間の9版が非表示)
1行目: 1行目:
<pre>
このマクロは[https://www.haijin-boys.com/software/mery/mery-3-5-0#11 Mery Ver 3.5.6]で追加された「何も選択していないとき、Shift + Tab キーで逆インデント」と同機能です。
最終書き込み 2012/03/30 の「ちょっとクロさん!!!!!!!!!!!!!(要望) 」
でユーケーさんが求めていた非選択状態での逆インデント。
選択状態では標準機能の逆インデントを実行するので、Shift + TAB に割り当てでき
ます。カーソルは実行時の文字位置(x位置ではなく)を維持します。


#title="非選択状態でも逆インデント"
== 概要 ==
</pre>
最終書き込み 2012/03/30 の[https://www.haijin-boys.com/discussions/1720 ちょっとクロさん!!!!!!!!!!!!!(要望)] でユーケーさんが求めていた非選択状態での逆インデント。選択状態では標準機能の逆インデントを実行するので、Shift + Tab に割り当てできます。カーソルは実行時の文字位置(x位置ではなく)を維持します。


([http://www.haijin-boys.com/index.php?fuseaction=weblog.entryInquire&entry_id=5041fb10749ab2.98527205 ブログのコメント] より転載)
([https://web.archive.org/web/20130501072057/http://haijin-boys.com/index.php?fuseaction=weblog.entryInquire&entry_id=5041fb10749ab2.98527205 ブログのコメント] より転載)


<source lang="javascript">
== ソースコード ==
(function(){
<syntaxhighlight lang="javascript" copy>
  Redraw = false;
#title = "非選択状態でも逆インデント"
  with (document.selection){
 
    var flg = isEmpty;
(function() {
    if(flg){
Redraw = false;
      var curPointX = GetActivePointX(mePosLogical);
var sel = document.selection;
      var curPointY = GetActivePointY(mePosLogical);
var flg = sel.IsEmpty;
      EndOfLine(mePosLogical);
if (flg) {
      var endPointX = GetActivePointX(mePosLogical);
var curPointX = sel.GetActivePointX(mePosLogical);
      SelectLine();
var curPointY = sel.GetActivePointY(mePosLogical);
    }
sel.EndOfLine(mePosLogical);
    UnIndent();
var endPointX = sel.GetActivePointX(mePosLogical);
    if(flg){
sel.SelectLine();
      var topchar = Text.charAt(0);
}
      Collapse(meCollapseStart);
sel.Unindent();
      EndOfLine(mePosLogical);
if (flg) {
      curPointX -= (endPointX - GetActivePointX(mePosLogical));
var topchar = sel.Text.charAt(0);
      SetActivePoint(mePosLogical, curPointX, curPointY, false);
sel.Collapse(meCollapseStart);
    }
sel.EndOfLine(mePosLogical);
  }
curPointX -= (endPointX - sel.GetActivePointX(mePosLogical));
  Redraw = true;
sel.SetActivePoint(mePosLogical, curPointX, curPointY, false);
}
Redraw = true;
})();
})();
</source>
</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;
})();
スポンサーリンク