Commit Graph

17470 Commits

Author SHA1 Message Date
4c4a880f6b docs: fix blockquote in profiles/README.org 2022-07-27 13:36:15 +02:00
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
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
2680573eda docs: add profiles/README.org 2022-07-27 13:30:24 +02:00
fbc5fd7f8a nit: revise comments in early-init.el 2022-07-27 12:11:51 +02:00
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
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
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
9cb4c8b637 fix(:lang): ensure lsp! is always appended to hooks 2022-07-25 18:12:03 +02:00
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
26b8383cbd feat(nix): add +lsp
Fix: #6592
2022-07-25 16:00:39 +02:00
1448b8eee1 refactor(cli): remove redundant ensure-list call 2022-07-24 13:16:02 +02:00
824402aaee bump: :tools pdf
vedang/pdf-tools@f9ccdf99e5 -> vedang/pdf-tools@bb0b71f5ba
2022-07-24 13:16:02 +02:00
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
924d78443a tweak(snippets): yas-verbosity = 2 2022-07-24 13:16:02 +02:00
a5cc803ad4 docs(tree-sitter): improve README formatting 2022-07-24 13:09:18 +02:00
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
7373e97ff6 feat(default): bind 'SPC b I' to open ibuffer for workspace 2022-07-24 00:07:41 +02:00
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
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
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
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
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
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
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
5bbc299b8b docs(sh): add doctor check for shfmt 2022-07-23 16:32:16 +02:00
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
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
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
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
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
b636d9e793 fix: strip './' from projectile file list produced by fd
Fix: #6504
Ref: bbatsov/projectile#1784
2022-07-23 15:57:23 +02:00
acd7db1410 feat(dart): add & improve keybinds for flutter 2022-07-23 15:55:12 +02:00
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
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
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
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
cd8fb0059d fix(cli): validation for regexp arguments
string-match-p throws an error if given an invalid regexp, which is what
we *should* be testing for, not its return value (which should be
ignored), but this wasn't the case before this commit.

Fix: #6534
2022-07-05 14:15:06 +02:00
acae9f9acb bump: :tools lsp
emacs-lsp/lsp-mode@6b6afc00de -> emacs-lsp/lsp-mode@3fa645c039
joaotavora/eglot@e835996e16 -> joaotavora/eglot@bd970be047

- There are multiple issues in the lsp-mode
  repo (emacs-lsp/lsp-mode#2722), lsp-julia repo (gdkrmr/lsp-julia#23
  and gdkrmr/lsp-julia#35), and the LanguageServer.jl
  repo (julia-vscode/LanguageServer.jl#844) about crashes of the Julia
  LSP with lsp-mode due to errors caused by the folding capabilities
  announced by the client. One can work around these issues by enabling
  folding (see gdkrmr/lsp-julia#23) but that is only a hack and does not
  fix the underlying issue. The problem is caused by a violation of the
  LSP specs in lsp-mode which was fixed in emacs-lsp/lsp-mode#3593. The
  PR updates lsp-mode to the latest commit on the master branch which
  contains this fix (and some other unrelated fixes, CI passes
  successfully again), and hence the workaround for lsp-julia can be
  removed.

Ref: emacs-lsp/lsp-mode#3593
Ref: emacs-lsp/lsp-mode#2722
Ref: gdkrmr/lsp-julia#35
Ref: gdkrmr/lsp-julia#23
Ref: julia-vscode/LanguageServer.jl#844
Close: #6516
Co-authored-by: devmotion <devmotion@users.noreply.github.com>
2022-07-05 01:35:06 +02:00
e4a1e4c909 fix(rss): *rss* workspace doesn't exist error
Co-authored-by: Johnson Liu <buyandrep@gmail.com>
2022-07-04 21:51:46 +02:00
e35cc0dfe7 release(modules): 22.07.0-dev
Ref: 2b39e41368
2022-07-04 21:12:13 +02:00
94a4a7a58b fix(cli): display global options in --help output
Global options were omitted in help output for subcommands before this
fix. This caused #6533, where the user was unable to find the correct
option to suppress prompts because 'doom upgrade --help' would not show
--force/-!, but 'doom --help' would. Still, it's unreasonable to expect
the user to know this beforehand.

Ref: #6533
2022-07-04 18:44:01 +02:00
38a3a50951 fix(cli): void-function always
`always` was added in Emacs 28 and is unavailable to 27.x users, which
is unacceptable while Doom supports 27.x.

Fix: #6532
Amend: 74cc541597
2022-07-04 18:37:05 +02:00
6cb2c6e962 fix(cli): recognize global options for pseudo CLIs
The global options (like --debug and --pager) weren't recognized for
pseudo command like :help and :version (in particular, rendering --pager
ineffective).

Fix: #6526
2022-07-04 02:58:17 +02:00
af4c18e283 fix(cli): recognize command argument for --pager
--pager incorrectly expected a boolean argument, when it should accept
any arbitrary pager command (set to a blank string to disable the
pager).

Ref: #6526
2022-07-04 02:58:17 +02:00
442d607ec0 fix: remove outdated uses of user-emacs-directory
Doom changes user-emacs-directory (see 46844b5 for explanation), so
doom-emacs-dir should be used to refer to your $EMACSDIR instead.

Fix: #6530
Ref: 46844b55de
2022-07-04 02:58:11 +02:00
5a98d59afc perf(evil): lazy load evil-collection-shortdoc
Another package that Emacs loads eagerly at startup, that ends up
pulling in evil-collection et co.
2022-07-04 02:38:10 +02:00
7d0d90ec50 revert: refactor(lib): remove doom-apply-ansi-color-to-compilation-buffer-h
ansi-color-compilation-filter wasn't introduced until Emacs 28, so this
removal was too hasty, but should be reconsidered when we drop 27.x
support.

Fix: #6515
Revert: 2f7171bf8a
2022-06-29 18:14:21 +02:00
cbc3c0860e fix(vertico): unrecognized keyword :function error
Due to upstream change to consult-async-split-styles-alist.

Ref: minad/consult@dbe48621f3
2022-06-29 18:14:21 +02:00