Commit graph

20556 commits

Author SHA1 Message Date
Henrik Lissner
28cb499225
feat(lib): doom-special-buffer-p: consider special-mode parents 2026-02-20 20:37:31 -05:00
Henrik Lissner
279d27a981
fix(indent-guides): disable in all temp buffers 2026-02-20 20:37:31 -05:00
Henrik Lissner
d42b5ea9f2
refactor(irc): redundancies
Also makes the module more idempotent by avoiding the unguarded `push`
calls.
2026-02-20 20:18:57 -05:00
Henrik Lissner
85d51e78c1
refactor(indent-guides): remove redundant ein inhibitor
Already covered by `+indent-guides-in-special-buffers-p` (and the ein
module is deprecated).
2026-02-20 20:18:57 -05:00
Henrik Lissner
58108d0d62
fix(indent-guides): inhibit in special buffers
Deploy more heuristics for detecting special modes to disable
`indent-bars-mode` in (like circe-mode or dired).

Amend: 62cd3bd176
2026-02-20 20:18:57 -05:00
Henrik Lissner
1240162d7a
refactor(lib): remove doom/restart-and-restore
Emacs 29 introduced a `restart-emacs` command that is more reliable, but
it cannot restart Emacs with arbitrary arguments, which the old
`restart-emacs` library could. Without this capability,
`doom/restart-and-restore` is not trivially (or elegantly) possible, and
I can't justify a whole extra dependency just to support that,
especially in my pursuit to slim down Doom's core.

This commit also removes the doom/upgrade command, which is an awkward
and fickle command to support across platforms (too many edge cases).
2026-02-20 20:18:50 -05:00
Henrik Lissner
8ee87d89bd
bump: jsonrpc
emacs-straight/jsonrpc@HEAD -> emacs-straight/jsonrpc@2bf7f24e39

Lock jsonrpc to a commit that's compatible with Eglot.

Ref: doomemacs/community#76
2026-02-18 03:46:58 -05:00
Henrik Lissner
74d1b871b7
fix: silence straight package.el warning (part 2)
Amend: d2acb6b9c6
Fix: #8568
2026-02-18 00:33:01 -05:00
Henrik Lissner
fad44ca228
refactor(lib): advise setopt
The `setq!` macro was created to solve my issue with `setopt` (that it
can eagerly load packages; imposing more side-effects than necessary).
Instead of having a separate, wrapper macro to fix the matter, I now
advise `setopt` directly to fix the problem, so that users don't have
another macro to keep track of.  `setq!` will eventually be deprecated,
then removed in v3.
2026-02-18 00:31:19 -05:00
Henrik Lissner
3ad1ef4f96
fix(popup): force quit-window in popups
If a popup's rule contains :quit nil or :quit 'other, +popup/close will
do nothing, which isn't an appropriate substitute for quit-window, so
force it.

Amend: 29bc91bca5
Fix: #8650
2026-02-16 03:26:04 -05:00
Henrik Lissner
28e52b8c89
refactor(cli): doom gc: remove redundant logic 2026-02-15 21:58:25 -05:00
Henrik Lissner
4cdad1005a
dev: redesign .gitignore
Be more selective about what gets ignored, and permit arbitrary *.el
files in case the user is using $EMACSDIR as their $DOOMDIR.
2026-02-15 21:58:25 -05:00
Henrik Lissner
a5a56cd171
revert: evil-numbers
juliapath/evil-numbers@616aff9e5c -> juliapath/evil-numbers@e7adac70a0

Original issue was not resolved.

Ref: b002bf3f8e
Amend: a0d6aac43f
2026-02-15 21:58:25 -05:00
Henrik Lissner
290003ae7a
fix: loading site-lisp in interactive sessions
1b8ea91 accidentally inhibited site-lisp in all sessions.

