Commit graph

512 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
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
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
5a9c459ac8
bump: :completion
abo-abo/swiper@ec9421340c -> abo-abo/swiper@ee79f68215
company-mode/company-mode@4ff89f7369 -> company-mode/company-mode@fad9f207e0
emacs-helm/helm@cbbaff3c5a -> emacs-helm/helm@9d8de1e081
minad/cape@f8682a046a -> minad/cape@2b2a5c5bef
minad/consult-flycheck@e3fca5fadf -> minad/consult-flycheck@9fe96c4b75
minad/consult@4ca98db03d -> minad/consult@d1d39d5215
minad/corfu@c9ce729635 -> minad/corfu@abfe0003d7
minad/marginalia@fc0cee1151 -> minad/marginalia@0d08fbea0f
minad/vertico@a736595843 -> minad/vertico@93f15873d7
oantolin/orderless@fb338f771f -> oantolin/orderless@3a2a32181f
tumashu/ivy-posframe@660c773f55 -> tumashu/ivy-posframe@ede7b2121f
tumashu/vertico-posframe@d89a70743c -> tumashu/vertico-posframe@d6e06a4f1b

Close: #8683
Co-authored-by: gagbo <gagbo@users.noreply.github.com>
2026-02-15 21:58:21 -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
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
a5dd7c7632
bump: :completion
abo-abo/swiper@2257a9d051 -> abo-abo/swiper@ec9421340c
bbatsov/helm-projectile@41bc1c1973 -> bbatsov/helm-projectile@0ffb6b5f09
company-mode/company-mode@ca045bc544 -> company-mode/company-mode@4ff89f7369
emacs-helm/helm@c8d147be4d -> emacs-helm/helm@b12d7fad58
karthink/consult-dir@4532b8d215 -> karthink/consult-dir@1497b46d6f
minad/cape@97641dcd1e -> minad/cape@11abd6d122
minad/consult-flycheck@398a85b5df -> minad/consult-flycheck@062e223bc6
minad/consult@c8bbb3f1e2 -> minad/consult@d0370320d9
minad/corfu@6b1ceef882 -> minad/corfu@9d5fc8f489
minad/marginalia@30e6813c81 -> minad/marginalia@d38041df2c
minad/vertico@718f8584d0 -> minad/vertico@63a43e1380
oantolin/embark@1371a1e33e -> oantolin/embark@7b3b2fa239
oantolin/orderless@31812d9252 -> oantolin/orderless@26a3848946
rainstormstudio/nerd-icons-completion@5625ef374d -> rainstormstudio/nerd-icons-completion@d09ea987ed
seagle0128/nerd-icons-ivy-rich@0cedc990e9 -> seagle0128/nerd-icons-ivy-rich@7714b11941
tumashu/vertico-posframe@c5a8b5f72a -> tumashu/vertico-posframe@d89a70743c
2025-12-01 01:14:54 -05:00
Henrik Lissner
058cb20a12
bump: :completion
LuigiPiucco/nerd-icons-corfu@55b17ee20a -> LuigiPiucco/nerd-icons-corfu@f821e953b1
bbatsov/helm-projectile@041076e35a -> bbatsov/helm-projectile@41bc1c1973
company-mode/company-mode@1924eabfa7 -> company-mode/company-mode@ca045bc544
emacs-helm/helm-descbinds@c12bc85ef3 -> emacs-helm/helm-descbinds@0aff44bada
emacs-helm/helm@90cd6ad68c -> emacs-helm/helm@c8d147be4d
minad/cape@c9191ee9e1 -> minad/cape@97641dcd1e
minad/consult-flycheck@8067363ee3 -> minad/consult-flycheck@398a85b5df
minad/consult@7146596b56 -> minad/consult@c8bbb3f1e2
minad/corfu@53aa6c85be -> minad/corfu@6b1ceef882
minad/marginalia@0e7097051c -> minad/marginalia@30e6813c81
minad/vertico@b43b594bb3 -> minad/vertico@718f8584d0
oantolin/embark@2941f2ea36 -> oantolin/embark@1371a1e33e
oantolin/orderless@254f241248 -> oantolin/orderless@31812d9252
radian-software/prescient.el@7dd5b53886 -> radian-software/prescient.el@87e2d2f2dd
rainstormstudio/nerd-icons-completion@e15e21a263 -> rainstormstudio/nerd-icons-completion@5625ef374d
seagle0128/nerd-icons-ivy-rich@83c7b60595 -> seagle0128/nerd-icons-ivy-rich@0cedc990e9
2025-08-27 16:30:47 +02:00
Henrik Lissner
5cb34fa151
refactor!: remove highlight-numbers
BREAKING CHANGE: Numerics will no longer be syntax highlighted in major
modes that don't already have their own (or provided by tree-sitter). No
substitute will be provided because it's trivial for the user to install
themselves.

