[Date Prev][Date Next][Thread Prev][][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 )