GNU bug report logs - #47665
elisp-completion-at-point doesn't work when no characters typed

Previous Next

Package: emacs;

Reported by: Dmitry Gutov <dgutov <at> yandex.ru>

Date: Thu, 8 Apr 2021 23:54:01 UTC

Severity: normal

Done: Dmitry Gutov <dgutov <at> yandex.ru>

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 47665 in the body.
You can then email your comments to 47665 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 monnier <at> iro.umontreal.ca, bug-gnu-emacs <at> gnu.org:
bug#47665; Package emacs. (Thu, 08 Apr 2021 23:54:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Dmitry Gutov <dgutov <at> yandex.ru>:
New bug report received and forwarded. Copy sent to monnier <at> iro.umontreal.ca, bug-gnu-emacs <at> gnu.org. (Thu, 08 Apr 2021 23:54:01 GMT) Full text and rfc822 format available.

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

From: Dmitry Gutov <dgutov <at> yandex.ru>
To: bug-gnu-emacs <at> gnu.org
Subject: elisp-completion-at-point doesn't work when no characters typed
Date: Fri, 9 Apr 2021 02:53:29 +0300
X-Debbugs-CC: Stefan Monnier <monnier <at> IRO.UMontreal.CA>

Example:

(|)

press C-M-i -> nothing

(a|)

press C-M-i -> lots of completions

That's not very conducive to API exploration via completion.

Further, it triggers a problem when used with company: if I initiate 
completion when prefix is empty, it switches to the dabbrev-code 
backend. Then, even after I type some chars, the same backend continues 
to be used. Not company-capf, which I would want.

This patch seems to fix it:

diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el
index 8ade718640..203712f45d 100644
--- a/lisp/progmodes/elisp-mode.el
+++ b/lisp/progmodes/elisp-mode.el
@@ -496,7 +496,7 @@ elisp-completion-at-point
 	   (end
 	    (unless (or (eq beg (point-max))
 			(member (char-syntax (char-after beg))
-                                '(?\s ?\" ?\( ?\))))
+                                '(?\" ?\()))
 	      (condition-case nil
 		  (save-excursion
 		    (goto-char beg)


But I'm not sure why those elements were there in the first place.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#47665; Package emacs. (Fri, 09 Apr 2021 02:39:01 GMT) Full text and rfc822 format available.

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

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Dmitry Gutov <dgutov <at> yandex.ru>
Cc: 47665 <at> debbugs.gnu.org
Subject: Re: bug#47665: elisp-completion-at-point doesn't work when no
 characters typed
Date: Thu, 08 Apr 2021 22:38:12 -0400
> This patch seems to fix it:
>
> diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el
> index 8ade718640..203712f45d 100644
> --- a/lisp/progmodes/elisp-mode.el
> +++ b/lisp/progmodes/elisp-mode.el
> @@ -496,7 +496,7 @@ elisp-completion-at-point
>  	   (end
>  	    (unless (or (eq beg (point-max))
>  			(member (char-syntax (char-after beg))
> -                                '(?\s ?\" ?\( ?\))))
> +                                '(?\" ?\()))
>  	      (condition-case nil
>  		  (save-excursion
>  		    (goto-char beg)
>
>
> But I'm not sure why those elements were there in the first place.

I don't think there was a deep reason.
More of a desire to be on the safe side and only provide completion when
there was some evidence that we were indeed in the presence of an identifier.


        Stefan





Reply sent to Dmitry Gutov <dgutov <at> yandex.ru>:
You have taken responsibility. (Fri, 09 Apr 2021 22:53:01 GMT) Full text and rfc822 format available.

Notification sent to Dmitry Gutov <dgutov <at> yandex.ru>:
bug acknowledged by developer. (Fri, 09 Apr 2021 22:53:02 GMT) Full text and rfc822 format available.

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

From: Dmitry Gutov <dgutov <at> yandex.ru>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 47665-done <at> debbugs.gnu.org
Subject: Re: bug#47665: elisp-completion-at-point doesn't work when no
 characters typed
Date: Sat, 10 Apr 2021 01:52:07 +0300
On 09.04.2021 05:38, Stefan Monnier wrote:
> I don't think there was a deep reason.
> More of a desire to be on the safe side and only provide completion when
> there was some evidence that we were indeed in the presence of an identifier.

With your permission, I will change it then.

I don't think there are any significant cases where we're trying to 
complete something other than an identifier and would benefit from 
skipping over elisp-completion-at-point.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#47665; Package emacs. (Fri, 09 Apr 2021 22:59:01 GMT) Full text and rfc822 format available.

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

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Dmitry Gutov <dgutov <at> yandex.ru>
Cc: 47665-done <at> debbugs.gnu.org
Subject: Re: bug#47665: elisp-completion-at-point doesn't work when no
 characters typed
Date: Fri, 09 Apr 2021 18:57:56 -0400
> With your permission, I will change it then.

You have my blessing ;-)


        Stefan





bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 08 May 2021 11:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 352 days ago.

Previous Next


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