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
all themes. It will apply to all themes once they are loaded."
(declare (indent defun))
`(let* ((themes (doom-enlist (or ,theme 'user)))
(fn (gensym (format "doom--customize-%s-h-" (mapconcat #'symbol-name themes "-")))))
`(let ((fn (gensym "doom--customize-themes-h-")))
(fset
fn (lambda ()
(dolist (theme themes)
(dolist (theme (doom-enlist (or ,theme 'user)))
(when (or (eq theme 'user)
(custom-theme-enabled-p theme))
(apply #'custom-theme-set-faces 'user