Ref: https://github.com/orgs/doomemacs/projects/5/views/1?pane=issue&itemId=117610783
2025-06-29 18:53:40 +02:00
Henrik Lissner
ce51b4e8bb
bump: :completion
abo-abo/swiper@2529a23f9f -> abo-abo/swiper@2257a9d051
company-mode/company-mode@41f07c7d40 -> company-mode/company-mode@1924eabfa7
elken/yasnippet-capf@de6446732b -> elken/yasnippet-capf@f53c42a996
emacs-helm/helm@5a222a8a6b -> emacs-helm/helm@90cd6ad68c
minad/cape@5546a2db8e -> minad/cape@c9191ee9e1
minad/consult-flycheck@77d3e790a3 -> minad/consult-flycheck@8067363ee3
minad/consult@ee64a2a299 -> minad/consult@7146596b56
minad/corfu@2e05fe8244 -> minad/corfu@53aa6c85be
minad/marginalia@2ff4d690f7 -> minad/marginalia@0e7097051c
minad/vertico@304be874be -> minad/vertico@b43b594bb3
oantolin/embark@923d0ec52e -> oantolin/embark@2941f2ea36
rainstormstudio/nerd-icons-completion@8e5b995eb2 -> rainstormstudio/nerd-icons-completion@e15e21a263
2025-06-12 17:16:49 +02:00
Henrik Lissner
7088257f2e
bump: *
Alexander-Miller/treemacs@96a808f067 -> Alexander-Miller/treemacs@820b09db10
FStarLang/fstar-mode.el@36ffb46259 -> FStarLang/fstar-mode.el@3bbfe93abd
JuliaEditorSupport/julia-emacs@0f4d74f904 -> JuliaEditorSupport/julia-emacs@5c940c4ba3
ProofGeneral/PG@85cde55a86 -> ProofGeneral/PG@af2e7b9a4e
Silex/docker.el@3bea08f1d2 -> Silex/docker.el@464105ed8b
Wilfred/helpful@6a4d5e0760 -> Wilfred/helpful@03756fa6ad
abo-abo/swiper@e33b028ed4 -> abo-abo/swiper@2529a23f9f
agda/agda@49a12eab7f -> agda/agda@900bdaa335
alexluigit/dirvish@ecb7c42e20 -> alexluigit/dirvish@e8ec5765da
ardumont/markdown-toc@d2fb4cbd95 -> ardumont/markdown-toc@1b0c5ae7f3
bastibe/org-journal@cf72173233 -> bastibe/org-journal@e581bf5530
clojure-emacs/cider@fdfa7c2200 -> clojure-emacs/cider@12f10a6f4b
clojure-emacs/clojure-mode@eabe29b076 -> clojure-emacs/clojure-mode@b766094aea
company-mode/company-mode@8d599ebc8a -> company-mode/company-mode@41f07c7d40
creichert/ido-vertical-mode.el@b1659e967d -> creichert/ido-vertical-mode.el@35c521789b
dgutov/diff-hl@7da881a957 -> dgutov/diff-hl@aa667ac58a
dimitri/switch-window@61e425e703 -> dimitri/switch-window@8f771b571a
doomelpa/code-review@eeffdd9e20 -> doomelpa/code-review@fba8fe3343
editorconfig/editorconfig-emacs@1a9942746c -> editorconfig/editorconfig-emacs@d2beb3ec2e
ema2159/centaur-tabs@7704f2017c -> ema2159/centaur-tabs@a790dc8fb6
emacs-circe/circe@d0e531bd2a -> emacs-circe/circe@e5e64d549f
emacs-citar/citar-org-roam@ff38add0aa -> emacs-citar/citar-org-roam@9750cfbbf3
emacs-ess/ESS@56f355acbd -> emacs-ess/ESS@d19efaae12
emacs-helm/helm-org@22d60952f8 -> emacs-helm/helm-org@4744ca7f8b
emacs-helm/helm@f948dc4464 -> emacs-helm/helm@5a222a8a6b
emacs-lsp/dap-mode@56e92dd86b -> emacs-lsp/dap-mode@b977566657
emacs-lsp/emacs-ccls@28c7930c89 -> emacs-lsp/emacs-ccls@5636ee6c50
emacs-lsp/helm-lsp@cf4ea6fb42 -> emacs-lsp/helm-lsp@54926afd10
emacs-lsp/lsp-dart@2170823139 -> emacs-lsp/lsp-dart@34e2a1191f
emacs-lsp/lsp-haskell@cd0f5d251c -> emacs-lsp/lsp-haskell@081d5115ce
emacs-lsp/lsp-ivy@bdc730a209 -> emacs-lsp/lsp-ivy@3ee14a24bb
emacs-lsp/lsp-java@6cfff8761e -> emacs-lsp/lsp-java@21c89243ad
emacs-lsp/lsp-metals@345b4fa80e -> emacs-lsp/lsp-metals@e1d9d04f3b
emacs-lsp/lsp-mode@7c0df125c1 -> emacs-lsp/lsp-mode@54251da4ff
emacs-lsp/lsp-pyright@b4cee81af4 -> emacs-lsp/lsp-pyright@73377169be
emacs-lsp/lsp-sourcekit@3bd9750e7e -> emacs-lsp/lsp-sourcekit@1fb230109e
emacs-lsp/lsp-treemacs@312dee2b3a -> emacs-lsp/lsp-treemacs@3e5550f278
emacs-lsp/lsp-ui@09d4080642 -> emacs-lsp/lsp-ui@a0dde8b52b
emacs-php/composer.el@6c7e19256f -> emacs-php/composer.el@eba6b953a4
emacs-php/php-mode@5b6cc1c068 -> emacs-php/php-mode@462b62248f
emacs-php/psysh.el@ae15a36301 -> emacs-php/psysh.el@223bf55975
emacs-rustic/rustic@22a5ef8bfd -> emacs-rustic/rustic@29f912c750
emacs-straight/auctex@6fb366064c -> emacs-straight/auctex@f58a2b972b
emacs-straight/dape@c7a1f1abdb -> emacs-straight/dape@588a907c87
emacs-straight/eglot@6a9e0c76b9 -> emacs-straight/eglot@928c216af5
emacs-straight/org-mode@74dde3abae -> emacs-straight/org-mode@79781bac69
emacs-straight/project@369ac661c8 -> emacs-straight/project@27c6b04914
emacs-straight/sml-mode@021233f60a -> emacs-straight/sml-mode@c33659fd9b
emacs-straight/use-package@d79bac4574 -> emacs-straight/use-package@bbfe01bdf1
emacs-straight/vundo@c32481ab48 -> emacs-straight/vundo@5a666b34e4
emacs-tree-sitter/elisp-tree-sitter@8516c9977e -> emacs-tree-sitter/elisp-tree-sitter@12f92ef399
emacs-tree-sitter/tree-sitter-langs@2ff446b4b8 -> emacs-tree-sitter/tree-sitter-langs@4eb4989d1a
emacsmirror/org-contrib@8d14a600a2 -> emacsmirror/org-contrib@f1f6b6ec81
emacsorphanage/dart-mode@6229941ec5 -> emacsorphanage/dart-mode@f82ff05230
emacsorphanage/ox-pandoc@34e6ea97b5 -> emacsorphanage/ox-pandoc@5766c70b6d
emacsorphanage/quickrun@4b6df453f8 -> emacsorphanage/quickrun@a5c9a5e8c6
ericdallo/hover.el@4ca0638a14 -> ericdallo/hover.el@1b380fa395
erlang/otp@740af6bae5 -> erlang/otp@b9d3ec017d
flycheck/flycheck@b9db1379dc -> flycheck/flycheck@16b536b031
fsharp/emacs-fsharp-mode@bf7a11e1ba -> fsharp/emacs-fsharp-mode@8d08f05788
godotengine/emacs-gdscript-mode@3f3739dd88 -> godotengine/emacs-gdscript-mode@5136be407a
greghendershott/racket-mode@88d82e249e -> greghendershott/racket-mode@c4cc7c160b
hakimel/reveal.js@dfc5690c6d -> hakimel/reveal.js@eb95b14531
haskell/haskell-mode@be2639592f -> haskell/haskell-mode@e9c3567393
https://git.notmuchmail.org/git/notmuch@dfc800c26e7b -> https://git.notmuchmail.org/git/notmuch@d8ebc9cf80b6
https://git.savannah.gnu.org/git/emms.git@8713a0ee985c -> https://git.savannah.gnu.org/git/emms.git@abb4f614dae6
idris-hackers/idris-mode@09de86a8f0 -> idris-hackers/idris-mode@ccf32ed0b5
jcollard/elm-mode@699841865e -> jcollard/elm-mode@90b72cd2c9
jdtsmith/indent-bars@fa293f98ab -> jdtsmith/indent-bars@ea74161b46
jdtsmith/ultra-scroll@b72c507f67 -> jdtsmith/ultra-scroll@f2e4fba601
jimhourihan/glsl-mode@c5f2c2e7ed -> jimhourihan/glsl-mode@86e6bb6cf2
joaotavora/sly@c48defcf58 -> joaotavora/sly@ce17a568ef
jrblevin/markdown-mode@d2d960bec1 -> jrblevin/markdown-mode@90ad4af79a
jschaf/powershell.el@38727f1cda -> jschaf/powershell.el@9efa1b4d0a
magit/magit@bf58615a03 -> magit/magit@531e7ca619
minad/cape@f72ebcaeff -> minad/cape@5546a2db8e
minad/consult-flycheck@3bc2141daf -> minad/consult-flycheck@77d3e790a3
minad/consult@f94d557807 -> minad/consult@ee64a2a299
minad/corfu@061d926d0f -> minad/corfu@2e05fe8244
minad/goggles@d71e85ff8d -> minad/goggles@6141d31c51
minad/marginalia@c51fd9e4d4 -> minad/marginalia@2ff4d690f7
minad/org-modern@3cc432dc99 -> minad/org-modern@6158d3d007
minad/vertico@e0bb699ebf -> minad/vertico@304be874be
mohkale/consult-yasnippet@834d39acfe -> mohkale/consult-yasnippet@a3482dfbdc
msnoigrs/ox-rst@b4ba5c7e95 -> msnoigrs/ox-rst@b73eff187e
oantolin/embark@d5df0eff18 -> oantolin/embark@923d0ec52e
ocaml/dune@a46193e167 -> ocaml/dune@422986440e
ocaml/merlin@2eeb63d002 -> ocaml/merlin@e4c66857ad
oer/org-re-reveal@53e9be7d89 -> oer/org-re-reveal@89ed240450
polymode/poly-R@8024e852cf -> polymode/poly-R@fee0b6e999
purcell/package-lint@43012b41ac -> purcell/package-lint@2dc48e5fb9
purescript-emacs/purescript-mode@a3d6ca4ba5 -> purescript-emacs/purescript-mode@8c4736759a
pythonic-emacs/pyenv-mode@7faed57eb7 -> pythonic-emacs/pyenv-mode@ba1a8c7bd7
rust-lang/rust-mode@efd830806c -> rust-lang/rust-mode@25d91cff28
seagle0128/doom-modeline@1708db2d35 -> seagle0128/doom-modeline@a85cb28da8
seagle0128/grip-mode@e90e3b47d8 -> seagle0128/grip-mode@96a927dce6
seagle0128/nerd-icons-ivy-rich@5006f91b49 -> seagle0128/nerd-icons-ivy-rich@83c7b60595
sebasmonia/sharper@496e90e337 -> sebasmonia/sharper@5049795848
swift-emacs/swift-mode@2c0b2b72dc -> swift-emacs/swift-mode@e30b9d46e0
szermatt/emacs-bash-completion@a4c8fbc902 -> szermatt/emacs-bash-completion@d0637428fd
technomancy/fennel-mode@811f39de12 -> technomancy/fennel-mode@df8e83d6e2
wanderlust/wanderlust@6a0605415d -> wanderlust/wanderlust@d6dcbad228
weijiangan/flycheck-golangci-lint@424ba1b3a1 -> weijiangan/flycheck-golangci-lint@14bf143ea7
ziglang/zig-mode@4ad4edf759 -> ziglang/zig-mode@c46d024733
2025-05-02 14:58:40 -04:00
Henrik Lissner
bff2ccd974
refactor: remove vestigial hydra configs
Hydra support was removed in b08c2c7.

