2009/07/25

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

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

 愛用のテキストエディタであるところの、EmEditor用のマクロを作った。ソートしたい範囲を選択してマクロを呼び出すとそこだけがソートされるという単純なもの。なんだかフルセットのJavaScriptで書けてしまうのでおそれいった。
 ソート前後で、エディタの画面に表示されている範囲が極力変化しないように、またCtrl+Z一発でソート前の状態に戻せるように工夫した。

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

モノは以下のとおり。・・・枠で囲むとかできないのかな。

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

2009/04/14 opa

for EmEditor v5.00 or later
*/

var NewLine = "\r\n";
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;
}
}


0 件のコメント:

コメントを投稿