Commit graph

13389 commits

Author SHA1 Message Date
Henrik Lissner
c95dcfee43
perf(magit): minor optimizations
- Resolves `magit-git-executable` ahead of time. We used to do this, but
  back then, magit used `magit-git-executable` in TRAMP sessions too.
  Now, magit has a separate `magit-remote-git-executable` variable.
- Only invalidate projectile cache if the magit status buffer's contents
  has changed. This will prevent excessive (and potentially expensive)
  `projectile-invalidate-cache` calls for trivial changes, l
- Avoid changing the active buffer when fetching a specific variable
  from a buffer is enough (more cpu/mem efficient).
- Don't adjust the fringe if the fringes are already the requested size.
2026-03-03 23:40:35 -05:00
Henrik Lissner
dc0fc9d4f4
tweak(syntax): configure flymake even without +flymake
Some major modes may only have a flymake checker (like beancount-mode),
and since flymake is built into Emacs, it's possible the user may
encounter `flymake-mode` even when they haven't enabled +flymake for
this module, so at least load its flymake config.
2026-03-03 18:22:13 -05:00
Henrik Lissner
6556a79abc
revert: polymode
polymode/polymode@4604f55cc0 -> polymode/polymode@14b1fd8d2a

polymode/polymode@4604f55cc0 introduced breakage. Reverting until
polymode/polymode#367 is merged.

