doom-emacs/lisp/cli
Henrik Lissner f9201eb218
refactor: introduce doom-context
Introduces a system to announce what execution contexts are active, so I
can react appropriately, emit more helpful logs/warnings in the case of
issues, and throw more meaningful errors.

* bin/doom: load module CLIs in the 'modules' context.
* lisp/cli/doctor.el: load package files in 'packages' context.
* lisp/doom-cli.el:
  - (doom-before-init-hook, doom-after-init-hook): trigger hooks at the
    correct time. This may increase startup load time, as the benchmark
    now times more of the startup process.
  - (doom-cli-execute, doom-cli-context-execute,
    doom-cli-context-restore, doom-cli-context-parse,
    doom-cli--output-benchmark-h, doom-cli-call, doom-cli--restart,
    doom-cli-load, run!): remove redundant context prefix in debug logs,
    it's now redundant with doom-context, which doom-log now prefixes
    them with.
* lisp/doom-lib.el (doom-log): prefix doom-context to doom-log output,
  unless it starts with :.
* lisp/doom-packages.el (package!, doom-packages--read): throw error if
  not used in a packages.el file or in the context of our package
  manager.
* lisp/doom-profiles.el (doom-profile--generate-init-vars,
  doom-profile--generate-load-modules): use modules doom-context instead
  of doom-init-time to detect startup.
* lisp/doom-start.el (doom-load-packages-incrementally-h): move function
  closer to end of doom-after-init-hook.
* lisp/doom.el:
  - (doom-before-init-hook, doom--set-initial-values-h,
    doom--begin-init-h): rename doom--set-initial-values-h to
    doom--begin-init-h and ensure it runs as late in
    doom-before-init-hook as possible, as that is the point where Doom's
    "initialization" formally begins.
  - (doom-after-init-hook): don't trigger at the end of command-line-1
    in non-interactive sessions. This will be triggered manually in
    doom-cli.el's run!.
* lisp/lib/config.el (doom/reload, doom/reload-autoloads,
  doom/reload-env): use 'reload' context for reload commands.
* modules/lang/emacs-lisp/autoload.el (+emacs-lisp-eval): use 'eval'
  context.
* modules/lang/org/config.el: remove doom-reloading-p; check for
  'reload' doom context instead.
2022-09-24 22:09:05 +02:00
..
make
ci.el
compile.el refactor: use doom-module-*-file variables; add two 2022-09-24 20:31:34 +02:00
doctor.el refactor: introduce doom-context 2022-09-24 22:09:05 +02:00
env.el fix(cli): remove redundant doom-env-file 2022-09-16 17:06:49 +02:00
help.el nit: minor comment revision and refactors 2022-09-16 17:01:57 +02:00
info.el refactor!: restructure Doom core 2022-07-30 22:41:13 +02:00
install.el refactor: use doom-module-*-file variables; add two 2022-09-24 20:31:34 +02:00
make.el refactor!(cli): rename cli definers for consistency 2022-09-12 11:45:59 +02:00
packages.el perf: disable autoload-compute-prefixes & optimize var cache 2022-09-20 01:43:33 +02:00
profiles.el feat(cli): introduce DOOMPROFILELOAD{FILE,PATH} envvars 2022-09-18 00:28:13 +02:00
run.el fix(cli): link $XDG_*_HOME to fake $HOME for doom run 2022-09-18 13:55:47 +02:00
sync.el fix(cli): type error trying to split a cons cell 2022-09-17 21:41:42 +02:00
test.el refactor!(cli): rename cli definers for consistency 2022-09-12 11:45:59 +02:00
upgrade.el refactor: use doom-module-*-file variables; add two 2022-09-24 20:31:34 +02:00