[xyzzy:00005] menu 拡張
- Subject: [xyzzy:00005] menu 拡張
- From: Masahito Henmi <henmi@xxxxxxxxxxxxx>
- X-mailer: Denshin 8 Go V321.2b5
亀井さん赤塚さん、こんにちは。
http://www.netlaputa.ne.jp/~henmi/lisp/xyzzy/etc
に例のコーディングメニューの追加の新バージョンを公開しました。
今回のバージョンは「コーディングメニューの追加」だけに的をしぼり
キーバインディングの変更等、ユーザの好みに合わないようなものを一切
含まないようにしたこと。また、siteinit.lか.xyzzyに1行書くだけでOKに
したことです。
xyzzyのhtml-modeやCモードにhookをつかって、こそっと忍びこみます。^^;
====================================================
ここから亀井さんに質問なんですが、
kh-menu.lに以下のような書き方をしています。
(setq *html-mode-hook* '(html-mode-addin))
;(pushnew 'html-mode-addin *html-mode-hook*) --- うまくいかないので調査中
しかしユーザのhookを(setq *html-mode-hook* '(html-mode-addin))でつぶして
しまうのも気の毒だなぁと思い(pushnew 'html-mode-addin *html-mode-hook*)
にしようと思ったのですが、エラーになります。
調べてみるとhtml-mode等は必要になってから、ロードされるので
siteinit.lから(pushnew 'html-mode-addin *html-mode-hook*)が呼び出された
瞬間にはまだ*html-mode-hook*が、できていないみたいなんです。
この後,html-mode等がロードされたときに、
(export '(*html-mode-hook* *html-mode-map* html-mode *html-keyword-file*))
と
(defvar *html-mode-hook* nil)
が、実行されますが、defvarは既に変数に値が入っていると、上書きしないので、
OKなのかなぁ?
・・・という状況なのですが、hookの上手い書き方を教えてください。
------------------------------------------------------------
逸見雅人 Email henmi@xxxxxxxxxxxxx
Masahito Henmi