サクラエディタで行ソートマクロを作る

イナリサーチをするために、配列の要素をあらかじめソートする必要があったので、サクラエディタで行ソートを行うマクロを組んでみた。

サクラエディタで行選択された範囲をソート という記事を元に作成。
改行コードが異なっていても処理できるようにしてみた。

var linecode;
if(Editor.GetLineCode()==0) linecode="\r\n";
else if(Editor.GetLineCode()==1) linecode="\r";
else linecode="\n";

if(Editor.GetSelectedString().length >= 1)
Editor.InsText(Editor.GetSelectedString()
.split(linecode).sort(textAsc).join(linecode));

// テキストソート(昇順)
function textAsc(arg1, arg2){

if(arg1.toUpperCase() == arg2.toUpperCase()) return 0;

if(arg1.toUpperCase() > arg2.toUpperCase()) return 1;

if(arg1.toUpperCase() < arg2.toUpperCase()) return -1;

}


// テキストソート(降順)
function textDesc(arg1, arg2){

if(arg1.toUpperCase() == arg2.toUpperCase()) return 0;

if(arg1.toUpperCase() > arg2.toUpperCase()) return -1;

if(arg1.toUpperCase() < arg2.toUpperCase()) return 1;

}

sortメソッドに渡す引数をtextDescに変更すると降順ソートもできます。