Commit graph

17629 commits

Author SHA1 Message Date
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
floyza
e478f597cb
bump: :lang lua
https://git.sr.ht/~technomancy/fennel-mode@50ef3c6246f3 -> https://git.sr.ht/~technomancy/fennel-mode@566435734946

A fix was added upstream to fix `fennel-repl` no longer returning the
repl buffer. This fixes `+eval-open-repl` in fennel-mode.
2022-07-23 16:31:26 +02:00
Jeetaditya Chatterjee
53452f43b7 bump: :tools tree-sitter
emacs-tree-sitter/elisp-tree-sitter@3cfab8a0e9 -> emacs-tree-sitter/elisp-tree-sitter@c3fe96a103
meain/evil-textobj-tree-sitter@0bf5bbbfec -> meain/evil-textobj-tree-sitter@9dce8dab68

This *should* fix issues with pulling down parsers for M1 macs
2022-07-23 16:26:06 +02:00
Jeetaditya Chatterjee
da628a7870 docs(tree-sitter): remove mention of keys mode
This is no longer in the module

also change highlighting link
2022-07-23 16:26:06 +02:00
Matthieu Petiteau
3b3857d57a
fix(python): conflicting pyimport-remove-unused keybind
Binding for `pyimport-remove-unused` clashes with `py-isort-region`
2022-07-23 16:00:40 +02:00
edgar-vincent
d15022d4fe
fix(pass): enable evil-collection bindings
- Pass was launched in emacs-state because evil-collection didn't
  support pass when the module was written, but it does now.
- It also removes stale code relative to the PASSWORD_STORE_DIR
  environment variable, since the password store path is not hardcoded in
  pass.el anymore.
2022-07-23 15:59:43 +02:00
Álan Crístoffer
b636d9e793
fix: strip './' from projectile file list produced by fd
Fix: #6504
Ref: bbatsov/projectile#1784
2022-07-23 15:57:23 +02:00
Victor Carvalho
acd7db1410
feat(dart): add & improve keybinds for flutter 2022-07-23 15:55:12 +02:00
Itai Y. Efrat
467761e7e5 bump: :completion vertico
minad/consult@b15c81f776 -> minad/consult@6319aec351
minad/marginalia@26f2bd9ee7 -> minad/marginalia@69442c2d94
minad/vertico@e5935b5bbf -> minad/vertico@2ad4619665
oantolin/embark@97270d7257 -> oantolin/embark@5d0459d27a
oantolin/orderless@75eeae2197 -> oantolin/orderless@8b9af2796f
2022-07-23 14:04:34 +02:00
Rafael Varago
7f730cb5cb bump: :lang scala
scala/lsp-metals@b7f77de694 -> scala/lsp-metals@097d6021a4

Ref: emacs-lsp/lsp-metals#73
2022-07-23 14:04:01 +02:00
TEC
b07614037f fix(mu4e): support mu 1.8
Thanks to some combination of ignorance and obstinance, mu4e has thrown
compatibility to the wind and completely ignored the exitance of
define-obsolete-function-alias. Coupled with the inconsistent/partial
function renaming, this has made the mu4e 1.6⟶1.8 change particularly
annoying to deal with.

By suffering the pain of doing the mu4e author's work for them, we can
use defalias to give backwards compatibility a good shot for about 60
functions. Some mu4e~x functions are now mu4e--x, others are unchanged,
and then you've got a few odd changes like mu4e~proc -> mu4e--server and
mu4e-search-rerun. The form of message :from entries has also changed,
and a new (mu4e) entrypoint added supplanting mu4e~start.

Fix: #6511
Close: #6549
Co-authored-by: Rahguzar <aikrahguzar@gmail.com>
2022-07-23 14:02:59 +02:00
Henrik Lissner
33c5f3721a
fix(cli): __DOOMPIPE+=0: not found errors
The string append operator is a bashism, and therefore is not POSIX
complaint. It will throw errors when /bin/sh isn't symlinked to bash.
2022-07-09 21:10:40 +02:00
Henrik Lissner
9ec60d9ab9
fix(evil): evil-collection-occur -> evil-collection-replace
evil-collection-occur.el was moved to evil-collection-replace.el in
emacs-evil/evil-collection@79fc09b014.

Fix: #6495
Close: #6524
Ref: emacs-evil/evil-collection@79fc09b014
Co-authored-by: DeesonGao <DeesonGao@users.noreply.github.com>
2022-07-05 14:16:16 +02:00