Commit graph

13601 commits

Author SHA1 Message Date
Henrik Lissner
b04599f374
tweak(dashboard): reduce banner's bottom padding by 1 2026-05-08 15:35:00 -04:00
Henrik Lissner
a02f985ea6
fix(dashboard): uncentered first line on small displays
If the window or user's resolution was too small (or their font was too
big), the text properties of the first (spacing) line of the dashboard
would bleed into the second (typically the first line of the ASCII
banner), uncentering it.

Fix: #8769
2026-05-08 15:33:11 -04:00
Henrik Lissner
a4697ebc3c
fix(eval): keybinds to replaced command +eval/send-region-to-repl
Command was replaced with `+eval/buffer-or-region-in-repl`, but was
still bound to `<leader> c s`.

Fix: #8768
Amend: 04ef44d9c8
2026-05-08 11:46:52 -04:00
Henrik Lissner
410a9bf397
fix(racket): void-variable flycheck-disabled-checkers error
Fix: #8767
2026-05-08 03:37:28 -04:00
Henrik Lissner
ff439b1f43
fix(evil): don't byte-compile evil-numbers for now
The closure in which `incf` is called upstream is byte-compiled at build
time, long before our `incf` alias is defined. Injecting the alias into
the child process Straight builds packages in is non-trivial and moving
to a fork (nicholas-stout/evil-numbers) that could suddenly be deleted
isn't ideal, so I'll simply avoid byte-compiling this package for the
time being.

Fix: #8765
Amend: 541207196f
2026-05-08 00:29:53 -04:00
Henrik Lissner
dfd506bbba
fix(ligatures): doctor.el: comment header & lexical-binding 2026-05-07 01:17:39 -04:00
Henrik Lissner
a5a6c409fe
bump: polymode
polymode/polymode@14b1fd8d2a -> polymode/polymode@8cb72fa5dc

- Unfreezes polymode because #8702 was resolved upstream.

Ref: #8702
2026-05-07 01:17:08 -04:00
Henrik Lissner
b52818be56
refactor: modules: drop Emacs 28 support (part 2)
Removing 27-28 compatibility code from modules, since 28.x support was
dropped in 9fbae87.

Ref: 9fbae872c5
2026-05-07 01:17:08 -04:00
Henrik Lissner
541207196f
fix(evil): evil-numbers: void-function incf error
Upstream is using `incf` before it was introduced in Emacs 31 (or maybe
they were trying to use the old, deprecated cl.el macro).

Fix: #8765
Ref: juliapath/evil-numbers#30
Ref: juliapath/evil-numbers#31
2026-05-06 22:40:56 -04:00
Henrik Lissner
a174a69259
fix(evil): evil-collection: ensure defaults are eval'ed early
And doesn't wait until after evil is loaded to set them.
2026-05-05 17:52:41 -04:00
Henrik Lissner
9c68603315
fix(evil): evil-collection-repl-submit-state = insert
Formerly, RET would submit input in comint and REPL buffers, but
upstream introduced `evil-collection-repl-submit-state` recently,
changing RET to insert a literal newline and requiring users switch to
normal mode to submit it. This is unexpected and unintuitive
behavior (S-RET has always been the "insert literal newline" key in
these contexts) so revert to the old behavior.

Ref: emacs-evil/evil-collection@14c09ec65c
Ref: emacs-evil/evil-collection@e02e2e373f
Amend: 2cfa2ff00b
2026-05-05 17:51:47 -04:00
Tim Ruffing
469693e8eb
refactor(dashboard): hide cursor in evil correctly
Amend: cf59eedd9c
2026-05-05 17:28:34 -04:00
Henrik Lissner
2d24c07cdd
feat(syntax): use upstream flymake
Juggling feature deltas between Emacs versions is a hassle.
2026-05-05 17:27:36 -04:00
Henrik Lissner
d73d9555b6
tweak(tty): enable xterm-mouse-mode conditionally
In Emacs 31, `xterm-mouse-mode` is automatically enabled in supported
terminals (with real checks), so defer to it there.
2026-05-05 17:27:36 -04:00
Henrik Lissner
bead7a7748
refactor!: backport mode-line-invisible-mode & drop hide-mode-line
BREAKING CHANGE: If you are using the `hide-mode-line` package, use
`mode-line-invisible-mode` instead. This mode was introduced in Emacs
31, but has been backported since it is so widely used in Doom (and so
we can drop another core dependency).

