$DOOMDIR/init.el had to be loaded earlier, so we could read the active
module list. This indirectly fixes an issue where users' literate
configs weren't being tangled on 'doom sync'.
Fix: #6479
So the doctor doesn't complain about pseudo packages, like revealjs,
which is not actually an Emacs package, we're just using straight.el to
install it for org-re-reveal.
Newer versions of project.el changed the return value of
`project-current` to a three-part list, rather than a cons cell.
centaur-tabs expects the old signature and we get a type error.
This advice ensures centaur-tabs works with old or new versions of
project, and is a temporary measure until the issue is resolved
upstream.
Ref: ema2159/centaur-tabs#181
Fix: #6280
First, removal of the old org-protocol advice needed to be updated,
because org-protocol-detect-protocol-server was renamed to
org--protocol-detect-protocol-server upstream.
Second, I only noticed now that our lazy loader for org-protocol wasn't
active until Org was loaded, which was far too late, and meant
org-protocol wasn't working out of the box. This fixes that.
Before:
$ doom ci hook commit-msg test
Error: "doom ci" expected 0 arguments, but got 1
Usage: doom ci COMMAND [ARGS...]
See 'doom h[elp] ci' or 'doom ci {-?,--help}' for documentation.
After:
$ doom ci hook commit-msg test
Error: ":before doom ci" expected 0 arguments, but got 1
Usage: doom ci hook commit-msg FILE
See 'doom h[elp] ci hook commit-msg' or 'doom ci hook commit-msg {-?,--help}' for documentation.
- :before ci will try to load $REPOROOT/ci.el or $DOOMDIR/ci.el. It
finds $REPOROOT by calling `git`, but doesn't handle errors. Now it
does.
- Because &rest was in :before ci's argspec, :before ci * subcommands
would be inaccessible (not that any exist atm, though).
- Let the user know when it finds the project's ci.el.
To understand what's going on here, understand this: this is a regular
CLI command:
(defcli! (doom sync) () ...)
And this is a pseudo command:
(defcli! (:before doom sync) () ...)
If a pseudo command is aliased to another pseudo command:
(defcli! (:before doom (foo bar baz)) ...)
In which case, ':before doom bar' and ':before doom baz' are aliases for
':before doom foo', there was a bug that cut out the keyword, so in
actuality, ':before doom {bar,baz}' were aliased to 'doom bar'.
This fixes that, and the peculiar issue of 'doom purge' executing 'doom
build' due to this, living in core/cli/packages.el:
(defcli! (:before (build b purge p)) (&context context)
(require 'comp nil t)
(doom-initialize-core-packages))
Ref: https://github.com/doomemacs/doomemacs/issues/4273#issuecomment-1159610824
If you type an unrecognized command, you get an "Error: unrecognized
command X" error, then a list of similar commands, followed by a
recommendation to check out 'doom help Y' or 'doom --help Y', where Y is
the nearest recognized parent command. E.g. 'doom ci blah' is an unknown
command, but 'doom ci' is known, therefore Y = 'doom ci'.
This fix ensures that Y is properly resolved.
Amend: 6c0b7e1530
Before:
$ doom help help
Usage: COMMAND [ARGS...]
TODO
TODO
After:
Usage: doom help [-g|--no-global] [--manpage] [--commands]
[--synopsis|--subcommands|--similar|--envvars|--postamble] [--]
COMMAND [ARGS...]
Show documentation for a Doom CLI command.
OPTIONS:
-g, --no-global
Hide global options.
--manpage
Generate in manpage format.
--commands
List all known commands.
--synopsis, --subcommands, --similar, --envvars, --postamble
Show only the specified sections..
Amend: 6c0b7e1530
Some packages (primarily vterm, evil-collection, and with-editor) end up
hanging their native compilation process. In vterm's case it's because
it invisibly prompts to compile its module then waits forever for user
input that'll never come. I haven't figured out why it happens for the
others though.
In any case, since the workaround is to simply kill these processes and
carry on, I added this timeout mechanism to do it for you (timing out
after 30s of no movement). A more elegant solution will have to wait
until the rewrite of our package manager.
Fix: #5592
This fixes an issue where, on some systems, `tput cols lines` does not
produce "N\nM" (where N = number of columns in the terminal and M =
number of lines), and instead produces "N\n", causing parsing errors.
If no EMACSDIR is given, assume ../ is the Emacs config we want to
operate out of, taking after bin/doom.
And use bash. This script was designed for the convenience of other
scripters on unix systems, so it can afford a small hit to portability.
- An improper autoload was preventing 'doom clean' from being
recognized.
- 'doom compile' hadn't been updated to reflect changes introduced
recently in 1402db5.
Amend: 6c0b7e1530
Ref: 1402db5129
To 'doom sync', 'doom upgrade', and 'doom build'. So users can decide
whether they want Doom 100%'ing their CPUs.
After 3.0, many of these commands will be merged, so a little code
duplication is fine for now.
When I added call! to the DSL, I forgot to update doom-cli-call calls.
This should quell these errors when running 'doom upgrade':
x There was an unexpected runtime error
Message: Wrong number of arguments
Details: (((cl-struct-doom-cli-context-tags cl-struct-doom-cli-option-...
Backtrace:
(doom-cli-call ("doom" "sync" "-u"))
(cond (packages\? (doom-cli-call sync-cmd) (doom-print (doom-print-...
Amend: 6c0b7e1530