Luc Teirlinck <[EMAIL PROTECTED]> writes: > Lute Kamstra wrote: > > > which was an incompatible change. > > Not compatible with what? > > With pre-existing defvars or defcustoms for these hooks. (Unless you > checked for _all_ uses of `define-generic-mode' that there are none. > But how did you get a list of _all_ outside packages that use it?)
define-generic-mode is an all-in-one solution for defining a major mode. You call it, and every aspect of the major mode should be set up. I think it's very unlikely that anyone who uses define-generic-mode will add a defvar for the mode hook. (This certainly isn't the case in Emacs' sources.) > In the case of `define-minor-mode' two concrete examples of variables > with competing defcustoms are auto-revert-mode-hook and > global-auto-revert-mode-hook. In this particular case, not too much > harm is done, but it is not exactly very clean. > > I primarily wanted to define the mode hook as a variable so that I > could give it docstring. I chose defcustom over defvar because > define-minor-mode and quite some other major modes did that. I don't > strongly object to making the defcustom a defvar, but I don't > understand your problems with the use of defcustom: > > I have a problem with _both_ defvar and defcustom. Hooks do not need > a defvar, most hooks do not have them. The only reason for a defvar > is to add a docstring. You use the defvar to give the hook the > docstring: "Hook run when entering Mymode mode.". This "generic" > docstring contains no info that is not already contained in the hook's > name and it could overwrite _real_ info contained in a handwritten > defvar or defcustom. > > If you want to make people aware of the mode hook, it would seem > better to put an additional sentence in the default mode doc: > > "Mymode mode. > This a generic mode defined with `define-generic-mode'. > As all such modes, it runs `foo-mode-hook' as the very last thing it does." Ok, that sounds reasonable. I'll implement that. > I don't recall the bugs you refer to; could you give me the subject(s) > of the relevant thread(s)? > > It is scattered over several threads. Threads about Custom tend to be > superlong and unfocused. `find-file-hook as illustration of Custom problems' > is one of the threads, but several other threads about Custom were > going on at the same time and they all intertwined. > > There are several problems, related to the fact that hooks have to be > customized using add-hook and remove-hook and not using setq. But > Custom does use setq. Here is an example of the type of problems that > occur. (By no means the only one.) The user customizes foo-hook > using Custom. Then in the next Emacs version, a very essential > function badly-needed-fun is added to foo-hook. The user's > custom-set-variables form overrides the adding of badly-needed-fun to > foo-hook. > > These kind of problems are supposed to get fixed in 23 or 24, but it > is too tricky to still get it done for 22. Thanks for clarifying, Lute. _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel