Commit graph

20650 commits

Author SHA1 Message Date
Henrik Lissner
d771e24efa
fix(common-lisp): +lisp/reload-project
`sly-asdf-load-system` doesn't auto-select the current system without a
little help.

Fix: #8708
2026-03-11 03:07:12 -04:00
Henrik Lissner
f573c7a1ee
fix: don't trigger doom-first-buffer-hook too early
The scratch or dashboard buffers triggered it too early.

Fix: #8706
2026-03-11 02:55:08 -04:00
Henrik Lissner
f0da6a2c31
fix(lib): doom-context-pop: logged output
Log should be prefixed with - to denote a lost context.
2026-03-11 02:28:59 -04:00
Henrik Lissner
5351f18611
fix(dashboard): parent group and remove :prefix
These groups' parents are their source (aka the module library they
belong to). They will be:

- doomemacs/core = doom
- doomemacs/modules = doom+
- doomemacs/modules-contrib = doom++

And this module belongs to doom+.
2026-03-11 02:28:56 -04:00
Henrik Lissner
9e8f1ecd7c
refactor(org): use new :preview mechanism
Rewrites link handlers and keybind to use the new org-link-preview
backend.

Fix: #8164
Close: #8707
Co-authored-by: andrewpeck <andrewpeck@users.noreply.github.com>
2026-03-10 21:59:14 -04:00
Henrik Lissner
b4917ef4f3
fix: remove vestigial references to setq!
setq! was deprecated in 304030f in favor of setopt.

Ref: 304030fdf8
2026-03-10 21:59:14 -04:00
Henrik Lissner
04ef44d9c8
refactor(eval): rewrite module 2026-03-10 21:59:14 -04:00
Henrik Lissner
f8c3decb0a
tweak(eval): remap eval-{region,buffer} to module commands 2026-03-10 21:59:14 -04:00
Henrik Lissner
9405a06141
refactor(emacs-lisp): eval handler & working buffer command
- Renames `+emacs-lisp-eval-working-buffer` to
  `+emacs-lisp-working-buffer`.
- `+emacs-lisp/change-working-buffer`: Expand  to accept the prefix arg,
  the ability to unset the current working buffer, and only set the
  working buffer buffer-locally.
2026-03-10 21:59:14 -04:00
Henrik Lissner
4fe1cbeddb
refactor: s/when-let/when-let*/
The former is deprecated on Emacs 31 for the latter.
2026-03-09 03:28:06 -04:00
Henrik Lissner
0b1de48daa
feat(lib): replace doom-region & add doom-region-bounds 2026-03-09 03:28:06 -04:00
Henrik Lissner
9530c6fbfa
fix(magit): motion/TAB misbehavior w/ long lines
Ref: magit/magit#5320
2026-03-09 03:27:44 -04:00
Henrik Lissner
dd72eac197
bump: :tools
emacs-citar/citar@dc7018eb36 -> emacs-citar/citar@911a7d59c4
emacs-lsp/lsp-mode@3e55ca8071 -> emacs-lsp/lsp-mode@fd4df7cf17
emacs-straight/dape@76af39b5c2 -> emacs-straight/dape@d5ce595033
emacs-straight/eglot@e9371d4ac9 -> emacs-straight/eglot@866ae23c8b
jacktasia/dumb-jump@8c97b2afc2 -> jacktasia/dumb-jump@41b6b9dd44
karthink/gptel@63795dee75 -> karthink/gptel@63795dee75
2026-03-09 00:19:49 -04:00
Henrik Lissner
45dfc8f60c
module: add :ui dashboard
And deprecate :ui doom-dashboard. The new module is a breaking
rename+rewrite of the old module. The old module will be removed when v3
goes live.
2026-03-09 00:18:01 -04:00
Henrik Lissner
4cf886ba30
refactor: remove old unit tests
Making room for the new tests and framework coming in v3. Besides, these
old tests haven't been used in years.
2026-03-08 19:41:17 -04:00
Henrik Lissner
9840f8e454
fix: don't activate global-hl-line-mode when hl-line-mode is on
In recent versions of Emacs, `global-hl-line-mode` is separate from
`hl-line-mode`
(the global mode uses a different, more efficient mechanism for line
highlights), so it should bow out if `hl-line-mode` is enabled.
2026-03-08 03:24:50 -04:00
Henrik Lissner
d1ca5fe8c8
fix(fold): remove references to +compat flag
This flag was never implemented and snuck into 743d624.

