1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-24 13:32:41 -08:00

Handle automatic macro expansion by elisp-completion-at-point

The function `elisp--local-variables' inserts an unbound variable,
`elisp--witness--lisp', into macro forms to determine the locally bound
variables for `elisp-completion-at-point'. It ends up throwing a lot of errors
since it can occupy the position of a keyword (or look like a second argument to
a keyword that takes one). Deleting it when it's at the top level should be
harmless since there should be no locally bound variables to discover here
anyway.
This commit is contained in:
Justin Burkett 2017-12-18 15:15:28 -05:00
parent 13fb5f4f2e
commit 9638870f53

View file

@ -559,6 +559,15 @@ extending any keys already present."
(let* ((name-symbol (if (stringp name) (intern name) name))
(name-string (symbol-name name-symbol)))
;; The function `elisp--local-variables' inserts this unbound variable into
;; macro forms to determine the locally bound variables for
;; `elisp-completion-at-point'. It ends up throwing a lot of errors since it
;; can occupy the position of a keyword (or look like a second argument to a
;; keyword that takes one). Deleting it when it's at the top level should be
;; harmless since there should be no locally bound variables to discover
;; here anyway.
(setq args (delq 'elisp--witness--lisp args))
;; Reduce the set of keywords down to its most fundamental expression.
(setq args (use-package-unalias-keywords name-symbol args))