all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#20425: 24.5; completion-at-point not working with prefix starting with '(:'
@ 2015-04-25 22:21 Alexander Miller
  2015-04-27  4:47 ` Stefan Monnier
  0 siblings, 1 reply; 5+ messages in thread
From: Alexander Miller @ 2015-04-25 22:21 UTC (permalink / raw)
  To: 20425

The issue can best be demonstrated as follows:

* Start vanilla emacs via emacs -q
* Switch to scratch buffer
* Enter the string '(:backg'
* Toggle completion-at-point (using C-M-i and M-x makes no difference)
* emacs will incorrectly report that no matches have been found

What should happen is that the prefix is completed to ':background'.
Removing the open paren and trying to complete with ':backg' as prefix
leads to the correct behaviour.

The above is just a specific example. In general completion-at-point is
not correctly completing for all of emacs' keywords which start with a
colon if the colon is preceded by '('.


In GNU Emacs 24.5.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.16.2)
of 2015-04-20 on bitzer.hoetzel.info
Windowing system distributor `The X.Org Foundation', version 11.0.11701000
Configured using:
`configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
--localstatedir=/var --with-x-toolkit=gtk3 --with-xft
'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong
--param=ssp-buffer-size=4' CPPFLAGS=-D_FORTIFY_SOURCE=2
LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro'

Important settings:
value of $LANG: de_DE.UTF-8
locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
tooltip-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

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
No match [2 times]
You can run the command `completion-at-point' with C-M-i
No match [4 times]
Making completion list...

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug message idna format-spec
rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util help-fns mail-prsvr mail-utils help-mode easymenu time-date
tooltip electric uniquify ediff-hook vc-hooks lisp-float-type mwheel
x-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list
newcomment lisp-mode prog-mode register page menu-bar rfn-eshadow timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai
tai-viet lao korean japanese hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help
simple abbrev minibuffer 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 make-network-process
dbusbind gfilenotify dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs)

Memory information:
((conses 16 74736 8772)
(symbols 48 17662 0)
(miscs 40 42 206)
(strings 32 9306 4675)
(string-bytes 1 253406)
(vectors 16 8988)
(vector-slots 8 383795 17139)
(floats 8 64 248)
(intervals 56 221 24)
(buffers 960 13)
(heap 1024 33123 898))






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

* bug#20425: 24.5; completion-at-point not working with prefix starting with '(:'
  2015-04-25 22:21 bug#20425: 24.5; completion-at-point not working with prefix starting with '(:' Alexander Miller
@ 2015-04-27  4:47 ` Stefan Monnier
       [not found]   ` <553E1C44.7020607@web.de>
  0 siblings, 1 reply; 5+ messages in thread
From: Stefan Monnier @ 2015-04-27  4:47 UTC (permalink / raw)
  To: Alexander Miller; +Cc: 20425

tags 20425 notabug
thanks

> * Start vanilla emacs via emacs -q
> * Switch to scratch buffer
> * Enter the string '(:backg'
> * Toggle completion-at-point (using C-M-i and M-x makes no difference)
[ Nitpick: "toggle" is not what you mean to stay. ]

> * Emacs will incorrectly report that no matches have been found

But this is correct: the scratch buffer is intended for Elisp code, and
(:background ...) is not valid Elisp code because there is
no :background function (or macro).

> The above is just a specific example.  In general completion-at-point is
> not correctly completing for all of emacs' keywords which start with a
> colon if the colon is preceded by '('.

Could you provide some other example, where the "colon something" fails
to complete, whereas it really should be completed (because indeed, it
is not in a position corresponding to a function call)?


        Stefan





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

* bug#20425: 24.5; completion-at-point not working with prefix starting with '(:'
       [not found]   ` <553E1C44.7020607@web.de>
@ 2015-04-27 12:50     ` Stefan Monnier
  2015-04-28  3:25       ` Dmitry Gutov
  2015-05-03 21:12       ` Dmitry Gutov
  0 siblings, 2 replies; 5+ messages in thread
From: Stefan Monnier @ 2015-04-27 12:50 UTC (permalink / raw)
  To: Alexander Miller; +Cc: 20425, dgutov

[ Please keep the Cc.  ]

> `(some-face ((,class (:backg

Thanks.  Indeed, M-TAB at the end of the previous line incorrectly claims
there's no completion, even that this "(:backg" is not a "function
call", so it should complete against "anything we can find".

Dmitry, could you take a look at this?


        Stefan





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

* bug#20425: 24.5; completion-at-point not working with prefix starting with '(:'
  2015-04-27 12:50     ` Stefan Monnier
@ 2015-04-28  3:25       ` Dmitry Gutov
  2015-05-03 21:12       ` Dmitry Gutov
  1 sibling, 0 replies; 5+ messages in thread
From: Dmitry Gutov @ 2015-04-28  3:25 UTC (permalink / raw)
  To: Stefan Monnier, Alexander Miller; +Cc: 20425

On 04/27/2015 03:50 PM, Stefan Monnier wrote:

> Thanks.  Indeed, M-TAB at the end of the previous line incorrectly claims
> there's no completion, even that this "(:backg" is not a "function
> call", so it should complete against "anything we can find".

As a first pass, this patch seems to help (here and in bug#19529, which 
is apparently a duplicate). It'll also make things worse for macro 
writers, but the existing `elisp--form-quoted-p' usage doesn't exactly 
cater to them either.

I should really revisit the "macroexpand all the things for completion" 
discussion.


diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el
index ad35c48..ca6042a 100644
--- a/lisp/progmodes/elisp-mode.el
+++ b/lisp/progmodes/elisp-mode.el
@@ -480,7 +480,7 @@ It can be quoted, or be inside a quoted form."
        (when (and end (or (not (nth 8 (syntax-ppss)))
                           (eq (char-before beg) ?`)))
          (let ((table-etc
-               (if (not funpos)
+               (if (or (not funpos) (elisp--form-quoted-p beg))
                     ;; FIXME: We could look at the first element of the 
list and
                     ;; use it to provide a more specific completion 
table in some
                     ;; cases.  E.g. filter out keywords that are not 
understood by







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

* bug#20425: 24.5; completion-at-point not working with prefix starting with '(:'
  2015-04-27 12:50     ` Stefan Monnier
  2015-04-28  3:25       ` Dmitry Gutov
@ 2015-05-03 21:12       ` Dmitry Gutov
  1 sibling, 0 replies; 5+ messages in thread
From: Dmitry Gutov @ 2015-05-03 21:12 UTC (permalink / raw)
  To: Stefan Monnier, Alexander Miller; +Cc: 20425-done, Giulio Petrucci

Version: 25.1

Should work fine now.

Thanks all.





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

end of thread, other threads:[~2015-05-03 21:12 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-04-25 22:21 bug#20425: 24.5; completion-at-point not working with prefix starting with '(:' Alexander Miller
2015-04-27  4:47 ` Stefan Monnier
     [not found]   ` <553E1C44.7020607@web.de>
2015-04-27 12:50     ` Stefan Monnier
2015-04-28  3:25       ` Dmitry Gutov
2015-05-03 21:12       ` Dmitry Gutov

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.