Commit graph

212 commits

Author SHA1 Message Date
790c512387 dev: merge branch 'pr7739' into emenel 2024-03-24 10:03:07 -04:00
StrawberryTea
390a9c1ea4 feat(corfu): update smart tab completion
This commit updates the smart tab functionality so that:
1. The only functionality checked is for the modules that are enabled.
2. The priority of the TAB behavior is tunable by the user.

This also updates the TAB behavior for the Corfu module to be
`indent-for-tab-command` instead of `completion-at-point` so that users
can use the TAB key to indent their code and navigating Org tables.

We also address #7372 by checking overriding-terminal-local-map, as that
is used by Embark.
2024-03-22 18:54:52 -05:00
b50913bc3b dev: merging from pr7739 2024-03-22 14:16:51 -04:00
StrawberryTea
41f37ca31b feat(corfu): update smart tab completion
This commit updates the smart tab functionality so that:
1. The only functionality checked is for the modules that are enabled.
2. The priority of the TAB behavior is tunable by the user.

This also updates the TAB behavior for the Corfu module to be
`indent-for-tab-command` instead of `completion-at-point` so that users
can use the TAB key to indent their code and navigating Org tables.

We also address #7372 by checking overriding-terminal-local-map, as that
is used by Embark.
2024-03-22 11:57:55 -05:00
c5fb8007b0 dev: merge branch 'pr7739' into emenel 2024-03-22 08:10:53 -04:00
StrawberryTea
8c82a90003 feat(corfu): update smart tab completion
This commit updates the smart tab functionality so that:
1. The only functionality checked is for the modules that are enabled.
2. The priority of the TAB behavior is tunable by the user.

This also updates the TAB behavior for the Corfu module to be
`indent-for-tab-command` instead of `completion-at-point` so that users
can use the TAB key to indent their code and navigating Org tables.

