blechmusikの日記

キー・カスタマイズ・ソフトウェア "DvorakJ" の覚え書きをはじめとして様々なことを書いています。

既定の単語を単語として認識するよう ahk-mode を改変した

従来の ahk-mode では既定の単語(たとえばA_TickCount)を単語として認識させていなかった。そのせいで、A_TickCountが0と0に挟まれて 0A_TickCount0 となっているときでも、以下の画像のように、単語か否かにかかわらず当該箇所を色づけしていた。

f:id:blechmusik2:20130213011842p:plain

今回公開した ahk-mode では、既定の単語が単語と認識されるとき、言い換えると既定の単語の前後に空白や特定の記号が存在するときに限って、色づけを行うようにしている。その結果は以下の画像のとおりだ。 この改変によって 0A_TickCount0 や 0A_TickCount 中の A_TickCount が色づけされなくなった。

f:id:blechmusik2:20130213011849p:plain

define-generic-modeの色づけの設定において正規表現の\b (elispでは\\b) を用い、既定の単語か否かを判定するようにしたのである*1。ただし、#SingleInstance や #Persistent のように # から始まるディレクティブについては、Elisp 上設定がうまくいかないため、\b を指定していない。

*1:Regexp Backslash - GNU Emacs Lisp Reference Manualを見れば \b の使い方が分かるだろう。