Amend: bc948c38c2
Amend: b08c2c745f
2025-04-23 04:02:51 -04:00
Henrik Lissner
760a92e952
fix(ivy): counsel-projectile-switch-project: empty list on first run
This is due to `counsel-projectile-switch-project` not initializing the
known projects list before consulting the `projectile-known-projects`
variable (or at the very least, calling the function of the same name,
rather than referencing the variable directly). By changing
counsel-projectile-remove-current-project, it now does.
2025-04-02 04:13:50 -04:00
Henrik Lissner
951df2dbee
bump: :completion
LuigiPiucco/nerd-icons-corfu@13166345b2 -> LuigiPiucco/nerd-icons-corfu@55b17ee20a
abo-abo/swiper@db61f55bc2 -> abo-abo/swiper@e33b028ed4
emacs-helm/helm@c0b70dbc26 -> emacs-helm/helm@f948dc4464
minad/cape@2e86b6deed -> minad/cape@f72ebcaeff
minad/consult@d557305b73 -> minad/consult@f94d557807
minad/corfu@c302b0526a -> minad/corfu@061d926d0f
minad/marginalia@a527fb03b7 -> minad/marginalia@c51fd9e4d4
minad/vertico@026a81a9c8 -> minad/vertico@e0bb699ebf
oantolin/orderless@c7cb04499d -> oantolin/orderless@254f241248
2025-04-01 15:50:03 -04:00
Henrik Lissner
dac6e05b87
refactor: deprecate appendq!, prependq!, & delq! macros
In the interest of slimming down Doom's core (as we near v3), I've
deprecated these macros. They doesn't really need to exist. Sure, the
alternatives aren't as ergonomic or elegant, but they're good enough
that we don't need these trivial wrappers. Their local uses have been
refactored out as well.
2025-03-25 14:16:56 -04:00
Henrik Lissner
c95015d706
bump: :completion
LuigiPiucco/nerd-icons-corfu@0a932e89cf -> LuigiPiucco/nerd-icons-corfu@13166345b2
abo-abo/swiper@abb9e1e564 -> abo-abo/swiper@db61f55bc2
company-mode/company-mode@5bb6f6d3d4 -> company-mode/company-mode@8d599ebc8a
elken/yasnippet-capf@4c2e33d70c -> elken/yasnippet-capf@de6446732b
emacs-helm/helm-org@9b7d5d4fd1 -> emacs-helm/helm-org@22d60952f8
emacs-helm/helm@cf557ff745 -> emacs-helm/helm@c0b70dbc26
karthink/consult-dir@6cb46395df -> karthink/consult-dir@4532b8d215
minad/cape@50fdb70807 -> minad/cape@2e86b6deed
minad/consult@ce38dd0377 -> minad/consult@d557305b73
minad/vertico@ac82acf177 -> minad/vertico@026a81a9c8
seagle0128/nerd-icons-ivy-rich@86a896bb48 -> seagle0128/nerd-icons-ivy-rich@5006f91b49
2025-03-13 01:08:08 -04:00
Henrik Lissner
ffc5c60721
bump: :completion
LuigiPiucco/nerd-icons-corfu@7077bb76fe -> LuigiPiucco/nerd-icons-corfu@0a932e89cf
abo-abo/swiper@8dc02d5b72 -> abo-abo/swiper@abb9e1e564
bbatsov/helm-projectile@e2e38825c9 -> bbatsov/helm-projectile@041076e35a
company-mode/company-mode@e1d331a64e -> company-mode/company-mode@5bb6f6d3d4
emacs-helm/helm-descbinds@ca03f02da4 -> emacs-helm/helm-descbinds@c12bc85ef3
emacs-helm/helm-org@c80e53315c -> emacs-helm/helm-org@9b7d5d4fd1
emacs-helm/helm@06e0cf0148 -> emacs-helm/helm@cf557ff745
karthink/consult-dir@15891383f3 -> karthink/consult-dir@6cb46395df
mhayashi1120/Emacs-wgrep@208b9d01cf -> mhayashi1120/Emacs-wgrep@49f09ab9b7
minad/cape@9110956a51 -> minad/cape@50fdb70807
minad/consult-flycheck@3b999ae983 -> minad/consult-flycheck@3bc2141daf
minad/consult@0c3f53916e -> minad/consult@ce38dd0377
minad/corfu@0a616caedf -> minad/corfu@c302b0526a
minad/marginalia@50a51c69f0 -> minad/marginalia@a527fb03b7
minad/vertico@c682ef50e6 -> minad/vertico@ac82acf177
oantolin/embark@19a13e344e -> oantolin/embark@d5df0eff18
oantolin/orderless@49d1fdfb80 -> oantolin/orderless@c7cb04499d
radian-software/prescient.el@2b8a8b4122 -> radian-software/prescient.el@7dd5b53886
rainstormstudio/nerd-icons-completion@426a1d7c29 -> rainstormstudio/nerd-icons-completion@8e5b995eb2
tumashu/ivy-posframe@533a8e368f -> tumashu/ivy-posframe@660c773f55
tumashu/vertico-posframe@2e0e09e5bb -> tumashu/vertico-posframe@c5a8b5f72a

