unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#42207: 28.0.50; (where-is-internal) reports incorrect binding
@ 2020-07-04 23:01 Dima Kogan
  2021-10-19 23:43 ` Stefan Kangas
  0 siblings, 1 reply; 2+ messages in thread
From: Dima Kogan @ 2020-07-04 23:01 UTC (permalink / raw)
  To: 42207

Hi. I'm using a pretty recent emacs built from git, although I don't
think this bug is a recent regression. From a user perspective, the
issue looks like this:

1. emacs -Q
2. Open any .py file, or just M-x python mode
3. M-x forward-se [TAB]

Step 3 asks emacs to complete. There're two matches: forward-sexp and
forward-sentence. Emacs also helpfully reports the associated bindings
with each command because suggest-key-bindings is not nil. It says
that the binding for forward-sentence is M-e, which is NOT the case
here: M-e is python-nav-forward-block.

Digging a bit, I see that the issue is that we call (where-is-internal)
in simple.el, and this is the issue:

  (key-description (where-is-internal 'forward-sentence nil t))

returns

  "M-e", even in python-mode

This maybe is related to the way this keymap is defined. python-mode-map is

  (keymap
   .... keys keys keys ...
   (remap keymap
          (mark-defun . python-mark-defun)
          (backward-up-list . python-nav-backward-up-list)
          (forward-sentence . python-nav-forward-block)
          (backward-sentence . python-nav-backward-block))
   ...
  )

I haven't read about this remap thing yet, and the docstring for
(where-is-internal) does have a NO-REMAP option, but "M-e" is reported
regardless of the value of NO-REMAP.

Thanks.





Configured using:
 'configure --build x86_64-linux-gnu --prefix=/usr
 --sharedstatedir=/var/lib --libexecdir=/usr/lib
 --localstatedir=/var/lib --infodir=/usr/share/info
 --mandir=/usr/share/man --with-pop=yes
 --enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/28.0.50/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/28.0.50/site-lisp:/usr/share/emacs/site-lisp
 --build x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib
 --libexecdir=/usr/lib --localstatedir=/var/lib
 --infodir=/usr/share/info --mandir=/usr/share/man --with-pop=yes
 --enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/28.0.50/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/28.0.50/site-lisp:/usr/share/emacs/site-lisp
 --with-x=yes --with-x-toolkit=gtk3 --with-toolkit-scroll-bars
 'CFLAGS=-g -O2
 -fdebug-prefix-map=/build/emacs-snapshot-MVBGWo/emacs-snapshot-20200426+emacs-27.0.91-703-g453ada0309d=.
 -fstack-protector-strong -Wformat -Werror=format-security -Wall
 -fno-omit-frame-pointer' 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2'
 LDFLAGS=-Wl,-z,relro'

Configured features:
XPM JPEG TIFF GIF PNG RSVG CAIRO SOUND GPM DBUS GSETTINGS GLIB NOTIFY
INOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF
ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS JSON PDUMPER
LCMS2 GMP

Important settings:
  value of $LC_ALL: C
  value of $LANG: C
  locale-coding-system: nil





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

* bug#42207: 28.0.50; (where-is-internal) reports incorrect binding
  2020-07-04 23:01 bug#42207: 28.0.50; (where-is-internal) reports incorrect binding Dima Kogan
@ 2021-10-19 23:43 ` Stefan Kangas
  0 siblings, 0 replies; 2+ messages in thread
From: Stefan Kangas @ 2021-10-19 23:43 UTC (permalink / raw)
  To: Dima Kogan; +Cc: 42207

Dima Kogan <dima@secretsauce.net> writes:

> Hi. I'm using a pretty recent emacs built from git, although I don't
> think this bug is a recent regression. From a user perspective, the
> issue looks like this:
>
> 1. emacs -Q
> 2. Open any .py file, or just M-x python mode
> 3. M-x forward-se [TAB]
>
> Step 3 asks emacs to complete. There're two matches: forward-sexp and
> forward-sentence. Emacs also helpfully reports the associated bindings
> with each command because suggest-key-bindings is not nil. It says
> that the binding for forward-sentence is M-e, which is NOT the case
> here: M-e is python-nav-forward-block.

Hmm, isn't this basically what you would expect when you remap a
command?  That is, the thing that is actually bound to that key *is*,
properly speaking `forward-sexp'.  It's just that it's remapped to
`python-nav-forward-block'?

That said, I suppose our presentation of this could be smarter, but I'm
not sure what that would look like.  Just not showing the key-binding
for `forward-sentence' doesn't seem right either, does it?

> Digging a bit, I see that the issue is that we call (where-is-internal)
> in simple.el, and this is the issue:
>
>   (key-description (where-is-internal 'forward-sentence nil t))
>
> returns
>
>   "M-e", even in python-mode
>
> This maybe is related to the way this keymap is defined. python-mode-map is
>
>   (keymap
>    .... keys keys keys ...
>    (remap keymap
>           (mark-defun . python-mark-defun)
>           (backward-up-list . python-nav-backward-up-list)
>           (forward-sentence . python-nav-forward-block)
>           (backward-sentence . python-nav-backward-block))
>    ...
>   )
>
> I haven't read about this remap thing yet, and the docstring for
> (where-is-internal) does have a NO-REMAP option, but "M-e" is reported
> regardless of the value of NO-REMAP.
>
> Thanks.





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

end of thread, other threads:[~2021-10-19 23:43 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-04 23:01 bug#42207: 28.0.50; (where-is-internal) reports incorrect binding Dima Kogan
2021-10-19 23:43 ` Stefan Kangas

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