Fix void-variable themes error at startup

If lexical-binding isn't enabled (with ';; -*- lexical-binding: t; -*-'
at the top of your private config), custom-set-theme! and
custom-theme-set-faces! throw this error. Since these macros are
commonly used in user configs, where I can't police lexical-binding,
I've refactored it to not rely on it.
This commit is contained in:
Henrik Lissner 2019-10-27 14:27:29 -04:00
parent d79904d51f
commit dca4015003
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -16,11 +16,10 @@
THEME can be a single symbol or list thereof. If nil, apply these settings to 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." all themes. It will apply to all themes once they are loaded."
(declare (indent defun)) (declare (indent defun))
`(let* ((themes (doom-enlist (or ,theme 'user))) `(let ((fn (gensym "doom--customize-themes-h-")))
(fn (gensym (format "doom--customize-%s-h-" (mapconcat #'symbol-name themes "-")))))
(fset (fset
fn (lambda () fn (lambda ()
(dolist (theme themes) (dolist (theme (doom-enlist (or ,theme 'user)))
(when (or (eq theme 'user) (when (or (eq theme 'user)
(custom-theme-enabled-p theme)) (custom-theme-enabled-p theme))
(apply #'custom-theme-set-faces 'user (apply #'custom-theme-set-faces 'user