Subject: bug#60645: 30.0.50; interactive MODES not detected properly

From: Eli Zaretskii <[email-masked]>
Date: Sun, 08 Jan 2023 11:15:42 +0200

> Date: Sun, 08 Jan 2023 09:19:35 +0300
> From: Jean Louis <[email-masked]>
> 
> 
> * Eli Zaretskii <[email-masked]> [2023-01-08 09:07]:
> > > And I expect not to see it.
> > > 
> > > What am I doing wrong?
> > 
> > The doc string is wrong: the default is to show all commands.  If you
> > want to see only those relevant to MODES, either use M-X (upper-case
> > X) or customize read-extended-command-predicate's value to be the
> > function command-completion-default-include-p.
> 
> Now we know that there is some inconsistency, thanks for confirming
> it.
> 
> For this function:
> 
> (defun my-function ()
>   (interactive nil '(text-mode mail-mode))
>   (message "Hello"))
> 
> major-mode ➜ mail-mode
> 
> My default was:
> (setq read-extended-command-predicate nil)
> 
> - I can see 90 possible completions with M-X in mail-mode, WITHOUT `my-function'
> 
> - I can see 9819 possible completions with M-x in mail-mode, WITH `my-function'
> 
> when I turn it on:
> 
> (setq read-extended-command-predicate 'command-completion-default-include-p)
> 
> - I can see 90 possible completions with M-X in mail-mode, WITHOUT `my-function'
> 
> - I can see 9819 possible completions with M-x in mail-mode, WITHOUT `my-function'
> 
> Which means that my function cannot be found with recommended
> settings in mail-mode, so there must be more inconsistencies.

Maybe one of the inconsistencies is your expectations.  What did you
expect to happen in each case, and why?