12933 Commits

Author SHA1 Message Date
417f3bc892 refactor!(go): remove go-eldoc & company-go
BREAKING CHANGE: This removes company and non-LSP integration from the
Go module, in order to reduce the complexity of the module, reduce
dependencies on Company, and lean more on LSP, which provides these
features with more reliability and consistency. Switch to :tools lsp and
install a Go LSP client to get these features back.
2025-04-01 17:58:13 -04:00
f9e9c27a8b module: remove :tools prodigy
This module has been deprecated for a while as it's much too trivial to
warrant being its own module, has been incomplete since its inception,
and there's no interest in maintaining, finishing, or expanding it.
2025-04-01 17:58:13 -04:00
5f04b56229 module: add :ui smooth-scroll
Normally, this would be too small to warrant its own module, but smooth
scrolling is one of those things that can tip large swaths of
fence-sitting beginners into Emacs' camp. I can't help but imagine how
many people get their impression that Emacs is "laggy" or "slow" solely
from the way it scrolls.

Don't get me wrong, there *are* good reasons to call Emacs slow, but
startup and scrolling speed are not it, yet they are easily overblown
because it's the first thing you see. I might even consider enabling
this by default, but I'll make that decision later.

Fix: #8335
2025-04-01 17:58:13 -04:00
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
8afc08a7a8 bump: :tools direnv lsp magit
emacs-lsp/lsp-mode@4cddd2d99d -> emacs-lsp/lsp-mode@7c0df125c1
emacs-straight/eglot@8711f483be -> emacs-straight/eglot@6a9e0c76b9
magit/forge@1c904090df -> magit/forge@9db4d386a1
magit/magit@28d272ce0b -> magit/magit@bf58615a03
purcell/envrc@116cb75ee1 -> purcell/envrc@4ca2166ac7

Fix: #8325
2025-04-01 15:31:54 -04:00
fc7b179e6c bump: :lang
Wilfred/helpful@5ad8a9ce57 -> Wilfred/helpful@6a4d5e0760
agda/agda@10a0ca0516 -> agda/agda@49a12eab7f
clojure-emacs/cider@a0d6169026 -> clojure-emacs/cider@fdfa7c2200
dominikh/go-mode.el@602d73e226 -> dominikh/go-mode.el@0ed3c5227e
emacs-geiser/gauche@8ff743f641 -> emacs-geiser/gauche@9eb8b35f0c
emacs-lsp/lsp-dart@7e3d342941 -> emacs-lsp/lsp-dart@2170823139
emacs-lsp/lsp-java@868600bf7f -> emacs-lsp/lsp-java@6cfff8761e
emacs-lsp/lsp-metals@567089f7f4 -> emacs-lsp/lsp-metals@345b4fa80e
emacs-lsp/lsp-sourcekit@63ff1ab638 -> emacs-lsp/lsp-sourcekit@3bd9750e7e
emacs-lsp/lsp-treemacs@fb1a07ae0a -> emacs-lsp/lsp-treemacs@312dee2b3a
emacs-rustic/rustic@fbbf0a7192 -> emacs-rustic/rustic@22a5ef8bfd
emacs-straight/auctex@53f80ba36c -> emacs-straight/auctex@6fb366064c
emacs-straight/csv-mode@6979fc18eb -> emacs-straight/csv-mode@1695ee1752
emacsorphanage/dart-mode@88b6683f43 -> emacsorphanage/dart-mode@6229941ec5
erlang/otp@64185e73b0 -> erlang/otp@740af6bae5
fsharp/emacs-fsharp-mode@677d78c4d6 -> fsharp/emacs-fsharp-mode@bf7a11e1ba
gcv/julia-snail@24f79a067b -> gcv/julia-snail@cacf52e4c8
godotengine/emacs-gdscript-mode@c3d9988984 -> godotengine/emacs-gdscript-mode@3f3739dd88
greghendershott/racket-mode@eef5e9ab2c -> greghendershott/racket-mode@88d82e249e
jrblevin/markdown-mode@ee9d6de1d2 -> jrblevin/markdown-mode@d2d960bec1
json-emacs/json-mode@77125b01c0 -> json-emacs/json-mode@466d5b5637
ledger/ledger-mode@356d8049ed -> ledger/ledger-mode@d9b6648201
rust-lang/rust-mode@542f1755d8 -> rust-lang/rust-mode@efd830806c
seagle0128/grip-mode@ffce7f78eb -> seagle0128/grip-mode@e90e3b47d8
ziglang/zig-mode@f0b4a48753 -> ziglang/zig-mode@4ad4edf759
2025-04-01 03:49:02 -04:00
94731a85c2 bump: :ui :input :config :checkers
Alexander-Miller/treemacs@32bb3dd02d -> Alexander-Miller/treemacs@96a808f067
coldnew/pangu-spacing@2303013e5c -> coldnew/pangu-spacing@6509df9c90
dgutov/diff-hl@65a5de16e2 -> dgutov/diff-hl@7da881a957
ema2159/centaur-tabs@63eb35cf42 -> ema2159/centaur-tabs@7704f2017c
emacs-jp/migemo@7d78901773 -> emacs-jp/migemo@fbc16b57ea
emacs-lsp/lsp-treemacs@fb1a07ae0a -> emacs-lsp/lsp-treemacs@312dee2b3a
emacs-straight/use-package@e8c659a050 -> emacs-straight/use-package@d79bac4574
emacsorphanage/evil-anzu@d1e98ee697 -> emacsorphanage/evil-anzu@7309650425
flycheck/flycheck@86715c0f29 -> flycheck/flycheck@b9db1379dc
jaypei/emacs-neotree@599bd049a5 -> jaypei/emacs-neotree@4a4cd85761
jdtsmith/indent-bars@47ae080d9b -> jdtsmith/indent-bars@fa293f98ab
joostkremers/writeroom-mode@86965a56ed -> joostkremers/writeroom-mode@cca2b4b3cf
merrickluo/liberime@c5839f5417 -> merrickluo/liberime@23c0caa1bf
purcell/package-lint@21edc6d0d0 -> purcell/package-lint@43012b41ac
rainstormstudio/treemacs-nerd-icons@9876cb4781 -> rainstormstudio/treemacs-nerd-icons@eac9fb5d92
seagle0128/doom-modeline@9d6f0f9635 -> seagle0128/doom-modeline@1708db2d35
skk-dev/ddskk@8c47f46e38 -> skk-dev/ddskk@f81ed803e6
tarsius/hl-todo@fb692ec092 -> tarsius/hl-todo@0ce21c329b
tumashu/posframe@f4e9e509ba -> tumashu/posframe@12f540c9ad
tumashu/pyim@f22c20f2e6 -> tumashu/pyim@64731c213c
2025-04-01 03:47:37 -04:00
6f6302d42d fix(workspaces): clobbering pre-existing workspaces on switch-project
If you used `projectile-switch-project`, the workspaces module would
open a new workspace named after the project, but if a  workspace named
after that project already exists, it is hijacked (e.g. two projects in
'some-project/src' and 'another-project/src' would get the same name:
"src"). This commit uniquifies their names so this doesn't happen, and
also embeds a +workspace-project persp parameter in the workspace so
that they can be disamiguated later (this association is lost if you
rename the workspace manually, however).

