Commit graph

17494 commits

Author SHA1 Message Date
Henrik Lissner
a79b2ec69e
fix(cli): ensure order of subcommands in 'doom help'
They should be in insertion order. They were formerly in
reverse-insertion order.
2022-07-30 22:41:12 +02:00
Henrik Lissner
a2d2206797
feat(cli): allow defcli! in ci.el
A project may provide a ci.el to config bin/doom's CI commands. With
this, users can also define their own 'doom ci' subcommands from there.
2022-07-30 22:40:27 +02:00
Henrik Lissner
04a09128d4
nit(cli): stub 'doom test'
To prep for v3.1.
2022-07-30 22:23:12 +02:00
Henrik Lissner
6ffee6ece7
fix(cli): ensure type specs are case insensitive 2022-07-29 12:34:58 +02:00
Henrik Lissner
491f49cfe5
refactor(cli): better error for missing profiles.el
Only appears if a profile was requested and no profile file was found.
2022-07-29 12:32:35 +02:00
Henrik Lissner
068966a4cd
bump: :core
Fuco1/smartparens@ec15aaa748 -> Fuco1/smartparens@8b6a3c3b31
bbatsov/projectile@4d6da873ae -> bbatsov/projectile@dc6e7ff658
domtronn/all-the-icons.el@ca1ef30004 -> domtronn/all-the-icons.el@b18db6be0a
jscheid/dtrt-indent@57f4072fa8 -> jscheid/dtrt-indent@d4fd1b4977
jwiegley/use-package@a7422fb8ab -> jwiegley/use-package@0ad5d9d5d8
radian-software/straight.el@0e204d418d -> radian-software/straight.el@fed2153480
2022-07-29 12:31:44 +02:00
Henrik Lissner
493a049dff
tweak: disable tty optimization in debug mode
If an error occurs before tty-run-terminal-initialization
does (producing a backtrace window), it can leave Emacs in a garbled,
unreadable state.
2022-07-29 12:24:25 +02:00
Henrik Lissner
7a9f8b18ab
refactor: resolve doom-{core,modules}-dir properly
Future proofing for changes in doom-emacs-dir.
2022-07-29 12:23:42 +02:00
Henrik Lissner
7d93feb98c
nit: minor reformatting, comment revision, & sharpquoting 2022-07-29 12:22:33 +02:00
Henrik Lissner
35a89bdfa6
fix(lib): missing bin/doom error on doom/reload
doom/reload quotes `doom-bin`, but if doom-bin uses a tilde instead of
an absolute path, the quoting means it won't be expanded to $HOME,
causing "no such file or directory" errors when trying to execute it.

Fix: #6603
2022-07-28 22:29:32 +02:00
Henrik Lissner
a22cd75839
fix(cli): log benchmarks & postscripts to stderr
And only write benchmark to stdout if the command succeeded (exit code =
0) and isn't restarting (exit code = 254).
2022-07-28 22:29:32 +02:00
Henrik Lissner
fe2ea9f443
fix(cli): redundant lines in stderr logs 2022-07-28 22:29:32 +02:00
Henrik Lissner
20d5440023
fix(cli): don't persist options/args in context
They're overwritten anyway. And leftover state can cause confusion in
sub-sessions.
2022-07-28 22:29:18 +02:00
Henrik Lissner
7eeec53c30
fix(cli): improve end-of-file error in profiles file
Otherwise, the error message complains that the error originates from
core-cli.el.
2022-07-28 18:15:15 +02:00
Henrik Lissner
12b52909e3
fix(cli): env setter for profile loader
Amend: 48e3603dfe
2022-07-28 18:15:15 +02:00
Henrik Lissner
743b740e79
fix(cli): verbose output in debug mode 2022-07-28 18:15:15 +02:00
Henrik Lissner
314463bd49
fix(cli): ignored --{profile,doomdir,emacsdir,debug}
Fixes an edge case where --profile, --doomdir, --emacsdir, and --debug
were ignored if used in a nested bin/doom call. Now possible thanks to
49d3f1e.

