Commit graph

13368 commits

Author SHA1 Message Date
Henrik Lissner
2c42e47a30
nit(evil): reformat & revise comments
Tidy up in preparation for bigger changes post-v3.
2026-03-01 18:10:43 -05:00
Henrik Lissner
3d61a7b487
refactor(vertico): rename +vertico-highlight-* functions
To conform to Doom's naming conventions for strategy functions.
2026-03-01 18:10:43 -05:00
Henrik Lissner
c3ff78ff53
nit(vertico): reformat & revise comments
Tidy up in preparation for bigger changes post-v3.
2026-03-01 18:10:43 -05:00
Henrik Lissner
88e2a0d5de
feat(evil,vertico): merge evil's into emacs' registers
Makes Emacs more broadly aware of Evil's registers (when Evil is
active), and fixes an issue where our advice integrating
`consult-register` with Evil registers would properly list Evil
registers, but not fetch/insert them correctly (#8698).

Fix: #8698
Close: #8699
Co-authored-by: liaowang11 <liaowang11@users.noreply.github.com>
2026-03-01 18:10:43 -05:00
Henrik Lissner
a9af7810fe
refactor(vertico): rename +vertico/embark-doom-package-map
To conform with naming conventions. "/" is meant for names of
interactive functions, which this is not.
2026-03-01 18:10:43 -05:00
Henrik Lissner
e5bbae8144
feat(lib): introduce doom-kill-childframes-h
And use it to replace the various `posframe-delete-all` hooks littered
about to clean up child/posframes in contexts where they may linger
after destructive operations (like changing the active workspace or
executing `doom/reload`).
2026-03-01 18:10:42 -05:00
Henrik Lissner
4425bd898f
perf(vertico): cache doom-project-root w/ marginalia
`doom-project-root` call `projectile-project-root`, which can be an
expensive operation. Overriding `marginalia--project-root` (which could
get called many hundreds of times each time marginalia renders its
annotations) with `doom-project-root` directly could grind marginalia to
a crawl (particularly in file/directory browsing workflows), so I take a
page out of `marginalia--project-root`s original implementation and
cache the root.
2026-03-01 18:10:42 -05:00
Henrik Lissner
2428689f3b
fix(evil): appease byte-compiler (unused var) 2026-03-01 18:10:42 -05:00
Henrik Lissner
bd949b718f
refactor(lib): deprecate doom-compile-functions
Module autoloads will be separately byte-compiled in v3. Removing this
ahead of that.
2026-02-28 04:15:15 -05:00
Henrik Lissner
85ccc61ddc
tweak(llm): gptel-default-mode = org-mode
This is Emacs. Use org-mode instead of markdown-mode/text-mode, by
default.
2026-02-25 23:19:39 -05:00
Henrik Lissner
8584bc254e
feat(llm): add open-in-same-window command/keybind 2026-02-25 23:19:20 -05:00
Henrik Lissner
9de72537be
bump: :tools
NicolasPetton/pass@de4adfaeba -> NicolasPetton/pass@143456809f
emacs-lsp/lsp-mode@0e53347d76 -> emacs-lsp/lsp-mode@3e55ca8071
emacs-straight/eglot@76dae6a075 -> emacs-straight/eglot@e9371d4ac9
flycheck/flycheck-eglot@6cf99e53b4 -> flycheck/flycheck-eglot@cd1dd78cec
jacktasia/dumb-jump@0bb557a2bd -> jacktasia/dumb-jump@215e2ed9ab
karthink/gptel@11ddace991 -> karthink/gptel@d221329ee3
purcell/envrc@d3289e92e0 -> purcell/envrc@f44353c42c
tarsius/cond-let@0430bd1eb3 (0.2.1) -> tarsius/cond-let@8bf87d45e1 (0.2.2)
tumashu/posframe@4fc893c3c9 -> tumashu/posframe@41cc4def61
2026-02-25 22:48:04 -05:00
Henrik Lissner
8637bdc888
fix(lookup): restore etags--xref-back default xref backend
Some users may not be aware of (or not want to use)
`projectile-find-tag` or `evil-jump-to-tag`.
2026-02-24 02:42:43 -05:00
Henrik Lissner
a628ef3466
fix(org): merge org-loaddefs.el into org-autoloads.el
A chunk of Org's autoloads are siphoned off into a separate autoloads
file due to a file-local value for `generated-autoload-file` in some
org-*.el files. Since Straight (and Doom's profile generator) only
indexed PACKAGE-autoloads.el files, that meant that a bunch of Org
autoloads weren't being autoloaded, including
`org-element-with-disabled-cache` (#7347), so I merge org-loaddefs.el
into org-autoloads.el post-build.

Fix: #7347
2026-02-23 16:53:40 -05:00
Henrik Lissner
16108fd0b9
fix(undo): undo-tree-visualizer: string type error
Fix: #8688
Co-authored-by: RyanGibb <RyanGibb@users.noreply.github.com>
2026-02-23 16:53:40 -05:00
Henrik Lissner
fb8b97b7fd
fix(default): void-variable evil-window-map error
This error is almost always a sign that something else is wrong with the
user's config/setup (e.g. the order of their modules in their `doom!`
blocks), and "fixing" it like this will no doubt only mask the real
cause, but users report this so often that this is may be a can that's
worth kicking down the road.

Fix: #8496
2026-02-22 18:46:19 -05:00
Henrik Lissner
8b1391a71c
nit: reformat long lines 2026-02-22 01:46:22 -05:00
Henrik Lissner
f4badc0883
bump: :lang org
emacs-straight/org-mode@b7bc0ede67 (release_9.7.39) ->
emacs-straight/org-mode@89df5bf46b (release_9.8)
hakimel/reveal.js@5abf24c1d8 -> hakimel/reveal.js@0753c05777
2026-02-22 01:42:49 -05:00
Henrik Lissner
f6a57ed695
refactor(eshell): swap out {fish,bash}-completion for pcmpl-args
pcmpl-args' completion coverage isn't as complete at
{fish,bash}-completion, but it's much lighter, much faster, and builds
on top of pcomplete. Users will have to alias programs to
pcmpl-args-pcomplete-on-{help,man} to extend support.
2026-02-22 00:45:39 -05:00
Henrik Lissner
9c45601ff3
refactor!(python): remove pyimport & py-isort
BREAKING CHANGE: (Some) LSP clients and python code formatters (like
ruff-isort) handle organization of imports better, so I'd rather lean on
them than on niche, unmaintained third party dependencies.
2026-02-21 16:55:55 -05:00
Henrik Lissner
13c377ecf9
feat(gdscript): add gdshader-mode
No runtime configuration is needed; activation is handled by its
autoloaded `auto-mode-alist` entry.
2026-02-21 16:55:36 -05:00
Henrik Lissner
1977181891
feat(llm): add ob-gptel 2026-02-21 15:19:10 -05:00
Henrik Lissner
ac649cce2a
feat(lib): add doom-real-buffer-modes
For dictating what buffers are considered real based on their major
modes.

Also makes most terminal emulator or comint-mode buffers real by
default.

Fix: doomemacs/community#73
2026-02-20 20:37:31 -05:00
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