Commit graph

20592 commits

Author SHA1 Message Date
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
f859850130
nit: fix indent for hl-line config 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
e2bdb43bf6
fix(cli): doom emacs: forward $HOME using environment
Rather than hardcoding the envvar assignment into the shell command,
whose syntax isn't portable (see #8697).

Fix: #8697
2026-03-01 18:10:42 -05:00
Henrik Lissner
d9014ec4c5
fix: copy initial-value for load-path, exec-path, process-environment 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
5311d4592d
fix: minor typo in cli restart logs 2026-03-01 18:10:42 -05:00
Henrik Lissner
59f9e1f5bb
docs(lib): revise doom-log & doom-run-hooks docstrings 2026-03-01 18:10:42 -05:00
Henrik Lissner
304030fdf8
refactor(lib): deprecate setq!
`setq!` was introduced to fix `setopt` pulling in packages. Now that
`setopt` was advised (in fad44ca228) to fix the issue at the source,
this macro is no longer necessary.

Ref: fad44ca228
2026-03-01 18:10:40 -05:00
Henrik Lissner
1c330eadce
refactor(lib): deprecate doom-load-envvars-file
In v3, the envvar file will be an elisp script, which can be `load`ed
directly, so a specialized loader will no longer be necessary.
2026-02-28 05:15:52 -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
c2c1416634
revert: tweak: disable electric-quote-mode by default
Seems electric-quote-mode was already disabled by fault, but I was
troubleshooting a package that was globally enabling it in its
autoloads, so this setting wasn't needed.

Revert: 8e6d555cc4
2026-02-25 14:31:48 -05:00
Henrik Lissner
8308ac1e95
tweak: levels for certain doom logs
To reduce unnecessary debug spam when debug-mode is on.
2026-02-24 23:25:16 -05:00
Henrik Lissner
88f9bf95d6
fix: wrong lexical var in setopt--set advice
And remove no-op on debug mode, so issues can be debugged.

Amend: fad44ca228
2026-02-24 23:14:51 -05:00
Henrik Lissner
165caf677b
fix: void-variable custom-load-symbol error
custom-load-symbol may not be defined the first time setopt--set is
executed.

Fix: #8690
Amend: fad44ca228
2026-02-24 22:16:05 -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
8e6d555cc4
tweak: disable electric-quote-mode by default
electric-quote-mode invisibly introduces difficult-to-differentiate
utf-8 characters into buffers, which seems strangely imposing as a
default behavior. I make it opt-in instead.
2026-02-24 02:42:08 -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
69f0df289b
fix(lib): profiles: ensure site-lisp load-path entries are last
If the site-lisp load-path entries different between the non-interactive
and interactive sessions, there could be redundant paths prepended to
load-path, causing load order issues (#8607). This ensures they are
appended, instead.

Fix: #8607
2026-02-22 01:40:54 -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
Henrik Lissner
8ee87d89bd
bump: jsonrpc
emacs-straight/jsonrpc@HEAD -> emacs-straight/jsonrpc@2bf7f24e39

Lock jsonrpc to a commit that's compatible with Eglot.

Ref: doomemacs/community#76
2026-02-18 03:46:58 -05:00
Henrik Lissner
74d1b871b7
fix: silence straight package.el warning (part 2)
Amend: d2acb6b9c6
Fix: #8568
2026-02-18 00:33:01 -05:00
Henrik Lissner
fad44ca228
refactor(lib): advise setopt
The `setq!` macro was created to solve my issue with `setopt` (that it
can eagerly load packages; imposing more side-effects than necessary).
Instead of having a separate, wrapper macro to fix the matter, I now
advise `setopt` directly to fix the problem, so that users don't have
another macro to keep track of.  `setq!` will eventually be deprecated,
then removed in v3.
2026-02-18 00:31:19 -05:00
Henrik Lissner
3ad1ef4f96
fix(popup): force quit-window in popups
If a popup's rule contains :quit nil or :quit 'other, +popup/close will
do nothing, which isn't an appropriate substitute for quit-window, so
force it.

Amend: 29bc91bca5
Fix: #8650
2026-02-16 03:26:04 -05:00
Henrik Lissner
28e52b8c89
refactor(cli): doom gc: remove redundant logic 2026-02-15 21:58:25 -05:00
Henrik Lissner
4cdad1005a
dev: redesign .gitignore
Be more selective about what gets ignored, and permit arbitrary *.el
files in case the user is using $EMACSDIR as their $DOOMDIR.
2026-02-15 21:58:25 -05:00
Henrik Lissner
a5a56cd171
revert: evil-numbers
juliapath/evil-numbers@616aff9e5c -> juliapath/evil-numbers@e7adac70a0

Original issue was not resolved.

Ref: b002bf3f8e
Amend: a0d6aac43f
2026-02-15 21:58:25 -05:00
Henrik Lissner
290003ae7a
fix: loading site-lisp in interactive sessions
1b8ea91 accidentally inhibited site-lisp in all sessions.

Amend: 1b8ea914de
Fix: #8682
2026-02-15 21:58:25 -05:00