Richard Stallman <[EMAIL PROTECTED]> writes: > I believe that we plan to eventually make all modes run > `after-change-major-mode-hook', usually as a byproduct of making them > run their mode hook with `run-mode-hooks'. > > If there are any major modes that fail to use run-mode-hooks, we want > to fix them now. It would be good for someone to look for them.
I'll do that. > However, users also have major modes, and we probably cannot expect > all of them to be changed for many years. So it will not be possible > to absolutely rely on all major modes to run after-change-major-mode-hook > at the end. Features that depend on this will fail to work in those > user-defined major modes that have not been updated. > > In some cases that will not be a real problem. When it is ok to say, > "Your major mode has a bug and needs to be corrected," we can say it. > For instance, if a global minor mode doesn't turn on in the user's > major mode because of this, we can respond that way. > > However, when a feature really needs to be reliable, it should not use > after-change-major-mode-hook now or for the next few years. I will > document that in the manual. > > I do not know whether there are a lot of derived modes that do not > follow the convention. The most satisfactory solution would obviously > be to make them all follow the conventions. If this would be > unrealistic, possibilities include to come up with a better fallback > alternative or to simply revert my change. > > If the change provides advantages, we have no reason to revert it. > What is the worst thing that can happen when a derived mode fails to > run after-change-major-mode-hook? Only that it won't enable certain > global minor modes. Font Lock mode is an example of such a global minor mode. My guess is that over 90% of Emacs' users enable global-font-lock-mode. It's pretty bad if enabling that breaks for some modes. > If that bothers the user, he can fix his derived mode to follow the > latest conventions. > > However, if we can easily make global minor modes work more reliably, > we may as well do so. Perhaps by using find-file-hook *as well as* > after-change-major-mode-hook. Why not? That solves the problem that global minor modes are not enabled for major modes that do not use run-mode-hooks. However, it doesn't solve the problem that a global minor mode is enabled *too soon* because a derived major mode doesn't delay the running of hooks of its parent mode. (Note: derived modes defined with define-derived-mode always delay the running of hooks.) Lute. _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel