Commit graph

1660 commits

Author SHA1 Message Date
Henrik Lissner
a88cb71a11
feat(workspaces): implement tab-local parameters 2025-09-23 18:47:09 -04:00
Henrik Lissner
96a1b72dda
fix(workspaces): missing tabspaces-session-file parent dir 2025-09-23 18:47:09 -04:00
Henrik Lissner
5388480894
tweak: default values for tab-*-tab-choice vars 2025-09-23 18:47:09 -04:00
Henrik Lissner
a307383ecb
fix(workspaces): unbalances parens
Amend: 243b258f8d
2025-09-23 18:47:09 -04:00
Henrik Lissner
4e1b3cdb89
tweak(workspaces): tabspaces-fully-resolve-paths = t
Ensure tabspaces always works with absolute paths, to resolve name
collisions and ambiguities in `tabspaces-project-tab-map`.
2025-09-23 18:47:09 -04:00
Henrik Lissner
c57f2dfc82
fix(workspaces): projectile/project integration
And hardcoded behaviors in tabspaces' API.
2025-09-23 18:47:08 -04:00
Henrik Lissner
065b95288e
tweak(workspaces): centralize project session files 2025-09-23 14:45:37 -04:00
Henrik Lissner
bce3aff59a
fix: more vestigial references to persp-mode 2025-09-23 00:53:37 -04:00
Henrik Lissner
c75f4045f3
fix(tabs): update for tabspaces 2025-09-23 00:50:07 -04:00
Henrik Lissner
407eae5358
bump: :ui workspaces
mclear-tools/tabspaces@6c7c31b744 -> mclear-tools/tabspaces@d8fceb2406
2025-09-23 00:45:47 -04:00
Henrik Lissner
6209366987
fix(workspaces): +workspaces/kill
One-off issue with +workspaces/kill not killing the correct tab or
killing buffers associated with the current buffer.
2025-09-19 18:29:22 -04:00
Henrik Lissner
7baa364543
tweak(workspaces): +workspaces-remove-buffer-from-tab: make tab arg optional 2025-09-19 18:28:55 -04:00
Henrik Lissner
4b69b2a957
fix(workspaces): +workspaces-buffer-list: include current tab's 2025-09-19 18:28:38 -04:00
Henrik Lissner
10615a2b43
fix(nav-flash): update for tabspaces 2025-09-19 18:06:17 -04:00
Henrik Lissner
b7d0c20998
feat(workspaces): introduce +workspaces-dir 2025-09-18 22:43:34 -04:00
Henrik Lissner
c117897290
feat(workspaces): expand and polish API
Needs more refactoring!
2025-09-18 21:57:45 -04:00
Henrik Lissner
c2a53f8f5e
fix(workspaces): remove +workspaces--evil-alternate-buffer-a advice
May not be necessary anymore because tab-bar tabs retain window buffer
history better.
2025-09-17 11:24:00 -04:00
Henrik Lissner
80c220a36e
feat(doom): tab-bar: add basic theming 2025-09-17 11:23:04 -04:00
Henrik Lissner
9c3d762f39
feat(workspaces): introduce +tabs flag 2025-09-17 11:23:04 -04:00
Henrik Lissner
704bf439d6
fix(workspaces): close-window-or-workspace remaps 2025-09-17 11:23:04 -04:00
Henrik Lissner
1592b07a7a
fix(:completion): update for tabspaces 2025-09-16 12:50:34 -04:00
Henrik Lissner
251195e688
fix(workspaces): +workspaces/kill: safeguards 2025-09-15 22:50:24 -04:00
Henrik Lissner
a2f4655290
fix(workspaces): leader keybinds
These are not final.
2025-09-15 22:49:15 -04:00
Henrik Lissner
64ab02e989
fix(workspaces): vim keybinds & ex commands for tabs
- Changed the ex commands to match neovim's ex commands.
- Fixes gt, gT, ]w, [w keybinds
- Add :tabe[dit] FILE
2025-09-15 22:44:41 -04:00
Henrik Lissner
f40bbad375
fix(workspaces): evil ex commands 2025-09-15 20:32:01 -04:00
Henrik Lissner
c5ce42f6cc
fix(doom-dashboard): replace persp-mode w/ tabspaces 2025-09-14 20:35:13 -04:00
Henrik Lissner
eb7cb5edd1
fix(modeline): don't show tabspaces name in modeline
Redundant with tab-bar or tabspaces' echo area display feature.
2025-09-14 20:35:13 -04:00
Henrik Lissner
243b258f8d
refactor!(workspaces): replace persp-mode w/ tabspaces
BREAKING CHANGE: As the name says, this is a whole new package. There
will be functional hiccups until I've achieved behavioral parity with
the old workspaces module.
2025-09-14 20:35:13 -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
Henrik Lissner
957b1266bf
refactor(minimap): replace minimap.el w/ demap.el
The former is unmaintained.

Fix: #8430
Ref: https://github.com/orgs/doomemacs/projects/5/views/1?pane=issue&itemId=2922285
2025-06-29 17:35:56 +02:00
Henrik Lissner
442f4db4d4
bump: :ui
Alexander-Miller/treemacs@820b09db10 -> Alexander-Miller/treemacs@abd27c86df
dgutov/diff-hl@aa667ac58a -> dgutov/diff-hl@9b032018fd
doomemacs/themes@88126db5e6 -> doomemacs/themes@729ad03463
jdtsmith/indent-bars@ea74161b46 -> jdtsmith/indent-bars@87729d685d
jdtsmith/ultra-scroll@f2e4fba601 -> jdtsmith/ultra-scroll@b447044b9d
minad/goggles@6141d31c51 -> minad/goggles@5176114e99
tarsius/hl-todo@0ce21c329b -> tarsius/hl-todo@7ed8bbcadb
2025-06-11 01:29:52 +02:00
Henrik Lissner
313e8fb48b
fix(smooth-scroll): advice on wrong function
Amend: aa6f3903d5
Fix: #8376
2025-06-02 17:34:15 +02:00
Henrik Lissner
aa6f3903d5
fix(smooth-scroll): potential out-of-bounds error
Wherever an interactive motion command (that good-scroll has advised) is
used programmatically.

This should be addressed upstream. Either by adding
boundary/called-interactively guards to
`good-scroll--point-at-top-fix-a`, or by avoiding interactive motion
commands in ledger-mode.

Fix: #8376
2025-06-02 14:19:26 +02:00
Marcel Ilg
f71cbb9f5c docs(hl-todo): Remove removed keybinding
Commit 0893edefae removed magit-todos and
the "SPC p t" keybinding. The documentation of hl-todo does not reflect
this change.

This commit removes said keybinding from hl-todos documentation.
2025-06-01 00:45:34 +02:00
duli
361eec11a4 fix(workspaces): avoid duplicate workspace creation when no frame exists
When Emacs is started as a daemon and no frames exist, `emacsclient -c`
should simply switch to the main workspace. However, before
`+workspaces-associate-frame-fn` is called, the new frame is already
added to the frame list, which causes `persp-frame-list-without-daemon`
to always return a non-empty list. A new workspace will be created
instead of switching to the main one.
2025-06-01 00:45:04 +02:00
Henrik Lissner
8ac83f4600
fix(indent-guides): treesit support 2025-05-15 18:19:22 +02:00
Henrik Lissner
87de6e45f2
fix(tabs): show unreal buffers in tab list
Fix: #8050
2025-05-07 11:33:32 -04:00
Henrik Lissner
31994ef136
fix(tabs): errors on dead buffers
Fix: #8382
2025-05-07 11:32:20 -04:00
Henrik Lissner
722f5a2e18
fix(workspaces): use existing workspace on project switch
A "workspace already exists" error is thrown if trying to switch to
project workspace that already exists. This changes it to switch to the
workspace instead.

Fix: #8368
2025-05-06 00:26:27 -04: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
b2db71e55a
revert: feature/workspaces: persist indirect buffers
Restoring indirect buffers indiscriminately isn't so simple, and can
come with unserializable data that Emacs will throw errors on while
restoring a saved workspace.

Revert: 5f04be599f
Fix: #6043
2025-05-01 14:48:46 -04:00
Henrik Lissner
eae2529ed8
fix(popup): ensure hooks run in popup buffer/window
Ref: 13b64229a0
2025-04-09 15:59:47 -04:00