Fix: #7637
2025-04-01 03:27:03 -04:00
c6f979b4e0 refactor(workspaces): projectile integration
Simplifies +workspaces-switch-to-project-h and refactors out the
dependency on external state.
2025-04-01 03:27:03 -04:00
7941dfa766 fix(workspaces): only trigger projectile-*-switch-project-hook once
Changes upstream made our triggers for these hooks redundant.

Fix: #6559
2025-04-01 03:27:02 -04:00
99e46ed69f fix(cc,javascript): projectile-globally-ignored-directories
This variable accepts literal strings, not regexps.

Ref: #7538
2025-04-01 03:26:56 -04:00
68ec9e9c86 tweak(evil): evil-escape-key-sequence: disable by default
The jk/fd escape sequence catches up folks not expecting it and isn't
unanimously useful to all users, so it shouldn't be active by default.
This also deals with an issue where Evil macros are capturing the escape
key sequence (#8279).

Ref: #8279
2025-04-01 01:22:40 -04:00
5b11ac7267 feat(popup): +popup/raise: use visible popup if none selected
This command would formerly raise the focused window into a regular
window, erroring out if that window isn't a popup. Now, if the focused
window isn't a popup, any (single) visible popup in the current frame
will be targeted, and if multiple popups are visible, you'll be prompted
to select one.
2025-04-01 00:48:03 -04:00
8b37baada7 revert: refactor(evil): remove +evil--dont-move-cursor-a
Turns out that the behavior this advice fixes was not fully addressed,
so I'm restoring it.

Revert: 4def7f359c
2025-04-01 00:47:59 -04:00
d775ed822c fix(corfu): void-variable local-map error
Amend: #8262
2025-04-01 00:47:32 -04:00
0d1c8942db fix(corfu): fix default minibuffer completion
After setting +corfu-want-minibuffer-completion to t, I noticed that it
Corfu was still being enabled in Consult when finding files. This change
fixes that by ensuring that Corfu gets disabled in the minibuffer
whenever another completion framework is active.
2025-04-01 00:16:03 -04:00
52183d717d fix(corfu): void-variable cape-file-prefix error
Amend: 2eca701615
Ref: #6289
2025-03-31 09:31:07 -04:00
26c372cd01 fix(evil): don't auto-set evil-shift-width in org-mode
org-mode requires `tab-width` be 8, which is not a sensible default for
`evil-shift-width`, so let it fall back to its default value (which is
4) in org buffers.
2025-03-31 09:31:07 -04:00
00d624d66a tweak(corfu): completions-first-difference: don't nullify :inherit
This should be left to themes to address, not our defaults.
2025-03-31 09:31:07 -04:00
74817a6f25 nit(corfu): revise comments, grammar, and formatting 2025-03-31 09:31:07 -04:00
f3165c1c5b fix(corfu): corfu-terminal for daemon users
Since this package disables no-op's itself when not in the terminal,
it's safe to keep on in GUI sessions.
2025-03-31 09:31:06 -04:00
67933f9f62 tweak(wanderlust): Ignore headers from SMX email filter 2025-03-31 02:28:39 -04:00
5ab710911a bump: :email wanderlust
emacsmirror/apel@1a6fd3bab2 -> wanderlust/apel@1a6fd3bab2
emacsmirror/flim@23bb29d70a -> wanderlust/flim@774e40da2b
emacsmirror/semi@85a52b899a -> wanderlust/semi@85a52b899a
emacsmirror/wanderlust@8b413b33cd -> wanderlust/wanderlust@6a0605415d
2025-03-31 02:28:39 -04:00
9be19e20dc bump: :lang cc clojure coq elixir lua ocaml php purescript
ProofGeneral/PG@e0ec3db200 -> ProofGeneral/PG@85cde55a86
ananthakumaran/exunit.el@ee06b14b61 -> ananthakumaran/exunit.el@8de56e3fd5
emacs-lsp/emacs-ccls@41399b0eba -> emacs-lsp/emacs-ccls@28c7930c89
emacs-php/php-mode@0f756a8c07 -> emacs-php/php-mode@5b6cc1c068
hhvm/hack-mode@343e45f2a6 -> hhvm/hack-mode@0addbff8b6
immerrr/lua-mode@d074e4134b -> immerrr/lua-mode@2f6b8d7a63
jart/disaster@b20f8e1ef9 -> jart/disaster@8b44591322
jwiegley/emacs-async@b99658e831 -> jwiegley/emacs-async@bb3f31966e
ocaml/dune@b74586e909 -> ocaml/dune@a46193e167
ocaml/merlin@92c3ba9473 -> ocaml/merlin@2eeb63d002
ocaml/tuareg@1d53723e39 -> ocaml/tuareg@1600fdad28
purescript-emacs/purescript-mode@b076bafe94 -> purescript-emacs/purescript-mode@a3d6ca4ba5
technomancy/fennel-mode@4ccb6d5944 -> technomancy/fennel-mode@811f39de12
2025-03-31 01:02:38 -04:00
d8bbe03d0c bump: :lang haskell
emacs-lsp/lsp-haskell@b2edf1a9f8 -> emacs-lsp/lsp-haskell@cd0f5d251c
haskell/haskell-mode@7f452cc9e6 -> haskell/haskell-mode@be2639592f

Close: #8332
Ref: haskell/haskell-mode#1867
Co-authored-by: ElleNajt <ElleNajt@users.noreply.github.com>
2025-03-31 00:59:25 -04:00
dfe5b8d4e9 refactor(corfu): conform to conventions 2025-03-31 00:59:25 -04:00
2eca701615 fix(corfu): trigger cape-file on { in latex buffers
Fix: #6289
2025-03-31 00:59:25 -04:00
a1ff0513aa feat(go): add 'go generate ...' keybinds
Close: #8281
Co-authored-by: chloelee767 <chloelee767@users.noreply.github.com>
2025-03-31 00:59:22 -04:00
7827d32cc6 refactor(go): 'go test ...' commands
Better error handling and fewer side-effects (with match data).
2025-03-30 16:54:57 -04:00
17a870fef8 fix(magit): reload related buffers after git ops
And when refocusing a frame.
2025-03-30 16:10:22 -04:00
9e624b5dfe fix(evil): +evil-collection-disabled-list implementation
Fixes clearing sub-list entries in evil-collection-mode-list (none at
the moment, but it could bite me in the future).

Amend: 5e43944ef3
2025-03-28 03:31:23 -04:00
c9afc6cdd3 bump: :emacs :term :app :email
akermu/emacs-libvterm@99c1f5e76a -> akermu/emacs-libvterm@056ad74653
alexluigit/dirvish@1d8de07f4e -> alexluigit/dirvish@2d63995d32
emacs-straight/vundo@791211a89f -> emacs-straight/vundo@c32481ab48
emacsmirror/git-timemachine@3780835fcd -> emacsmirror/git-timemachine@d1346a7612
emacsmirror/undo-fu-session@beb0e285d0 -> emacsmirror/undo-fu-session@d90d42ddba
emacsmirror/undo-fu@dbb3e4b699 -> emacsmirror/undo-fu@399cc12f90
https://git.notmuchmail.org/git/notmuch@2f0320c5f24a -> https://git.notmuchmail.org/git/notmuch@dfc800c26e7b
https://git.savannah.gnu.org/git/emms.git@5e9922f2a45f -> https://git.savannah.gnu.org/git/emms.git@8713a0ee985c
jao/consult-notmuch@d8022e2ddc -> jao/consult-notmuch@17d2a4ea8c
karthink/elfeed-tube@ce2b5071d1 -> karthink/elfeed-tube@79d5a08d76
org-mime/org-mime@9d4584651d -> org-mime/org-mime@9571c148ee
remyhonig/elfeed-org@1197cf29f6 -> remyhonig/elfeed-org@34c0b4d758
tarsius/ol-notmuch@881991d94a -> tarsius/ol-notmuch@9a69506a3f
tecosaur/emacs-everywhere@0b731ca6da -> tecosaur/emacs-everywhere@caeab3948f
2025-03-27 23:46:56 -04:00
5e43944ef3 fix(evil): evil-collection: disable some submodules
Exposes a user-configurable variable for disabling evil-collection
modules, while also blacklisting modules that are incompatible with our
modules (the case for evil-collection-lispy) or don't offer any/enough
value to the user.

Close: #8327
Amend: 2f7f37d49b
2025-03-27 23:46:48 -04:00
1e1fd5c8e4 fix(magit): evil-collection-magit-section overrides
These fixes for evil-collection-magit-section weren't being applied
since 2f7f37d49b, but any combination of `after!` (or
`{with-}eval-after-load`) will convolute load order for users trying to
rebind their own keys on top of ours *and* evil-collection's, and using
`evil-collection-setup-hook` for this is clumsy, so I must resort to
advice.

Amend: 2f7f37d49b
2025-03-25 18:11:35 -04:00
da071559e1 fix(magit): polish +magit-display-buffer-fn
- Ensure `magit-log-select-mode` windows use the same window as the
  magit-status buffer, and that the revision buffer is displayed below
  it (similar to commit window configs).
- Uses the same window when invoking diffs (#8083).

Fix: #8083
2025-03-25 18:11:35 -04:00
65a5e50d1c fix(magit): transient: window config jank
With the combination of a bad value for
`transient-display-buffer-action` and a non-nil
`transient-show-during-minibuffer-read`, transient may jumble up
adjacent popup/side windows, particularly those belonging to plugins
with their own popup management and dedicated side windows (i.e.
`display-buffer-alist` rules) like Helm or Doom's popups.

Fix: #8319
Fix: #8235
Co-authored-by: tarsius <tarsius@users.noreply.github.com>
2025-03-25 18:11:18 -04:00
b29449434b nit(evil): revise & reformat comments
For clarity and to conform to newer conventions.
2025-03-25 15:22:15 -04:00
4def7f359c refactor(evil): remove +evil--dont-move-cursor-a
evil-indent, upstream, now preserves the column, which is enough to
render this advice obsolete.

Revert: c77ec345a3
2025-03-25 15:20:59 -04:00
d5e161a9ae bump: :tools
Silex/docker.el@46b597a711 -> Silex/docker.el@3bea08f1d2
emacs-ansible/emacs-ansible@4601ff31f5 -> emacs-ansible/emacs-ansible@8474bd186b
emacs-tree-sitter/elisp-tree-sitter@f3b6e78cd4 -> emacs-tree-sitter/elisp-tree-sitter@8516c9977e
emacsorphanage/quickrun@7345432cea -> emacsorphanage/quickrun@4b6df453f8
jacktasia/dumb-jump@93665381d9 -> jacktasia/dumb-jump@737267a613
joostkremers/parsebib@a25621930e -> joostkremers/parsebib@7bfde4e467
millejoh/emacs-ipython-notebook@998ba22660 -> millejoh/emacs-ipython-notebook@2711366546
purcell/envrc@2b818ca6e4 -> purcell/envrc@116cb75ee1
spotify/dockerfile-mode@4d893bd2da -> spotify/dockerfile-mode@8135740bfc
2025-03-25 15:20:58 -04:00
1d3830f8c0 bump: :editor
emacs-tree-sitter/ts-fold@a8b69682bb -> emacs-tree-sitter/ts-fold@0b2e87ea53
joaotavora/yasnippet@fe1f4e0e96 -> joaotavora/yasnippet@5b315f1753
justinbarclay/parinfer-rust-mode@044c3fe8f6 -> justinbarclay/parinfer-rust-mode@d5578ec0b2
magnars/multiple-cursors.el@dd10cf2334 -> magnars/multiple-cursors.el@89f1a8df9b
radian-software/apheleia@543f6d651d -> radian-software/apheleia@2c8e8229cb
2025-03-25 14:16:56 -04:00
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
2f7f37d49b refactor(evil): evil-collection: simplify init
We've used a bunch of hackery to further lazy load evil-collection, but
it seems those aren't needed anymore (at least on 30.1+), so as an
experiment I fall back to relying on evil-collection-init (possibly
switching to `evil-collection-setup` later).
2025-03-25 14:16:56 -04:00
bdd3701987 fix(common-lisp): inferior-lisp-program: accept list
To quote the docstring for `inferior-lisp-program`:

  Program name for starting a Lisp subprocess to Emacs.  Can be a string
  naming a program, a whitespace-separated string of \"EXECUTABLE ARG1
  ARG2\" or a list (EXECUTABLE ARGS...) where EXECUTABLE and ARGS are
  strings.

Fix: #8324
2025-03-24 18:21:33 -04:00
6cc1284171 bump: :lang org
bastibe/org-journal@115b9c0354 -> bastibe/org-journal@cf72173233
emacs-straight/org-mode@2f5add467c -> emacs-straight/org-mode@07e380f76d
emacsmirror/org-contrib@f22bdd6a58 -> emacsmirror/org-contrib@8d14a600a2
hakimel/reveal.js@2059d388f7 -> hakimel/reveal.js@5c77e86301
magit/orgit@3b6b34bd11 -> magit/orgit@6ad0dc35c8
oer/org-re-reveal@88e9d9e679 -> oer/org-re-reveal@53e9be7d89
org-noter/org-noter@691efc3ed4 -> org-noter/org-noter@a28f61238a
org-roam/org-roam@0037daaf3e -> org-roam/org-roam@046822b512
2025-03-24 18:12:54 -04:00
0163aef765 bump: :tools magit
magit/forge@33e240d360 -> magit/forge@1c904090df
magit/magit@f52dfada8f -> magit/magit@28d272ce0b
2025-03-24 18:10:52 -04:00
ef9ff57caf bump: :tools debugger lsp
emacs-lsp/dap-mode@09dc16bae1 -> emacs-lsp/dap-mode@56e92dd86b
emacs-lsp/helm-lsp@e740efb2ab -> emacs-lsp/helm-lsp@cf4ea6fb42
emacs-lsp/lsp-ivy@6b2a625f08 -> emacs-lsp/lsp-ivy@bdc730a209
emacs-lsp/lsp-mode@b383e637dc -> emacs-lsp/lsp-mode@4cddd2d99d
emacs-lsp/lsp-ui@00e69463b4 -> emacs-lsp/lsp-ui@09d4080642
emacs-straight/eglot@2d5d494bfc -> emacs-straight/eglot@8711f483be
2025-03-24 18:09:45 -04:00
056d117b07 fix(dired): void-function dirvish-find-entry-a error
This advice was replaced upstream with advising `dired--find-file` with
`dirvish--find-file`, and was missed when dirvish was bumped in 960b537.

Amend: 960b537cf6
Fix: #8322
Ref: alexluigit/dirvish@a03a8d52de
2025-03-24 03:03:08 -04:00
2f54077c3e perf(tty): move global-kkp-mode to tty-setup-hook
It isn't needed in non-TTY sessions, so spare GUI users the startup
cost.
2025-03-24 00:58:59 -04:00
960b537cf6 bump: :emacs dired
alexluigit/dirvish@f449754dd5 -> alexluigit/dirvish@1d8de07f4e

Fix: #8253
2025-03-23 23:04:54 -04:00
869a5e631e refactor!(emacs-lisp): remove cask support
BREAKING CHANGE: This removes flycheck support for Cask projects,
leaving it to users to install themselves.

Since Cask is not a unanminuous default for elisp projects (there are
many alternatives, including Eask), I don't think should be included by
default in this module.
2025-03-23 21:28:08 -04:00