Amend: f2678b3ea2
2026-03-08 03:23:14 -04:00
Henrik Lissner
de28f4ec84
perf(vc): don't auto-detect merge conflicts in large files 2026-03-08 03:23:05 -04:00
Henrik Lissner
be07b41ed4
perf: run doom-optimize-for-large-files-h earlier in find-file-hook
So later hooks can feel the performance benefits sooner in large files.
2026-03-08 03:23:03 -04:00
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
a5552a701b
docs: doctor: do ripgrep check after loading $DOOMDIR
Now takes `doom-ripgrep-executable` into account.
2026-03-05 16:33:56 -05:00
Henrik Lissner
b87034c95d
docs: doctor: do non-POSIX shell check after loading $DOOMDIR
This allows user config to affect the result of the test (hiding it if
they've already addressed the issue).

Fix: #8136
2026-03-05 16:27:51 -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
e11816e711
fix: doom-initialize-packages: don't activate package.el
This function should not be used as a substitute for
`package-initialize`, to activate packages installed via package.el,
this is solely for metadata for Doom's package manager.
2026-03-04 02:21:19 -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
Marien Zwart
dc7c43b6d3 refactor: use supported recentf-auto-cleanup value
We were setting recentf-auto-cleanup to nil, which is not one of the
supported values in its defcustom type.

Set it to `'never` instead. This has exactly the same effect (recentf
only references `recentf-auto-cleanup` from a `cond` statement, which
does nothing for both values), but we might as well future-proof.

Clean up a duplicate assignment while I'm there.

Noticed because I had copied this into my personal config at some
point (to disable Doom's periodic save in daemon sessions) and recently
converted that config to use `setopt`, which complained.
2026-03-03 18:26:05 -05:00
Marien Zwart
a6c57fd4fd fix: save after recentf-cleanup on exit
Doom adds `recentf-cleanup` to `kill-emacs-hook`, but that function only
cleans up `recentf-list` without saving it to disk: saving is handled by
`recentf-save-list`. `recentf-mode` adds `recentf-save-list` to
`kill-emacs-hook` as well... but it only adds that hook when
`recentf-mode` is enabled, which means `recentf-save-list` ends up
before `recentf-cleanup` on `kill-emacs-hook`, rendering the cleanup
ineffective.

This is normally barely noticable, but with many paths on (slow) network
filesystems on `recentf-list` the cleanup can get slow enough to be
annoying.

Fix it by passing a priority to `add-hook`.

This leaves an ineffective cleanup call if we exit Emacs with
recentf-mode disabled, but that should normally only happen if we exit
Emacs without opening a file (`doom-first-file-hook` enables
recentf-mode). If that's an issue, we could add a function to
`recentf-mode-hook` which in turn adds to `emacs-term-hook`, but that
seems too complicated for little gain.
2026-03-03 18:26:05 -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
7f17dcf09a
fix(cli): doom emacs: use --init-directory if available
Emulating --init-directory has issues (e.g. isn't exposed to the *exact*
same $HOME environment), so if it's available (i.e. if Emacs 29+ is
being used or Doom lives in ~/.emacs.d or ~/.config/emacs), then use it.
This makes the 'doom emacs' command faster and more reliable as a launch
pad for Doom.
2026-03-03 06:34:45 -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
51fe3798b2
docs: doctor: improve $HOME project root check
The check will now list the exact project root files that it finds and
better explain the solution.
2026-03-03 00:11:19 -05:00
Henrik Lissner
a2e0e9c8cf
docs: doctor: revise emacs versions checks
- Simplifies development build check explanation.
- Removes the 27 check, because Doom core will continue to support 27+
  for the foreseeable future, but Doom's modules will be dropping 27 and
  28 support soon, but that check will be done elsewhere.
2026-03-03 00:06:51 -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