タグ: Computer

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

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

     愛用のテキストエディタであるところの、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;
     }
    }