お手軽ソートマクロを作った

本日の成果:お手軽ソートマクロを作った。

 愛用のテキストエディタであるところの、EmEditor用のマクロを作った。ソートしたい範囲を選択してマクロを呼び出すとそこだけがソートされるという単純なもの。なんだかフルセットのJavaScriptで書けてしまうのでおそれいった。

 ソート前後で、エディタの画面に表示されている範囲が極力変化しないように、またCtrl+Z一発でソート前の状態に戻せるように工夫した。

今後の課題:

  •  Case Ignoreなソートや逆順ソートもできるといいな。でも今のようにストイックに、蹴れば即並ぶという単純さも捨て難い。

モノは以下のとおり。

/*
 選択範囲 またはテキスト全部をソートする

 2009/04/14 opa

 for EmEditor v5.00 or later
*/

var NewLine = "rn";
var sortText;
var eol = false;
var Redraw;
var scrollY;

if(document.selection.isempty){
 Window.status = "ソート範囲が選択されていません。";
}else{
 sortText = document.selection.text.split(NewLine);

 if(sortText.length > 0 && sortText[sortText.length - 1] === ""){
  --sortText.length;
  eol = true;
 }

 if(sortText.length > 1){
  sortText.sort();

  Redraw = Window.Redraw;
  scrollY = Window.scrollY;
  Window.Redraw = false;

  document.selection.Text = sortText.join(NewLine) + (eol ? NewLine : "");

  Window.scrollY = scrollY;
  Window.Redraw = Redraw;
 }
}

投稿日

カテゴリー:

投稿者:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です