Fix deprecated modules not passing on their flags

Also fixes redundant deprecated-module warnings from 'bin/doom refresh'.
This commit is contained in:
Henrik Lissner 2019-04-21 16:57:35 -04:00
parent cce55db6ed
commit 03b76e1789
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -11,6 +11,9 @@
doom-modules-dir) doom-modules-dir)
"A list of module root directories. Order determines priority.") "A list of module root directories. Order determines priority.")
(defvar doom-inhibit-module-warnings (not noninteractive)
"If non-nil, don't emit deprecated or missing module warnings at startup.")
(defconst doom-obsolete-modules (defconst doom-obsolete-modules
'((:feature (version-control (:emacs vc) (:ui vc-gutter)) '((:feature (version-control (:emacs vc) (:ui vc-gutter))
(spellcheck (:tools flyspell)) (spellcheck (:tools flyspell))
@ -309,7 +312,8 @@ to least)."
(make-hash-table :test 'equal (make-hash-table :test 'equal
:size (if modules (length modules) 150) :size (if modules (length modules) 150)
:rehash-threshold 1.0))) :rehash-threshold 1.0)))
(let (category m) (let ((inhibit-message doom-inhibit-module-warnings)
category m)
(while modules (while modules
(setq m (pop modules)) (setq m (pop modules))
(cond ((keywordp m) (setq category m)) (cond ((keywordp m) (setq category m))
@ -321,16 +325,22 @@ to least)."
(new (assq module obsolete))) (new (assq module obsolete)))
(let ((newkeys (cdr new))) (let ((newkeys (cdr new)))
(if (null newkeys) (if (null newkeys)
(message "Warning: the %s module is deprecated" key) (message "WARNING %s is deprecated" key)
(message "Warning: the %s module is deprecated. Use %s instead." (message "WARNING %s is deprecated, enabling %s instead"
(list category module) newkeys) (list category module) newkeys)
(push category modules) (push category modules)
(dolist (key newkeys) (dolist (key newkeys)
(setq modules (append key modules))) (push (if flags
(nconc (cdr key) flags)
(cdr key))
modules)
(push (car key) modules))
(throw 'doom-modules t)))) (throw 'doom-modules t))))
(if-let* ((path (doom-module-locate-path category module))) (if-let* ((path (doom-module-locate-path category module)))
(doom-module-set category module :flags flags :path path) (doom-module-set category module :flags flags :path path)
(message "Warning: couldn't find the %s %s module" category module)))))))) (message "WARNING Couldn't find the %s %s module" category module))))))))
(when noninteractive
(setq doom-inhibit-module-warnings t))
`(setq doom-modules ',doom-modules)) `(setq doom-modules ',doom-modules))
(defvar doom-disabled-packages) (defvar doom-disabled-packages)