core-packages: refactor + improve docstrings
This commit is contained in:
parent
2581639307
commit
acea60e554
1 changed files with 29 additions and 30 deletions
|
@ -43,17 +43,16 @@
|
||||||
;; See core/autoload/packages.el for more functions.
|
;; See core/autoload/packages.el for more functions.
|
||||||
|
|
||||||
(defvar doom-init-p nil
|
(defvar doom-init-p nil
|
||||||
"Non-nil if doom's package system has been initialized or not. It may not be
|
"Non-nil if doom's package system has been initialized (by `doom-initialize').
|
||||||
if you have byte-compiled your configuration (as intended). Running
|
This will be nil if you have byte-compiled your configuration (as intended).")
|
||||||
`doom-initialize' sets this.")
|
|
||||||
|
|
||||||
(defvar doom-modules nil
|
(defvar doom-modules nil
|
||||||
"A hash table of enabled modules.")
|
"A hash table of enabled modules. Set by `doom-initialize-modules'.")
|
||||||
|
|
||||||
(defvar doom-packages nil
|
(defvar doom-packages nil
|
||||||
"A list of enabled packages. Each element is a sublist, whose CAR is the
|
"A list of enabled packages. Each element is a sublist, whose CAR is the
|
||||||
package's name as a symbol, and whose CDR is the plist supplied to its
|
package's name as a symbol, and whose CDR is the plist supplied to its
|
||||||
`@package' declaration.")
|
`@package' declaration. Set by `doom-initialize-packages'.")
|
||||||
|
|
||||||
(defvar doom-protected-packages
|
(defvar doom-protected-packages
|
||||||
'(persistent-soft quelpa use-package)
|
'(persistent-soft quelpa use-package)
|
||||||
|
@ -109,30 +108,30 @@ to speed up startup."
|
||||||
package-activated-list nil)
|
package-activated-list nil)
|
||||||
|
|
||||||
;; Ensure cache folder exists
|
;; Ensure cache folder exists
|
||||||
(mapc (lambda (dir)
|
(dolist (dir (list doom-cache-dir package-user-dir))
|
||||||
(unless (file-directory-p dir)
|
(unless (file-directory-p dir)
|
||||||
(make-directory dir t)))
|
(make-directory dir t)))
|
||||||
(list doom-cache-dir package-user-dir))
|
|
||||||
|
|
||||||
(package-initialize t)
|
(package-initialize t)
|
||||||
;; Sure, `package-initialize' could fill `load-path', but package activation
|
;; Sure, we could let `package-initialize' fill `load-path', but package
|
||||||
;; costs precious milliseconds, and my premature optimization quota isn't
|
;; activation costs precious milliseconds and does other stuff I don't
|
||||||
;; filled yet. UNACCEPTAABBLLLE!
|
;; really care about (like load autoload files). My premature optimization
|
||||||
|
;; quota isn't filled yet.
|
||||||
;;
|
;;
|
||||||
;; Also, in some edge cases involving package initialization during a
|
;; Also, in some edge cases involving package initialization during a
|
||||||
;; non-interactive session, `package-initialize' fails to fill `load-path'.
|
;; non-interactive session, `package-initialize' fails to fill `load-path'.
|
||||||
(setq load-path (append load-path (directory-files package-user-dir t "^[a-zA-Z0-9]" t)))
|
;; If we want something done right, do it ourselves!
|
||||||
|
(nconc load-path (directory-files package-user-dir t "^[a-zA-Z0-9]" t))
|
||||||
|
|
||||||
;; Ensure core packages are installed
|
;; Ensure core packages are installed
|
||||||
(let ((core-packages (cl-remove-if 'package-installed-p doom-protected-packages)))
|
(when-let (core-packages (cl-remove-if 'package-installed-p doom-protected-packages))
|
||||||
(when core-packages
|
(package-refresh-contents)
|
||||||
(package-refresh-contents)
|
(dolist (pkg core-packages)
|
||||||
(dolist (pkg core-packages)
|
(let ((inhibit-message t))
|
||||||
(let ((inhibit-message t))
|
(package-install pkg))
|
||||||
(package-install pkg))
|
(if (package-installed-p pkg)
|
||||||
(if (package-installed-p pkg)
|
(message "Installed %s" pkg)
|
||||||
(message "Installed %s" pkg)
|
(error "Couldn't install %s" pkg))))
|
||||||
(error "Couldn't install %s" pkg)))))
|
|
||||||
|
|
||||||
(require 'quelpa)
|
(require 'quelpa)
|
||||||
(require 'use-package)
|
(require 'use-package)
|
||||||
|
@ -143,7 +142,7 @@ to speed up startup."
|
||||||
(setq doom-init-p t)))
|
(setq doom-init-p t)))
|
||||||
|
|
||||||
(defun doom-initialize-autoloads (&optional force-p)
|
(defun doom-initialize-autoloads (&optional force-p)
|
||||||
"Ensures that `doom-autoload-file' exists and is loaded. If it doesn't, run
|
"Ensures that `doom-autoload-file' exists and is loaded. Otherwise run
|
||||||
`doom/reload-autoloads' to generate it."
|
`doom/reload-autoloads' to generate it."
|
||||||
(unless (ignore-errors (require 'autoloads doom-autoload-file t))
|
(unless (ignore-errors (require 'autoloads doom-autoload-file t))
|
||||||
(unless noninteractive
|
(unless noninteractive
|
||||||
|
@ -152,9 +151,10 @@ to speed up startup."
|
||||||
(error "Autoloads file couldn't be generated")))))
|
(error "Autoloads file couldn't be generated")))))
|
||||||
|
|
||||||
(defun doom-initialize-packages (&optional force-p load-p)
|
(defun doom-initialize-packages (&optional force-p load-p)
|
||||||
"Loads the packages.el files across DOOM Emacs in order to fill `doom-modules'
|
"Crawls across your emacs.d in order to fill `doom-modules' (from init.el) and
|
||||||
and `doom-packages', if they aren't set already. If FORCE-P is non-nil, do it
|
`doom-packages' (from packages.el files), if they aren't set already. If FORCE-P
|
||||||
even if they are."
|
is non-nil, do it even if they are. Also aggressively loads all core autoload
|
||||||
|
files."
|
||||||
(doom-initialize force-p)
|
(doom-initialize force-p)
|
||||||
(let ((noninteractive t)
|
(let ((noninteractive t)
|
||||||
(load-fn
|
(load-fn
|
||||||
|
@ -222,11 +222,10 @@ even if they are."
|
||||||
(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. The list
|
||||||
is sorted by order of insertion."
|
is sorted by order of insertion."
|
||||||
(let (pairs)
|
(let ((pairs '(nil)))
|
||||||
(maphash (lambda (key value)
|
(maphash (lambda (key value) (nconc pairs (list (cons (car key) (cdr key)))))
|
||||||
(setq pairs (append pairs (list (cons (car key) (cdr key))))))
|
|
||||||
doom-modules)
|
doom-modules)
|
||||||
pairs))
|
(cdr pairs)))
|
||||||
|
|
||||||
(defun doom--module-paths (&optional append-file)
|
(defun doom--module-paths (&optional append-file)
|
||||||
"Returns a list of absolute file paths to modules, with APPEND-FILE added, if
|
"Returns a list of absolute file paths to modules, with APPEND-FILE added, if
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue