If called with a C-u prefix, `doom/help-modules' now browses the module's
directory instead of opening its documentation. This exposes the VISIT-DIR
argument to `interactive' use.
+ Cache package list
+ Show "generating package list" message the first time (better ux)
+ Display location of package files in package information
+ Turn links/file paths into buttons
+ Add link to module readmes (if any)
Mentioned in #4406
Prevents loaded packages miscount (e.g. -1) in dashboard/log in sandbox
instance.
This occurs because the benchmark line uses a simple heuristic to
determine the loaded packages: length of load-path minus the length of
doom--initial-load-path (to save on more expensive counting methods).
However, in the sandbox, load-path is pre-populated with all packages
right from the get-go, so doom--initial-load-path will be incorrect.
When starting Emacs in debug mode, explain-pause-mode is enabled. This
pulls in other packages with it, which can taint results when testing
package load order. Also, explain-pause-mode is for measuring pauses
during interactive use, it isn't very useful for startup benchmarking.
So we only toggle it if doom-debug-mode is toggled interactively.
On many installations, the .el files that are builtin to emacs are
compressed. We should search these as well.
Signed-off-by: Rudi Grinberg <me@rgrinberg.com>
Still a long way to go, but this introduces a few niceties for
debugging CLI failures:
+ The (extended) output of the last bin/doom command is now logged to
~/.emacs.d/.local/doom.log
+ If an error occurs, short backtraces are displayed whether or not you
have debug mode on. The full backtrace is written to
~/.emacs.d/.local/doom.error.log.
+ bin/doom now aborts with a warning if:
- The script itself or its parent directory is a symlink. It's fine if
~/.emacs.d is symlinked though.
- Running bin/doom as root when your DOOMDIR isn't in /root/.
- If you're sporting Emacs 26.1 (now handled in the elisp side rather
than the /bin/sh shebang preamble).
+ If a 'doom sync' was aborted prematurely, you'll be warned that Doom
was left in an inconsistent state and that you must run `doom sync`
again.
May address #3746
+ Replace "daemonp" and "windowsys" fields with "traits" field, which
can now indicate the presence of: Chemacs, exec-path-from-shell,
symlinked EMACSDIR/DOOMDIR, a running server, the daemon and an envvar
file.
+ Now replaces $USER in absolute paths with literal "$USER".
+ Reordered fields from most to least general (system -> emacs -> doom)
+ Show "&user" next to modules that are private modules (defined in
~/.doom.d/modules/)
+ Add explain-pause-mode
+ Now reloads itself if doom-debug-variables is changed or when one of
its variables becomes available.
+ doom-debug-variables now supports a cons cell entry where its CAR is
the name of the variable and CDR is the value it should be set to when
doom-debug-mode is active.