Subject: Re: bug#76535: Recommend against turn-on-<FOO>-mode functions

From: Stefan Kangas <[email-masked]>
Date: Mon, 10 Mar 2025 05:40:23 +0000

Stefan Kangas <[email-masked]> writes:

> Sean Whitton <[email-masked]> writes:
>
>> On Mon 24 Feb 2025 at 04:34pm -06, Stefan Kangas wrote:
>>
>>> Severity: wishlist
>>>
>>> How about adding to tips.texi a recommendation not to add any new
>>> functions like these?
>>>
>>>     (defun turn-on-<FOO>-mode ()
>>>       (<FOO>-mode 1))
>>>     (defun turn-off-<FOO>-mode ()
>>>       (<FOO>-mode -1))
>>>
>>> I think they are redundant in almost all cases, but it seems to me that
>>> they are sometimes added pretty much routinely.
>>
>> What about when you want to put
>>
>>     (add-hook 'foo-mode 'turn-on-bar-mode)
>>
>> in your init?  Without the wrapper, you need a (lambda () ...) which
>> isn't great.
>
> I think `define-minor-mode` is supposed to generate code that makes
>
>     (add-hook 'foo-mode 'bar-mode)
>
> always turn the minor mode on, without the wrapper.
>
> See (info "(elisp) Minor Mode Conventions"):

I quoted the wrong part:

     If the mode command is called from Lisp (i.e., non-interactively),
     it should enable the mode if the argument is omitted or ‘nil’;