Commit graph

13345 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
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
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
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
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
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
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
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
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
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
Sergey Trofimov
29dad16dea
fix(org,cli): tangle: filter by tag properly
Org files with tagged headlines weren't tangled correctly.

Also improves filtering by tag as in current shape it is not working at all.

Fix: #8622
2026-02-09 22:53:54 -05:00
Rasmus Enevoldsen
eeb66ed0e0
docs(java): s/begin-src/begin_src/ 2026-02-09 22:52:07 -05:00
Damian Barabonkov
8c1b45c08b
bump: :tools docker
Silex/docker.el@375e0ed45b -> Silex/docker.el@916686b86e
2026-02-09 22:50:47 -05:00
sin-ack
29d0f210c6 fix(java): activate lsp under java-ts-mode as well
Otherwise, with :lang java +lsp +tree-sitter lsp-mode won't activate
on its own.
2026-02-09 22:49:42 -05:00
Prashant Vithani
9c0bd03a2d bump: :ui vc-gutter
dgutov/diff-hl@e79aa49ad3 -> dgutov/diff-hl@3eefe68941
2026-02-09 22:49:09 -05:00
Prashant Vithani
3fbea2b47b fix(vc-gutter): bitmap size for cons line-spacing
The `line-spacing` variable can be set to a cons cell of the form
`(ABOVE . BELOW)`. The old logic did not account for this.

This is corrected by summing the `car` and `cdr` of `line-spacing` when
it is a cons cell to get the total vertical spacing. This logic is
adopted from `total-line-spacing` introduced with the added support of
[cons line-spacing in emacs 31][1]

[1]: e8f26d554b
2026-02-09 22:49:09 -05:00
Henrik Lissner
649b1bb04b
fix(beancount): disable flymake with +lsp
Fix: #8628
2026-02-09 22:39:52 -05:00
Henrik Lissner
cbd7efcaf8
docs(bidi): mention dejavu sans dependency
Fix: #8647
2026-02-09 04:30:13 -05:00
Henrik Lissner
6f40ad55f5
docs: discourage after! and use-package! use
There's little reason for users to use these macros in their private
configs over plain ol' `with-eval-after-load` and `use-package`, unless
they're writing their own modules.

It's my fault for signal boosting them in documentation and whenever I'm
asked for help, because beginners now believe they are somehow
required for Doom to work correctly (there are guides out there
telling beginners that migrating to Doom involves replacing all
instances of `with-eval-after-load` and `use-package` in their
pre-existing configs with `after!` and `use-package!` -- which was never
true).

What's more, I plan to replace `use-package`, internally, so the
`use-package!` macro won't exist for much longer.
2026-02-09 04:29:47 -05:00
Henrik Lissner
1a943aea69
refactor: cut down on pseudo-features
Way back, I added these three pseudo-features:

  (featurep 'dynamic-modules)
  (featurep 'harfbuzz)
  (featurep 'jansson)

Why? Because some build features have pseudo features (like
`tty-child-frames`, `pgtk`, and `threads`), but others don't, and I
wanted more consistency around build feature detection. Years later, I
realized it wasn't used much internally and only ended up confusing
readers who didn't realize these were Doom's additions and not built
into Emacs. Emacs' idiosyncrasies may not be nice or elegant, but
they're less surprising to elisp beginners and veterans alike.
2026-01-23 20:26:28 -05:00
Henrik Lissner
728615c8b0
fix(vc-gutter): disable flydiff on macos by default
Newer versions of MacOS seem to struggle with the async processes
diff-hl frequently spawns when `diff-hl-flydiff-mode` is active, so the
mode will be disabled by default in MacOS environments.

Fix: #8554
2026-01-23 18:03:24 -05:00
Henrik Lissner
c9a50417de
nit(lsp): revise eglot-events-buffer-config comment 2026-01-20 17:59:17 -05:00