unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Lars Ingebrigtsen <larsi@gnus.org>
To: Howard Melman <hmelman@gmail.com>
Cc: 30978@debbugs.gnu.org
Subject: bug#30978: 25.3; Suggestion: define-minor-mode should define mode-lighter variable
Date: Thu, 29 Jul 2021 14:11:07 +0200	[thread overview]
Message-ID: <874kcds4kk.fsf@gnus.org> (raw)
In-Reply-To: <lyh7ge8dbr.fsf@new-host-2.home> (Howard Melman's message of "Wed, 28 Jul 2021 15:10:00 -0400")

Howard Melman <hmelman@gmail.com> writes:

> Maybe include an example of disabling a lighter in the elisp
> manual (where minor-mode-alist is mentioned).  E.g.,
>
>     (setcar (cdr (assoc 'eldoc-mode minor-mode-alist)) "")
>
> I realize this is "pretty easy" lisp but it's not a simple
> setq and I think non-lispers might want to do this.

Kévin Le Gouguec <kevin.legouguec@gmail.com> writes:

> Manipulating minor-mode-alist is not that hard indeed; there are some
> sources of hassle though:
>
> (1) figuring out the name of the mode variable (e.g. auto-fill-function,
>     defining-kbd-macro);
>
> (2) some modes seem not to add their variables to minor-mode-alist for
>     some reason (e.g. caps-lock-mode on GNU ELPA), so this recipe does
>     not work (neither does delight); one needs to fallback to
>     add-to-list.
>
> Nothing too herculean, but I'm sure some users would appreciate a
> built-in function to figure out this stuff for them.

I did consider adding a new function like `set-minor-mode-lighter' that
would just alter `minor-mode-alist' like that setcar, but that has (at
least) two problems -- the one you mention in (1), and loading
precedence issues: If you alter the entry in `minor-mode-alist', and
then load the .el file with the `define-minor-mode', then it'll
overwrite your own setting.

So you have to say

(require 'foo)
(setcar ...)

in your .emacs to make it work reliably, so just adding a naive helper
function, or talking about this too much, is that helpful, because it'll
trip people up.

Adding a -lighter defcustom would indeed have none of these problems,
but I'm just not sure that people would use it enough to justify the
(minor) performance impact, as well as the defcustom explosion.  Which
is why I think that using a package like delight is the right solution
here for those that want to change the lighters.  Probably.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





  reply	other threads:[~2021-07-29 12:11 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-28 20:11 bug#30978: 25.3; Suggestion: define-minor-mode should define mode-lighter variable Howard Melman
2019-07-14 13:40 ` Lars Ingebrigtsen
     [not found]   ` <CADwFkmk-oFgHAwgcZ=-utkBU303x4vF9c9vkuUfpkPinL7Q0KQ@mail.gmail.com>
2020-08-23 12:22     ` Lars Ingebrigtsen
2021-06-25 14:27       ` Lars Ingebrigtsen
2021-06-25 22:57         ` Phil Sainty
2021-07-25  7:59           ` Lars Ingebrigtsen
2021-07-25 16:43             ` Howard Melman
2021-07-28 15:31               ` Lars Ingebrigtsen
2021-07-28 19:10                 ` Howard Melman
2021-07-29 12:11                   ` Lars Ingebrigtsen [this message]
2021-07-28 20:00                 ` Kévin Le Gouguec

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=874kcds4kk.fsf@gnus.org \
    --to=larsi@gnus.org \
    --cc=30978@debbugs.gnu.org \
    --cc=hmelman@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).