unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Ihor Radchenko <yantar92@posteo.net>,
	Stefan Monnier <monnier@iro.umontreal.ca>
Cc: 64048@debbugs.gnu.org
Subject: bug#64048: 30.0.50; global-display-line-numbers-mode has no easy way to set modes where it is enabled
Date: Sat, 17 Jun 2023 10:46:05 +0300	[thread overview]
Message-ID: <83ttv6r0oy.fsf@gnu.org> (raw)
In-Reply-To: <87fs6u8b0p.fsf@localhost> (message from Ihor Radchenko on Wed, 14 Jun 2023 12:48:54 +0000)

> From: Ihor Radchenko <yantar92@posteo.net>
> Cc: Stefan Monnier <monnier@iro.umontreal.ca>, 64048@debbugs.gnu.org
> Date: Wed, 14 Jun 2023 12:48:54 +0000
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> >> Let me correct my initial suggestion:
> >> 
> >> (define-globalized-minor-mode global-display-line-numbers-mode
> >>   display-line-numbers-mode display-line-numbers--turn-on
> >>   :predicate t)
> >
> > This change is probably harmless, but OTOH what does it give you that
> > the current code doesn't?  AFAIU, you still cannot customize the modes
> > where line numbers will be off.
> >
> > IOW, :predicate is not a means for user customizations of the modes
> > where the minor mode will be turned on.  Or am I missing something?
> 
> >> :predicate defines the default value of
> >> `global-display-line-numbers-modes' variable.
> >
> > It does?  Where is this documented?
> 
> Yup. It is not documented on API level, but when :predicate is non-nil,
> `define-globalized-minor-mode' does the following:
> 
> (setq turn-on-function
>       `(lambda ()
>          (require 'easy-mmode)
>          (when (easy-mmode--globalized-predicate-p ,MODE-predicate)
>            (funcall ,turn-on-function))))
> 
> ;; Minor mode docstring:
> (if predicate
>     (concat
>      "\n\n"
>      (internal--format-docstring-line
>       "`%s' is used to control which modes this minor mode is used in."
>       MODE-predicate)) ;; <global-mode-name>-modes
>   "")
> 
> ,(when predicate
>           `(defcustom ,MODE-predicate ,(car predicate)
>              ,(format "Which major modes `%s' is switched on in.
> This variable can be either t (all major modes), nil (no major modes),
> or a list of modes and (not modes) to switch use this minor mode or
> not.  For instance
> 
>   (c-mode (not message-mode mail-mode) text-mode)
> 
> means \"use this mode in all modes derived from `c-mode', don't use in
> modes derived from `message-mode' or `mail-mode', but do use in other
> modes derived from `text-mode'\".  An element with value t means \"use\"
> and nil means \"don't use\".  There's an implicit nil at the end of the
> list."
>                       mode)
>              :type '(repeat sexp)
>              ,@group))

Stefan, is our current documentation of :predicate incomplete?





  reply	other threads:[~2023-06-17  7:46 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-13 14:33 bug#64048: 30.0.50; global-display-line-numbers-mode has no easy way to set modes where it is enabled Ihor Radchenko
2023-06-13 15:50 ` Eli Zaretskii
2023-06-13 16:09   ` Ihor Radchenko
2023-06-13 16:49     ` Eli Zaretskii
2023-06-13 17:21       ` Ihor Radchenko
2023-06-13 18:19         ` Eli Zaretskii
2023-06-13 19:36           ` Ihor Radchenko
2023-06-14 11:58             ` Eli Zaretskii
2023-06-14 12:48               ` Ihor Radchenko
2023-06-17  7:46                 ` Eli Zaretskii [this message]
2023-06-17 18:30                   ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-06-17 18:58                     ` Eli Zaretskii
2023-06-17 19:06                       ` Ihor Radchenko
2023-06-17 19:04                     ` Ihor Radchenko
2023-06-17 19:18                       ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors

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=83ttv6r0oy.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=64048@debbugs.gnu.org \
    --cc=monnier@iro.umontreal.ca \
    --cc=yantar92@posteo.net \
    /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).