Fix: #8282
2025-02-24 23:40:00 -05:00
Henrik Lissner
0a715cc3f2
refactor: (if|when)-let -> (if|when)-let*
With the former macros' future in the air (and likely to be targeted in
future, potentially breaking changes), I'll deal with this now than have
it bite me later.

Ref: https://lists.gnu.org/archive/html/emacs-devel/2024-10/msg00637.html
2025-01-08 19:33:37 -05:00
Henrik Lissner
448bc5cae2
refactor: use negated flags
Ref: 7a806521a92c
2024-10-20 02:41:50 -04:00
Henrik Lissner
15904349cf
refactor!: module API
BREAKING CHANGE: This backports some architectural choices from v3.0.
This changes Doom's module API, renaming some functions and removing
others, in order to facilitate some new features, prepare to move Doom's
modules into separate repos, and make way for two, much larger breaking
commits coming in the next few days.

This commit won't break anything for users unless they're tinkering with
Doom's internals/using its `doom-module-*` API directly. I am avoiding
broader backwards incompatibilities until the 3.0 release.

What's new:

- Negated flags. (modulep! :editor evil -everywhere) will return non-nil
  if :editor evil is active without its +everywhere flag.
- `modulep!` now takes multiple flags to simplify AND checks. E.g.

    (and (modulep! +foo)
         (modulep! +bar)
         (not (modulep! +baz)))

  Can now be expressed with:

    (modulep! +foo +bar -baz)
