Commit graph

12069 commits

Author SHA1 Message Date
StrawberryTea
d25e15072d
fix(corfu): bind tng tab commands to insert state
These commands were being shadowed by the other Corfu commands
previously.
2024-03-12 18:18:31 -03:00
StrawberryTea
fa1979d97f
feat(config): make C-x corfu bindings optional
For someone like me that uses the vanilla emacs commands bound to C-x
C-p, C-x C-n, etc, I prefer to set the completion keybindings manually.
2024-03-12 18:18:31 -03:00
StrawberryTea
42f48ace69
fix(corfu): bind cape-dabbrev eagerly
Set up cape-dabbrev in completion-at-point-functions before dabbrev is
loaded.
2024-03-12 18:18:31 -03:00
StrawberryTea
f3729174bd
feat(corfu): update minibuffer hints manually
In the scenario where we exit the minibuffer using C-RET or S-RET, we
need this advice to ensure that visual hints are updated before exiting.
2024-03-12 18:18:31 -03:00
StrawberryTea
0ea6968f74
refactor(corfu): unwrap add-hook from after! block
add-hook handles void variables so there is no need to wrap it in an
after! block. This also makes it easier for the user to remove the hook.
2024-03-12 18:18:31 -03:00
StrawberryTea
b54c64bc21
fix(corfu): load minibuffer-setup-hook earlier
This way Corfu can be lazily-loaded by the minibuffer-setup-hook.
2024-03-12 18:18:31 -03:00
Luigi Sartor Piucco
a2e76be3a9
bump: :completion corfu
minad/corfu@24dccafeea -> minad/corfu@b48d3017a4
minad/cape@18a30f48bb -> minad/cape@bfde79ed44
elken/yasnippet-capf@a0a6b1c2bb -> elken/yasnippet-capf@db12b55cd0
2024-03-12 18:18:30 -03:00
Luigi Sartor Piucco
956b85310c
feat(corfu): general move-to-minibuffer impl
We previously implemented only consult/vertico as a target for export,
now we have all of them. It was necessary to use case-by-case
conditions, unfortunately, because other UIs have subtle quirks that
prevent a single generalized approach to work.

Ivy is almost compliant, but it needs beg and end to not be markers.

Helm doesn't replace `completion-in-region-function`, it expects to go
around the default `completion--in-region`, so a small addition was made
to its module, because we weren't doing that. This was likely an
oversight due to the non-standard usage. This was fixed here because we
need it working for this feature.

Ido doesn't implement `completion-in-region` and its `completing-read`
is retricted to a list of strings as table, so it's treated the same as
absence of a framework, because it lacks the needed features.
2024-03-12 18:18:30 -03:00
Luigi Sartor Piucco
d666dcd713
feat(corfu): impl smart confirm in minibuffer
An issue when using corfu in the minibuffer was the need for pressing
RET twice, since the first only inserts the completion. This commit
aliviates that by providing C-RET to ignore completion and conclude the
minibuffer imediately and S-RET to insert completion then conclude.
2024-03-12 18:18:30 -03:00
Luigi Sartor Piucco
7bbef94854
fix(corfu): move binds to :config default
Bindings were moved to the `:config default` module and some keys were
adjusted to match Company/other modules. The changes were documented in
the README.
2024-03-12 18:18:30 -03:00
Luigi Sartor Piucco
8ef4ce6311
feat(corfu,vertico): use equal orderless config
This removes the old `&` separator for Vertico (does anyone use that
instead of just space?) in favor of escapable space and unifies
orderless config with Corfu. Also implements smart separator
insert/escape/reset on `C-SPC`

