オフインデント

提供: MeryWiki
2014年1月27日 (月) 14:11時点におけるInuuik (トーク | 投稿記録)による版
ナビゲーションに移動 検索に移動

Mery エディタ マクロ: オフインデント ( inuuik )

  インデントをはずす(オフ・インデント)

  「自動インデントを有効にする」にしているときに、
  Shift キーを押しながら Enter キーを押す(Shift+Enter)と、
  インデントをしないで次の行頭にカーソルが移動するマクロ。

  その行だけのインデントはずしで、自動インデントは有効のまま。
  あとの行でインデントしたときは、つぎに Enter を押すと、
  その次の行頭がインデントされる。

オフインデント(Shift+Enter).js

下の内容を、上の名前のファイルにして、My Macros に置く。
そこから Mery で開いて、マクロ - これを選択、
ツール - オプション - キーボード の マクロ で Shift+Enter に割り当て。
// - ------------------------ --------------------------------------------------
// オフインデント(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);
  }
}
// - ------------------------ --------------------------------------------------
スポンサーリンク