There is no replacement for `global-hide-mode-line`, however. You'll
have to install `hide-mode-line` if you were using it.
2026-05-05 17:27:36 -04:00
Henrik Lissner
d0602da823
fix(emms): match emms' :files from upstream recipe
Amend: bd143318e6
2026-05-05 00:20:04 -04:00
Henrik Lissner
0ffacdeab4
bump: :lang
agda/agda@47ca03cba3 -> agda/agda@92b09bb0a7
babashka/neil@74cc79e4b9 -> babashka/neil@f2b74b61c9
bbatsov/fsharp-ts-mode@3817559f05 -> bbatsov/fsharp-ts-mode@415dcaf2cb
bricka/emacs-kotlin-ts-mode@136d8d1fd3 -> bricka/emacs-kotlin-ts-mode@588764613a
brownts/ada-ts-mode@52e0fd1160 -> brownts/ada-ts-mode@e3b094ed13
brownts/gpr-ts-mode@b8aeca2c8f -> brownts/gpr-ts-mode@cd10a0963b
clojure-emacs/cider@5d003b579c -> clojure-emacs/cider@e71110778a
clojure-emacs/clj-refactor.el@30a9d27160 -> clojure-emacs/clj-refactor.el@39c9688c79
emacs-ess/ESS@4e112590d1 -> emacs-ess/ESS@bb84ad5717
emacs-gnuplot/gnuplot@1a1481109b -> emacs-gnuplot/gnuplot@ef08de5191
emacs-rustic/rustic@c5e83bc6e4 -> emacs-rustic/rustic@b6c7e09514
emacs-straight/org-mode@2ef390bfaf -> emacs-straight/org-mode@2f69593861
erlang/emacs-erlang-ts@7680c827ad -> erlang/emacs-erlang-ts@4e9095be49
erlang/otp@92c53535cd -> erlang/otp@ad8027027f
gcv/julia-snail@95905e9d6b -> gcv/julia-snail@3c0beddcd2
gggion/let-completion.el@001f10de44 -> gggion/let-completion.el@460cdd5a73
godotengine/emacs-gdscript-mode@dd44f1dfa5 -> godotengine/emacs-gdscript-mode@f6ee6891e1
hakimel/reveal.js@b5b37a5fa8 -> hakimel/reveal.js@76dc900659
jorgenschaefer/emacs-buttercup@cc5a2ab7c7 -> jorgenschaefer/emacs-buttercup@2b1537af18
jrblevin/markdown-mode@182640f79c -> jrblevin/markdown-mode@1f72cefa6a
ledger/ledger-mode@9ab399186f -> ledger/ledger-mode@ecea91279c
minad/org-modern@713beb72ae -> minad/org-modern@df2e0a54f6
nix-community/nix-ts-mode@3198317121 -> nix-community/nix-ts-mode@5091618878
org-roam/org-roam@7cd906b6f8 -> org-roam/org-roam@903bd4ec56
purcell/package-lint@1c37329703 -> purcell/package-lint@7e2dfcf990
rust-lang/rust-mode@668069ad8b -> rust-lang/rust-mode@06cf088100
sogaiu/janet-ts-mode@aba932a1a1 -> sogaiu/janet-ts-mode@f818754b06
technomancy/fennel-mode@9c1dac3c39 -> technomancy/fennel-mode@c963b4701e
yoshiki/yaml-mode@d91f878729 -> yoshiki/yaml-mode@96ef020110
2026-05-04 23:58:28 -04:00
Henrik Lissner
ee7e6d60b1
fix(format): properly forward from lsp to chained formatters 2026-05-04 19:06:02 -04:00
Henrik Lissner
2b482746af
refactor(org): remove org-modern-hide-stars fix
Upstream handles this now.
2026-05-04 19:06:02 -04:00
Henrik Lissner
9fbae872c5
refactor!: modules: drop Emacs 28 support
BREAKING CHANGE: This formally drops Emacs 28 support for Doom's
modules (Doom core will continue to support 27+, however). A number of
packages upstream are dropping support for 28, 31 is due to release
within the next few weeks, and tree-sitter support is a hopeless mess on
28, so I'll drop support now. Some compatibility code has been removed;
the rest will trickle in after v3.

