Update core-packages docstrings; rename doom-module-get => doom-module-flags

This commit is contained in:
Henrik Lissner 2018-01-30 21:26:02 -05:00
parent 893bb6b3f7
commit 14080a1781
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -127,8 +127,8 @@ base by `doom!' and for calculating how many packages exist.")
;; ;;
(defun doom-initialize (&optional force-p) (defun doom-initialize (&optional force-p)
"Initialize installed packages (using package.el) and ensure the core packages "Initialize package.el, create all the essential directories, and ensure core
are installed. packages are installed.
If you byte-compile core/core.el, this function will be avoided to speed up If you byte-compile core/core.el, this function will be avoided to speed up
startup." startup."
@ -162,6 +162,8 @@ startup."
(setq doom-init-p t)))) (setq doom-init-p t))))
(defun doom-initialize-load-path (&optional force-p) (defun doom-initialize-load-path (&optional force-p)
"Populates `load-path', if it hasn't already been. If FORCE-P is non-nil, do
it anyway."
(when (or force-p (not doom--package-load-path)) (when (or force-p (not doom--package-load-path))
;; We could let `package-initialize' fill `load-path', but it does more than ;; We could let `package-initialize' fill `load-path', but it does more than
;; that alone (like load autoload files). If you want something prematurely ;; that alone (like load autoload files). If you want something prematurely
@ -174,7 +176,7 @@ startup."
(defun doom-initialize-autoloads () (defun doom-initialize-autoloads ()
"Ensures that `doom-autoload-file' exists and is loaded. Otherwise run "Ensures that `doom-autoload-file' exists and is loaded. Otherwise run
`doom/reload-autoloads' to generate it." `doom//reload-autoloads' to generate it. Used from Doom's Makefile."
(unless (file-exists-p doom-autoload-file) (unless (file-exists-p doom-autoload-file)
(quiet! (doom//reload-autoloads)))) (quiet! (doom//reload-autoloads))))
@ -240,20 +242,23 @@ added, if the file exists."
if (file-exists-p path) if (file-exists-p path)
collect path)) collect path))
(defun doom-module-get (module submodule) (defun doom-module-flags (module submodule)
"Returns a list of flags provided for MODULE SUBMODULE." "Returns a list of flags provided for MODULE SUBMODULE."
(gethash (cons module submodule) doom-modules)) (gethash (cons module submodule) doom-modules))
(defun doom-module-enabled-p (module submodule) (defun doom-module-enabled-p (module submodule)
"Returns t if MODULE->SUBMODULE is present in `doom-modules'." "Returns t if MODULE SUBMODULE is enabled (ie. present in `doom-modules')."
(and (hash-table-p doom-modules) (and (hash-table-p doom-modules)
(doom-module-get module submodule) (doom-module-flags module submodule)
t)) t))
(defun doom-module-enable (module submodule &optional flags) (defun doom-module-enable (module submodule &optional flags)
"Adds MODULE and SUBMODULE to `doom-modules', overwriting it if it exists. "Adds MODULE and SUBMODULE to `doom-modules', overwriting it if it exists.
MODULE is a keyword, SUBMODULE is a symbol. e.g. :lang 'emacs-lisp. MODULE is a keyword, SUBMODULE is a symbol, FLAGS is a list of arbitrary
symbols:
(doom-module-enable :lang 'haskell '(+intero))
Used by `require!' and `depends-on!'." Used by `require!' and `depends-on!'."
(let ((key (cons module submodule))) (let ((key (cons module submodule)))
@ -264,9 +269,7 @@ Used by `require!' and `depends-on!'."
doom-modules))) doom-modules)))
(defun doom-module-pairs () (defun doom-module-pairs ()
"Returns `doom-modules' as a list of (MODULE . SUBMODULE) cons cells. The list "Returns `doom-modules' as a list of (MODULE . SUBMODULE) cons cells."
is sorted by order of insertion unless ALL-P is non-nil. If ALL-P is non-nil,
include all modules, enabled or otherwise."
(unless (hash-table-p doom-modules) (unless (hash-table-p doom-modules)
(error "doom-modules is uninitialized")) (error "doom-modules is uninitialized"))
(cl-loop for key being the hash-keys of doom-modules (cl-loop for key being the hash-keys of doom-modules
@ -289,7 +292,7 @@ include all modules, enabled or otherwise."
(autoload 'use-package "use-package" nil nil 'macro) (autoload 'use-package "use-package" nil nil 'macro)
(defmacro doom! (&rest modules) (defmacro doom! (&rest modules)
"Bootstrap DOOM Emacs. "Bootstraps DOOM Emacs and its modules.
MODULES is an malformed plist of modules to load." MODULES is an malformed plist of modules to load."
(let (init-forms config-forms mode) (let (init-forms config-forms mode)
@ -406,8 +409,18 @@ The module is only loaded once. If RELOAD-P is non-nil, load it again."
(error-message-string ex)))))))) (error-message-string ex))))))))
(defmacro featurep! (module &optional submodule flag) (defmacro featurep! (module &optional submodule flag)
"A convenience macro wrapper for `doom-module-enabled-p'. It is evaluated at "Returns t if MODULE SUBMODULE is enabled. If FLAG is provided, returns t if
compile-time/macro-expansion time." MODULE SUBMODULE has FLAG enabled.
(featurep! :private default)
Module FLAGs are set in your config's `doom!' block, typically in
~/.emacs.d/init.el. Like so:
:private (default +flag1 -flag2)
When this macro is used from inside a module, MODULE and SUBMODULE can be
omitted. eg. (featurep! +flag1)"
(unless submodule (unless submodule
(let* ((path (or load-file-name byte-compile-current-file)) (let* ((path (or load-file-name byte-compile-current-file))
(module-pair (doom-module-from-path path))) (module-pair (doom-module-from-path path)))
@ -417,7 +430,7 @@ compile-time/macro-expansion time."
module (car module-pair) module (car module-pair)
submodule (cdr module-pair)))) submodule (cdr module-pair))))
(if flag (if flag
(and (memq flag (doom-module-get module submodule)) t) (and (memq flag (doom-module-flags module submodule)) t)
(doom-module-enabled-p module submodule))) (doom-module-enabled-p module submodule)))