Commit Graph

1120 Commits

Author SHA1 Message Date
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
a55e4a5aac docs(vertico): suppress grep warnings if ripgrep is available
Fix: #8231
2025-01-10 11:14:03 -05:00
0ef4a3f9e1 tweak(vertico): remove consult-man remapping
consult-man is not a good drop-in replacement for man. consult-man
searches man pages and descriptions (like the apropos program).
The original man function lets the user pick a man page from the list of
man pages.
2025-01-09 00:59:12 -05:00
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
448bc5cae2 refactor: use negated flags
Ref: 7a806521a92c
2024-10-20 02:41:50 -04:00
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
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
faeab956e5 fix(vertico): consult-register: make evil-aware
Since the module remaps evil-show-registers to consult-register, the
latter should be made aware of evil registers.

Fix: #6355
2024-09-13 23:07:14 -04:00
07afef645a tweak(company): company-idle-delay = 0.26
Bumped up from it's default of 0.2.
2024-09-13 23:07:14 -04:00
b9eb662334 feat(vertico): allow affixes to be escaped
So we can search for "modulep\!" without it triggering the ! dispatcher.
2024-09-13 23:07:14 -04:00
771fccc52b nit: minor reformatting & revision
Also corrects the version string of obsolete variable `+mu4e-backend`.
2024-09-11 19:46:14 -04:00
88a3961489 fix(company): company-backends not set in some buffers
Any buffers opened before company-mode was loaded would not have
`company-backends` initialized in them.

Fix: #6261
Fix: #6180
Fix: #5896
Fix: #5672
Fix: #2015
2024-09-10 23:34:20 -04:00
bd71e16cf4 bump: :completion corfu
minad/corfu@921dd7c97e -> minad/corfu@0a616caedf

Ref: minad/corfu@157b373abc
Fix: #7977
2024-09-04 15:04:21 -04:00
84230a437d fix(corfu): global-corfu-minibuffer predicate not respected
As mentioned in #7977, `global-corfu-modes` overrides any predicate
function in `global-corfu-minibuffer`. This is a stopgap until the issue
is resolved upstream.

Fix: #7977
Close: #8039
Co-authored-by: LemonBreezes <LemonBreezes@users.noreply.github.com>
2024-09-02 16:59:29 -04:00
fb2f79033c fix(corfu): disable corfu-auto in evil replace mode
Ref: 63e9b11280
2024-09-01 14:49:04 -04:00
63e9b11280 feat(corfu): introduce +corfu-inhibit-auto-functions 2024-09-01 14:48:36 -04:00
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
10484dea87 merge: #7750
Close: #7750
2024-08-31 21:31:11 -04:00
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
5311214f90 tweak(corfu): don't invert evil-complete-all-buffers
And avoid void-variable errors for non-evil users (not that they're
bound for them, but just in case).

Ref: #7748
2024-08-29 01:18:43 -04:00
08f8f57e2f feat(corfu): vim-like C-n/C-p keybinds
In vim/evil, C-n/C-p invokes dabbrev, so we're doing the same, but
powered by cape-dabbrev, falling back to corfu-next/corfu-prev is a
corfu popup is already open.

Close: #7748
Co-authored-by: 45mg <45mg@users.noreply.github.com>
Co-authored-by: LemonBreezes <LemonBreezes@users.noreply.github.com>
2024-08-28 22:43:05 -04:00
4a4a9a1ada feat(corfu): add +corfu/toggle-auto-complete command 2024-08-28 22:26:47 -04:00
d6f5fed4a4 refactor(vertico): dabbrev-ignored-buffer-regexps: simplify 2024-08-26 02:22:53 -04:00
b9e460bc64 refactor(vertico): remove redundant quoting
Ref: #7943
2024-08-25 17:44:29 -04:00
3ad8ecc063 fix(vertico): orderless filtering
The original implementation of `+vertico-orderless-dispatch` match
pattern by prefix and suffix in pairs. In that case, '=&&' will go for
branch `(string-suffix-p "&" pattern)`, not `(string-prefix-p "="
pattern)`, which fail to filter literal '&&'.

