GNU bug report logs - #35567
27.0.50; Emacs-Lisp and ElDoc confusion with some strings

Previous Next

Package: emacs;

Reported by: Mauro Aranda <maurooaranda <at> gmail.com>

Date: Sat, 4 May 2019 21:16:01 UTC

Severity: minor

Tags: confirmed, fixed

Found in version 27.0.50

Fixed in version 27.1

Done: Noam Postavsky <npostavs <at> gmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 35567 in the body.
You can then email your comments to 35567 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#35567; Package emacs. (Sat, 04 May 2019 21:16:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Mauro Aranda <maurooaranda <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sat, 04 May 2019 21:16:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Mauro Aranda <maurooaranda <at> gmail.com>
To: bug-gnu-emacs <bug-gnu-emacs <at> gnu.org>
Subject: 27.0.50; Emacs-Lisp and ElDoc confusion with some strings
Date: Sat, 4 May 2019 18:14:54 -0300
[Message part 1 (text/plain, inline)]
Hello.

I've found some cases where ElDoc displays function information in
the echo area, when it shouldn't.

Try the following, with the attached test.el (no need to eval it):
1) emacs -Q
2) C-x C-f test.el
3) There are two 'and' in the doc string of foo.  Do a search for 'and'
and stop after the first:
C-s and C-f: ElDoc doesn't show a function in the echo area, that's
fine.
Now search for the next 'and':
C-s C-s C-f: ElDoc shows `and: (CONDITIONS...)' in the echo area.  That
shouldn't happen.
4) Also, there's a " in a comment, in the last line.  Search for "here",
just like for "and" before:
C-s here C-f: ElDoc again shows `and: (CONDITIONS...)'.  That again,
shouldn't happen.

In these cases, I see that elisp--fnsym-in-current-sexp doesn't return nil,
as it should when point is inside a string.  So far, I've only found that
a quoted ( confuses it, when the ) is not quoted.  But for the bug to
become visible, the word that follows ")" has to be an interned symbol.

Another example is in the file lisp/files.el.  Put point in the doc string
of
the variable file-name-version-regexp, and see that ElDoc shows
`while: (TEST BODY...)' in the echo area.  I think that happens because
there are " in some comments lines before the doc string.

It seems that the problem is that elisp--beginning-of-sexp calls
forward-sexp, even though its doc string explicitly says that it assumes
point is not in a string or a comment.  Most of the time it still works,
but it fails in some cases, and in those cases, the check for the current
word not being inside a string loses its purpose.

Perhaps using the return value of syntax-ppss before calling
elisp--beginning-of-sexp would be enough to avoid this confusion.

Also, let me ask: was there any discussion about the usefulness of having
ElDoc display information when point is inside a comment?  I ask because
I only see the intention to check when not inside a string.

Best regards,
Mauro.

In GNU Emacs 27.0.50 (build 1, i686-pc-linux-gnu, GTK+ Version 3.18.9)
 of 2019-05-04 built on the-blackbeard
Repository revision: a90ad2297391cf5fe284a4c6e81724360ed018a4
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.11906000
System Description: Ubuntu 16.04.6 LTS

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.

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

Important settings:
  value of $LANG: en_US.utf8
  value of $XMODIFIERS:
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

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

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny seq byte-opt gv
bytecomp byte-compile cconv dired dired-loaddefs format-spec rfc822 mml
easymenu mml-sec password-cache epa derived epg epg-config gnus-util
rmail rmail-loaddefs text-property-search time-date mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader cl-loaddefs
cl-lib sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils
elec-pair mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type 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 elisp-mode lisp-mode prog-mode register page menu-bar
rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core term/tty-colors frame cl-generic 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 charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray minibuffer
cl-preloaded nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote threads dbusbind
inotify lcms2 dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 8 44043 5027)
 (symbols 24 5870 1)
 (strings 16 14982 1524)
 (string-bytes 1 501645)
 (vectors 8 8861)
 (vector-slots 4 114202 9774)
 (floats 8 17 14)
 (intervals 28 191 4)
 (buffers 564 11)
 (heap 1024 7516 761))
[Message part 2 (text/html, inline)]
[test.el (text/x-emacs-lisp, attachment)]

Added tag(s) confirmed. Request was from Akshay Gaikwad <akgaikwad001 <at> gmail.com> to control <at> debbugs.gnu.org. (Wed, 19 Jun 2019 13:25:01 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#35567; Package emacs. (Sat, 10 Aug 2019 14:01:02 GMT) Full text and rfc822 format available.

Message #10 received at 35567 <at> debbugs.gnu.org (full text, mbox):

From: Mauro Aranda <maurooaranda <at> gmail.com>
To: 35567 <at> debbugs.gnu.org
Subject: Re: 27.0.50; Emacs-Lisp and ElDoc confusion with some strings
Date: Sat, 10 Aug 2019 11:00:21 -0300
[Message part 1 (text/plain, inline)]
Hello.

I propose the attached patch to fix this problem.

Best regards,
Mauro.
[Message part 2 (text/html, inline)]
[0001-Don-t-display-wrong-ElDoc-information-when-inside-EL.patch (text/x-patch, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#35567; Package emacs. (Sat, 10 Aug 2019 14:04:02 GMT) Full text and rfc822 format available.

Message #13 received at 35567 <at> debbugs.gnu.org (full text, mbox):

From: Mauro Aranda <maurooaranda <at> gmail.com>
To: 35567 <at> debbugs.gnu.org
Subject: Re: 27.0.50; Emacs-Lisp and ElDoc confusion with some strings
Date: Sat, 10 Aug 2019 11:03:05 -0300
[Message part 1 (text/plain, inline)]
Oops, previous patch had a typo in the commit message.
[Message part 2 (text/html, inline)]
[0001-Don-t-display-wrong-ElDoc-information-when-inside-EL.patch (text/x-patch, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#35567; Package emacs. (Tue, 20 Aug 2019 12:43:02 GMT) Full text and rfc822 format available.

Message #16 received at 35567 <at> debbugs.gnu.org (full text, mbox):

From: Noam Postavsky <npostavs <at> gmail.com>
To: Mauro Aranda <maurooaranda <at> gmail.com>
Cc: 35567 <at> debbugs.gnu.org
Subject: Re: bug#35567: 27.0.50;
 Emacs-Lisp and ElDoc confusion with some strings
Date: Tue, 20 Aug 2019 08:42:14 -0400
tags 35567 fixed
close 35567 27.1
quit

> From: Mauro Aranda <maurooaranda <at> gmail.com>
> Date: Sat, 10 Aug 2019 10:48:24 -0300
> Subject: [PATCH] Don't display wrong ElDoc information when inside ELisp
>  strings or comments

Pushed to master.

4e0c5830da 2019-08-20T08:34:23-04:00 "Don't display wrong ElDoc information when inside ELisp strings or comments"
https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=4e0c5830dab466be2df99b8814b742a662d67ac7





Added tag(s) fixed. Request was from Noam Postavsky <npostavs <at> gmail.com> to control <at> debbugs.gnu.org. (Tue, 20 Aug 2019 12:43:02 GMT) Full text and rfc822 format available.

bug marked as fixed in version 27.1, send any further explanations to 35567 <at> debbugs.gnu.org and Mauro Aranda <maurooaranda <at> gmail.com> Request was from Noam Postavsky <npostavs <at> gmail.com> to control <at> debbugs.gnu.org. (Tue, 20 Aug 2019 12:43:05 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 18 Sep 2019 11:24:10 GMT) Full text and rfc822 format available.

This bug report was last modified 4 years and 193 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.