We also address #7372 by checking overriding-terminal-local-map, as that
is used by Embark.
2024-03-21 09:33:30 -05:00
831e2c7402 dev: merge branch 'master' into emenel 2024-03-20 13:23:14 -04:00
Luigi Sartor Piucco
0588b42b46
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-19 20:41:50 -03:00
StrawberryTea
365a95de76
feat(corfu): more CAPFs and ergonomy changes
Add CAPFs from cape:
- `cape-dabbrev`;
- `cape-elisp-block`;
- `cape-file`;
Fix 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`;
Add depth to CAPFs, allowing ordering to be adjustable.
2024-03-19 20:41:50 -03:00
Luigi Sartor Piucco
6949451b00
module: add :completion corfu
This commit's primary goal is allowing use of
[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
[Cape](https://github.com/minad/cape) capfs for certain modes.

Other optional or miscellaneous features include:

- Corfu is enabled in the minibuffer if `completion-at-point` is bound;
- Support for displaying the completion's documentation on a secondary
  popup;
- Support for terminal display if :os tty;
- Support for icons if +icons;
2024-03-19 20:41:36 -03:00
f56395956a dev: merge branch 'pr7002' into emenel 2024-03-08 09:06:40 -05:00
Luigi Sartor Piucco
69c82bc0f0
refactor(corfu): settings and keybinding overhaul
Previously, a distinction was made only between "regular" style (assumed
to be for people who prefer to cycle directionally and commit with RET)
and +tng (assumed to be for people who prefer TAB and auto-commit). This
made composing further variations harder on the user, as they would have
to work around our bindings. Now we have many features as documentation,
and the user can compose to their liking. The global CAPF list was
pruned, suggesting to use individual keys for those functions if
required.
2024-03-07 21:20:13 -03:00
afe9fa896f dev: merge branch 'pr7002' into emenel 2024-03-04 09:48:38 -05:00
Luigi Sartor Piucco
93faae87eb
refactor(corfu): settings and keybinding overhaul
Previously, a distinction was made only between "regular" style (assumed
to be for people who prefer to cycle directionally and commit with RET)
and +tng (assumed to be for people who prefer TAB and auto-commit). This
made composing further variations harder on the user, as they would have
to work around our bindings. Now we many features as documentation, and
the user can compose to their liking. The global CAPF list was pruned,
suggesting to use individual keys for those functions if required.
2024-03-03 16:46:37 -03:00
4102c1f5b6 dev: updating from latest 2024-03-02 12:53:27 -05:00
Luigi Sartor Piucco
03f065df9f
refactor(corfu): settings and keybinding overhaul
Previously, a distinction was made only between "regular" style (assumed
to be for people who prefer to cycle directionally and commit with RET)
and +tng (assumed to be for people who prefer TAB and auto-commit). This
made composing further variations harder on the user, as they would have
to work around our bindings. Now we provide a flag per feature, and the
user can compose to their liking. Some variable options were turned into
flags and the global CAPF list was pruned, suggesting to use individual
keys for those functions if required.
2024-03-02 13:19:17 -03:00
eaa9d0e188 dev: updating from latest 2024-03-01 15:01:17 -05:00
StrawberryTea
13eba74fe9
feat(config): modify smart-ret in +tng minibuffer
If we are using +tng, we can make RET always exit the minibuffer. This
has the downside of not being able to insert snippets, but no one writes
snippets for the minibuffer anyway.
2024-03-01 12:33:13 -03:00
StrawberryTea
c6eb87c950
fix(corfu): eval lambdas 2024-03-01 12:33:13 -03:00
StrawberryTea
ccf12db615
fix(corfu): use :filter instead of :enable 2024-03-01 12:33:12 -03:00
StrawberryTea
57716ef472
feat(config): add smart-ret for corfu
This commit makes RET in Corfu quit auto-completion and passthrough to
the underlying keymap if no completion is selected.
2024-03-01 12:33:12 -03:00
StrawberryTea
eb8d4d646e
fix(corfu): bind tng tab commands to insert state
These commands were being shadowed by the other Corfu commands
previously.
2024-03-01 12:33:11 -03:00
Luigi Sartor Piucco
a5db530622
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-01 12:33:10 -03:00
Luigi Sartor Piucco
14a3eaaa02
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-01 12:33:10 -03:00
StrawberryTea
1a3c973f33 feat(config): modify smart-ret in +tng minibuffer
If we are using +tng, we can make RET always exit the minibuffer. This
has the downside of not being able to insert snippets, but no one writes
snippets for the minibuffer anyway.
2024-03-01 12:29:45 -03:00
StrawberryTea
2223add382 fix(corfu): eval lambdas 2024-03-01 12:29:45 -03:00
StrawberryTea
5627e7b50b fix(corfu): use :filter instead of :enable 2024-03-01 12:29:45 -03:00
StrawberryTea
bb7a8e3866 feat(config): add smart-ret for corfu
This commit makes RET in Corfu quit auto-completion and passthrough to
the underlying keymap if no completion is selected.
2024-03-01 12:29:45 -03:00
01878b82d2 dev: merge branch 'pr7002' into emenel 2024-02-19 14:42:51 -05:00
StrawberryTea
3cc4605943 fix(corfu): bind tng tab commands to insert state
These commands were being shadowed by the other Corfu commands
previously.
2024-02-19 16:29:22 -03:00
79772978bf dev: merge branch 'pr7002' into emenel 2024-02-18 16:13:26 -05:00
Luigi Sartor Piucco
a4c9c4cc44
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-02-18 17:51:46 -03:00
Luigi Sartor Piucco
73090187d7
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-02-18 17:50:21 -03:00
17b109158d dev: merge branch 'pr7002' into emenel 2024-02-18 11:02:23 -05:00
Luigi Sartor Piucco
ec9f2b7849
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 immediatelly and S-RET to insert completion then conclude.
2024-02-17 20:42:14 -03:00
Luigi Sartor Piucco
30e36a4b23
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. Small formatting issues and
some apparently unintended nestings were corrected as well. The changes
were documented in the README.
2024-02-17 19:55:27 -03:00
Luigi Sartor Piucco
188e73b057
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 immediatelly and S-RET to insert completion then conclude.
2024-02-09 18:42:51 -03:00
Luigi Sartor Piucco
628280040f
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. Small formatting issues and
some apparently unintended nestings were corrected as well. The changes
were documented in the README.
2024-02-09 18:42:22 -03:00
Henrik Lissner
659f7bfc71
refactor!: deprecate IS-* OS constants
BREAKING CHANGE: This deprecates the IS-(MAC|WINDOWS|LINUX|BSD) family
of global constants in favor of a native `featurep` check:

  IS-MAC      ->  (featurep :system 'macos)
  IS-WINDOWS  ->  (featurep :system 'windows)
  IS-LINUX    ->  (featurep :system 'linux)
  IS-BSD      ->  (featurep :system 'bsd)

The constants will stick around until the v3 release so folks can still
use it -- and there are still some modules that use it, but I'll phase
those uses out gradually.

Fix: #7479
2024-02-04 17:54:29 -05:00
John Goff
56b6169ae7
fix(default): read correct manpath on MacOS
Versions of `man` shipped with the latest MacOS do not support the
`--path` argument, which causes `M-x woman` in Emacs to break. However
the `manpath` command gives the same information and exists on MacOS and
Linux, at least the systems that I tested. Check for its existence, and
if there is no `manpath` command then fall back to the logic that
existed before.

Fix: #7021
2024-01-24 12:31:20 -05:00
Henrik Lissner
ad6a3d0f33
refactor: deprecate featurep! for modulep!
featurep! will be renamed modulep! in the future, so it's been
deprecated. They have identical interfaces, and can be replaced without
issue.

featurep! was never quite the right name for this macro. It implied that
it had some connection to featurep, which it doesn't (only that it was
similar in purpose; still, Doom modules are not features). To undo such
implications and be consistent with its namespace (and since we're
heading into a storm of breaking changes with the v3 release anyway),
now was the best opportunity to begin the transition.
2022-08-14 20:43:35 +02:00
Henrik Lissner
6f8b83b884
refactor(default,python): move smartparens config
Ref: 41cbb1fe7b
2022-04-01 19:12:35 +02:00
Henrik Lissner
26d5163ba0
fix(default): no usable configuration epg-error
Introduced in dcae28c83a, because ignore-errors was being used for the
wrong epg-* function.

Why this happens: epg-make-context throws this error if you don't have a
GnuPG environment set up.

Fix: #6114
Amend: dcae28c83a
2022-02-16 02:13:35 +01:00
Henrik Lissner
dcae28c83a
fix(default): don't default to disabled/expired pgp keys
And don't use the short ID (see evil32.com).

Ref: https://evil32.com/
2022-02-14 21:24:42 +01:00
Celso Bonutti
1b895a0564 fix(default): smartparens rules for haskell
The default haskell-mode rules would result in an extra } appended to
the closing pair (#5448).

Fix: #5448
Close: #5450
2022-01-05 04:05:08 +01:00
Ethan Leba
d720b29cd3 feat(default): set woman manpath with man if able 2021-12-15 09:55:54 -05:00
Henrik Lissner
277a376b43 fix(default): don't override S-RET/C-j in occur buffers
These keybinds were too wide-reaching. I can only consider them
reasonable defaults for evil users, not vanilla users.

Fix #3953
2021-08-16 17:16:30 -04:00
Henrik Lissner
3c66264656 fix(default): bind s-f to consult-line for macos users
Swiper is present if the ivy or helm backends are enabled, otherwise,
use consult-line.
2021-07-31 04:35:49 -04:00
Itai Y. Efrat
24eaa1317c completion/selectrum -> completion/vertico, part 2
- Rename module from `:completion selectrum` to `:completion vertico`
- Rename all files involved
- Do *not* yet rename all the functions, as that messes up git's rename
  detection.
2021-07-25 02:51:15 +03:00
Itai Y. Efrat
e65dffd790 selectrum: remove selectrum-minibuffer-map from...
`+default-minibuffer-maps`.

It's derived from `minibuffer-local-map` so this is unnecessary.
2021-07-25 02:50:42 +03:00