- Adds pcase matchers for `doom-module-context` and `doom-module`
  structs, making the following destructuring binds possible:

    (pcase-dolist ((doom-module group name flags features)
                   (hash-table-values doom-modules))
      ...)

  This will be used more in v3.0.
- Adds file cookie support to module init.el and config.el files.

Here's a summary of breaking changes made in this commit:

- `doom-module-context` was changed from a vector to a struct (record).
- `doom-modules` is now a table of `doom-module` structs, rather than
  free-form plists.
- The following macros have been renamed:
  - `doom-context-with` -> `with-doom-context`
  - `doom-module-context-with` -> `with-doom-module`
- The followings functions have been replaced/removed:
  - `doom-module-context`+`doom-module-context-get` -> `doom-module`
  - `doom-module-set` -> `doom-module--put`
  - `doom-module-p` -> `doom-module-active-p`
  - `doom-module-context-key` (is now a getter with the same name)
  - `doom-module-put` (removed)
  - `doom-module--context-field` (removed)
- The signatures for these functions have changed:
  - `doom-module-get CATEGORY &optional MODULE PROP` ->
    `doom-module-get (GROUP . MODULE) &optional PROP`
  - `doom-module-locate-path CATEGORY &optional MODULE FILE` ->
    `doom-module-locate-path (GROUP . MODULE) &optional FILE`
  - `doom-module-expand-path CATEGORY MODULE &optional FILE` ->
    `doom-module-expand-path (GROUP . MODULE) &optional FILE`
- Adds the following functions
  - `doom-module-exists-p`
  - `doom-module-key`
  - `doom-module->context`
  - `doom-module<-context`
- Removes the following variables
  - `doom-module--empty-context`

This commit results in a little redundancy, which I will address in
parts 2/3 and/or v3.0.
2024-10-20 02:41:42 -04:00
Henrik Lissner
037b018cdd
feat: add .doommodule files
These optional dotfiles indicate the root of a module or module
group (:lang), and will later contain module metadata. They will also
serve as an alternative to packages.el and doctor.el, and will aide the
parts of the v3.0 module API concerned with resolving the current module
from a path (`doom-module-from-path`), which currently rely too heavily
on parsing path strings.

For now, however, they're simply placeholders.
2024-09-14 20:47:39 -04:00
Henrik Lissner
1ec4bac75e
bump: :completion
abo-abo/swiper@2a25a6fb5b -> abo-abo/swiper@8dc02d5b72
company-mode/company-mode@1a0fc12a9c -> company-mode/company-mode@e1d331a64e
elken/yasnippet-capf@744dedb783 -> elken/yasnippet-capf@4c2e33d70c
emacs-helm/helm@f8949afd9b -> emacs-helm/helm@06e0cf0148
minad/cape@f61da109a9 -> minad/cape@9110956a51
minad/consult-flycheck@754f5497d8 -> minad/consult-flycheck@3b999ae983
minad/consult@fe48522800 -> minad/consult@0c3f53916e
minad/corfu@cdc3e13ad3 -> minad/corfu@921dd7c97e
minad/marginalia@da72da4622 -> minad/marginalia@50a51c69f0
minad/vertico@ba650a7ab9 -> minad/vertico@c682ef50e6
oantolin/embark@9c166c4b96 -> oantolin/embark@19a13e344e
oantolin/orderless@53f5204ad3 -> oantolin/orderless@49d1fdfb80
radian-software/prescient.el@0765418e43 -> radian-software/prescient.el@2b8a8b4122
rainstormstudio/nerd-icons-completion@c2db8557a3 -> rainstormstudio/nerd-icons-completion@426a1d7c29

