![]() The parsing logic in `use-package-normalize-pairs' is not designed to deal with keyword arguments. However, `use-package-normalize-pairs' is used to process the arguments to :bind, which can include keyword arguments. These keyword arguments are supposed to be passed untouched to the underlying `bind-keys' function, but there is a clause in `use-package-normalize-pairs' that replaces lists with their first element. Thus an invocation like: (use-package company :bind (:map company-active-map :filter (company-explicit-action-p) ("RET" . company-complete-selection))) Generates code like this: (bind-keys :map company-active-map :filter company-explicit-action-p ("RET" . company-complete-selection)) Which generates an error since `company-explicit-action-p' is now being referenced as a variable rather than a function. The proper solution is to refactor the logic that goes into parsing uses of :bind, but this commit adds a temporary patch to eliminate the above problem, while trying to be as reverse-compatible as possible. In particular it just inhibits the list-to-first-element transformation when the previous element processed was a keyword. |
||
---|---|---|
.. | ||
bind-key.el | ||
use-package.el |