Upgrade Emacs, folks!
2026-05-04 19:04:17 -04:00
Henrik Lissner
2cfa2ff00b
bump: :editor
emacs-evil/evil-collection@4ad1646964 -> emacs-evil/evil-collection@5c79c9e09c
emacsorphanage/god-mode@e6eef24dbf -> emacsorphanage/god-mode@d965515cd8
https://github.com/emacs-tree-sitter/treesit-fold@d70c5f7240a8 -> https://github.com/emacs-tree-sitter/treesit-fold@e6b215b8f25f
magnars/multiple-cursors.el@ddd677091a -> magnars/multiple-cursors.el@94b8b07a4b
radian-software/apheleia@e6e5d5523d -> radian-software/apheleia@fa5d35ea43
2026-05-04 18:39:33 -04:00
Henrik Lissner
5eaf12158a
bump: :completion
abo-abo/swiper@ee79f68215 -> abo-abo/swiper@0d02f5063d
company-mode/company-mode@42d3897308 -> company-mode/company-mode@7a636925bf
creichert/ido-vertical-mode.el@35c521789b -> creichert/ido-vertical-mode.el@58ad6d8b64
emacs-helm/helm@9d8de1e081 -> emacs-helm/helm@3cd5097285
minad/cape@2b2a5c5bef -> minad/cape@9a93d13e22
minad/consult-flycheck@9fe96c4b75 -> minad/consult-flycheck@16fa53d2cc
minad/consult@d1d39d5215 -> minad/consult@8ffa37d7cb
minad/corfu@abfe0003d7 -> minad/corfu@80b3e0264b
minad/marginalia@142e4da1bd -> minad/marginalia@8d87d2aedc
minad/vertico@93f15873d7 -> minad/vertico@9e09fdddd6
oantolin/embark@e0238889b1 -> oantolin/embark@ec5dd14755
oantolin/orderless@3a2a32181f -> oantolin/orderless@a5e960f5a9
rainstormstudio/nerd-icons-completion@d09ea987ed -> rainstormstudio/nerd-icons-completion@45b585d972
2026-05-04 18:39:33 -04:00
Henrik Lissner
db26d6f57d
bump: :checkers
alexmurray/flycheck-posframe@19896b922c -> alexmurray/flycheck-posframe@aeccb14e90
d12frosted/flyspell-correct@a5cc88cdee -> d12frosted/flyspell-correct@c6dfb9bebb
emacsmirror/spell-fu@ab256835ea -> emacsmirror/spell-fu@9468605126
flycheck/flycheck@5c24d1b732 -> flycheck/flycheck@0e5eb8300d
2026-05-04 18:39:33 -04:00
Henrik Lissner
bd143318e6
bump: :term :os :input :config :app
7696122/evil-terminal-cursor-changer@2358f3e27d -> 7696122/evil-terminal-cursor-changer@9ed4a7dc86
akermu/emacs-libvterm@a01a2894a1 -> akermu/emacs-libvterm@54c29d14bc
emacs-circe/circe@f717332348 -> emacs-circe/circe@37dd6a8f21
emacs-elfeed/elfeed@bbb3cac27b -> emacs-elfeed/elfeed@aad8d96818
emacs-straight/bind-key@e9ead409b1 -> emacs-straight/bind-key@6ff8788e34
https://git.savannah.gnu.org/git/emms.git@002a8db0913c -> emacs-straight/emms@d4ca43959f
karthink/elfeed-tube@99e55ac428 -> karthink/elfeed-tube@8e1334cfc8
kidd/org-gcal.el@0f46c08f60 -> kidd/org-gcal.el@b826356a01
kiwanami/emacs-calfw@36846cdca9 -> kiwanami/emacs-calfw@24fa167af9
merrickluo/liberime@23c0caa1bf -> merrickluo/liberime@2130baba8e
tumashu/posframe@3a80911b2f -> tumashu/posframe@fcf1757bae
2026-05-04 18:39:33 -04:00
Henrik Lissner
575975c6a6
bump: :ui
dgutov/diff-hl@b965e19e6e -> dgutov/diff-hl@7d873b2f58
jdtsmith/indent-bars@6e6bb5484e -> jdtsmith/indent-bars@f95fee11d9
jdtsmith/ultra-scroll@0a9a26071e -> jdtsmith/ultra-scroll@c6decf7754
minad/goggles@73040c4dc8 -> minad/goggles@68d9909dab
seagle0128/doom-modeline@043e8eeb0a -> seagle0128/doom-modeline@871f91fad5
tarsius/hl-todo@9540fc4140 -> tarsius/hl-todo@cdd8a5bc8d
2026-05-04 18:39:33 -04:00
Henrik Lissner
fcf9f9f3e5
bump: :tools
emacs-lsp/lsp-mode@69b08f25d3 -> emacs-lsp/lsp-mode@5d9e72816a
emacs-straight/eglot@8112395509 -> emacs-straight/eglot@63ce7e0bba
karthink/gptel@ddd4e40fa2 -> karthink/gptel@f5ad4eb812
magit/forge@69801d0da1 (0.6.4) -> magit/forge@d4eb8d1be5 (0.6.5)
magit/ghub@1fb0fba075 (5.1.0) -> magit/ghub@c438abc865 (5.2.0)
magit/transient@cd97319a85 (0.13.0) -> magit/transient@43cbef8539 (0.13.2)
svaante/dape@48b3db3c62 -> svaante/dape@dcbdffc68a
tarsius/cond-let@8bf87d45e1 (0.2.2) -> tarsius/cond-let@28d3b039a9 (1.0.0)
2026-05-04 18:38:40 -04:00
Henrik Lissner
aa670797bb
tweak(org): org-cycle-emulate-tab = nil for evil users
Otherwise TAB inserts tabs or invokes completion outside of insert mode.
2026-04-30 06:12:33 -04:00
Henrik Lissner
d42c5b9ecb
fix(snippets): suppress prompts in completion/doc popups
Otherwise the expansion of snippets for the sole purpose of preview
windows and documentation popups will trigger unexpected prompts.
2026-04-30 02:42:31 -04:00
Alejandro Blasco
6be3337b49 fix(evil): tab ex commands
`:tablast` was calling +workspace/switch-to-last, which was renamed to
+workspace/switch-to-final back in bc6c4b3.
Also added a Vim-style `:tabfirst` counterpart.

