unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#60645: 30.0.50; interactive MODES not detected properly
@ 2023-01-08  6:19 Jean Louis
       [not found] ` <handler.60645.B.167315884819377.ack@debbugs.gnu.org>
  2023-01-08  9:15 ` bug#60645: 30.0.50; interactive MODES not detected properly Eli Zaretskii
  0 siblings, 2 replies; 6+ messages in thread
From: Jean Louis @ 2023-01-08  6:19 UTC (permalink / raw)
  To: 60645


* Eli Zaretskii <eliz@gnu.org> [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.



In GNU Emacs 30.0.50 (build 2, x86_64-pc-linux-gnu, X toolkit, cairo
 version 1.17.6, Xaw3d scroll bars) of 2023-01-08 built on
 protected.rcdrun.com
Repository revision: 5d1e14bd8b9a11ab860937d3ab97248ddeef30b1
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12101004
System Description: Parabola GNU/Linux-libre

Configured using:
 'configure --with-x-toolkit=lucid --with-mailutils'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ
JPEG JSON LCMS2 LIBOTF LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY
INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XAW3D XDBE XIM XINPUT2 XPM
LUCID ZLIB

Important settings:
  value of $LC_ALL: en_US.UTF-8
  value of $LANG: de_DE.UTF-8
  value of $XMODIFIERS: @im=exwm-xim
  locale-coding-system: utf-8-unix

Major mode: Fundamental

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  blink-cursor-mode: t
  buffer-read-only: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow mailalias emacsbug message yank-media puny dired
dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config
gnus-util text-property-search time-date mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils hyperbole-autoloads
package browse-url url url-proxy url-privacy url-expand url-methods
url-history url-cookie generate-lisp-file url-domsuf url-util mailcap
url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs
password-cache json subr-x map byte-opt gv bytecomp byte-compile
url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren
electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode
mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset
image regexp-opt fringe tabulated-list replace newcomment text-mode
lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch
easymenu timer select scroll-bar mouse jit-lock font-lock syntax
font-core term/tty-colors frame minibuffer nadvice seq simple
cl-generic indonesian philippine cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932
hebrew greek romanian slovak czech european ethiopic indian cyrillic
chinese composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button
loaddefs theme-loaddefs faces cus-face macroexp files window
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget keymap hashtable-print-readable backquote threads
dbusbind inotify lcms2 dynamic-setting system-font-setting
font-render-setting cairo x-toolkit xinput2 x multi-tty
make-network-process emacs)

Memory information:
((conses 16 56097 9398)
 (symbols 48 6869 0)
 (strings 32 20672 1400)
 (string-bytes 1 616964)
 (vectors 16 14339)
 (vector-slots 8 199578 12461)
 (floats 8 29 36)
 (intervals 56 342 0)
 (buffers 984 10))


-- 
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

In support of Richard M. Stallman
https://stallmansupport.org/





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#60645: Acknowledgement (30.0.50; interactive MODES not detected properly)
       [not found] ` <handler.60645.B.167315884819377.ack@debbugs.gnu.org>
@ 2023-01-08  6:33   ` Jean Louis
  0 siblings, 0 replies; 6+ messages in thread
From: Jean Louis @ 2023-01-08  6:33 UTC (permalink / raw)
  To: 60645

I wanted to say 8777 instead of 9819 here below, correction:

