plist-get-value treats arg as backquoted

This allows use of variables or even arbitrary expressions to construct
use-package arguments:

(use-package some-package
  :mode ,mode-spec
  :bind (,binding
         ,@more-bindings
         ,@(cl-loop for i from ?a to ?z
                    collect `(,(string i) . nifty-function))))
This commit is contained in:
Noam Postavsky 2013-09-25 22:24:45 -04:00
parent 9c9329f522
commit dd20db220d

View file

@ -439,10 +439,8 @@ Return the list of recognized keywords."
(plist-keys args))) (plist-keys args)))
(defun plist-get-value (plist prop) (defun plist-get-value (plist prop)
(let ((value-or-symbol (plist-get plist prop))) "Return the value of PROP in PLIST as if it was backquoted."
(if (symbolp value-or-symbol) (eval (list '\` (plist-get plist prop))))
(symbol-value value-or-symbol)
value-or-symbol)))
(defmacro use-package (name &rest args) (defmacro use-package (name &rest args)
"Use a package with configuration options. "Use a package with configuration options.