Document that mode commands should be idempotent.

* doc/lispref/modes.texi (Major Mode Conventions, Minor Mode
Conventions): Document that the mode commands should be idempotent.
This commit is contained in:
Philipp Stephani 2017-10-08 17:25:31 +02:00
parent ad2a47ce83
commit 798f07f150

View file

@ -313,6 +313,11 @@ The major mode command should set the variable @code{mode-name} to the
Data}, for other possible forms). The name of the mode appears
in the mode line.
@item
Calling the major mode command twice in direct succession should not
fail and should do the same thing as calling the command only once.
In other words, the major mode command should be idempotent.
@item
@cindex functions in modes
Since all global names are in the same name space, all the global
@ -1412,6 +1417,10 @@ a minor mode in a mode hook is a little uglier:
@noindent
However, this is not very commonly done.
Enabling or disabling a minor mode twice in direct succession should
not fail and should do the same thing as enabling or disabling it only
once. In other words, the minor mode command should be idempotent.
@item
Add an element to @code{minor-mode-alist} for each minor mode
(@pxref{Definition of minor-mode-alist}), if you want to indicate the