(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 8777 possible completions with M-x in mail-mode, WITHOUT `my-function'


--
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

In support of Richard M. Stallman
https://stallmansupport.org/





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#60645: 30.0.50; interactive MODES not detected properly
  2023-01-08  6:19 bug#60645: 30.0.50; interactive MODES not detected properly Jean Louis
       [not found] ` <handler.60645.B.167315884819377.ack@debbugs.gnu.org>
@ 2023-01-08  9:15 ` Eli Zaretskii
  2023-01-08 11:26   ` Jean Louis
  1 sibling, 1 reply; 6+ messages in thread
From: Eli Zaretskii @ 2023-01-08  9:15 UTC (permalink / raw)
  To: Jean Louis; +Cc: 60645

> Date: Sun, 08 Jan 2023 09:19:35 +0300
> From: Jean Louis <bugs@gnu.support>
> 
> 
> * Eli Zaretskii <eliz@gnu.org> [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?





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#60645: 30.0.50; interactive MODES not detected properly
  2023-01-08  9:15 ` bug#60645: 30.0.50; interactive MODES not detected properly Eli Zaretskii
@ 2023-01-08 11:26   ` Jean Louis
  2023-01-08 12:11     ` Eli Zaretskii
  0 siblings, 1 reply; 6+ messages in thread
From: Jean Louis @ 2023-01-08 11:26 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 60645

* Eli Zaretskii <eliz@gnu.org> [2023-01-08 12:15]:
> Maybe one of the inconsistencies is your expectations.  What did you
> expect to happen in each case, and why?

For this function:

(defun my-function ()
  (interactive nil '(text-mode mail-mode))
  (message "Hello"))

> If MODES is present, it should be a list of mode names (symbols) that
> this command is applicable for.  The main effect of this is that
> ‘M-x TAB’ (by default) won’t list this command if the current buffer’s
> mode doesn’t match the list.  That is, if either the major mode isn’t
> derived from them, or (when it’s a minor mode) the mode isn’t in effect.

I expect that M-x TAB shows it in this mail-mode, but it does not show
it this time. That is one of expectations, among several.

In general, I would like to setup functions NOT to show in modes where
they should not be shown.

I feel this function does not work.

If you have working example, show me.

--
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

In support of Richard M. Stallman
https://stallmansupport.org/













^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#60645: 30.0.50; interactive MODES not detected properly
  2023-01-08 11:26   ` Jean Louis
@ 2023-01-08 12:11     ` Eli Zaretskii
  2023-01-08 21:39       ` Jean Louis
  0 siblings, 1 reply; 6+ messages in thread
From: Eli Zaretskii @ 2023-01-08 12:11 UTC (permalink / raw)
  To: Jean Louis; +Cc: 60645

> Date: Sun, 8 Jan 2023 14:26:18 +0300
> From: Jean Louis <bugs@gnu.support>
> Cc: 60645@debbugs.gnu.org
> 
> * Eli Zaretskii <eliz@gnu.org> [2023-01-08 12:15]:
> > Maybe one of the inconsistencies is your expectations.  What did you
> > expect to happen in each case, and why?
> 
> For this function:
> 
> (defun my-function ()
>   (interactive nil '(text-mode mail-mode))
>   (message "Hello"))
> 
> > If MODES is present, it should be a list of mode names (symbols) that
> > this command is applicable for.  The main effect of this is that
> > ‘M-x TAB’ (by default) won’t list this command if the current buffer’s
> > mode doesn’t match the list.  That is, if either the major mode isn’t
> > derived from them, or (when it’s a minor mode) the mode isn’t in effect.
> 
> I expect that M-x TAB shows it in this mail-mode, but it does not show
> it this time. That is one of expectations, among several.
> 
> In general, I would like to setup functions NOT to show in modes where
> they should not be shown.
> 
> I feel this function does not work.
> 
> If you have working example, show me.

The interactive form is wrong.  It should be this:

 (defun my-function ()
   (interactive nil text-mode mail-mode)
   (message "Hello"))

IOW, no quoting and no explicit list.  The documentation clearly says

  (interactive &optional ARG-DESCRIPTOR &rest MODES)

"&rest MODES" means zero or more symbols, not a quoted list.





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#60645: 30.0.50; interactive MODES not detected properly
  2023-01-08 12:11     ` Eli Zaretskii
@ 2023-01-08 21:39       ` Jean Louis
  0 siblings, 0 replies; 6+ messages in thread
From: Jean Louis @ 2023-01-08 21:39 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 60645

* Eli Zaretskii <eliz@gnu.org> [2023-01-08 15:11]:
> > > If MODES is present, it should be a list of mode names (symbols) that
> > > this command is applicable for.  The main effect of this is that
> > > ‘M-x TAB’ (by default) won’t list this command if the current buffer’s
> > > mode doesn’t match the list.  That is, if either the major mode isn’t
> > > derived from them, or (when it’s a minor mode) the mode isn’t in effect.

> IOW, no quoting and no explicit list.  The documentation clearly says
> 
>   (interactive &optional ARG-DESCRIPTOR &rest MODES)
> 
> "&rest MODES" means zero or more symbols, not a quoted list.

I was confused with "If MODES is present, it should be a list of mode
names (symbols) that..."


--
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

In support of Richard M. Stallman
https://stallmansupport.org/






^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-01-08 21:39 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-08  6:19 bug#60645: 30.0.50; interactive MODES not detected properly Jean Louis
     [not found] ` <handler.60645.B.167315884819377.ack@debbugs.gnu.org>
2023-01-08  6:33   ` bug#60645: Acknowledgement (30.0.50; interactive MODES not detected properly) Jean Louis
2023-01-08  9:15 ` bug#60645: 30.0.50; interactive MODES not detected properly Eli Zaretskii
2023-01-08 11:26   ` Jean Louis
2023-01-08 12:11     ` Eli Zaretskii
2023-01-08 21:39       ` Jean Louis

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).