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 が何をするかはよく分からない。
結果、見事成功。 便利。