Ref: 49d3f1e96c
2022-07-28 18:15:06 +02:00
Henrik Lissner
49d3f1e96c
feat(cli): accept omit list on (exit! :restart)
A list of arguments to omit can now be passed to (exit! :restart). For
example, `(exit! :restart "-c" :omit "--foo=" "--bar" "--baz=2")` will
restart the current script with a new switch (-c) and three switches
removed (--foo + one argument, --bar, --baz + two arguments).
2022-07-28 18:05:42 +02:00
Henrik Lissner
22eace62d0
fix: doom-local-dir for profiles
- Ensure it ends in slash,
- Ensure it includes the @-tag (e.g. default@latest),
- Remove vestigial code path that is unreachable.
2022-07-28 12:40:32 +02:00
Henrik Lissner
44f169740e
tweak: more debug output at startup
Particularly to do with profiles, in case the user starts Emacs with
--debug or --debug-init.
2022-07-28 12:01:02 +02:00
Henrik Lissner
48e3603dfe
fix: envvars in profiles.el not being set 2022-07-28 12:01:02 +02:00
Henrik Lissner
df8caf2867
nit(cli): revise header commentary
To properly reflect that it's unsafe to load core-cli in interactive
sessions, but safe to load core-cli-lib.
2022-07-28 12:01:02 +02:00
Henrik Lissner
5af38fb08e
feat: make bin/doom profile aware
- Fixes Doom's former inability to (trivially) juggle multiple profiles
  based on the same EMACSDIR (see #6593).
- Adds '--profile NAME' switch to bin/doom (also recognized
  $DOOMPROFILE).
- Adds new doom-profile* variables. These will eventually replace
  doom-{local,etc,cache}-dir and doom-{autoloads,env}-file.

This is intentionally messy to ensure backwards compatibility for a
little while longer. This will be fixed over the next couple weeks.

Ref: #6593
2022-07-28 12:01:02 +02:00
Henrik Lissner
1ecb5c7b9b
fix: fall back to $EMACSDIR/profiles/*
Formerly, profiles.el and $EMACSDIR/profiles/* were mutually exclusive.
I.e. if the file existed, it'd never check the directory. Now, it will
check the directory if the requested profile isn't in profiles.el, or
the file didn't exist.

Amend: 5b6b204bcb
2022-07-27 13:54:12 +02:00
Henrik Lissner
4c4a880f6b
docs: fix blockquote in profiles/README.org 2022-07-27 13:36:15 +02:00
Henrik Lissner
8f96850543
nit: add dummy safe-mode profile
To reserve the name, and to signal to posterity how future (static)
profiles will look. Someday, this profile will play "failsafe" if Doom
fails to load the requested one.
2022-07-27 13:33:43 +02:00
Henrik Lissner
bd989d16f0
tweak: prep gitignore for v3
- Ignore generated profiles
- Ignore /{init,config,packages}.el, in case the user wants to use
  $EMACSDIR and their $DOOMDIR.
- Cast a wider net for auto-generated files (usually made when launching
  sandboxes, but this will happen less as the sandbox develops).
2022-07-27 13:33:34 +02:00
Henrik Lissner
2680573eda
docs: add profiles/README.org 2022-07-27 13:30:24 +02:00
Henrik Lissner
fbc5fd7f8a
nit: revise comments in early-init.el 2022-07-27 12:11:51 +02:00
Henrik Lissner
5b6b204bcb
feat: allow Doom be used as a config bootloader
This allows users to use Doom core to switch between Emacs configs (they
don't have to be Doom configs either). Taking after Chemacs, these
configs (called "profiles") can be declared in $EMACSDIR/profiles.el or
implicitly as directories under $EMACSDIR/profiles/ (symlinks work too).
Launch a profile with `emacs --profile foo` or by setting $DOOMPROFILE:
`DOOMPROFILE=foo emacs`.

An example profiles.el looks like this:

   ((doomemacs (user-emacs-directory . "~/.config/emacs")
               (env ("DOOMDIR" . "~/.config/doom")))
    (spacemacs (user-emacs-directory . "~/.config/spacemacs"))
    (prelude   (user-emacs-directory . "~/.config/prelude"))
    (altdoom   (user-emacs-directory . "~/.config/doomemacs")
               (env ("DOOMDIR" . "~/.config/doomprivate1")))
    (altdoom2  (user-emacs-directory . "~/.config/doomemacs")
               (env ("DOOMDIR" . "~/.config/doomprivate2"))))

Chemacs users will find the format of this file familiar; the biggest
differences are:

- Keys are symbols, not strings
- There is no, special "default" profile. The fallback profile is the
  Doom Emacs config doing the bootloading, living in ~/.config/emacs or
  ~/.emacs.d. If you don't like that, set $DOOMPROFILE in your dotfiles
  to the name of another profile.

WARNING: bin/doom does not understand --profile or $DOOMPROFILE yet. To
sync a particular profile, you'll have to run its bin/doom directly,
e.g.

To sync the "global" doom:
  ~/.config/emacs/bin/doom sync
To sync your "altdoom" (and "altdoom2") profiles:
  ~/.config/doomemacs/bin/doom sync
2022-07-27 12:11:51 +02:00
Henrik Lissner
5108ffc44d
feat: backport --init-directory for 27/28 users
--init-directory was added in Emacs 29. This backports it for 27/28
users, so users can trivially load an Emacs config living in another
directory (will be necessary for future versions of Doom's sandbox).
However, for this to work, Doom needs to live in ~/.emacs.d or
~/.config/emacs.

Ref: emacs-mirror/emacs@8eaf04de83
2022-07-27 11:16:54 +02:00
Henrik Lissner
dd83c455ba
fix(org): update +org--more-startup-folded-options-a
With the introduction of org-fold, this advice (which adds support for a
special family of visibility #+startup options) needed to be updated.
2022-07-26 00:54:25 +02:00
Henrik Lissner
9cb4c8b637
fix(:lang): ensure lsp! is always appended to hooks 2022-07-25 18:12:03 +02:00
Henrik Lissner
a70e634ebd
refactor(:lang): move tree-sitter init
Moved add-hook calls (for tree-sitter initialization) into their
respective modes' config blocks, or nearby, to be consistent with how
other, similar tools (like lsp!) are initialized, and does so at
runtime, rather than at expansion/compile time, which eval-when! caused.
2022-07-25 17:34:44 +02:00
Henrik Lissner
26b8383cbd
feat(nix): add +lsp
Fix: #6592
2022-07-25 16:00:39 +02:00
Henrik Lissner
1448b8eee1
refactor(cli): remove redundant ensure-list call 2022-07-24 13:16:02 +02:00
Henrik Lissner
824402aaee
bump: :tools pdf
vedang/pdf-tools@f9ccdf99e5 -> vedang/pdf-tools@bb0b71f5ba
2022-07-24 13:16:02 +02:00
Henrik Lissner
efb46c77be
refactor(pdf): better epdfinfo check on pdf-view-mode
Also adds a comment to explain why I don't directly call
pdf-tools-install, instead of pdf-tools-install-noverify.

Ref: #6589
2022-07-24 13:16:02 +02:00
Henrik Lissner
924d78443a
tweak(snippets): yas-verbosity = 2 2022-07-24 13:16:02 +02:00
Colin Woodbury
a5cc803ad4 docs(tree-sitter): improve README formatting 2022-07-24 13:09:18 +02:00
Venky Iyer
40ca1a799f
fix(vertico): +vertico/consult-fd
`consult--regexp-compiler` now has 3 arguments

Ref: minad/consult@f0e696dd0d
2022-07-24 00:08:45 +02:00
Anh T Nguyen
7373e97ff6
feat(default): bind 'SPC b I' to open ibuffer for workspace 2022-07-24 00:07:41 +02:00
Henrik Lissner
87b165fdfb
perf(cli): gc-cons-percentage = 1.0
This is the new default for this variable in 29 (for batch sessions);
I'm backporting it because it's sensible.

Ref: https://github.com/emacs-mirror/emacs/blob/master/etc/NEWS#L120-L125
2022-07-23 16:42:29 +02:00
Henrik Lissner
8308d68b61
fix: support :source and :inherit in package! :recipe
These are straight.el keywords that package! would fail to recognize
until now.
2022-07-23 16:42:29 +02:00
Henrik Lissner
043d32fefd
fix(literate): load doom core when tangling
This exposes Doom's stdlib to the sub-process that tangles your literate
config, so that src blocks therein (or their header arguments) can call
upon them or reference its variables (like IS-LINUX et co).

Fix: #6588
2022-07-23 16:42:29 +02:00
Henrik Lissner
e7d56f2ce7
feat(markdown): add toggle keybinds under <localleader> t
Close: #6308
Co-authored-by: iyefrat <iyefrat@users.noreply.github.com>
2022-07-23 16:42:29 +02:00
Henrik Lissner
9a3fab9572
bump: :os tty
emacs-straight/xclip@ef2ad92f31 -> emacs-straight/xclip@4772beb557
kisaragi-hiu/evil-terminal-cursor-changer@24755a18a3 -> 7696122/evil-terminal-cursor-changer@12ea9c0438

Fix: #6551
Close: #6565
Co-authored-by: basaran <basaran@users.noreply.github.com>
2022-07-23 16:42:18 +02:00
Ag Ibragimov
e48dd85e56 tweak(notmuch): bury update buffer instead of killing it
+notmuch/update would create an additional window that outlasts the
update process. Instead, delete the window and bury the buffer, so that
it may be read later.
2022-07-23 16:36:40 +02:00
Daanturo
b5fd085af0 tweak(default): consult-flymake in a branch of +default-diagnostics
when available instead of plain flymake-show-diagnostics-buffer
2022-07-23 16:36:01 +02:00
Dejan Benedik
5bbc299b8b docs(sh): add doctor check for shfmt 2022-07-23 16:32:16 +02:00