Amend: 1b8ea914de
Fix: #8682
2026-02-15 21:58:25 -05:00
Henrik Lissner
5a9c459ac8
bump: :completion
abo-abo/swiper@ec9421340c -> abo-abo/swiper@ee79f68215
company-mode/company-mode@4ff89f7369 -> company-mode/company-mode@fad9f207e0
emacs-helm/helm@cbbaff3c5a -> emacs-helm/helm@9d8de1e081
minad/cape@f8682a046a -> minad/cape@2b2a5c5bef
minad/consult-flycheck@e3fca5fadf -> minad/consult-flycheck@9fe96c4b75
minad/consult@4ca98db03d -> minad/consult@d1d39d5215
minad/corfu@c9ce729635 -> minad/corfu@abfe0003d7
minad/marginalia@fc0cee1151 -> minad/marginalia@0d08fbea0f
minad/vertico@a736595843 -> minad/vertico@93f15873d7
oantolin/orderless@fb338f771f -> oantolin/orderless@3a2a32181f
tumashu/ivy-posframe@660c773f55 -> tumashu/ivy-posframe@ede7b2121f
tumashu/vertico-posframe@d89a70743c -> tumashu/vertico-posframe@d6e06a4f1b

Close: #8683
Co-authored-by: gagbo <gagbo@users.noreply.github.com>
2026-02-15 21:58:21 -05:00
Bradley Walters
a90c06dc6b fix(rss): bind elfeed-tube-mpv commands in show mode
Previously these commands were bound in search mode, which is incorrect according to the project docs and my own experience.

Ref: https://github.com/karthink/elfeed-tube/tree/99e55a?tab=readme-ov-file#set-up-with-use-package
2026-02-15 21:57:57 -05:00
kovan
0ceefc7fe2 fix(ocaml): don't prefix comment continuation lines with *
tuareg sets comment-continue to " * ", causing comment-indent-new-line
to insert ** on new lines inside comments. OCaml convention is to not
prefix continuation lines with *. Set comment-continue to nil instead.

The custom +ocaml/comment-indent-new-line wrapper is no longer needed.

Fix: #5194
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 21:55:43 -05:00
kovan
e989ab4920 fix(evil): reference correct kill-buffer function in :kill ex command
The :k(ill) ex command referenced `doom/kill-current-buffer`, which
doesn't exist. Replace with `kill-current-buffer`, matching every other
kill-buffer binding in the codebase (zx, SPC b k, q, etc.).

Fix: #6341
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 21:54:19 -05:00
kovan
8d0f61ae6f fix(magit): load transient before git-commit in incremental loader
Fix: #8541

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 01:01:50 -05:00
kovan
48da7e5de8 fix(python): use Scripts/ for venv executables on Windows
`+python-executable-find` hardcodes `bin/` as the virtualenv
executable directory, but Windows virtualenvs use `Scripts/`.

Ref: #5826
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 01:01:16 -05:00
kovan
2ebac3ccfc fix(electric): reorder electric-quote hook to run before smartparens
When `electric-quote-mode' is enabled with smartparens, the
`electric-quote-inhibit-functions' check (e.g. `org-in-src-block-p')
fails because smartparens' post-self-insert handler runs first and
interferes with buffer state. Re-add the electric-quote handler at
depth -50 so it runs before smartparens (depth 0).

Fix: #5051

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 00:59:58 -05:00
Henrik Lissner
76277e246f
feat(terraform): associate *.tofu with terraform-mode
Ref: https://github.com/orgs/doomemacs/discussions/17#discussioncomment-15808805
2026-02-15 00:53:21 -05:00
Henrik Lissner
62cd3bd176
fix(indent-guides): inhibit in special buffers
And removes redundant rule (now covered by the `doom-temp-buffer-p`
check).

