mirror of
https://github.com/doomemacs/doomemacs
synced 2025-08-01 12:17:25 -05:00
Refactor autoloads generator & reduce to one generated file
We no longer need two separate autoloads files, so I merged them and optimized its generation logic. Other changes - Doom will refuse to start up (with a helpful error) if it's in an incomplete state. This should hopefully reduce the number of bug reports from folks that have done something weird, e.g. 1. You've changed Emacs versions without running 'doom sync -b'. 2. You've updated Doom outside of `doom upgrade` and didn't run `doom sync -u`. 3. You've forgotten to run 'doom sync' in the first place! 4. If a previous 'doom ...' command was aborted midway without running 'doom sync' afterwards. - 'doom sync' will emit reminders that you need to reload/restart Emacs - Autoloads API now uses the `doom-autoloads-` prefix, intead of 'doom-cli-autoloads-', as will be the new convention in the coming rewrite. - Errors from within the package autoloads should be easier to invoke the debugger on. - `doom-modules` is now stored in your autoloads file. Your module list will soon be frozen between calls to 'doom sync' to allow for our new, atomic CLI I'm working on. This will also means the `doom!` block won't cost anything in interactive sessions.
This commit is contained in:
@ -93,20 +93,6 @@ Meant to be used with `run-hook-wrapped'."
|
||||
;; return nil so `run-hook-wrapped' won't short circuit
|
||||
nil)
|
||||
|
||||
(defun doom-load-autoloads-file (file &optional noerror)
|
||||
"Tries to load FILE (an autoloads file).
|
||||
Return t on success, nil otherwise (but logs a warning)."
|
||||
(condition-case e
|
||||
;; Avoid `file-name-sans-extension' for premature optimization reasons.
|
||||
;; `string-remove-suffix' is much cheaper (because it does no file sanity
|
||||
;; checks during or after; just plain ol' string manipulation).
|
||||
(load (string-remove-suffix ".el" file) noerror 'nomessage)
|
||||
(doom-error
|
||||
(signal (car e) (cdr e)))
|
||||
((debug error)
|
||||
(message "Autoload file error: %s -> %s" (file-name-nondirectory file) e)
|
||||
nil)))
|
||||
|
||||
(defun doom-load-envvars-file (file &optional noerror)
|
||||
"Read and set envvars from FILE.
|
||||
If NOERROR is non-nil, don't throw an error if the file doesn't exist or is
|
||||
|
Reference in New Issue
Block a user