Commit graph

13396 commits

Author SHA1 Message Date
Andrew Peck
15d5525915 tweak(tree-sitter): use maintained systemverilog grammar
tree-sitter-verilog has unfortunately not been maintained for years.

Gonzalo maintains tree-sitter-systemverilog which boasts

- Full implementation of the latest SystemVerilog standard (IEEE 1800-2023)
- Robust and reliable: sv-tests results
- Actively maintained
- Implements node fields
- Supports parsing of code snippets (e.g., always block outside of a module)
- Basic preprocessing capabilities
- Thoroughly tested (~3000 tests) including:

verilog is strictly a subset of systemverilog so the systemverilog
grammar is backwards compatible with verilog features.

tree-sitter-verilog has significant issues and fails parsing many basic
verilog files.

I use tree-sitter-systemverilog daily and have had no issues since switching.
2026-03-06 02:46:23 -05:00
Henrik Lissner
85f6952dd1
fix(eval): +eval/send-region-to-repl: premature truncation
Fix: #8703
2026-03-06 02:39:13 -05:00
Henrik Lissner
08ab5d53b4
docs: update doomemacs repo urls
Close: #8695
Co-authored-by: kovan <kovan@users.noreply.github.com>
2026-03-05 22:48:55 -05:00
Henrik Lissner
974e45dfd3
fix(javascript): use nodejs-repl-send-* commands
Now, +eval/send-region-to-repl or +eval:region/+eval:buffer will
communicate with the REPL via nodejs-repl's API, instead of feeding the
selection to the REPL line-by-line (the fallback method).
2026-03-04 21:39:18 -05:00
Henrik Lissner
d23abed66d
perf(magit): use /usr/bin/git on macos
Inexplicably, the built-in git on MacOS is many orders of magnitude
faster than the external builds provided by Homebrew/Macports, so use
that there. Emacs on MacOS needs all the (performance) help it can get
and, fortunately, the bundled git is 2.23 or newer on (at least) MacOS
10.15 (Catalina) and newer, so this should be a relatively safe bet
without the need for version checks.
2026-03-04 21:36:10 -05:00
Henrik Lissner
d23bbe8772
fix(evil): +evil--use-evil-registers-a: recursive advice
Prevent `get-register`s advice from affecting the `get-register` call in
`evil-get-register` in `+evil--use-evil-registers-a`.

Ref: #8698
Fix: #8699
Amend: 88e2a0d5de
2026-03-04 04:06:58 -05:00
Henrik Lissner
fd4a8d99ea
fix(use-package): use-package-ensure-function (part 2)
It's too easy for `package--initialized` to be set accidentally (if the
user loads straight or uses Doom's package API, which inevitably calls
doom-initialize-packages). Instead, package--activated is a better
heuristic because users who *want* package.el will call package-install
without suppressing activation.

Amend: eccde78741
2026-03-04 02:21:29 -05:00
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