1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00

Merge pull request from canatella/add-customization-keywords

Add customization keywords
GitHub-reference: https://github.com/jwiegley/use-package/issues/508
This commit is contained in:
John Wiegley 2017-11-20 15:42:19 -08:00 committed by GitHub
commit 9bf8264523

View file

@ -158,6 +158,8 @@ the user specified."
:defines
:functions
:defer
:custom
:custom-face
:init
:after
:demand
@ -1404,6 +1406,71 @@ deferred until the prefix key sequence is pressed."
(message (format "Cannot load %s" ',name)))
,@config-body)))))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;; :custom
;;
(defun use-package-normalize/:custom (name-symbol keyword arg)
"Normalize use-package custom keyword."
(let ((error-msg (format "%s wants a (<symbol> <form> <optional string comment>) or list of these" name-symbol)))
(unless (listp arg)
(use-package-error error-msg))
(dolist (def arg arg)
(unless (listp def)
(use-package-error error-msg))
(let ((variable (nth 0 def))
(value (nth 1 def))
(comment (nth 2 def)))
(when (or (not variable)
(not value)
(> (length def) 3)
(and comment (not (stringp comment))))
(use-package-error error-msg))))))
(defun use-package-handler/:custom (name keyword args rest state)
"Generate use-package custom keyword code."
(let ((body (use-package-process-keywords name rest state)))
(use-package-concat
(mapcar (lambda (def)
(let ((variable (nth 0 def))
(value (nth 1 def))
(comment (nth 2 def)))
(unless comment
(setq comment (format "Customized with use-package %s" name)))
`(customize-set-variable (quote ,variable) ,value ,comment)))
args)
body)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;; :custom-face
;;
(defun use-package-normalize/:custom-face (name-symbol keyword arg)
"Normalize use-package custom-face keyword."
(let ((error-msg (format "%s wants a (<symbol> <face-spec>) or list of these" name-symbol)))
(unless (listp arg)
(use-package-error error-msg))
(dolist (def arg arg)
(unless (listp def)
(use-package-error error-msg))
(let ((face (nth 0 def))
(spec (nth 1 def)))
(when (or (not face)
(not spec)
(> (length arg) 2))
(use-package-error error-msg))))))
(defun use-package-handler/:custom-face (name keyword args rest state)
"Generate use-package custom-face keyword code."
(let ((body (use-package-process-keywords name rest state)))
(use-package-concat
(mapcar (lambda (def)
`(custom-set-faces (quote ,def)))
args)
body)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;; :diminish
@ -1550,6 +1617,8 @@ this file. Usage:
:load-path Add to the `load-path' before attempting to load the package.
:diminish Support for diminish.el (if installed).
:delight Support for delight.el (if installed).
:custom Call `customize-set-variable' with each variable definition.
:custom-face Call `customize-set-faces' with each face definition.
:ensure Loads the package using package.el if necessary.
:pin Pin the package to an archive."
(declare (indent 1))