[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: w3m-display-hook
の破綻
論点(= 要求仕様)を整理すると….
(1) ~/.emacs で add-hook で手軽に設定したい.
(2) customize-variable だけを使っている人を混乱させないようにしたい.
(3) プログラム中に add-hook が分散していると,実際の default が分かり
難いので困る.
これに対する解として,
(a) *-hook / *-function を分割して,*-hook の初期値を nil にする.
(b) defcustom の工夫で切り抜ける.
という案があります.また,
(c) 初期化ファイルを別に用意する.
(d) w3m-load-hook を用意する.
という案もありましたが,案(c)は問題点(1)の解決にはなりませんし,案(d)
は eval-after-load と比較した時のメリットがはっきりしないと思います.
ただし,カスタマイズする方法は基本的に多い方が良いはずですから,これら
の案は別に実装するべきだとは思いますが.
分割するという(a)案は,それなりに良い案だと思いますが,*-functions も
ユーザーオプションにする(defcustom で宣言する)と,問題点(2)が満たされ
ないので良くないと思います.しかし,「*-functions をユーザーオプション
にしない」ことにすると,add-hook で *-functions を変更しようと言う目論
見自体が成り立たなくなってしまいます.
とすると,案(b)しか残らないのですが‥‥,うーん,本当にそうなのかなあ?
以上の分析が本当に合っているのか,ちょっと自信がありません.意見求む.
>> On Thu, 29 Aug 2002 13:54:12 +0900 (JST)
>> 「白井」== shirai@rdmg.mgcs.mei.co.jp (Hideyuki SHIRAI (白井秀行)) said as follows:
白井> Elisp Info の "hooks" をまじめに(日本語ですけど)読んでみました。
白井> そうすると、引数のある hook は abnormal hook だから、*-functions
白井> や *-hooks じゃないといけないのか。
白井> # 知らなかった ^^;;;
私も.
白井> # w3m-display-hook、w3m-bitmap-cache-image-hook
白井> # => w3m-display-hooks、w3m-bitmap-cache-image-hooks ?
うーん,うーん.
土> うーん,確かに hook をプログラム内部で色々と変更しているのは問題が
土> あるのでしょうねえ….
白井> これはぼくも気になっていました。
でもって,
白井> 現状を調べてみると、(local-hook は除く)
白井> (1) w3m-mode-hook => 初期値あり
白井> (2) w3m-fontify-before-hook => 初期値無し
白井> (3) w3m-fontify-after-hook => 初期値あり
白井> (4) w3m-display-hook => 初期値あり
白井> (5) w3m-arrived-setup-hook => 初期値あり
白井> (6) w3m-arrived-shutdown-hook => 初期値あり
白井> (7) w3m-delete-buffer-hook => 初期値あり
白井> (8) w3m-change-buffer-hook => 初期値あり
白井> となっていて、(2) 以外は初期値があります。しかし、この初期値は
白井> (大体のものは)必要だから入っているので hook じゃなくてもいいんじゃ
白井> ないかな。
そんな気がしてきますねえ.でもまあ,*-hook になっていると,色々と新機
能の追加がやりやすいという利点はあるわけで.
--
土屋 雅稔 ( TSUCHIYA Masatoshi )