Detach doom-modules-dirs from doom! macro
Formerly, you were required to have a doom! call (even a blank one) in ~/.doom.d/init.el if you wanted to have private sub-modules in ~/.doom.d/modules/. No more. It is no longer doom!'s responsibility to affect `doom-modules-dirs`. This is now done by :config private, while the Doom modules directory is now the initial entry in doom-modules-dirs.
This commit is contained in:
parent
c6931db3f8
commit
23fda88b2f
3 changed files with 21 additions and 23 deletions
|
@ -364,27 +364,23 @@ added, if the file exists."
|
||||||
|
|
||||||
MODULES is an malformed plist of modules to load."
|
MODULES is an malformed plist of modules to load."
|
||||||
(let (load-forms module file-name-handler-alist)
|
(let (load-forms module file-name-handler-alist)
|
||||||
(let ((modules-dir
|
(dolist (m modules)
|
||||||
(expand-file-name "modules/" (file-name-directory (or load-file-name byte-compile-current-file)))))
|
(cond ((keywordp m) (setq module m))
|
||||||
(cl-pushnew modules-dir doom-modules-dirs :test #'string=)
|
((not module) (error "No namespace specified in `doom!' for %s" m))
|
||||||
(dolist (m modules)
|
((let ((submodule (if (listp m) (car m) m))
|
||||||
(cond ((keywordp m) (setq module m))
|
(flags (if (listp m) (cdr m))))
|
||||||
((not module) (error "No namespace specified in `doom!' for %s" m))
|
(let ((path (doom-module-find-path module submodule)))
|
||||||
((let ((submodule (if (listp m) (car m) m))
|
(doom-module-set module submodule :flags flags :path path)
|
||||||
(flags (if (listp m) (cdr m))))
|
(push `(let ((doom--current-module ',(cons module submodule)))
|
||||||
(let ((path (doom-module-find-path module submodule)))
|
(load! init ,path t))
|
||||||
(doom-module-set module submodule :flags flags :path path)
|
load-forms))))))
|
||||||
(push `(let ((doom--current-module ',(cons module submodule)))
|
`(let (file-name-handler-alist)
|
||||||
(load! init ,path t))
|
(setq doom-modules ',doom-modules)
|
||||||
load-forms))))))
|
(let ((doom--initializing t))
|
||||||
`(let (file-name-handler-alist)
|
,@(nreverse load-forms))
|
||||||
(setq doom-modules ',doom-modules
|
,(unless doom--initializing
|
||||||
doom-modules-dirs ',doom-modules-dirs)
|
'(unless noninteractive
|
||||||
(let ((doom--initializing t))
|
(doom-initialize-modules))))))
|
||||||
,@(nreverse load-forms))
|
|
||||||
,(unless doom--initializing
|
|
||||||
'(unless noninteractive
|
|
||||||
(doom-initialize-modules)))))))
|
|
||||||
|
|
||||||
(defmacro def-package! (name &rest plist)
|
(defmacro def-package! (name &rest plist)
|
||||||
"A thin wrapper around `use-package'."
|
"A thin wrapper around `use-package'."
|
||||||
|
|
|
@ -34,7 +34,7 @@ line or use --debug-init to enable this.")
|
||||||
(defvar doom-modules-dir (concat doom-emacs-dir "modules/")
|
(defvar doom-modules-dir (concat doom-emacs-dir "modules/")
|
||||||
"The main directory where Doom modules are stored.")
|
"The main directory where Doom modules are stored.")
|
||||||
|
|
||||||
(defvar doom-modules-dirs nil
|
(defvar doom-modules-dirs (list doom-modules-dir)
|
||||||
"A list of module root directories. Order determines priority.")
|
"A list of module root directories. Order determines priority.")
|
||||||
|
|
||||||
(defvar doom-local-dir (concat doom-emacs-dir ".local/")
|
(defvar doom-local-dir (concat doom-emacs-dir ".local/")
|
||||||
|
|
|
@ -10,7 +10,9 @@ Doom Emacs.")
|
||||||
;; Ensure `doom//reload-autoloads', `doom//byte-compile' and
|
;; Ensure `doom//reload-autoloads', `doom//byte-compile' and
|
||||||
;; `doom-initialize-packages' will treat `+private-config-path' as the root of
|
;; `doom-initialize-packages' will treat `+private-config-path' as the root of
|
||||||
;; this module.
|
;; this module.
|
||||||
(add-to-list 'doom-psuedo-module-dirs +private-config-path)
|
(cl-pushnew +private-config-path doom-psuedo-module-dirs)
|
||||||
|
(cl-pushnew (expand-file-name "modules/" +private-config-path)
|
||||||
|
doom-modules-dirs :test #'string=)
|
||||||
|
|
||||||
;;
|
;;
|
||||||
(load (expand-file-name "init.el" +private-config-path)
|
(load (expand-file-name "init.el" +private-config-path)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue