Commit graph

1673 commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
62cd3bd176
fix(indent-guides): inhibit in special buffers
And removes redundant rule (now covered by the `doom-temp-buffer-p`
check).

Also fixes an issue where org-agenda loses fontification due to
indent-bars-mode (#8681).

Fix: #8681
2026-02-15 00:53:05 -05:00
Henrik Lissner
29bc91bca5
fix(popup): remap quit-window to +popup/close
Ensures popups closed via `quit-window` are remembered (for later
restoration, if possible).

Fix: #8650
Close: #8653
2026-02-13 23:56:05 -05:00
Henrik Lissner
b468dae066
fix(indent-guides): activate after local vars are applied
Ensures indent-bars respects indent settings changed by local vars (or
editorconfig).

Fix: #8543
Close: #8656
2026-02-13 23:56:05 -05:00
Henrik Lissner
d29d1f5757
bump: :ui
ema2159/centaur-tabs@5ad22d9a6a -> ema2159/centaur-tabs@5ec350da6c
jdtsmith/indent-bars@d32cdba5b1 -> jdtsmith/indent-bars@6e6bb5484e
jdtsmith/ultra-scroll@79151faf97 -> jdtsmith/ultra-scroll@08758c6772
rolandwalker/unicode-fonts@6245b97d8d -> rolandwalker/unicode-fonts@d4a0648a22
seagle0128/doom-modeline@9ac20488c5 -> seagle0128/doom-modeline@0c91e47a0c
2026-02-10 18:15:24 -05:00
Prashant Vithani
9c0bd03a2d bump: :ui vc-gutter
dgutov/diff-hl@e79aa49ad3 -> dgutov/diff-hl@3eefe68941
2026-02-09 22:49:09 -05:00
Prashant Vithani
3fbea2b47b fix(vc-gutter): bitmap size for cons line-spacing
The `line-spacing` variable can be set to a cons cell of the form
`(ABOVE . BELOW)`. The old logic did not account for this.

This is corrected by summing the `car` and `cdr` of `line-spacing` when
it is a cons cell to get the total vertical spacing. This logic is
adopted from `total-line-spacing` introduced with the added support of
[cons line-spacing in emacs 31][1]

[1]: e8f26d554b
2026-02-09 22:49:09 -05:00
Henrik Lissner
6f40ad55f5
docs: discourage after! and use-package! use
There's little reason for users to use these macros in their private
configs over plain ol' `with-eval-after-load` and `use-package`, unless
they're writing their own modules.

It's my fault for signal boosting them in documentation and whenever I'm
asked for help, because beginners now believe they are somehow
required for Doom to work correctly (there are guides out there
telling beginners that migrating to Doom involves replacing all
instances of `with-eval-after-load` and `use-package` in their
pre-existing configs with `after!` and `use-package!` -- which was never
true).

What's more, I plan to replace `use-package`, internally, so the
`use-package!` macro won't exist for much longer.
2026-02-09 04:29:47 -05:00
Henrik Lissner
1a943aea69
refactor: cut down on pseudo-features
Way back, I added these three pseudo-features:

  (featurep 'dynamic-modules)
  (featurep 'harfbuzz)
  (featurep 'jansson)

Why? Because some build features have pseudo features (like
`tty-child-frames`, `pgtk`, and `threads`), but others don't, and I
wanted more consistency around build feature detection. Years later, I
realized it wasn't used much internally and only ended up confusing
readers who didn't realize these were Doom's additions and not built
into Emacs. Emacs' idiosyncrasies may not be nice or elegant, but
they're less surprising to elisp beginners and veterans alike.
2026-01-23 20:26:28 -05:00
Henrik Lissner
728615c8b0
fix(vc-gutter): disable flydiff on macos by default
Newer versions of MacOS seem to struggle with the async processes
diff-hl frequently spawns when `diff-hl-flydiff-mode` is active, so the
mode will be disabled by default in MacOS environments.

Fix: #8554
2026-01-23 18:03:24 -05:00
Henrik Lissner
d9711a9094
bump: :ui
doomemacs/themes@ad9b1bd1c2 -> doomemacs/themes@53645a905d
ema2159/centaur-tabs@7e8fe031a4 -> ema2159/centaur-tabs@5ad22d9a6a
jdtsmith/ultra-scroll@d230b9308c -> jdtsmith/ultra-scroll@79151faf97
seagle0128/doom-modeline@d074b922ae -> seagle0128/doom-modeline@9ac20488c5

Fixes cyclical face-inheritance errors on Emacs 31+ and calfw support.

Ref: doomemacs/themes@53645a905d
Ref: doomemacs/themes@a0ec3c37fb
2026-01-18 03:12:59 -05:00
Henrik Lissner
b32c2f3c75
tweak(modeline): use simpler checker segment 2026-01-18 03:12:05 -05:00
Henrik Lissner
2afab01530
fix(vc-gutter): type error in indirect buffers
Due to `buffer-file-name` being nil.

Fix: #8629
2026-01-18 03:11:56 -05:00
Henrik Lissner
617fa3a7f9
bump: :ui
Alexander-Miller/treemacs@05333cc23c -> Alexander-Miller/treemacs@2ab5a3c89f
doomemacs/themes@376cf4bdd7 -> doomemacs/themes@ad9b1bd1c2
ema2159/centaur-tabs@7013a9a2dd -> ema2159/centaur-tabs@7e8fe031a4
emacs-lsp/lsp-treemacs@3e5550f278 -> emacs-lsp/lsp-treemacs@49df7292c5
hlissner/emacs-solaire-mode@c9334666bd -> hlissner/emacs-solaire-mode@e44f11a1ff
jdtsmith/indent-bars@c3384ec7ff -> jdtsmith/indent-bars@d32cdba5b1
jdtsmith/ultra-scroll@2031782694 -> jdtsmith/ultra-scroll@d230b9308c
minad/goggles@6f87a70013 -> minad/goggles@81adff62ca
seagle0128/doom-modeline@85dc5f033e -> seagle0128/doom-modeline@d074b922ae
tarsius/hl-todo@94893087e0 -> tarsius/hl-todo@9540fc4140
2026-01-06 02:00:17 -05:00
Henrik Lissner
be7ac25a84
fix: file-name-concat paths instead of concat
Treat paths as paths, rather than strings. Removes the requirements that
doom-*-dir variables end in slash (though I'll continue doing so as a
convention). Also moves a lot of cache/data into the current profile's
cache/data directories. Shouldn't actually affect anything for folks not
using Doom's profile system (yet).

Fix: #8616
2025-12-30 22:59:10 -05:00
Henrik Lissner
1bc0a752cb
docs(vc-gutter): mention GNU variant of diff
Ref: #8171
2025-12-30 22:50:30 -05:00
Henrik Lissner
f5d06a81d4
fix(vc-gutter): debouncer on ESC/hot reload of buffer diff
Amend: 92f99d64dd
2025-12-23 02:51:37 -05:00
Henrik Lissner
53c211c75b
fix(vc-gutter): "autosave file in local temp dir" tramp prompts
Tramp users get bombarded with these prompts because diff-hl exploits
`make-auto-save-file-name` to generate paths to its temp files *and*
writes them to `temporary-file-directory`, which
`tramp-handle-make-auto-save-file-name` doesn't like.
2025-12-18 16:55:50 -05:00
Henrik Lissner
70dfafdd57
bump: :ui vc-gutter
dgutov/diff-hl@0fe1bc0fd8 -> dgutov/diff-hl@e79aa49ad3
2025-12-18 16:52:48 -05:00
Henrik Lissner
0d0561f9fe
perf(vc-gutter): no async and increase flydiff delay on macos
MacOS especially seems to struggle with either async process management
or low timer delays, and diff-hl tends to spin up many async `git`
processes frequently, potentially causing freezes or intense typing
delays for Mac users.

Ref: #8554
2025-12-17 02:17:33 -05:00
Henrik Lissner
92f99d64dd
fix(vc-gutter): update diff-hl on ESC or switching window/frame
The former debouncer wasn't actually doing anything, meaning
diff-hl-update was triggered way more often than it needed to be.
2025-12-17 02:17:32 -05:00
Henrik Lissner
ae48bc323e
revert: indent-bars
jdtsmith/indent-bars@01856e1962 -> jdtsmith/indent-bars@01856e1962

Partially reverts the indent-bars bump in 2e16934 due to breaking
incompatibilities (with other plugins that use face-remapping, like
solaire-mode or user-configured remappings) caused by the new
face-remapping facilities introduced in
jdtsmith/indent-bars@40bb86f47b. Until it's resolved upstream, we
revert to the last known working commit.

Amend: 2e16934f02
Ref: jdtsmith/indent-bars@40bb86f47b
2025-12-03 00:03:36 -05:00
Henrik Lissner
2e16934f02
bump: :ui
jdtsmith/indent-bars@c3384ec7ff -> jdtsmith/indent-bars@01856e1962
jdtsmith/ultra-scroll@8c92a17743 -> jdtsmith/ultra-scroll@2031782694
seagle0128/doom-modeline@20de9feaa0 -> seagle0128/doom-modeline@85dc5f033e
2025-12-01 01:14:55 -05:00
Kisaragi Hiu
44d7c8bf37 perf(unicode): drastically reduce initial startup time
font-utils.el disable its cache on X and Windows so every check for the
existence of a font recomputes the font list, which takes a
non-negligible amount of time, at least on X. This default is reasonable
as stated in the docstring of font-utils-use-memory-cache:

> Disabled on X11 and MS Windows by default, because font-family-list
> often gives truncated results before Emacs is fully initialized.

This is, however, unreasonable from unicode-fonts, where calls to check
the existence of fonts happens in a loop; during the loop, Emacs is not
going to suddenly become fully initialized, , so each call is
actually recomputing the same font list over and over again.

Enabling the font-utils memory cache, at least for the duration of
unicode-fonts-setup, thus drastically reduces the initial startup time,
or the startup time when the pcache store is reset for some reason.
2025-12-01 00:44:00 -05:00
Henrik Lissner
bbaa5f49f4
bump: :ui
Alexander-Miller/treemacs@5fa8419950 -> Alexander-Miller/treemacs@05333cc23c
doomemacs/themes@3152c60bb5 -> doomemacs/themes@376cf4bdd7
jdtsmith/indent-bars@aa07a3d812 -> jdtsmith/indent-bars@c3384ec7ff
minad/goggles@791140df23 -> minad/goggles@6f87a70013
rainstormstudio/treemacs-nerd-icons@eac9fb5d92 -> rainstormstudio/treemacs-nerd-icons@0c5ddcb978
seagle0128/doom-modeline@7182b612d9 -> seagle0128/doom-modeline@20de9feaa0
tarsius/hl-todo@862d903e72 -> tarsius/hl-todo@94893087e0
2025-11-04 22:11:27 -05:00
Yusef Aslam
5f0ebdf2e0
docs(minimap): update & expand 2025-11-04 21:45:57 -05:00
Frestein ☁️
2ac5787cc9
nit(ligatures): fix filename in comment header 2025-11-04 21:45:19 -05:00
Henrik Lissner
64802ae654
nit(ligatures): packages.el: add missing comment header 2025-09-15 18:53:31 -04:00
Henrik Lissner
b77e2f91d2
bump: :ui :emacs :config
ema2159/centaur-tabs@a790dc8fb6 -> ema2159/centaur-tabs@7013a9a2dd
emacs-straight/bind-key@aa22c8c3c7 -> emacs-straight/bind-key@ec9d0505fe
emacs-straight/use-package@bbfe01bdf1 -> emacs-straight/use-package@29552cf3af
emacs-straight/vundo@5a666b34e4 -> emacs-straight/vundo@f57937d7f5
emacsmirror/undo-fu-session@d90d42ddba -> emacsmirror/undo-fu-session@99d1b5099f
emacsmirror/undo-fu@399cc12f90 -> emacsmirror/undo-fu@545e29459e
magit/git-modes@f99010bbeb -> magit/git-modes@7063d66857
purcell/ibuffer-vc@da9872e5f2 -> purcell/ibuffer-vc@c516e72ea4
seagle0128/doom-modeline@cb703c217e -> seagle0128/doom-modeline@7182b612d9
tarsius/hl-todo@b8be53068b -> tarsius/hl-todo@862d903e72
2025-09-02 16:16:03 +02:00
Henrik Lissner
c664e1edef
fix(indent-guides): in org src blocks
This can break syntax highighting for some treesit-enabled major modes
in org src blocks.
2025-09-01 20:53:57 +02:00
Henrik Lissner
b2e4e8e27c
revert: persp-mode
Bad-ptr/persp-mode.el@82680795b3 -> Bad-ptr/persp-mode.el@40e9993a97

persp-mode introduced some breaking API changes in a recent refactoring,
which have caused issues that are difficult to opt out of, even by
repinning it to an older commit. Until persp-mode sorts things out, I
simply revert it back to a point before all the changes.

Revert: c64ca09ed2
Revert: 751ac6134b
Revert: 6d5e004b87
Amend: a1121acc94
Fix: #8455
Close: #8474
Ref: #8470
2025-09-01 14:33:53 +02:00
Henrik Lissner
5cda3ed25a
merge: branch 'feature/treesit'
Fix: #7742
Fix: #7623
Fix: #7593
2025-08-31 14:55:37 +02:00
Jonas Jelten
b1826a0c64 bump: :ui workspaces
Bad-ptr/persp-mode.el@f146ddccaf -> Bad-ptr/persp-mode.el@82680795b3

this fixes a nasty bug where new eglot workspaces corrupt the previous
one. symptoms of this can be your definition jump source buffer being
read-only and renamed to:
`*EGLOT (jump-destination-project/(your-lang-mode)) stderr*`
2025-08-30 00:49:00 +02:00
Henrik Lissner
4154ad885f
revert: diff-hl
dgutov/diff-hl@39f076efa8 -> dgutov/diff-hl@0fe1bc0fd8

diff-hl introduced changes that require Emacs 31+ that can't be
trivially advised out or worked around. Until it's resolved upstream,
I've reverted diff-hl to one commit behind dgutov/diff-hl@7a89c85b89.

Fix: #8464
Ref: dgutov/diff-hl@7a89c85b89
Amend: a1121acc94
2025-08-27 15:42:25 +02:00
Henrik Lissner
751ac6134b
fix(treemacs): persp-mode compatibility
The signature of `persp-activated-functions` changed upstream in
persp-mode (bumped in a1121ac), but treemacs hasn't updated its usage of
it yet.

Ref: #8454
Amend: a1121acc94
2025-08-11 02:27:38 +02:00
Henrik Lissner
c64ca09ed2
fix(workspaces): arity error creating workspaces
The signature of persp-window-state-get-function changed upstream in
persp-mode (bumped in a1121ac).

Fix: #8454
Amend: a1121acc94
2025-08-11 01:22:41 +02:00
Henrik Lissner
a1121acc94
bump: :ui
Alexander-Miller/treemacs@abd27c86df -> Alexander-Miller/treemacs@5fa8419950
Bad-ptr/persp-mode.el@40e9993a97 -> Bad-ptr/persp-mode.el@f146ddccaf
dgutov/diff-hl@9b032018fd -> dgutov/diff-hl@39f076efa8
doomemacs/themes@729ad03463 -> doomemacs/themes@3152c60bb5
jaypei/emacs-neotree@4a4cd85761 -> jaypei/emacs-neotree@3178805a09
jdtsmith/indent-bars@87729d685d -> jdtsmith/indent-bars@aa07a3d812
jdtsmith/ultra-scroll@b447044b9d -> jdtsmith/ultra-scroll@8c92a17743
minad/goggles@5176114e99 -> minad/goggles@791140df23
seagle0128/doom-modeline@a85cb28da8 -> seagle0128/doom-modeline@cb703c217e
tarsius/hl-todo@7ed8bbcadb -> tarsius/hl-todo@b8be53068b

Includes some refactors to the workspaces and vc-gutter modules to adapt
to upstream changes in persp-mode and diff-hl.
2025-08-10 15:34:44 +02:00