Fix: bc6c4b3
Amend: d4d78b2
2026-04-27 17:54:08 -04:00
Henrik Lissner
12e35c10da
fix(dired): void-function dirvish--find-entry error
The function isn't autoloaded upstream.

Fix: #8761
2026-04-27 07:09:04 -04:00
Nate Smith
c6dda22a81 fix(llm): autoload gptel-org commands bound at leader
SPC o l o and SPC o l O in :config default are bound to
gptel-org-set-topic and gptel-org-set-properties, which live in
gptel-org.el. Those commands carry no autoload cookies upstream, and
nothing in the llm module requires the file, so pressing either key
raises "Wrong type argument: commandp, ..." until gptel-org is
otherwise loaded.

Declare autoloads for both commands so the leader bindings resolve on
first use, matching the pattern already used for org-capture-goto-target
in config/default/+emacs-bindings.el.

Ref: karthink/gptel#1370
2026-04-26 18:47:39 -04:00
Henrik Lissner
51ad758eb8
bump: :tools
emacs-lsp/lsp-mode@4c74da7ae5 -> emacs-lsp/lsp-mode@69b08f25d3
emacs-straight/eglot@9509b7e7e1 -> emacs-straight/eglot@8112395509
jacktasia/dumb-jump@41b6b9dd44 -> jacktasia/dumb-jump@9ce4598e9c
karthink/gptel@4747ffa251 -> karthink/gptel@ddd4e40fa2
magit/forge@315e8e9a2b (v0.6.3) -> magit/forge@69801d0da1 (v0.6.4)
magit/transient@1f7039ef8d (v0.12.0) -> magit/transient@cd97319a85 (v0.13.0)
svaante/dape@1e86212784 -> svaante/dape@48b3db3c62
yoshiki/yaml-mode@d91f878729 -> yoshiki/yaml-mode@96ef020110
2026-04-26 18:45:06 -04:00
Henrik Lissner
92e815fb32
feat(dashboard): add +dashboard-anchor setting
This settings lets you horizontally and/or vertically anchor the
dashboard contents to one of the edges of the window. The default is to
center it (as it always has).

Also adds `+dashboard-insert` function to replace
`+dashboard-insert-centered` and `+dashboard-center` (which are now
deprecated).
2026-04-26 18:36:29 -04:00
Henrik Lissner
bc3c7e74f4
docs(dashboard): add & revise docstrings 2026-04-26 18:35:33 -04:00
Henrik Lissner
cf59eedd9c
fix(dashboard): hide cursor if no buttons 2026-04-26 18:35:31 -04:00
Henrik Lissner
3baa406d65
fix(org): +roam: update incremental-load list
dash and f were also incrementally loaded for magit-section in the
org-roam config.

