Improve core palette loading logic

Enhance theme palette loading by ensuring core palette is loaded before accessing its value.
This commit is contained in:
Heitor Augusto 2026-07-06 18:01:04 -03:00
parent a071a9d8e7
commit 89e40be4d8
No known key found for this signature in database

View file

@ -3828,11 +3828,25 @@ If THEME does not have at least a `:modus-core-palette' among its
Else return (append OVERRIDES USER CORE)."
(when-let* ((properties (get theme 'theme-properties))
(core-palette (symbol-value (plist-get properties :modus-core-palette))))
(let* ((user-palette (when with-user-palette (symbol-value (plist-get properties :modus-user-palette))))
(overrides-palette (when with-overrides (symbol-value (plist-get properties :modus-overrides-palette))))
(all-overrides (when with-overrides (append overrides-palette modus-themes-common-palette-overrides))))
(append all-overrides user-palette core-palette))))
(core-palette-name (plist-get properties :modus-core-palette)))
;; If the palette variable hasn't been loaded into memory yet, load the theme silently
(unless (boundp core-palette-name)
(load-theme theme t t))
(when (boundp core-palette-name)
(let* ((core-palette (symbol-value core-palette-name))
(user-palette-name (plist-get properties :modus-user-palette))
(user-palette (when (and with-user-palette
user-palette-name
(boundp user-palette-name))
(symbol-value user-palette-name)))
(overrides-palette-name (plist-get properties :modus-overrides-palette))
(overrides-palette (when (and with-overrides
overrides-palette-name
(boundp overrides-palette-name))
(symbol-value overrides-palette-name)))
(all-overrides (when with-overrides
(append overrides-palette modus-themes-common-palette-overrides))))
(append all-overrides user-palette core-palette)))))
(defun modus-themes-get-theme-palette (&optional theme with-overrides with-user-palette)
"Return palette value of active `modus-themes-get-themes' THEME.