Close: #7977
Co-authored-by: LemonBreezes <LemonBreezes@users.noreply.github.com>
2024-09-01 14:47:09 -04:00
Henrik Lissner
6671adc687
refactor!: move helpful from :core to :lang emacs-lisp
BREAKING CHANGE: This moves helpful.el out of core into :lang
emacs-lisp. Since most (all) people have this module enabled, this
shouldn't make a difference for most people, but if you're one of the
few that don't have :lang emacs-lisp enabled, Doom will revert to using
Emacs' built-in help.el and describe-* commands.

Others can also disable helpful with (package! helpful :disable t) if
they prefer Emacs' built-in help system, which wasn't possible before,
because it was a core package.

This was done as part of an ongoing effort to slim down Doom's core in
preparation for v3.
2024-08-30 02:26:41 -04:00
Henrik Lissner
4fcf332749
refactor: generalize fd/ripgrep vars & options
I intend to eventually replace projectile with project.el, so these
doom-projectile-* variables need to be generalized, starting with the
fd/ripgrep executable paths.

ALong with that, this refactors Doom's projectile-generic-command to
lean more on built-in fd support in projectile, where possible (fewer
wheels reinvented).

Ref: doomemacs/core#1
2024-08-09 21:03:37 -04:00
Henrik Lissner
4ca92f3dd0
module: deprecate :completion ivy
Ivy is practically Vertico's spiritual successor, and its module is one
of the more higher-maintenance modules in our library. Rather than
maintain two spiritually identicaly modules, I'd rather focus on the
better one.

I won't make any moves to actually remove the Ivy module until well
after the v3 release, when `doom sync` and `doom upgrade` have rollback
functionality, and those commands are better equipped to warn uses about
module deprecations (and we have our new Github Discussions board set
up, so we have a centralized place to announce them).
2024-07-29 02:01:27 -04:00
Henrik Lissner
234cc27b77
fix(ivy): +counsel-rg-suppress-error-code-a
Corrects the signature of process-exit-status.

Amend: 6ef86098cb
2024-07-10 04:02:21 -04:00
Henrik Lissner
6ef86098cb
fix(ivy): counsel-rg dying on non-zero exit code
Monkey-patches counsel-rg to ignore non-zero exit codes. This may have
other side effects, but despite it still producing workable resutls, the
command will discard all its results if there are any errors while
scanning a directory.

Ref: abo-abo/swiper#2339
Fix: #3038
2024-07-10 03:55:03 -04:00
Henrik Lissner
481753bd5e
refactor!: remove pcre2el package
BREAKING CHANGE: This removes the pcre2el package, which Doom was using
solely for one function to escape PCREs. In the interest of thinning out
Doom's core, I've hoisted a simpler version of the function into Doom's
stdlib so I can remove the dependency.
2024-07-01 18:11:34 -04:00
Henrik Lissner
cffb3838ec
bump: :completion
abo-abo/swiper@1f88e54990 -> abo-abo/swiper@2a25a6fb5b
company-mode/company-mode@b0a522ac5b -> company-mode/company-mode@1a0fc12a9c
elken/yasnippet-capf@9043f82751 -> elken/yasnippet-capf@744dedb783
emacs-helm/helm@28f62344fe -> emacs-helm/helm@f8949afd9b
karthink/consult-dir@3f5f4b71eb -> karthink/consult-dir@15891383f3
minad/cape@e01e443023 -> minad/cape@f61da109a9
minad/consult@c87b0bf06d -> minad/consult@fe48522800
minad/corfu@35cd5a0f3c -> minad/corfu@cdc3e13ad3
minad/marginalia@3275d1f85c -> minad/marginalia@da72da4622
minad/vertico@68e51fda55 -> minad/vertico@ba650a7ab9
oantolin/embark@d3c9d1b4c8 -> oantolin/embark@9c166c4b96
oantolin/orderless@ac4aeb66f3 -> oantolin/orderless@53f5204ad3
radian-software/prescient.el@c39bf07c56 -> radian-software/prescient.el@0765418e43
seagle0128/nerd-icons-ivy-rich@7197614b27 -> seagle0128/nerd-icons-ivy-rich@86a896bb48

