Commit graph

104 commits

Author SHA1 Message Date
Folke Lemaitre
20eff4fc3f
fix(blink): disable cmdline integration for now since it doesn't work well with the enter keymap 2024-12-13 09:31:42 +01:00
Jorge Villalobos
29c4dea4e7
fix(blink): unset provider.kind (#5024)
## Description

Unsets `sources.providers[provider].kind` custom properties to pass
blink.cmp config validation.

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

![Screenshot 2024-12-12 at 23 21
47](https://github.com/user-attachments/assets/21866a51-d0d5-4ee5-9cc3-3ce7f2eb6415)

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-13 07:25:42 +01:00
Folke Lemaitre
d95e530c02
fix(blink): remove unneeded code 2024-12-13 00:33:52 +01:00
Folke Lemaitre
29460318f3
fix(blink): unset sources.compat. Fixes #5016. Closes #5017 2024-12-13 00:25:53 +01:00
Folke Lemaitre
a9a273d041
fix: fqn for nvim-cmp 2024-12-12 14:45:47 +01:00
Folke Lemaitre
88e77b0e24 fix(nvim-cmp): specs 2024-12-12 13:47:29 +01:00
Folke Lemaitre
152f9d113f feat(cmp)!: moved nvim-cmp to extras and prefer blink.cmp on Neovim >= 0.10 as default completion engine 2024-12-12 13:47:29 +01:00
Folke Lemaitre
2cbfb9b6b7 feat(cmp)!: moved nvim-cmp to extras and prefer blink.cmp on Neovim >= 0.10 as default completion engine 2024-12-12 13:47:29 +01:00
Stefan Boca
cee60a6d30
fix(blink): set kind to int, not string, if overriding (#4999)
## Description

when sorting completion results, blink compares kinds, which can result
in an error if the kind is a string

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-12 06:29:08 +01:00
Valentin Degenne
8c79ab601a
feat(luasnip): add default user snippet location (#4987)
## Description

Loads snippets in user directories if it exists.

## Checklist

- [X] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-11 11:13:57 +01:00
Folke Lemaitre
439340bd8a
fix(blink): config breaking changes. Fixes #4990 2024-12-11 10:57:09 +01:00
jyuan0
090ca75d3b
fix(blink): update config for latest changes (#4953)
## Description

Update the blink.cmp config for the latest changes.

Mainly fixing the experimental `auto_brackets` support (moved under the
`completion` key). The other changes are either the same as the
defaults, or commented out - they were simply updated to reflect the new
config format.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-05 08:46:15 +01:00
Stefan Boca
f841ecf6bd
feat(extras.ai): blink.cmp integration and kind overrides for menu drawing (#4942)
## Description

blink.cmp integration for codeium and copilot, and correct menu drawing
for codeium, copilot, and supermaven.

I've simplified the blink.cmp config a bit for these extras (especially
for copilot, which was extremely nested) by only including the blink.cmp
spec if vim.g.ai_cmp is true.

Multiple AI extras can now be enabled at the same time with blink.cmp.

blink.cmp ghost text is now always enabled. Although some ai plugins
always display virtual text, at worst it overlaps with blink's ghost
text and is not noticable.

Lastly, I can't test copilot because I don't have a subscription, nor do
I want to sign up for one, but it should work just as well as the
others.

## Screenshots

With Codeium:

![image](https://github.com/user-attachments/assets/1485ee3f-1cba-440f-8a82-ec69b4a3f473)

Multiple extras enabled at the same time:

![image](https://github.com/user-attachments/assets/4364ee45-d79b-4f97-a4c0-cf2a2b6433c6)

## Checklist

- [X] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2024-12-03 21:06:58 +01:00
Folke Lemaitre
0a9447c1b1
feat(blink): enabled treesitter highlighting 2024-12-02 19:43:08 +01:00
Folke Lemaitre
2263b94439
fix(blink): icons 2024-11-28 21:51:23 +01:00
Folke Lemaitre
7bb954fd1d
fix(blink): fixed luasnip completions for blink 2024-11-28 07:39:30 +01:00
Folke Lemaitre
efcba66a22
fix(blink): updated to config to reflect breaking changes 2024-11-28 07:39:30 +01:00
Folke Lemaitre
91a3c663a7
fix(blink): make sure blink.compat is setup correctly when used in extras 2024-11-24 22:03:43 +01:00
Zhou Fang
ffce089a9f
feat(blink): auto-enable catppuccin integration (#4799)
## Description

Auto enable `blink_cmp` integration in catppuccin if the theme plugin is
loaded.

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

**Before**

![before](https://github.com/user-attachments/assets/918d5110-fd05-4468-9259-bf7164569521)

**After**

![after](https://github.com/user-attachments/assets/0d02d0c6-2b31-41cd-8b26-fbf74a86e498)


## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-16 07:32:07 +01:00
Folke Lemaitre
fbf881f80b
feat(ai): better completion/suggestions of AI engines (#4752)
## Description

The whole completion / snippets / AI is very tricky:
- multiple snippet engines
- native snippets on > 0.11 set their own keymaps, but not on 0.10
- multiple completion engines, like `nvim-cmp` and `blink.cmp`
- multiple ai completion engines that have a different API
- user's preference of showing ai suggestions as completion or not
- none of the ai completion engines currently set undo points, which is
bad

Solution:
- [x] added `LazyVim.cmp.actions`, where snippet engines and ai engines
can register their action.
- [x] an action returns `true` if it succeeded, or `false|nil` otherwise
- [x] in a completion engine, we then try running multiple actions and
use the fallback if needed
- [x] so `<tab>` runs `{"snippet_forward", "ai_accept", "fallback"}`
- [x] added `vim.g.ai_cmp`. When `true` we try to integrate the AI
source in the completion engine.
- [x] when `false`, `<tab>` should be used to insert the AI suggestion
- [x] when `false`, the completion engine's ghost text is disabled
- [x] luasnip support for blink (only works with blink `main`)
- [x] create undo points when accepting AI suggestions 

## Test Matrix

| completion   | snippets     | ai          | ai_cmp | tested? |
|--------------|--------------|-------------|--------|---------|
| nvim-cmp     | native       | copilot     | true   |       |
| nvim-cmp     | native       | copilot     | false  |       |
| nvim-cmp     | native       | codeium     | true   |       |
| nvim-cmp     | native       | codeium     | false  |       |
| nvim-cmp     | luasnip      | copilot     | true   |       |
| nvim-cmp     | luasnip      | copilot     | false  |       |
| nvim-cmp     | luasnip      | codeium     | true   |       |
| nvim-cmp     | luasnip      | codeium     | false  |       |
| blink.cmp    | native       | copilot     | true   |       |
| blink.cmp    | native       | copilot     | false  |       |
| blink.cmp    | native       | codeium     | true   |       |
| blink.cmp    | native       | codeium     | false  |       |
| blink.cmp    | luasnip      | copilot     | true   |       |
| blink.cmp    | luasnip      | copilot     | false  |       |
| blink.cmp    | luasnip      | codeium     | true   |       |
| blink.cmp    | luasnip      | codeium     | false  |       |


## Related Issue(s)

- [ ] Closes #4702

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [ ] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-11 10:50:57 +01:00
Folke Lemaitre
86904d2fb1
feat(ai): move ai related extras from coding to ai (#4751)
## Description

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [ ] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-10 11:27:21 +01:00
Folke Lemaitre
b841a1dfc3
fix(blink): remove draw="reversed" for now till new release 2024-11-07 22:52:38 +01:00
Josh Medeski
a86c25286b
fix(copilot-chat): setup cmp conditionally (#4716)
## Description

Check for cmp before setting up copilot chat.

## Related Issue(s)

For https://github.com/LazyVim/LazyVim/issues/4702

I would like to set up the cmp compatability later if possible, but this
is a quick patch to allow copilot chat to work without cmp (for now).

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2024-11-07 16:05:32 +01:00
Folke Lemaitre
7ebed5349d
fix(blink): use release version 2024-11-03 15:26:45 +01:00
Folke Lemaitre
fa3739678a
fix(copilot): properly process tab with copilot and blink. Fixes #4692 2024-11-03 12:53:10 +01:00
Folke Lemaitre
ec616a3cec
fix(blink): explicetely set version=false for now 2024-11-02 18:12:31 +01:00
Folke Lemaitre
28da1eb073
feat(blink): use vim.o.pumblend as winblend option for autocomplete menu in blink 2024-11-02 17:43:11 +01:00
Folke Lemaitre
6e1d0994d9
fix(copilot): create undo point before accepting copilot suggestion when using blink 2024-11-02 17:41:38 +01:00
Folke Lemaitre
ad52bf91bc
feat(extras): blink (#4680)
## Description

Extra to use [blink.cmp](https://github.com/Saghen/blink.cmp) instead of
**nvim-cmp**.

## Todo

- [x] tokyonight suport
- [x] basic integration
- [ ] check / update all cmp sources
- [ ] copilot and others integration 
- [x] native lazydev source

## Limitations

There's no copilot source, so instead when enabling both blink and
copilot:
- blink ghost text is disabled
- copilot suggestions are enabled
- use `<tab>` to navigate snippets and accept copilot completions 

## Related Issue(s)

- https://github.com/LazyVim/LazyVim/discussions/4679
2024-11-02 09:54:55 +01:00
Iordanis Petkakis
0f5fa439e5
refactor(cmp): add optional where necessary (#4557)
## Description
Makes it easier to disable it for users who want to try other completion
engines, without it being pulled back by some Extra.

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
None
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-10-23 11:44:27 +02:00
Giovanny Gongora
ae17b321c7
fix(extra): make copilot-chat.lua fallback to the latest model (#4411)
## Description

CopilotChat upgraded to gpt-4o early in August
2c4d2954f9
but the LazyVim plugin is still running with opts of gpt-4. I thought
about changing model to the latest here, but I feel this means more
maintainability for an option which generally is expected to point to
the latest model, and the upstream opts of CopilotChat seem to keep up
with that already.

## Related Issue(s)
None

## Screenshots
None

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-09-16 08:46:52 +02:00
Jelte Fennema-Nio
6911327a5e
fix(yanky): enable yank history in visual mode (#4048)
## Description

Being able to select from the yank history is useful if you want to
paste over something else by first selecting the stuff you want to
remove in visual mode.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-15 11:48:58 +02:00
Lucas
e80ed322a7
perf(luasnip): luasnip wasn't lazyloaded (#4032)
## Description

this makes the extra luasnip lazy load at the same time as nvim cmp.
just putting `lazy = true` works because `nvim-cmp` when being loaded
with `InsertEnter` also load `cmp-luasnip`, which itself load `LUASNIP`.

you can see the problem in the following discussion
https://github.com/LazyVim/LazyVim/discussions/3966 where luasnip was
not lazy loaded when starting lazyvim. This was also loading nvim-cmp
and all its dep when starting lazyvim, which negatively impacted
performance.

## Related Issue(s)

https://github.com/LazyVim/LazyVim/discussions/3966

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-14 18:19:28 +02:00
Folke Lemaitre
75ff1496bd
feat: shorter keymap descriptions for mini.ai / yanky 2024-07-14 07:08:17 +02:00
Folke Lemaitre
0fcadced89
feat(copilot-chat): ctrl-s now works in both normal and insert mode 2024-06-16 20:17:16 +02:00
Folke Lemaitre
05e45e0d35
refactor: LazyVim.config 2024-06-16 15:35:38 +02:00
Folke Lemaitre
39a908c9fa
feat(pick): move pickers to extras (telescope still the default) (#3606)
## What is this PR for?

Refactoring of pickers in LazyVim:

- [x] telescope moved to extras
- [x] dressing was moved to the telescope extra. Not needed with fzf-lua
and noice
- [x] when none of the two is enabled, then telescope will be enabled
- [x] when using `:LazyExtras` to enable fzf-lua, the telescope spec
will never be parsed
- [x] when not using `:LazyExras`, the spec will be parsed, but one of
the two will be disabled.
- [x] only one picker extra can be used to prevent issues
- [ ] cleanup lsp keymaps
2024-06-13 06:07:02 +02:00
Folke Lemaitre
46eb3242d3
refactor: copilot-chat 2024-06-12 11:41:03 +02:00
Folke Lemaitre
82f680ee6b
feat(yanky): added fzf-lua support 2024-06-12 07:57:07 +02:00
Adam K
7252474624
feat(copilot-chat): use fzf-lua if enabled in extras (#3590)
Adds the abiltiy for fzf-lua to be used as a picker for these copilot
chat actions if it was enabled in LazyExtras

## What is this PR for?

This adds keybinds that exist currently for copilot-chat and Telescope
but with the addition of fzf-lua as an extra, I noticed we needed the
ability for the user to take advantage of them with FzfLua.

## Does this PR fix an existing issue?

No

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-06-11 17:45:25 +02:00
Đ - DEV
43afed1211
fix(extras.copilot-chat): small ui fix for which-key in visual mode (#3573)
## What is this PR for?
- Just a small fix for which-key in visual mode that the authors forgot
to add.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Does this PR fix an existing issue?
- As copilot-chat has just been added to extras so i think this is new.
<!--
  If this PR fixes any issues, please link to the issue here.
  Fixes #<issue_number>
-->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-06-10 20:15:27 +02:00
Folke Lemaitre
aa059e0d49
fix(luasnip): disable nvim-snippets when luasnip is enabled. Fixes #3547 2024-06-09 07:37:45 +02:00
Folke Lemaitre
8f7ee56dab
refactor: LazyVim.lsp.on_attach 2024-06-08 08:11:30 +02:00
Folke Lemaitre
6fd2c88024
feat(extras): added extra for neogen. Closes #2881 2024-06-06 13:14:04 +02:00
Folke Lemaitre
8010f50aa5
fix(which-key): use new which-key support for native group keymaps (nop) 2024-06-06 10:46:56 +02:00
Folke Lemaitre
da7b7738eb
fix(luasnip): move mappings to cmp spec so that they dont conflict with native snippets 2024-06-02 18:43:44 +02:00
Folke Lemaitre
6678af37ee
fix(copilot-chat): no need to schedule which-key keys. just use default 2024-05-31 13:59:53 +02:00
Folke Lemaitre
a474aea1f9
fix: rename +a which-key group to ai. Fixes #3392 2024-05-31 08:21:50 +02:00
Folke Lemaitre
2a7d163a8a
feat(copilot-chat): add cmp integration 2024-05-30 00:27:13 +02:00
Folke Lemaitre
54d687383d
style: cleanup 2024-05-29 14:45:55 +02:00