Fix: #8702
Ref: polymode/polymode@4604f55cc0
Ref: polymode/polymode#367
Amend: 680d135062
2026-03-03 18:19:26 -05:00
Henrik Lissner
c174b25d57
fix(syntax): {next,previous}-error
- Makes {next,previous}-error search the current-buffer before looking
  for others (#1908, #2497).
- Makes {next,previous}-error recognize flymake errors.

Fix: #2497
Fix: #1908
2026-03-03 18:11:42 -05:00
Henrik Lissner
eccde78741
fix(use-package): use-package-ensure-function
Doom is configured to ignore :ensure in `use-package`, unless the user
has manually called `(package-initialize)` -- in which case, we assume
the user genuinely *wants* to use package.el, or some reason.
2026-03-03 06:57:35 -05:00
Henrik Lissner
013c5f5a28
revert: bump: package-lint
purcell/package-lint@1c37329703 -> purcell/package-lint@HEAD

The upstream issue was resolved.

Ref: #8286
Ref: purcell/package-lint#285
Ref: purcell/package-lint#287
Revert: 04cd16a5cd
2026-03-03 03:32:43 -05:00
Henrik Lissner
d2d805a42b
fix(org): C-c TAB not bound to org-ctrl-c-ctrl-c
This is because Emacs can't differentiate between C-i and TAB. Doom
creates a special input event for <C-i> to distinguish them (which only
works in GUI Emacs), so I moved this keybind there.

Fix: doomemacs/community#79
2026-03-03 00:30:27 -05:00
Henrik Lissner
dc20cc7901
refactor: minor revisions
To appease the byte-compiler or simplify.

Getting these small edits out of the way to simplify v3 merge conflicts.
2026-03-02 19:51:19 -05:00
Henrik Lissner
2105bf59c3
nit: minor reformatting & revise comments
Getting these small edits out of the way to simplify v3 merge conflicts.
2026-03-02 19:50:51 -05:00
Henrik Lissner
68ed966569
refactor(vc): remove +vc--compat-31-a
This was addressed upstream.

Ref: rmuslimov/browse-at-remote@0aec68dc0e
Amend: 70dfafdd57
2026-03-02 19:47:35 -05:00
Henrik Lissner
6c0881c684
nit: revise TODO/FIXME/HACK/REVIEW/etc in comments
Some were outdated, some were incorrectly labeled, others were already
completed, some were missing... Gotta fix them all.

Also, in :ui hl-todo, there are comments that describe how Doom uses
each of these annotations; those have been updated.
2026-03-02 19:45:09 -05:00
Henrik Lissner
680d135062
bump: :lang
50ways2sayhard/dart-ts-mode@ab87873f25 -> 50ways2sayhard/dart-ts-mode@0e42336bf7
JuliaEditorSupport/julia-emacs@aadf29523a -> JuliaEditorSupport/julia-emacs@1478898ea0
agda/agda@5cf984c3d2 -> agda/agda@6310545817
bricka/emacs-kotlin-ts-mode@051c9ef534 -> bricka/emacs-kotlin-ts-mode@b318a64a7f
clojure-emacs/cider@ae247d8845 -> clojure-emacs/cider@75dc57aebe
clojure-emacs/clojure-mode@bddba12e96 -> clojure-emacs/clojure-mode@f44ea50308
clojure-emacs/clojure-ts-mode@96fdffcbe9 -> clojure-emacs/clojure-ts-mode@f47fefb5d7
cpitclaudel/company-coq@78ed04ce39 -> cpitclaudel/company-coq@1fc1d8f2d5
davazp/graphql-mode@ef757c6ce2 -> davazp/graphql-mode@d7f105a4bf
emacs-jupyter/jupyter@de89cbeca8 -> emacs-jupyter/jupyter@242fdc709c
emacs-lsp/lsp-dart@fd82395180 -> emacs-lsp/lsp-dart@166e4f2ba1
emacs-rustic/rustic@cb013cd217 -> emacs-rustic/rustic@eea94386bf
emacs-straight/auctex@1939acb54b -> emacs-straight/auctex@f0c4b1dcc9
erlang/otp@f80e9c1c4a -> erlang/otp@ea2bfd02be
hvesalai/emacs-sbt-mode@cc68728a6e -> hvesalai/emacs-sbt-mode@c353df6aa1
jrblevin/markdown-mode@9de2df5a9f -> jrblevin/markdown-mode@f8d1be7cd5
mekeor/nael@3ee1cf286d -> mekeor/nael@fbfb675736
nix-community/nix-emacs@053a2d5110 -> nix-community/nix-emacs@e241b58c9e
nix-community/nix-ts-mode@625306cf9c -> nix-community/nix-ts-mode@3198317121
ocaml/dune@7a7d49206f -> ocaml/dune@141393af40
ocaml/merlin@1c4148af05 -> ocaml/merlin@fad4a2785c
org-roam/org-roam@b4857fd7a1 -> org-roam/org-roam@7cd906b6f8
polymode/polymode@14b1fd8d2a -> polymode/polymode@4604f55cc0
rust-lang/rust-mode@f68ddca5c2 -> rust-lang/rust-mode@668069ad8b
2026-03-02 19:45:08 -05:00
Henrik Lissner
04701547b1
bump: :completion :ui :tools
company-mode/company-mode@fad9f207e0 -> company-mode/company-mode@42d3897308
dgutov/diff-hl@3eefe68941 -> dgutov/diff-hl@bb9af85441
dimitri/switch-window@8f771b571a -> dimitri/switch-window@a72cf11d21
jacktasia/dumb-jump@215e2ed9ab -> jacktasia/dumb-jump@8c97b2afc2
karthink/gptel@d221329ee3 -> karthink/gptel@63795dee75
magit/ghub@278d9fb5f3 (5.0.3) -> magit/ghub@c22858596c (5.0.4)
magit/orgit@24c8fe48c4 (v2.1.1) -> magit/orgit@4fb91faff3 (v2.1.2)
minad/marginalia@0d08fbea0f -> minad/marginalia@142e4da1bd
oantolin/embark@7b3b2fa239 -> oantolin/embark@e0238889b1
seagle0128/doom-modeline@0c91e47a0c -> seagle0128/doom-modeline@8806358185
2026-03-02 19:45:08 -05:00
Henrik Lissner
a3b1be0121
refactor(org,magit): move orgit{,-forge} to :tools magit 2026-03-02 19:45:08 -05:00
Henrik Lissner
b01e8c9572
refactor(org,pdf): move org-pdftools to :tools pdf 2026-03-02 19:45:08 -05:00
Henrik Lissner
470e653f08
bump: :app :config :editor :emacs :email :input
emacs-straight/use-package@039b721a4d -> emacs-straight/use-package@4090d3267f
emacsmirror/undo-fu-session@34ae31308d -> emacsmirror/undo-fu-session@92d733a5b1
https://git.notmuchmail.org/git/notmuch@5c921b6c0b2d -> https://git.notmuchmail.org/git/notmuch@73746c0eb3a0
https://git.savannah.gnu.org/git/emms.git@1d48a1133db2 -> https://git.savannah.gnu.org/git/emms.git@002a8db0913c
https://github.com/emacs-tree-sitter/treesit-fold@c5f0a95550d1 -> https://github.com/emacs-tree-sitter/treesit-fold@d70c5f7240a8
jeremy-compostella/org-msg@327768e2c3 -> jeremy-compostella/org-msg@aa608b3995
juliapath/evil-numbers@e7adac70a0 -> juliapath/evil-numbers@616aff9e5c
kidd/org-gcal.el@36cbdb453d -> kidd/org-gcal.el@0f46c08f60
radian-software/apheleia@143c1dffed -> radian-software/apheleia@2bc2bb4cc2
skeeto/elfeed@66cfe43dfc -> skeeto/elfeed@bbb3cac27b
tumashu/posframe@4fc893c3c9 -> tumashu/posframe@3a80911b2f
2026-03-02 01:44:27 -05:00
Henrik Lissner
c21b80d7ff
fix(debugger): remove dap-mode packages
dap-mode and posframe were removed from this module in e0729fa, but not
their `package!` statements. Oops.

Amend: e0729fa7d7
2026-03-02 01:39:48 -05:00
Henrik Lissner
994b7be3df
refactor(direnv): remove +direnv--load-info-a
This hack is no longer needed because the issue was resolved upstream.

Amend: 9de72537be
Ref: purcell/envrc#117
2026-03-02 01:18:14 -05:00
Henrik Lissner
605437b8b8
fix(direnv): restart lsp/eglot clients on reload/allow/deny
Makes `envrc-reload`, `envrc-reload-all`, `envrc-allow`, or `envrc-deny`
restart any running lsp/eglot clients within the current direnv, so that
they reflect the new environment.
2026-03-02 01:18:11 -05:00
Henrik Lissner
da36f15296
fix(llm): don't clone gptel recursively
Otherwise, gptel will have a dirty worktree every time you update it.
2026-03-01 18:15:38 -05:00
Henrik Lissner
10d0b60f5d
refactor(lib): deprecate pushnew!
In the spirit of 6f40ad5, I'm deprecating this macro because it doesn't
provide enough value to exist and serves only to complicate a casual
reader's understanding of Doom's modules.

Ref: 6f40ad55f5
2026-03-01 18:10:43 -05:00
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