Close: #7862
Fix: #7863
2024-06-20 18:28:12 -04:00
Henrik Lissner
52599ab536
bump: :completion
abo-abo/swiper@8c30f4cab5 -> abo-abo/swiper@1f88e54990
company-mode/company-mode@02903bd708 -> company-mode/company-mode@b0a522ac5b
emacs-helm/helm-descbinds@b725159823 -> emacs-helm/helm-descbinds@ca03f02da4
emacs-helm/helm@f34ea6b702 -> emacs-helm/helm@28f62344fe
minad/cape@a397a0c92d -> minad/cape@e01e443023
minad/consult@b48ff6bf05 -> minad/consult@c87b0bf06d
minad/corfu@c1e7b6190b -> minad/corfu@35cd5a0f3c
minad/marginalia@f6fe86b989 -> minad/marginalia@3275d1f85c
minad/vertico@68cbd47589 -> minad/vertico@68e51fda55
oantolin/embark@c93abadc82 -> oantolin/embark@d3c9d1b4c8
oantolin/orderless@dc7a781acf -> oantolin/orderless@ac4aeb66f3
radian-software/prescient.el@4b875be52e -> radian-software/prescient.el@c39bf07c56
sebastiencs/company-box@b6f53e26ad -> sebastiencs/company-box@c4f2e243fb
2024-04-03 17:21:16 -04:00
Henrik Lissner
4cb06578fc
bump: :completion
DarwinAwardWinner/ido-completing-read-plus@49e7967ea8 -> DarwinAwardWinner/ido-completing-read-plus@5995b4605b
company-mode/company-mode@ed46a616ab -> company-mode/company-mode@02903bd708
emacs-helm/helm@96aad023cb -> emacs-helm/helm@f34ea6b702
lewang/flx@7b44a5abb2 -> lewang/flx@4b1346eb9a
mhayashi1120/Emacs-wgrep@3132abd375 -> mhayashi1120/Emacs-wgrep@208b9d01cf
minad/consult@e4d3712356 -> minad/consult@9463146ba7
minad/vertico@cf8b2abf52 -> minad/vertico@4a7da56b02
oantolin/embark@33c392cf3c -> oantolin/embark@60139db879
radian-software/prescient.el@707c25c947 -> radian-software/prescient.el@4b875be52e
tumashu/vertico-posframe@bc0e67cbbb -> tumashu/vertico-posframe@2e0e09e5bb
2024-02-05 17:21:21 -05:00
Henrik Lissner
659f7bfc71
refactor!: deprecate IS-* OS constants
BREAKING CHANGE: This deprecates the IS-(MAC|WINDOWS|LINUX|BSD) family
of global constants in favor of a native `featurep` check:

  IS-MAC      ->  (featurep :system 'macos)
  IS-WINDOWS  ->  (featurep :system 'windows)
  IS-LINUX    ->  (featurep :system 'linux)
  IS-BSD      ->  (featurep :system 'bsd)

The constants will stick around until the v3 release so folks can still
use it -- and there are still some modules that use it, but I'll phase
those uses out gradually.

Fix: #7479
2024-02-04 17:54:29 -05:00
45mm
82b6bd3159 docs(ivy): mention lowered ivy-sort-max-size
Depending on the system, this can cause sorting to be disabled long
before the performance hit would be felt, and it's not obvious that this
is the reason.
2024-02-02 03:25:25 -05:00
Henrik Lissner
fde4289f5c
bump: :completion company helm ivy
Sodel-the-Vociferous/helm-company@6eb5c2d730 -> Sodel-the-Vociferous/helm-company@4622b82353
abo-abo/swiper@9d630d800e -> abo-abo/swiper@8c30f4cab5
bbatsov/helm-projectile@35a2111d00 -> bbatsov/helm-projectile@e2e38825c9
company-mode/company-mode@9b21604d19 -> company-mode/company-mode@ed46a616ab
emacs-helm/helm-org@d67186d3a6 -> emacs-helm/helm-org@c80e53315c
emacs-helm/helm@dfd6403947 -> emacs-helm/helm@96aad023cb
emacs-jp/helm-c-yasnippet@e214eec8b2 -> emacs-jp/helm-c-yasnippet@c5880e740d
radian-software/prescient.el@d7cc55dad4 -> radian-software/prescient.el@707c25c947
tumashu/helm-posframe@87461b52b6 -> tumashu/helm-posframe@0b6bb016f0
yyoncho/helm-icons@53349000b1 -> yyoncho/helm-icons@0d113719ee
2023-11-29 23:14:34 -05:00
Henrik Lissner
88bb045388
docs(*): replace all-the-icons with nerd-icons
Also colorizes the leading icon in notices.
2023-09-16 20:19:11 +02:00
Henrik Lissner
c5d4f818d1
fix(ivy): void-function nerd-icons-ivy-rich-mode error
Amend: 9787022b83
2023-09-14 01:11:05 +02:00
Henrik Lissner
aa49edc216
docs(helm,ivy,vertico,ido): add incompatibility checks
These modules tend to conflict if more than one of them are enabled at
once. More systematic compatibility tests are in the works, but for now
this will do.
2023-09-14 01:04:08 +02:00
Ellis Kenyő
9787022b83
refactor!: replace all-the-icons with nerd-icons
BREAKING CHANGE: This commit replaces all-the-icons with nerd-fonts. Any
all-the-icons-* function calls or variable references in your private
config will break and should be replaced with their nerd-icons-*
equivalent. That said, Doom will continue to install all-the-icons for
a while, so feel free to load it if you don't want to fully commit to
the change yet.

This change is happening because nerd-icon has wider support for GUI and
TUI Emacs; has a larger, more consistent selection of symbols; plus unicode
coverage.

Fix: #7368
Close: #6675
Close: #7364
2023-09-14 01:03:55 +02:00
Henrik Lissner
f427c8a30e
tweak: scroll-conservatively = 10
Forces the window to recenter if the cursor moves >=10 lines off-screen.
This makes some of our manual recentering elsewhere unnecessary.
2023-09-11 23:53:36 +02:00
Henrik Lissner
a82163cb99
bump: :completion ivy
DarwinAwardWinner/amx@37f9c7ae55 -> DarwinAwardWinner/amx@5b3aa1aae8
Yevgnen/ivy-rich@600b8183ed -> Yevgnen/ivy-rich@aff9b6bd53
abo-abo/swiper@b8be4913a6 -> abo-abo/swiper@9d630d800e
mhayashi1120/Emacs-wgrep@edf768732a -> mhayashi1120/Emacs-wgrep@3132abd375
radian-software/prescient.el@35cf5d3613 -> radian-software/prescient.el@d7cc55dad4

Close: #7173
Co-authored-by: notevenaperson <notevenaperson@users.noreply.github.com>
2023-07-22 17:57:25 +02:00
Henrik Lissner
5c7294357f
bump: :completion
PythonNut/helm-flx@27dd9e3ce3 -> PythonNut/helm-flx@5220099e69
abo-abo/swiper@764e0d35ba -> abo-abo/swiper@b8be4913a6
bbatsov/helm-projectile@58123f14c3 -> bbatsov/helm-projectile@35a2111d00
company-mode/company-mode@1005540b1c -> company-mode/company-mode@2ca3e29abf
emacs-helm/helm@1003539c2e -> emacs-helm/helm@dfd6403947
lewang/flx@e3b3f0533e -> lewang/flx@7b44a5abb2
lewang/flx@e3b3f0533e -> lewang/flx@7b44a5abb2
mhayashi1120/Emacs-wgrep@f9687c28bb -> mhayashi1120/Emacs-wgrep@edf768732a
minad/consult-flycheck@51b1b48e8d -> minad/consult-flycheck@c371996c57
minad/consult@b22a7de62e -> minad/consult@ffaaf6da90
minad/marginalia@6d48ed54be -> minad/marginalia@ccf573e214
minad/vertico@f303790546 -> minad/vertico@6f22ff1298
oantolin/embark@4882b395ce -> oantolin/embark@5497a19eef
oantolin/orderless@ae849b3d9f -> oantolin/orderless@d09aab3795
radian-software/prescient.el@c5295a9eec -> radian-software/prescient.el@35cf5d3613
sebastiencs/company-box@f9cbbc7df8 -> sebastiencs/company-box@766546b266
tumashu/posframe@c91d4d53fa -> tumashu/posframe@06b939cfb0
tumashu/vertico-posframe@790f74b49d -> tumashu/vertico-posframe@f57b170b43
2023-02-20 19:00:45 -05:00
TEC
5ac2a5258b docs: change link format 2022-10-05 01:01:19 +02:00
theschmocker
de2f538fd6 fix(ivy): ensure flx is loaded with (ivy +fuzzy)
Overriding `ivy--flx-featurep` here would always prevent flx from being
loaded and enabled---even if it were `t`---because ivy `require`s it in
`ivy--flx-featurep`'s initvalue. So instead, this sets the variable if
and only if it should be disabled. Because flx isn't installed when
+prescient is enabled, I've included that in the condition for disabling
ivy--flx-featurep as well

Fix: https://github.com/doomemacs/doomemacs/issues/6034
Amend: bae7ab0d8d
2022-09-16 01:26:36 +02:00
Henrik Lissner
ad6a3d0f33
refactor: deprecate featurep! for modulep!
featurep! will be renamed modulep! in the future, so it's been
deprecated. They have identical interfaces, and can be replaced without
issue.

featurep! was never quite the right name for this macro. It implied that
it had some connection to featurep, which it doesn't (only that it was
similar in purpose; still, Doom modules are not features). To undo such
implications and be consistent with its namespace (and since we're
heading into a storm of breaking changes with the v3 release anyway),
now was the best opportunity to begin the transition.
2022-08-14 20:43:35 +02:00
Henrik Lissner
1abcf913aa
revert: fix(docs): set mode in file-local vars
emacs-straight/org-mode@e22b4eb7aa introduced a breaking change that
made it impossible to rely on .dir-locals.el to change org-mode buffers
in $EMACSDIR to doom-docs-org-mode (without infinite recursion), so we
used file-local variables in 7e400ab.

emacs-straight/org-mode@215de6176b reverted that change, so we can use
.dir-locals.el again, and this is my preference, since it requires less
boilerplate across our hundreds of org files.

Ref: emacs-straight/org-mode@215de6176b
Ref: emacs-straight/org-mode@e22b4eb7aa
Revert: 7e400abdc0
2022-08-07 19:08:07 +02:00
Henrik Lissner
1f8bf7accb
merge: rewrite-docs
I've omitted docs/*.org from this merge, as there is still work left to
do there, but I am pushing the module docs early so folks can benefit
from the new docs sooner.
2022-08-03 03:27:50 +02:00
Henrik Lissner
7e400abdc0
fix(docs): set mode in file-local vars
Due to emacs-straight/org-mode@e22b4eb, a replacement major mode (for
org-mode) can no longer be specified from .dir-locals.el, as it spirals
into infinite recursion. Therefore, a mode: line is needed in all Doom
docs.

Ref: emacs-straight/org-mode@e22b4eb7aa
2022-08-03 02:46:33 +02:00
Henrik Lissner
1255315bfc
refactor(docs): replace nav menus with virtual one
Now that the header is dynamically generated (when doom-docs-mode is
active), a literal header is unnecessary.
2022-08-02 19:37:07 +02:00
Henrik Lissner
e77a45bc22
docs: use lowercase keywords
As per Org's new defaults, which we're adopting elsewhere, so may as
well adopt it here.
2022-08-02 16:23:43 +02:00
Henrik Lissner
77e9932966
bump: :core
Fuco1/smartparens@37f77bf2e2 -> Fuco1/smartparens@ec15aaa748
Wilfred/helpful@67cdd1030b -> Wilfred/helpful@209971ba9f
bbatsov/projectile@f3468e8d20 -> bbatsov/projectile@4d6da873ae
domtronn/all-the-icons.el@65c496d3d1 -> domtronn/all-the-icons.el@ca1ef30004
emacs-straight/project@4fe1eec803 -> emacs-straight/project@c52ec93689
jscheid/dtrt-indent@66fc30af02 -> jscheid/dtrt-indent@57f4072fa8
justbur/emacs-which-key@1217db8c63 -> justbur/emacs-which-key@1ab1d0cc88
raxod502/straight.el@e2de88ea0e -> radian-software/straight.el@0e204d418d

Includes a fix for #5207 (see radian-software/straight.el#955), which
occasionally caused arrayp errors when installing/upgrading packages.

Fix: #5207
Ref: radian-software/straight.el#955
2022-06-17 18:21:23 +02:00