昇順で並び替え/降順で並び替え

提供: MeryWiki
移動先: 案内検索

ショートカットキーやツールバーアイコンの削減用に Mery のインストーラ/ZIP に同梱されている「昇順で並び替え」マクロと「降順で並び替え」マクロをひとつにまとめてみました。

連続で実行すると  昇順 → 降順 → 昇順 → 降順 → ...  でトグルします。
もとの並び順に戻す場合は Undo(Ctrl+Z)してください。

  • 並べ替えのルールを細かく指定したいばあいは「行並べ替え」マクロが便利です。


ソースコード
#title = "昇順/降順 トグル"
#tooltip = "昇順で並べ替え/降順で並べ替え"
// #icon = "Mery用 マテリアルデザインっぽいアイコン.icl",145

// --------------------------------------------------------
// 昇順で並べ替え/降順で並べ替え
// Original Copyright (c) Kuro. All Rights Reserved.
// www: https://www.haijin-boys.com/
// --------------------------------------------------------
// Modified by sukemaru
// --------------------------------------------------------

var s = document.selection;

// 選択範囲がなければ文書全体を範囲選択
if ( s.IsEmpty ) {
  s.SelectAll();
}
var act = s.GetActivePos();
var anc = s.GetAnchorPos();

// 昇順で並べ替え
var st = s.Text.replace( /\n?$/, "" )
               .split( "\n" )
               .sort()
               .join( "\n" )
       + RegExp["$&"];
if ( st != s.Text ) {
  s.Text = st;
}

// すでに昇順だった場合は降順で並べ替え
else {
  st = s.Text.replace( /\n?$/, "" )
             .split( "\n" )
             .sort( function( a, b ) {
                      return ( ( a < b ) ?  1 :
                             ( ( a > b ) ? -1 :
                           /* ( a == b ) */ 0 ) )
                    } )
             .join( "\n" )
     + RegExp["$&"];
  if ( st != s.Text ) {
    s.Text = st;
  }
}

// 選択範囲を復帰
s.SetActivePos( act );
s.SetAnchorPos( anc );
スポンサーリンク