Also fixes an issue where org-agenda loses fontification due to
indent-bars-mode (#8681).

Fix: #8681
2026-02-15 00:53:05 -05:00
Henrik Lissner
8c5c6b570d
bump: :tools lsp
emacs-lsp/lsp-mode@c258b9dfaf -> emacs-lsp/lsp-mode@0e53347d76
flycheck/flycheck-eglot@39dd981cc5 -> flycheck/flycheck-eglot@6cf99e53b4

Fix: #8546
Close: #8662
Co-authored-by: kovan <kovan@users.noreply.github.com>
2026-02-14 20:04:31 -05:00
Henrik Lissner
60c0febf19
nit(evil): +evil--clean-isearch-overlays-a: add REVIEW note
Ref: #8625
Amend: 9019a16887
2026-02-14 20:04:31 -05:00
kovan
7902c08729 fix(lib): use git symbolic-ref instead of branch -m for empty repos
Fix: #8538

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 20:02:58 -05:00
kovan
09a0f36144 fix(python): disable pyrepl to fix C-c C-c interrupt in REPL
Fix: #8391

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 20:01:06 -05:00
kovan
da3f73b2da fix(dired): prevent dirvish redisplay feedback loop in multi-frame setups
Fix: #8355

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 19:46:04 -05:00
kovan
915a5948af fix(undo): move undo-tree diff advice to correct use-package block
The `defadvice!' overriding `undo-tree-visualizer-show-diff' was placed
inside `(use-package! undo-fu ...)' which has `:unless (modulep! +tree)'
— so it only loads when undo-tree is NOT active. The fix never runs.

Move it to `(use-package! undo-tree ...)' where it belongs. Also add an
override for `undo-tree-visualizer-update-diff' that removes the
`balance-windows' call which conflicts with Doom's popup system.

Fix: #8521
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 19:37:49 -05:00
kovan
9019a16887 fix(evil): clean isearch overlays after ex-search navigation
`evil-ex-search' (used by `n'/`N') calls `isearch-range-invisible'
which temporarily opens fold overlays to check visibility, but never
calls `isearch-clean-overlays' to restore them. This corrupts org-fold
overlay state, making subtrees permanently unfoldable with TAB.

The initial `/` search properly cleans up via
`evil-ex-search-stop-session', but repeated `n'/`N' navigation skips
this step. Add `:after' advice to call `isearch-clean-overlays'.

Ref: emacs-evil/evil#1630
Fix: #8625
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 00:30:55 -05:00
kovan
f1e8b97bad
fix(cli): show all commands in doom --help output
`doom --help` was missing `sync`, `upgrade`, `doctor`, and `profile` from
the command listing. The root cause: `doom-cli-load-all` iterates the CLI
hash table in non-deterministic order. When an alias stub (e.g. `doom s`
for `sync`) is processed before its primary command, `doom-cli-load` used
the alias's plist—which includes `:hide t`—as `doom-cli--group-plist`.
The loaded file's `defcli!` then inherited `:hide t`, incorrectly marking
the primary command as hidden.

Fix: strip `:hide` from the plist before passing it as the group plist,
and copy-sequence to prevent structural mutation of stored plists.

Fix: #8560
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 00:29:02 -05:00
Prashant Vithani
f67810d394 fix(clojure): Enable CIDER for clojurec and clojurescript
Extends CIDER support to `clojurec-mode` and `clojurescript-mode` by
matching the existing behavior for `clojure-mode`.
2026-02-14 00:25:25 -05:00
Chris Rose
2bfa0c8be1 tweak(python): use toml mode for uv.lock files
When +uv is set, find the right toml mode for the configuration and use that.
2026-02-14 00:24:17 -05:00
Henrik Lissner
2113b02e49
tweak(lsp): :size 0.3 for eglot/lsp popups
Mainly for consistency. Might be a little big for folks with larger
displays.
2026-02-13 23:57:34 -05:00
Henrik Lissner
1b8ea914de
fix: only defer site-lisp in non-interactive sessions
And no-op on Emacs 31, which has changed startup order such that
site-lisp is loaded *before* early-init (and is therefore out of our
hands).
2026-02-13 23:57:34 -05:00
Henrik Lissner
fef48ab085
tweak(mu4e): remove +mu4e-headers-frame-maybe
Changing the size of the frame is a mote more intrusive than I'd like
any Doom module to be.

Fix: #5870
Close: #8674
2026-02-13 23:56:05 -05:00
Henrik Lissner
29bc91bca5
fix(popup): remap quit-window to +popup/close
Ensures popups closed via `quit-window` are remembered (for later
restoration, if possible).

Fix: #8650
Close: #8653
2026-02-13 23:56:05 -05:00
Henrik Lissner
b468dae066
fix(indent-guides): activate after local vars are applied
Ensures indent-bars respects indent settings changed by local vars (or
editorconfig).

Fix: #8543
Close: #8656
2026-02-13 23:56:05 -05:00
Henrik Lissner
3ad9eeb273
fix(lib): doom/reload: only escape spaces in $EMACS on Windows
This is a temporary measure until the interpolation in the powershell
script can be addressed directly (by someone better versed in
powershell).

Fix: #8572
Close: #8654
Co-authored-by: kovan <kovan@users.noreply.github.com>
2026-02-13 23:55:20 -05:00
Henrik Lissner
e68d23e73c
fix(whitespace): update indent highlights after editorconfig
If editorconfig changed the indent settings after
`+whitespace-highlight-incorrect-indentation-h` fired, whitespace-mode
does not update its highlights, so it must be triggered manually.

Fix: #8573
Close: #8655
2026-02-13 16:31:15 -05:00
Henrik Lissner
c7a1e2d70c
bump: :lang
JuliaEditorSupport/julia-emacs@5c940c4ba3 -> JuliaEditorSupport/julia-emacs@aadf29523a
ProofGeneral/PG@d60382db08 -> ProofGeneral/PG@75c13f91b6
agda/agda@bb9e13d970 -> agda/agda@5cf984c3d2
ananthakumaran/exunit.el@12a1efd003 -> ananthakumaran/exunit.el@bef971bde5
ardumont/markdown-toc@29e5c0f33e -> ardumont/markdown-toc@d22633b654
babashka/neil@8d5ccdbd81 -> babashka/neil@74cc79e4b9
clojure-emacs/cider@15bd3b0265 -> clojure-emacs/cider@ae247d8845
clojure-emacs/clojure-mode@4679222109 -> clojure-emacs/clojure-mode@bddba12e96
emacs-ess/ESS@f8c464dc1b -> emacs-ess/ESS@bfe892db15
emacs-rustic/rustic@e77f62facc -> emacs-rustic/rustic@cb013cd217
emacs-straight/auctex@077874d25a -> emacs-straight/auctex@1939acb54b
erlang/otp@2b2b39797f -> erlang/otp@f80e9c1c4a
godotengine/emacs-gdscript-mode@248b73b1bd -> godotengine/emacs-gdscript-mode@dd44f1dfa5
greghendershott/racket-mode@150b057953 -> greghendershott/racket-mode@71f27c643d
hakimel/reveal.js@33bfe3b233 -> hakimel/reveal.js@5abf24c1d8
haskell/haskell-mode@383b4b7775 -> haskell/haskell-mode@2dd755a5fa
hhvm/hack-mode@86a981bd7b -> hhvm/hack-mode@0b117e7f25
hvesalai/emacs-scala-mode@661337d8aa -> hvesalai/emacs-scala-mode@50bcafa181
idris-hackers/idris-mode@85928dc4cc -> idris-hackers/idris-mode@d32b2396a8
jrblevin/markdown-mode@92802fae9e -> jrblevin/markdown-mode@9de2df5a9f
mekeor/nael@9711443449 -> mekeor/nael@3ee1cf286d
meow_king/zig-ts-mode@89b52c865c -> meow_king/zig-ts-mode@64611c6d51
minad/org-modern@9bbc44cc7e -> minad/org-modern@b4b5b1c864
nim-lang/nim-mode@625cc023bd -> nim-lang/nim-mode@4502f83fbb
nix-community/nix-ts-mode@706bbfaf7f -> nix-community/nix-ts-mode@625306cf9c
ocaml/dune@14df34d30d -> ocaml/dune@7a7d49206f
ocaml/merlin@a0b096c243 -> ocaml/merlin@1c4148af05
org-roam/org-roam@c72702cf27 -> org-roam/org-roam@b4857fd7a1
rust-lang/rust-mode@ae161dca23 -> rust-lang/rust-mode@f68ddca5c2
seagle0128/grip-mode@26bdadf604 -> seagle0128/grip-mode@b8b9e603ed
sogaiu/janet-ts-mode@0e4d04d648 -> sogaiu/janet-ts-mode@aba932a1a1
szermatt/emacs-bash-completion@762f28fefb -> szermatt/emacs-bash-completion@5b621db96e
technomancy/fennel-mode@c1bccdec9e -> technomancy/fennel-mode@9c1dac3c39
tpapp/julia-repl@681efc14a7 -> tpapp/julia-repl@0173237a43
weijiangan/flycheck-golangci-lint@f7e36e19d6 -> weijiangan/flycheck-golangci-lint@51aede797d
2026-02-13 16:31:15 -05:00
Henrik Lissner
26ab1441d7
bump: :input
tumashu/posframe@d93828bf6c -> tumashu/posframe@4fc893c3c9
2026-02-11 17:48:47 -05:00
Henrik Lissner
39253bcee6
bump: :emacs
emacsmirror/undo-fu-session@58bd7f321e -> emacsmirror/undo-fu-session@34ae31308d
emacsmirror/undo-fu@17fc25be69 -> emacsmirror/undo-fu@b4ce5ed20c
rmuslimov/browse-at-remote@27b17cc63b -> rmuslimov/browse-at-remote@38e5ffd774
2026-02-11 17:48:12 -05:00
Henrik Lissner
5e888018e5
docs: fix package! examples
These examples prematurely snuck into 3bea4f6. `:recipe` *will* be
optional post-v3, but this change hasn't been published yet.

Amend: 3bea4f66a8
2026-02-11 17:47:37 -05:00
Henrik Lissner
a0d6aac43f
bump: :editor
emacs-evil/evil-collection@163792a823 -> emacs-evil/evil-collection@d052ad2ec1
https://github.com/emacs-tree-sitter/treesit-fold@ec7e5b02e5d0 -> https://github.com/emacs-tree-sitter/treesit-fold@c5f0a95550d1
juliapath/evil-numbers@e7adac70a0 -> juliapath/evil-numbers@616aff9e5c
magnars/multiple-cursors.el@9017f3be6b -> magnars/multiple-cursors.el@ddd677091a
radian-software/apheleia@426616cf17 -> radian-software/apheleia@143c1dffed
2026-02-10 18:17:53 -05:00
Henrik Lissner
cd25a48cf0
bump: :app
https://git.savannah.gnu.org/git/emms.git@47c68835b213 -> https://git.savannah.gnu.org/git/emms.git@1d48a1133db2
skeeto/elfeed@a39fb78e34 -> skeeto/elfeed@66cfe43dfc
2026-02-10 18:15:42 -05:00
Henrik Lissner
d29d1f5757
bump: :ui
ema2159/centaur-tabs@5ad22d9a6a -> ema2159/centaur-tabs@5ec350da6c
jdtsmith/indent-bars@d32cdba5b1 -> jdtsmith/indent-bars@6e6bb5484e
jdtsmith/ultra-scroll@79151faf97 -> jdtsmith/ultra-scroll@08758c6772
rolandwalker/unicode-fonts@6245b97d8d -> rolandwalker/unicode-fonts@d4a0648a22
seagle0128/doom-modeline@9ac20488c5 -> seagle0128/doom-modeline@0c91e47a0c
2026-02-10 18:15:24 -05:00
Henrik Lissner
ae7d7a605a
bump: :doom
Fuco1/smartparens@b629b4e893 -> Fuco1/smartparens@82d2cf084a
bbatsov/projectile@9325c45e0f -> bbatsov/projectile@7cb1f64c1d
emacs-compat/compat@cf14260191 -> emacs-compat/compat@38df650dce
emacs-straight/project@a66b0e0987 -> emacs-straight/project@ff700457fe
radian-software/straight.el@562639bd97 -> radian-software/straight.el@09b789a859
rainstormstudio/nerd-icons.el@d41902fe68 -> rainstormstudio/nerd-icons.el@9a7f44db9a
2026-02-10 18:12:22 -05:00
Henrik Lissner
4f4952d6c6
fix(cli): doctor: recursive macro expansion on advice
Emerged in Emacs 31+.

Fix: #8644
2026-02-10 13:12:28 -05:00
Henrik Lissner
8eb5ab3d11
bump: :tools
NicolasPetton/pass@7651389c52 -> NicolasPetton/pass@de4adfaeba
andras-simonyi/citeproc-el@a3d62ab8e4 -> andras-simonyi/citeproc-el@4bde999a41
editorconfig/editorconfig-emacs@646c31b4b7 -> editorconfig/editorconfig-emacs@b18fcf7fde
emacs-lsp/dap-mode@ded79ff063 -> emacs-lsp/dap-mode@b77d9bdb15
emacs-lsp/lsp-mode@7642778d59 -> emacs-lsp/lsp-mode@c258b9dfaf
emacs-straight/dape@5f2792ea8c -> emacs-straight/dape@76af39b5c2
emacs-straight/eglot@78bd85f1b5 -> emacs-straight/eglot@76dae6a075
jacktasia/dumb-jump@b1ec972ed3 -> jacktasia/dumb-jump@0bb557a2bd
karthink/gptel@f36ee0a750 -> karthink/gptel@11ddace991
purcell/envrc@06d72d141a -> purcell/envrc@d3289e92e0
tumashu/posframe@d93828bf6c -> tumashu/posframe@4fc893c3c9
vedang/pdf-tools@e4b7f1f37c -> vedang/pdf-tools@365f88238f

Fix: #7873
Revert: 7bb5df4cd4
2026-02-09 23:54:40 -05:00