We probably should match all prefixes first, then all suffixes. Just
like orderless does.

Ref: 178b0c55f2/orderless.el (L159)
2024-08-23 17:49:47 -04:00
c78e49e862 tweak(corfu): corfu-auto-delay = 0.24
Increase the delay slightly, to stave off slowness with slower backends.
2024-08-20 21:49:41 -04:00
5e2e886b35 nit: comment revision & reformatting 2024-08-15 23:18:47 -04:00
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
d3124c4971 nit: add deprecation comments for projectile config
Ref: doomemacs/core#1
2024-08-09 20:42:33 -04:00
559c1eef39 module: deprecate :completion company
Corfu effectively replaces Company. It's lighter, faster (in most
cases), and relies on more functionality native to Emacs (CAPF). The
company module is one of the more higher-maintenance (and buggy) modules
in our library, so rather than maintain two spiritually identical
modules, I'd rather focus on the better one.

I won't make any moves to actually remove the Company 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
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
b3ef202451 refactor(corfu): conform to naming conventions 2024-07-13 19:38:20 -04:00
ce84690dc5 feat(evil): vim completion keybinds on C-x
Vim has a set of completion commands bound to the C-x prefix. We had
this for company, but with this commit, we now have them for the corfu
module.
2024-07-13 19:38:20 -04:00
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
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
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
3cb9f17132 merge: pull request #7739 from LemonBreezes/corfu-update-smart-tab
feat(corfu): update smart tab completion
2024-06-30 15:24:52 -04:00
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
390f5920a2 Merge branch 'master' into corfu-update-smart-tab 2024-04-12 13:45:44 -05:00
cfb860f71a doc(corfu): update troubleshooting section 2024-04-12 13:24:58 -05:00
96e3255c33 nit: reformat+revise comments
Includes minor refactors to appease the byte-compiler or use more
succinct (but equivalent) syntax.
2024-04-09 12:39:51 -04:00
42de6282f4 tweak(helm): helm-always-two-windows = t
Don't comandeer the entire frame for helm commands.
2024-04-08 21:20:08 -04:00
a4b7aa1c56 fix(helm): helm-descbinds-disable-which-key = nil
Otherwise, helm-descbind throws errors if which-key is enabled. Setting
prefix-help-command seems to resolve the incompatibility (more testing
is needed).

Ref: emacs-helm/helm-descbinds@ca03f02da4
Ref: emacs-helm/helm-descbinds@14d1929d54
Amend: 52599ab536
2024-04-08 19:53:46 -04:00
a8d612385f tweak(corfu): update dabbrev-ignore-buffer-modes
The Corfu documentation has been updated to suggest more modes to ignore
with `dabbrev-ignore-buffer-modes`. This commit updates the list of
modes to ignore in `cape-dabbrev` to match the documentation.
2024-04-08 18:59:49 -04:00
4f07e83b6e fix(vertico): missing command error in consult
Although it is rare for a user to not enable the :config default module,
enabling/disabling modules one-by-one is common practice for debugging
Doom Emacs. This PR fixes an error that occurs when you have :completion
vertico enabled without enabling :config default.
2024-04-06 00:14:47 -04:00
f79bb46c9b fix(corfu): prevent void-variable error
Although this error will not be triggered by most people, since
auth-source is loaded by a lot of packages, it can still happen if you
are debugging your configuration (e.g. enabling/disabling modules
one-by-one).
2024-04-06 00:14:09 -04:00
fb96c8df5a refactor(corfu): use hook symbols in add-hook! calls
A common challenge for beginners is distinguishing packages, modes, and
hooks, and since Doom's source code is meant to second as another layer
of documentation, I prefer to be explicit with hook symbols in
`add-hook!` calls (at least, for internal/module use).
2024-04-05 12:06:02 -04:00
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
22fa4ccac7 tweak(vertico): consult-dir: use projectile 2024-04-01 13:44:25 -04:00
1598444bd9 docs(corfu): disabling auto-completion
Close: #7749
Co-authored-by: 45mg <45mg@users.noreply.github.com>
2024-04-01 13:34:37 -04:00