Invalid signature

ここは俺の日記帳

xyzzy: 丸括弧を閉じた時にハイライト

xyzzy は paren というパッケージを使うと、括弧にカーソルを置くと対応する括弧を
ハイライトしてくれるようになる。

波括弧は閉じ括弧を入力した時にもハイライトしてくれるが、丸括弧はしてくれない。
これが何気に不便だったので対処法を探した。

しかし、ネットでは見つけられなかったので、paren のソースを見てみた。

まず波閉じ括弧に何かバインドさせているのかと疑ったが、
キーデファインの類は見つからなかった。 .xyzzy, siteinit.l あたりで
個別に設定してるか調べたがこちらも外れ。

次に paren の機能の呼び出しに目をつけた。
*post-command-hook* に paren-highlight をセットしている。
名前から察するに、コマンド実行後に呼び出しているようだ。

そして paren-highlight関数内を見てみると、実行中の関数が
*paren-not-highlight-command-list* に含まれていると終了するようになっている。

*paren-not-highlight-command-list* には self-insert-command が
セットされていた。
これは単純な文字入力だ。 ここで察しがついた。 波閉じ括弧には
なにか関数がバインドされていて、丸閉じ括弧にはそれが無いのだろう。
c++-mode や php-mode を見てみるとまさにそうだった。

ということで、試しに php-mode のキーマップに丸閉じ括弧のバインドを追加した。
バインドした関数は波閉じ括弧に倣って c-electric-close にしておいた。
c-electric-close が何をするかはよく分からない。

結果、見事成功。 便利。