本日の成果:お手軽ソートマクロを作った。
愛用のテキストエディタであるところの、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;
}
}
コメントを残す