From 9638870f53a895264cef748e7c2afb24f28b0cf1 Mon Sep 17 00:00:00 2001 From: Justin Burkett Date: Mon, 18 Dec 2017 15:15:28 -0500 Subject: [PATCH] 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. --- lisp/use-package/use-package-core.el | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lisp/use-package/use-package-core.el b/lisp/use-package/use-package-core.el index 80f1fe1f1d0..1b5196a7b6d 100644 --- a/lisp/use-package/use-package-core.el +++ b/lisp/use-package/use-package-core.el @@ -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)) -- 2.39.2