> Впрочем, идея с обратным направлением подключения плагинов ясна — пользователь может
> установить bbdb, а может какую-нибудь другую базу.Более того, он может установить какой-нибудь другой почтовик, и всё,
что потребуется - подпихнуть те же самые функции bbdb в хуки этого
самого почтовика (если bbdb, конечно, не сделает этого при загрузке
автоматом).
> Осталось выяснить, насколько «общая» эта система и можно ли со стороны почтовика
> тоже сменить gnus на что-нибудь другое, оставив хуки «тут нужен поиск
> по имеилам».
Не знаю, это сильно зависит от почтовика. Gnus, например, для
написания сообщений включает message-mode. У него одни хуки. Другие же
почтовики могут использовать, например, дефолтный (iirc он
поставляется с emacs) mail-mode. И у него уже свои хуки.
> Теоретически, конечно, можно это сделать если не просто более
> общими названиями хуков, то некими шаблонами в их названиях. Но подозреваю,
> что такая система быстро разваливается под требованиями к своей гибкости.
Не думаю, что это хорошая идея. Возникнет путаница между хуками. Лучше
будет, если каждый режим работы будет использовать свои хуки.
Я бы сказал так: когда пользователь конфигурирует свой emacs, он
именно тем и занимается, что добавляет разные функции в разные
хуки. Так что совсем "по волшебству", чтобы всё само заработало,
обычно не бывает (bbdb и gnus просто такое редкое исключение).
Но с другой стороны, это предоставляет пользователю интересные
возможности. Так, например, при включении message-mode дыргается
message-mode-hook, и я в своём конфигу emacs добавил в него
auto-fill-mode (который автоматом переносит строку при превышении
какой-то ширины текста) и turn-on-flyspell, который проверяет
правописание.
Я не уверен, что пользователи в 100% случаев могут хотеть
auto-fill-mode при написании письма, равно как некоторые прекрасно
обходятся без flyspell.
Так что хуки в данном случае - механизм очень удобный.