Co-authored-by: Liam Hupfer <liam@hpfr.net>
2024-03-12 18:18:30 -03:00
StrawberryTea
948f2b7705
feat(corfu): more CAPFs and ergonomy changes
Add various CAPFs from cape:
- `cape-dabbrev`;
- `cape-emoji`;
- `cape-dict`;
Fixed some CAPFs via cape:
- Make non-exclusive, purified and silent `pcomplete-completions-at-point`;
- Make non-exclusive and non-interruptable `lsp-completion-at-point`;
- Make non-exclusive `eglot-completion-at-point`;
- Make non-exclusive `comint-completion-at-point`;
Fix and improve keybindings:
- Smart `DEL`/`backspace` for `+tng`;
- Smart `RET`;
Add depth to CAPFs, allowing ordering to be adjustable.
Enable in minibuffer.
2024-03-12 18:18:29 -03:00
Luigi Sartor Piucco
8ed223c98e
feat(corfu): add snippets
Yasnippet is now properly integrated! A previosly-unset default has now
been given to `corfu-on-exact-match`. With snippets, it causes immediate
expansion upon single match by default, so we set it to nil and
recommend against changing it in the README.
2024-03-12 18:18:29 -03:00
Luigi Sartor Piucco
5532c68e53
module: add :completion corfu
This commit's primary goal is allowing use of
[minad/corfu](https://github.com/minad/corfu) as an alternative to
[company](https://github.com/company-mode/company-mode). It introduces a
module under :completion for this purpose, plus some conditionals on
other relevant modules to toggle functionality like lsp back-ends and
[minad/cape](https://github.com/minad/cape) capfs for certain modes.

Other optional or miscellaneous features include:

- Support for displaying the completion's documentation on a secondary
  popup;
- Support for terminal display if :os tty;
- Support for icons if +icons;
- Support for tab-and-go completion if +tng;
2024-03-12 18:18:29 -03:00
StrawberryTea
a0344ffc3a
fix(mu4e): advice for new mu4e release
mu4e-quit now takes an optional argument, BURY, which is a boolean that
determines whether to bury the buffer or kill it. This commit updates
the advice to reflect this change.
2024-03-11 04:01:48 -04:00
Henrik Lissner
68682ac012
fix(ruby): ruby REPL w/ robe
set-repl-handler! handlers have to return a buffer.

Close: #7450
Co-authored-by: Zetagon <Zetagon@users.noreply.github.com>
2024-03-11 03:59:37 -04:00
Henrik Lissner
1db96a1fdb
docs(web): correct type, mention JS comment hack, remove superfluous notice
close: #7388
2024-03-11 03:59:37 -04:00
Tim Ruffing
e27d9b35d3 fix(popup): fix finding of major side window
Fix: #7647
Amend: #7598
2024-03-11 02:55:38 -04:00
Henrik Lissner
6c1aa0fb62
bump: :tools editorconfig
editorconfig/editorconfig-emacs@4b81a59928 -> editorconfig/editorconfig-emacs@c3666c093f
2024-03-11 00:53:44 -04:00
Henrik Lissner
dec058fabb
fix(treemacs): treemacs-nerd-icons load order w/ +lsp
lsp-treemacs changes the default Treemacs theme, so treemacs-nerd-icons
needs to be loaded after it, if it's installed/enabled.

Fix: #7519
Fix: doomemacs/themes#801
Ref: emacs-lsp/lsp-treemacs#89
2024-03-11 00:53:44 -04:00
Henrik Lissner
41e81f67a7
refactor(editorconfig): remove unused advice
editorconfig-call-editorconfig-exec was renamed+redesigned upstream. The
advice can no longer be trivially repurposed, so I'm removing it.

Ref: editorconfig/editorconfig-emacs@f8f1a899df
2024-03-11 00:53:44 -04:00
Henrik Lissner
43870bf831
fix(editorconfig): prevent changes to tab-width in org-mode
- Add another measure for preventing changes to tab-width in org-mode.
  The hook introduced in 2757a97 runs too early and could be overwritten
  by editorconfig.
- Fix the hook in 2757a97 to run much later, ensuring (as a last resort)
  no other packages can overwrite tab-width either.

Amend: 2757a97a30
Ref: #7670
2024-03-11 00:53:44 -04:00
Henrik Lissner
198fe82b6d
feat(lib): backport find-sibling-file
I will slowly phase out projectile in favor of project.el, starting with
projectile-find-other-file, which -- as of Emacs 29 -- has a native
alternative: `find-sibling-file`.

Ref: doomemacs/community#1
2024-03-11 00:53:44 -04:00
Henrik Lissner
3820ead9e3
tweak(markdown): disable wiki links & math highlights by default
These two features are relatively expensive and shouldn't be enabled as
a global default.
2024-03-11 00:53:44 -04:00
Henrik Lissner
f1c1efe420
refactor(biblio): move 3rd party modes to use-package blocks
This makes load-order more predictable for users wanting to modify the
side-effects of citar-org-roam-mode or citar-embark-mode. I.e.

  (after! citar-org-roam ...)
  (after! citar-embark ...)

Instead of:

  (after! (citar org-roam) ...)
  (after! (citar embark) ...)

Ref: #7712
Co-authored-by: hpfr <hpfr@users.noreply.github.com>
2024-03-11 00:53:43 -04:00
Henrik Lissner
d443488728
bump: :lang nim
nim-lang/nim-mode@1338e5b0d5 -> nim-lang/nim-mode@625cc023bd
2024-03-11 00:53:43 -04:00
Henrik Lissner
79429ecc56
fix(nim): swap nimfmt with nimpretty
Nim 2.x+ comes with its own formatter (nimpretty).

Close: #7578
Co-authored-by: pietrangelo <pietrangelo@users.noreply.github.com>
2024-03-11 00:53:43 -04:00
minh
aad8ec1895 feat(java): java.el takes java-ts-mode into account
allow +java-current-package and +java-current-class functions to operate
on java-ts-mode (the java tree-sitter mode) not just java-mode.
2024-03-10 00:54:34 -05:00
Dev380
7018cb45fb
fix(vertico): disable minor mode highlight duly
Minor mode highlights did not disable as long
as the mode was enabled.

Amend: #7706
2024-03-10 00:54:06 -05:00
Dev380
d657be1744
feat(vertico): completion highlights a la ivy
* feat(vertico): completion highlights a la ivy

Adds completion highlighting that works similarly to ivy/counsel's
one (which is enabled by default). It'll highlight enabled major/minor
modes and directories in a different face. On by default.

Ref: https://github.com/minad/vertico/wiki#candidate-display-transformations-custom-candidate-highlighting

* fix(vertico): major mode not being highlighted

The major mode was not being highlighted correctly;
it should work now that the buffer is set correctly in
`+vertico-highlight-enabled-mode`.

* fix(vertico): make font lock prioritize match over type

The mode and directory highlights were [overriding the match
font-lock](https://github.com/doomemacs/doomemacs/pull/7706#issuecomment-1977722188).
This should resolve that by prioritizing the match font lock using
`'append` on `add-face-text-property` instead of `propertize`.
2024-03-08 20:21:36 -05:00
Henrik Lissner
bea81278fd
bump: :checkers syntax
flycheck/flycheck@e56e30d8c6 -> flycheck/flycheck@02148c6ce7

Close: #7680
Co-authored-by: vitallium <vitallium@users.noreply.github.com>
2024-03-05 01:21:09 -05:00
Yejun Su
47dc59f3b2 fix(nix): make doctor check against nix-nixfmt-bin 2024-03-05 01:16:26 -05:00
45mm
78b85b8a72 fix(vertico): mapping for embark open in workspace
We should always bind to both "TAB" and "<tab>" - if they have been
mapped to different commands anywhere, Emacs will no longer treat them
as equivalent.
2024-03-05 01:13:39 -05:00
Krzysztof Baranowski
5d77d317a3
fix(clojure): obsolete ref to cider-repl-print-length
cider-repl-print-length has been obsolete for a long time.
2024-03-05 01:12:34 -05:00
StrawberryTea
c03113906a
fix(dired): hide flycheck temp files 2024-03-05 01:11:19 -05:00
Liam Hupfer
2b2901593e refactor(biblio): tidy use-package usage
:after can be misleading, so avoid it. :no-require is for working around
byte compilation issues; deferral is sufficient here.

Ref: https://github.com/jwiegley/use-package/issues/829
2024-03-05 01:09:37 -05:00
Liam Hupfer
0fc32ed881 perf(biblio): do not load oc-natbib by default
natbib isn’t part of the default `org-cite-export-processors', so leave
it to users to load if they enable it.
2024-03-05 01:09:37 -05:00
Liam Hupfer
9f198978f8 fix(biblio): avoid 'oc-csl dependency cycle
Relevant portion of the dependency graph:

'oc-csl → 'citeproc → 'citeproc-itemgetters → 'org → 'org-keys → 'oc

The :after linked 'oc to 'oc-csl so 'org-keys could load 'org.
`+org-init-keybinds-h' could then execute before the body of 'org-keys,
so Org default bindings could clobber Doom bindings.

If the top-level 'org started the load sequence, `org-load-hook'
functions would execute last and key bindings would be correct, but
Doom’s deferred incremental loading of Org could lead to this scenario:

 1. deferred incremental loader: (require 'org-src)
 2. org-src.el: (require 'org-keys)
 3. org-keys.el: (require 'oc)
 4. oc.el: (provide 'oc): (require 'oc-csl) [via the :after this patch
    removes]
 5. oc-csl.el: (require 'citeproc)
 6. citeproc.el: (require 'citeproc-itemgetters)
 7. citeproc-itemgetters.el: (require 'org)
 8. org.el: (require 'org-keys)
 9. 'org-keys from step 8 finishes loading. Keys are bound.
10. 'org finishes loading. `org-load-hook' functions are run. Doom’s
    keys are bound.
11. 'oc-csl finishes loading
12. 'org-keys from step 3 finishes loading. Keys are bound again,
    overwriting any keys Doom bound in step 10.
13. 'org-src finishes loading

At some point, the deferred incremental loader will (require 'org), but
it is a feature as of step 10, so it does not load and its hooks do not
run again.
2024-03-05 01:09:37 -05:00
Henrik Lissner
2324ff4bb7
bump: :lang rust
rust-lang/rust-mode@f74dd1cd87 -> rust-lang/rust-mode@d8a09f218e

There was a mishap with the last bump (2e12383), and rust-mode was
bumped to the wrong commit.

Amend: 2e123839d1
2024-03-04 22:56:58 -05:00
Henrik Lissner
44bc88ec39
bump: code-review
doomelpa/code-review@2670a4beb6 -> doomelpa/code-review@e4c34fa284

Ref: doomelpa/code-review@e4c34fa284
2024-03-04 22:28:47 -05:00
Henrik Lissner
b94d14811d
bump: :tools lsp
emacs-lsp/lsp-mode@fb88cc6b8b -> emacs-lsp/lsp-mode@a5f5ca9a8a
emacs-straight/eglot@cd4e45b700 -> emacs-straight/eglot@24f2bf7b28
flycheck/flycheck-eglot@9ff8d0068b -> flycheck/flycheck-eglot@114e1315aa
2024-03-04 22:12:09 -05:00
Henrik Lissner
ff127805d3
bump: :tools magit
alphapapa/magit-todos@debb77b358 -> alphapapa/magit-todos@1e9acc0ba6
magit/forge@3fc6c362b0 -> magit/forge@03b48be2a1
magit/magit@b68e0a3c33 -> magit/magit@65ecb9c5fc
2024-03-04 22:11:54 -05:00
Henrik Lissner
2e123839d1
bump: :lang rust
rust-lang/rust-mode@f74dd1cd87 -> rust-lang/rust-mode@d8a09f218e

- Resolves the lingering autoload issue caused by
  rust-lang/rust-mode@35dc136, and first introduced in
  rust-lang/rust-mode@08cea61.

Ref: rust-lang/rust-mode@35dc13632b
Ref: rust-lang/rust-mode@08cea61390
Ref: rust-lang/rust-mode#524
Fix: #7698
2024-03-04 22:09:28 -05:00
Henrik Lissner
2757a97a30
fix(org): don't change tab-width in org-mode
Recently, org-mode made a non-standard tab-width an error state.
Unfortunately, it's way too easy for users to accidentally change
it (e.g. with editorconfig, indiscriminate setter hooks, or other
packages), and since there is zero reason to ever want a non-standard
tab-width in org-mode, I not only exclude it from dtrt-indent as a
global default (i.e. not only as part of :lang org), but I add a late
org-mode-hook hook to reset tab-width, just in case.
2024-03-04 22:07:51 -05:00
Henrik Lissner
183ab38926
bump: spell-fu
https://codeberg.org/ideasman42/emacs-spell-fu@e4031935803c -> emacsmirror/spell-fu@e403193580

codeberg has uptime issues. Where possible, we should prefer Github
sources.

Ref: #7013
2024-03-04 03:29:42 -05:00
Henrik Lissner
179e300bfd
bump: visual-fill-column
https://codeberg.org/joostkremers/visual-fill-column@db7c7c236555 -> emacsmirror/visual-fill-column@5e74afe39d

codeberg has uptime issues. Where possible, we should prefer Github
sources.

Fix: #7013
2024-03-04 03:26:07 -05:00
Henrik Lissner
b439300e6a
fix(everywhere): commandp error from C-c C-c
A temporary fix for an issue introduced upstream.

Ref: tecosaur/emacs-everywhere#75
2024-02-29 02:01:22 -05:00
Henrik Lissner
35dc13632b
bump: :lang rust
rust-lang/rust-mode@HEAD -> rust-lang/rust-mode@f74dd1cd87

- rust-lang/rust-mode@08cea61 introduced some clumsy autoloads that will
  cause treesit and rust-ts-mode (and more in later commits) to be
  eagerly loaded at startup. This causes other problems, but the primary
  issue is that it causes errors at startup or when installing
  rust-mode (#7698), which this bump addresses. Eager-loading will have
  to be addressed upstream.

Ref: rust-lang/rust-mode@08cea61390
Fix: #7698
2024-02-28 20:51:06 -05:00
Henrik Lissner
7a3773484b
fix(doom): remove neotree icon config
Since we've remove all-the-icons, doom-themes-neotree-config will no
longer work properly, so I disable it for now (not a complete solution
though; we still need proper nerd-icons support for neotree).

Fix: #7634
Ref: #7664
2024-02-20 05:04:26 -05:00
Henrik Lissner
f0ad161643
fix(org): list checkbox toggle on RET
A subtle change in the way org-toggle-checkbox handles its prefix
argument changed how RET (+org/dwim-at-point) handled list
checkboxes (incorrectlying swapping [ ] with [-], but not back, unless
the cursor was directly on top of the checkbox).
2024-02-17 07:13:39 -05:00