「オフインデント」の版間の差分

提供: MeryWiki
ナビゲーションに移動 検索に移動
Inuuik (トーク | 投稿記録)
編集の要約なし
Inuuik (トーク | 投稿記録)
ページの白紙化
 
1行目: 1行目:
Mery エディタ マクロ:  オフインデント  ( inuuik )
<pre>
  インデントをはずす(オフ・インデント)


  「自動インデントを有効にする」にしているときに、
  Shift キーを押しながら Enter キーを押す(Shift+Enter)と、
  インデントをしないで次の行頭にカーソルが移動するマクロ。
  その行だけのインデントはずしで、自動インデントは有効のまま。
  あとの行でインデントしたときは、つぎに Enter を押すと、
  その次の行頭がインデントされる。
オフインデント(Shift+Enter).js
下の内容を、上の名前のファイルにして、My Macros に置く。
そこから Mery で開いて、マクロ - これを選択、
ツール - オプション - キーボード の マクロ で Shift+Enter に割り当て。
</pre>
<source lang="javascript">
// - ------------------------ --------------------------------------------------
// オフインデント(Shift+Enter)
//
// revised  inuuik  2014-01-27
// - ------------------------ --------------------------------------------------
{
  var s = document.selection;
  var y = s.GetActivePointY(mePosView);
  if (!s.OverwriteMode || y === document.GetLines(meGetLineView)) {
// 挿入モードか、カーソルが最終行にある上書きモードなら、
// 現在行の下にカーソル桁位置以降の文字列を含む新しい行を挿入
    // 冗長でない記述
//    document.Write("\n");  // これを使うなら下の冗長な記述はいらない…
    // 冗長な記述ここから↓
    Redraw = false;
    s.NewLine(1);
//  インデントによる行頭空白文字を削除
    s.StartOfLine(true, mePosLogical);
    if (!s.IsEmpty) {
      s.Text = "";
    }
    Redraw = true;
    // 冗長な記述ここまで↑
  }
// 上書きモードでカーソルが最終行になければ、
// 現在行の下の行頭にカーソル桁位置を移動
  else {
    s.EndOfLine(!s.IsEmpty, mePosView);
    s.CharRight(!s.IsEmpty, 1);
  }
}
// - ------------------------ --------------------------------------------------
</source>

2014年2月10日 (月) 17:44時点における最新版

スポンサーリンク