* lisp/progmodes/elisp-mode.el (elisp-completion-at-point): Fix bug#68514

Redo the commit 0db2126d71 to try and avoid selecting more than
a mere symbol.
This commit is contained in:
Stefan Monnier 2024-01-18 14:05:16 -05:00
parent b07a86abb6
commit a33f3947ea

View file

@ -657,12 +657,13 @@ functions are annotated with \"<f>\" via the
(save-excursion
(backward-sexp 1)
(skip-chars-forward "`',#")
(point))
(min (point) pos))
(scan-error pos)))
(end
(unless (or (eq beg (point-max))
(member (char-syntax (char-after beg))
'(?\" ?\()))
(cond
((and (< beg (point-max))
(memq (char-syntax (char-after beg))
'(?w ?\\ ?_)))
(condition-case nil
(save-excursion
(goto-char beg)
@ -670,7 +671,11 @@ functions are annotated with \"<f>\" via the
(skip-chars-backward "'")
(when (>= (point) pos)
(point)))
(scan-error pos))))
(scan-error pos)))
((or (>= beg (point-max))
(memq (char-syntax (char-after beg))
'(?\) ?\s)))
beg)))
;; t if in function position.
(funpos (eq (char-before beg) ?\())
(quoted (elisp--form-quoted-p beg))