秀丸エディタの AutoHotkey 用辞書ファイルを作った
Version 1.28.0.2 ベース。
成果物
GitHub にアップした。
効果
- 指定したキーワードを自動補完できる
- 例:
#
と打つと#NoTrayIcon
などの#XXXX
系が補完される、とか
- 例:
作り方
いかにしてキーワードを列挙するかが問題。
方法1: ヘルプから(今回採用案)
https://autohotkey.com/docs/AutoHotkey.htm
上記ページの Index から HTML データを取り出した(Firefox の F12ツールで inner HTML をコピーした)後、正規表現とか駆使してキーワードだけ残すようにした。
以下作業メモ。
コピーするとこんなデータ:
<a href="https://autohotkey.com/docs/commands/SetExpression.htm" tabindex="0" data-content=":=" class="selected"></a><a href="https://autohotkey.com/docs/commands/Send.htm#blind" tabindex="-1" data-content="{Blind}"></a><a href="https://autohotkey.com/docs/commands/_AllowSameLineComments.htm" tabindex="-1" data-content="#AllowSameLineComments"></a><a href="https://autohotkey.com/docs/commands/_ClipboardTimeout.htm" tabindex="-1" data-content="#ClipboardTimeout"></a>...
</a>
→ </a>\n
と置換。
<a href="https://autohotkey.com/docs/commands/SetExpression.htm" tabindex="0" data-content=":=" class="selected"></a> <a href="https://autohotkey.com/docs/commands/Send.htm#blind" tabindex="-1" data-content="{Blind}"></a><a href="https://autohotkey.com/docs/commands/_AllowSameLineComments.htm" tabindex="-1" data-content="#AllowSameLineComments"></a> <a href="https://autohotkey.com/docs/commands/_ClipboardTimeout.htm" tabindex="-1" data-content="#ClipboardTimeout"></a> ...
色々工夫して data-content の中身のみ抽出。
:= {Blind} #ClipboardTimeout ...
あとはキーワードじゃない分をひたすら削除していく(上記例でいえば上二つは削除)。やり方は、
- 記号を含む行を削除
- スペースを含む行を削除
- 重複行を削除
など。ただこれだと「buffering」みたいな、キーワードじゃないが索引として用意されてる単語がまだ残ってる。ここは省ききれてない。
方法2: ソースから(没案)
ソースコードにキーワードの定義が書いてあるはず、と思って覗いてみたが、結論を言うと定数化がキレイにまとまってないコードだったので抽出は諦めた。
メモ2: github.com での Search は使い物にならないので Clone して Grep とかした方がベター 。
感想
『秀丸エディタは長いこと使ってるけど、今回初めて「辞書ファイル」なるものの存在を知った。最近 AutoHotkey を書いているので、試しにと作ってみることにした。
導入してみると、良い感じ。この調子で AutoHotkey コーディングをどんどん捗らせる所存。