diff --git a/core/autoload/themes.el b/core/autoload/themes.el index e5f2cf0a6..19cc1d5ab 100644 --- a/core/autoload/themes.el +++ b/core/autoload/themes.el @@ -1,8 +1,16 @@ ;;; ../work/conf/doom-emacs/core/autoload/themes.el -*- lexical-binding: t; -*- +(defun doom--custom-theme-set-face (spec) + (cond ((listp (car spec)) + (cl-loop for face in (car spec) + collect `(,face ,(cdr spec)))) + ((keywordp (car spec)) + `((,(car spec) ((t ,(cdr spec)))))) + (`((,(car spec) ,(cdr spec)))))) + ;;;###autoload -(defmacro custom-theme-set-faces! (theme &rest specs) - "Apply a list of face specs as user customizations for THEME. +(defun custom-theme-set-faces! (theme &rest specs) + "Apply a list of face SPECS as user customizations for THEME. THEME can be a single symbol or list thereof. If nil, apply these settings to all themes. It will apply to all themes once they are loaded. @@ -14,7 +22,7 @@ all themes. It will apply to all themes once they are loaded. '(org-tag :background \"#4499FF\") '(org-ellipsis :inherit org-tag) '(which-key-docstring-face :inherit font-lock-comment-face))" - `(let* ((themes (doom-enlist (or ,theme 'user))) + `(let* ((themes (doom-enlist (or theme 'user))) (fn (gensym (format "doom--customize-%s-h-" (mapconcat #'symbol-name themes "-"))))) (fset fn (lambda () @@ -22,16 +30,14 @@ all themes. It will apply to all themes once they are loaded. (when (or (eq theme 'user) (custom-theme-enabled-p theme)) (apply #'custom-theme-set-faces 'user - (cl-loop for (face . spec) in (list ,@specs) - if (keywordp (car spec)) - collect `(,face ((t ,spec))) - else collect `(,face ,spec))))))) + (mapcan #'doom--custom-theme-set-face + specs)))))) (funcall fn) (add-hook 'doom-load-theme-hook fn))) ;;;###autoload -(defmacro custom-set-faces! (&rest specs) - "Apply a list of face specs as user customizations. +(defun custom-set-faces! (&rest specs) + "Apply a list of face SPECS as user customizations. SPECS is a list of face specs. @@ -45,7 +51,7 @@ face format, e.g. '(org-tag :background \"#4499FF\") '(org-ellipsis :inherit org-tag) '(which-key-docstring-face :inherit font-lock-comment-face))" - `(custom-theme-set-faces! 'user ,@specs)) + (apply #'custom-theme-set-faces! 'user specs)) ;;;###autoload (defun doom/reload-theme ()