Amend: ef7189da04
Fix: doomemacs/community#98
2026-04-24 08:32:41 -04:00
Henrik Lissner
ef7189da04
fix(magit): update incremental-load list
Magit no longer depends on dash (which depends on f.el and s.el), and
now depends on compat.el. Also doesn't seem like package.el is needed.

On the off chance the user installed the magit module without installing
any other package that depends on these packages, they'll see
file-missing errors while Doom's incremental loader loads these
packages.

Ref: magit/magit@e40e8f1994
Fix: doomemacs/community#98
2026-04-24 06:54:19 -04:00
Henrik Lissner
b42187998d
docs(evil): update list of ex commands 2026-04-24 05:44:33 -04:00
Henrik Lissner
8bfd1cb890
refactor(evil): rename :messages ex command to :msg 2026-04-24 05:44:33 -04:00
Henrik Lissner
d4d78b23ea
fix(evil): ex commands
The syntax for making certain parts of an ex command optional does not
work if those parts are in the middle of the command (they have to be at
the end), so many of these commands were partially
non-functional (`l[ine]diff` could only be invoked with `:l[ine]`).

Also renames some of these commands:

- :linediff  => :ldiff
- :k[ill]    => :kill
- :k[ill]all => :killa[ll]
- :k[ill]m   => :killm[atch]
- :k[ill]o   => :killo[ther]
- :k[ill]b   => :killb[uried]
2026-04-24 05:44:33 -04:00
Henrik Lissner
3f3bfdf273
refactor(evil): remove unused, redundant, or defunct ex commands
- The gist module was removed some time ago
- There is no merit to a :http ex command (just use `M-x httpd-start`).
- There is no merit to git ex commands (in their current form, at
  least).
- The :sw[iper] command was too niche. A more generalized command (maybe
  similar to/based on `+default/search-buffer`) would be appropriate,
  but that's for another day.
2026-04-24 05:44:33 -04:00
Henrik Lissner
502cb4e209
refactor(evil): remove +evil:read
evil-read was changed upstream to substitute filename modifiers, so :R
is redundant.

Ref: emacs-evil/evil@e7c019291b
2026-04-24 05:44:33 -04:00
Henrik Lissner
07e7b4b41e
feat(word-wrap): accept minor modes in +word-wrap-visual-modes
And instead of disabling +word-wrap in org-mode wholesale, only disable
it in the presence of `org-indent-mode` (or `markdown-indent-mode`) --
modes that use `line-prefix`/`wrap-prefix` text properties that could
conflict with `adaptive-wrap-prefix-mode` (which the word-wrap module
uses).
2026-04-24 05:44:33 -04:00
Henrik Lissner
c060cee5f4
feat(emacs-lisp): add let-completion
Augments code-completion in emacs-lisp-mode buffers to complete lexical
variables.
2026-04-24 05:44:32 -04:00
Henrik Lissner
472053fd79
tweak(evil): +evil:help
Redesigns the :h[elp] ex command to:

- Provide ex command TAB completion in the ex command line.
- Prompt for ex command if no input is given.
- No longer require ex commands be prefixed with a colon.
2026-04-24 05:44:32 -04:00
Henrik Lissner
ae70a26dee
feat(electric): continue comments on RET
This will later replace `+default-want-RET-continue-comments` in
`:config defaults` once we've fully replaced `smartparens` with
`electric-indent-mode`.

Ref: 7d0f2032ea
2026-04-24 05:43:51 -04:00
Henrik Lissner
3fd1e509d8
refactor(electric): s/+electric-indent-char-fn/+electric-indent-words-fn/
A more appropriate name that represents what the function indents on.
2026-04-23 21:24:26 -04:00
Henrik Lissner
1fba9711d2
refactor(word-wrap): general reformat and revise 2026-04-20 00:56:16 -04:00
Henrik Lissner
0359ab11bb
fix(cc): use tree-sitter-cpp@HEAD if ABI==15
v0.23.4 is for ABI==14 and ~2 years old. There are further updates.
2026-04-20 00:52:06 -04:00
Henrik Lissner
707da6f7e9
bump: :editor lispy
abo-abo/lispy@fe44efd215 -> enzuru/lispy@c42d3737c5

abo-abo/lispy hasn't been updated in 3 years. The fork is maintained and
has fixed a number of issues.

Fix: #8755
2026-04-19 05:17:33 -04:00