filter文(Ver8.91対応版)
目次その他編集系文− filter文
 filter文は、パラメータを指定して、変換モジュールを呼び出します。(V5.00以降)
filter 変換モジュール名, 関数名, パラメータ
 変換モジュール名に "" (何も無い文字列)を指定すると、標準の変換モジュール(32bit版の場合はHmFilter.hmf、64bit版の場合はHmFilter.hmf64)を使用します。
 変換モジュール名の「.hmf」または「.hmf64」の拡張子部分は省略可能です。(V8.20β8以降)
 ただしフルパスでファイル名を書く場合は拡張子の省略はできません。

 パラメータは、変換モジュールに渡す文字列のパラメータです。パラメータの内容は、変換モジュールが自由に決めることができます。パラメータは省略可能です。
 変換モジュールのパラメータを調べるには、「キー操作の記録開始/終了」と「キー操作の保存...」を使う方法があります。

 V5.00より、変換系のコマンドをキー操作の記録すると、indentやtohankakuなどでは記録されず、filterで記録されるようになりました。

 filterやindentやtohankakuなどの変換の文は、範囲選択した状態で実行しなければ意味がありません。

 BOX選択や複数選択の場合は、通常は単一選択扱いになります。
 あらかじめ setcompatiblemode 0x00100000; をしておくと、複数選択に対応して、選択された箇所全てに対して変換モジュールが呼ばれます。

 文字列のパラメータを渡して変換する関数版のfilter関数もあります。

 変換モジュールのDLLが見つからない場合や、関数が見つからない場合は、V8.88以降ではエラーが出ます。トラブル対策のオプションで「マクロで問題のある文法の警告を出さない」がONの場合はエラーは出ません。
 エラーが出ない場合でも、getresultexでエラー情報を取得できます。(V8.88以降)



標準の変換モジュール(HmFilter.hmf)の関数名一覧

ToUpperUPPER CASE
ToLowerlower case
ToHankakuハンカク
ToZenkakuHira全角ひらがな
ToZenkakuKata全角カタカナ
ToSpaceTAB -> 空白 (※注)
ToTab空白 -> TAB (※注)
ToHankakuAlnum英数字/記号/空白のみ半角に
ToZenkakuAlnum英数字/記号/空白のみ全角に
ToHankakuKataOnlyカタカナのみ半角に
ToZenkakuKataOnlyカタカナのみ全角に
Indentインデント
UnIndent逆インデント
Sortソート(V8.00以降)
※注
ToSpace, ToTab は、秀丸エディタの現在の状態に依存しています。
タブの文字数の設定と、範囲選択開始位置からタブ位置を計算します。
パラメータに"1"を指定して呼ぶと、範囲選択開始位置を無視して計算します。(V8.01以降)

ToUpper, ToLowerは、パラメータを指定して、対象となる文字を指定できます。(V8.50以降)
"0000"や"1111"のような文字列で、最初の"1"は半角英字、2番目の"1"は全角英字、3番目の"1"はアクセント付きラテン文字、4番目の"1"はキリル文字とギリシャ文字(V8.85以降)を対象とすることを意味します。
省略時は半角英字と全角英字だけを対象とします。

Sortの使い方例:
//昇順、すべてチェックOFF
filter "" , "Sort" , "000000000000";//+"1"; ダイアログを出す場合
//降順、すべてチェックOFF
filter "" , "Sort" , "100000000000";
//昇順、UnicodeのみON
filter "" , "Sort" , "000010000000";
//昇順、数値の大小関係のみON
filter "" , "Sort" , "000100000000";



変換モジュールのパラメータを調べる方法

変換モジュールのパラメータは、キー操作の記録をして、キー操作の保存をしてマクロ化することで知ることができます。

標準のソートマクロ化する例
 1.適当に範囲選択する
 2.[マクロ]→[キー操作の記録開始/終了](標準でShift+F1)
 3.[編集]→[変換]→[ソート]
 4.[マクロ]→[キー操作の記録開始/終了](標準でShift+F1)
 5.[マクロ]→[キー操作の保存]
 6.適当にtest.macなどというファイル名で保存

で、マクロができます。


この手順ではソートのダイアログは出ず、記録したときのダイアログで選んだソート方法が記録されています。
マクロファイル用のフォルダにあるtest.macを開くと、

filter "" , "Sort" , "000110110002001\"00";

というような感じになっていて、filter文の最後の"000110110002001\"00"の部分がパラメータになっています。
(この例では、マクロの文字列の中に「"」が含まれるので「\"」となっています)