Commit Graph

19899 Commits

Author SHA1 Message Date
919e658436 fix(magit): magit-uniquify-buffer-names = nil
This prevents naming collisions between projects that resolve to the
same name (e.g. foo/bar/src and baz/foo/src both resolve to the same
project name: "src"), causing Magit to destructively reuse magit
bufffers across projects (which is especially disruptive if you use
workspaces and are using magit in both, in unrelated projects that
happen to have the same name).
2025-04-02 06:19:11 -04:00
635f0a3eec refactor(magit): magit-credential-cache-daemon-socket: remove hack
This is handled upstream now and is no longer needed.
2025-04-02 06:12:44 -04:00
0bf0ea9910 dev: update license year
I spoke too soon...

Ref: 8d4d831565
2025-04-02 04:44:35 -04:00
16dd6f8674 fix(dired): don't treat dirvish-side buffers as popups
If the user has :ui (popup +all) enabled, it will capture dirvish side
buffers and treat them like arbitrary popups, so we correct the default
popup rule to force it to ignore them like we already do with dirvish's
main buffers.

Fix: #8338
2025-04-02 04:23:23 -04:00
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
cf41865693 perf(magit): optimize +magit-mark-stale-buffers-h
For cases where the user has *many* buffers open in long-lived sessions.
2025-04-02 03:18:08 -04:00
653b465c74 refactor: doom-switch-frame-hook
Redesign this hook around `after-focus-change-function`, along with
debouncing, to prevent it from triggering too aggressively (due to
misbehaving desktop environments, elisp packages that tinker with frame
focus, or accidental (and rapid) focus changes by the user).

`doom-switch-{window,buffer}-hook` have also been simplified, and
`doom-switch-window-hook` now will not trigger when focusing another
frame (only when you switch windows *within* any one frame).

This also fixes diff-hl not updating when refocusing an Emacs frame.
2025-04-02 03:17:29 -04:00
27e5ae62e4 fix(vc-gutter): respect diff-hl-bmp-max-width 2025-04-02 01:15:16 -04:00
3abd194c0a docs(vterm): mention permission error issue on Tumbleweed
Credit for this tidbit goes to Qyu on Discord.
2025-04-02 01:14:51 -04:00
52c385c033 refactor!(python): remove anaconda-mode
BREAKING CHANGE: This removes company and non-LSP integration from the
Python 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 Python LSP client to get these features back.
2025-04-01 17:58:13 -04:00
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
6a1ab50e02 release(modules): 25.05.0-dev
Ref: 2b39e41368
2025-04-01 03:44:01 -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
9c760c9106 docs: update paypal link in project readme 2025-04-01 00:48:15 -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
084a0f42a3 bump: ws-butler
lewang/ws-butler@d3927f6131 -> emacsmirror/nongnu_elpa@9ee5a7657a

ws-butler was moved to a branch of the emacsmirror/nongnu_elpa repo, but
Straight already uses this repo for recipe lookups and struggles to host
multiple packages that live in the same repo but different branches. To
get around this, Straight must be forced to clone it twice with an
explicit recipe.

This needs to be revisited, because this will likely happen again in the
future...

Fix: #8333
Ref: emacsmirror/nongnu_elpa@b890949b1b
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
65d43ae472 fix: init known projects before projectile-ensure-project
Otherwise, the known projects list could be empty the first time the
project switcher prompt is shown via any command that isn't explicitly
`projectile-switch-project` (like invoking `projectile-find-file` from a
non-project buffer).

Ref: #8330
2025-03-30 16:10:23 -04:00
64c71949f8 fix: projectile-find-file: stringp error in no-project buffers
A regression introduced by our centralized cache hack in c3a9388.

Amend: c3a9388452
Close: #8330
2025-03-30 16:10:22 -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
1ac579e08a fix: clipboard issues on Windows + WSL
Ref: 5b103261f4
2025-03-26 07:55:36 -04:00
5b103261f4 feat: add wsl detection
Can now be detected with (featurep :system 'wsl).
2025-03-26 07:55:16 -04:00