Commit graph

13431 commits

Author SHA1 Message Date
Henrik Lissner
f2257c3fa9
fix: defcustom :type specifiers
setopt throws a void-function nil error if a variable's :type specifier
is invalid.

Fix: #8710
2026-03-12 16:29:37 -04:00
Henrik Lissner
f8329b44f7
revert: jupyter
emacs-jupyter/jupyter@3b9caed3e4 -> emacs-jupyter/jupyter@242fdc709c

Amend: 21e372b531
Fix: #8709
2026-03-12 04:51:27 -04:00
Henrik Lissner
b75897a8e4
fix(llm): +llm-fix-gptel-magit--non-string-responses-a
The plist starts at the second argument, not the first, so this advice
wasn't working at all. Also adds basic error handling for more helpful
errors than what gptel-magit gives you.

Amend: b30f5ca6df
2026-03-12 02:42:41 -04:00
Henrik Lissner
4b09424cf6
feat(llm): set-debug-variable!: gptel-log-level = 'debug
So `doom-debug-mode` will toggle this variable.
2026-03-12 01:39:40 -04:00
Henrik Lissner
22b99ca92f
fix(llm): void-variable gptel--openrouter error
Amend: 0ec6255f23
2026-03-11 23:00:54 -04:00
Henrik Lissner
b30f5ca6df
fix(llm): gptel-magit: non-string responses
Resolves an upstream issue (ragnard/gptel-magit#9) where gptel-magit
requests may return a non-string response, causing a type error. The
solution was adapted from an upstream PR (ragnard/gptel-magit#4).

Ref: ragnard/gptel-magit#9
Ref: ragnard/gptel-magit#4
2026-03-11 22:50:34 -04:00
Henrik Lissner
0ec6255f23
fix(llm): gptel-magit: interop w/ gptel-include-reasoning
Resolves an upstream issue caused if `gptel-include-reasoning` is
enabled. Solution is adapted from a reply to the report..

Ref: ragnard/gptel-magit#8
2026-03-11 22:50:34 -04:00
Henrik Lissner
21e372b531
bump: :lang org
emacs-jupyter/jupyter@242fdc709c -> emacs-jupyter/jupyter@3b9caed3e4
emacsmirror/org-contrib@90e1d6bd62 (release_0.7) ->
emacsmirror/org-contrib@b840bdabd1 (release_0.8)
hakimel/reveal.js@0753c05777 -> hakimel/reveal.js@8d9120f8ab
minad/org-modern@b4b5b1c864 -> minad/org-modern@f514a2570d
2026-03-11 22:50:34 -04:00
Henrik Lissner
77851622b3
fix(org): reload org-agenda buffer on first invocation
A temporary fix for what seems to be a 9.8 regression. More
investigation required.
2026-03-11 22:50:33 -04:00
Henrik Lissner
faf98f02b4
tweak(beancount): use green nf-fa-money icon for *.bean(count)
Associate the icon with *.bean files too, and change the icon to
green.
2026-03-11 22:50:33 -04:00
Henrik Lissner
73d643da83
fix: appease byte-compiler across the board
Warnings about unused lexical variables, arity warnings, unescaped
single quotes in docstrings, shadowed variables, and invalid value for
:local depending on Emacs version.
2026-03-11 22:50:33 -04:00
Henrik Lissner
c1928bf081
nit(magit): annotate comment with HACK
Because this is a brittle workaround that may need reviewing in the
future.
2026-03-11 22:50:33 -04:00
Henrik Lissner
dfc75cc56e
tweak(evil): increase evil-ex-hl-update-delay for special-mode
Which magit modes are derived from.
2026-03-11 22:50:33 -04:00
Henrik Lissner
4fec01b7ea
revert: perf(magit): use /usr/bin/git on macos
d23abed made Magit prefer the vendored git over homebrew/macports
git (or wherever else), because it appeared to speed up Magit's git
calls, but that was a premature optimization. There are some users
reporting it works, but more than report it doesn't. I don't have Mac
hardware to test this properly on, so I opt for the simpler option of
removing the optimization.

Also corrects the comment, because Magit resolves `magit-git-executable`
on Windows and MacOS already, so we only need this for Linux (where the
benefit is minimal).

Revert: d23abed66d
2026-03-11 22:50:33 -04:00
Henrik Lissner
698ca04e0a
nit(vertico): reformat
Conform to Emacs and Doom (v3) conventions.
2026-03-11 22:50:33 -04:00
Henrik Lissner
18671e43a1
fix(vertico): escaping async split separators in consult prompts
If you invoke a file search command (`SPC s p`) with an active
selection, that selection will be used as your initial query. However,
some characters (like #, %, @, !, etc) have a special meaning as a
separator for async sub-searches, and must be escaped to be treated as
literal text. This used to work, until the
`consult-async-split-styles-alist` spec changed at some point.
2026-03-11 22:50:33 -04:00
Henrik Lissner
7d6a0eb74e
fix(vertico): appease byte-compiler
Resolve unreferenced lexical variables, longer-than-80 docstrings, and
"defining as dynamic an already lexical var" warnings.
2026-03-11 22:50:32 -04:00
Henrik Lissner
73693a8a2d
perf(vertico): reduce project-root calls by one
If operating on files that aren't in a project, marginalia suffers two
potentially expensive `projectile-project-root` calls per
file/directory. This reduces it to one.
2026-03-11 22:50:32 -04:00
Henrik Lissner
0bbece56f1
refactor(vertico): marginalia-command-category: hoist to callers
Emit the metadata at the source.
2026-03-11 22:50:32 -04:00
Henrik Lissner
379d7d7147
fix(yaml): +tree-sitter: use 0.7.2 grammar when ABI==15
0.7.0 (where the old commit pointed to) is for ABI==14.
2026-03-11 04:22:47 -04:00
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
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
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
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
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