ef9102677f
feat(keymaps): unlink luasnip on esc
2024-12-15 11:46:24 +01:00
1519cd6da7
chore: remove dead code. Closes #4985
2024-12-10 12:09:40 +01:00
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
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
57ef349910
fix(cmp): visible
2024-06-16 15:30:44 +02:00
e2972f0cca
refactor: cmp
2024-06-16 15:17:56 +02:00
0d57115f01
fix(lsp): dont highlight document words when cmp is visible
2024-06-16 15:17:56 +02:00
1b86d7b2ad
fix(snippets): fix snippets with multiple placeholders for the same tabstop
2024-05-28 19:32:21 +02:00
eb0da3c92f
feat(snippets): try to use the snippet parse to get a preview
2024-05-28 19:31:59 +02:00
425dadef72
fix(snippets): show actual error for failed snippet
2024-05-28 19:31:22 +02:00
cf4374867d
feat(snippets): re-number tabstops for invalid snippets
2024-05-28 16:12:35 +02:00
53911748dd
fix(snippet): always use top-level snippet session. Fixes #3199
2024-05-26 18:51:14 +02:00
0006fe7a3c
refactor(cmp): snippet_resolve => snippet_preview
2024-05-20 20:05:02 +02:00
97862f4259
feat(cmp): better error handling and automatic fixing of snippets that fail to parse with native Neovim snippets
2024-05-19 22:48:01 +02:00
7d72436193
feat(cmp): resolve placeholders in generated missing snippet documentation
2024-05-19 22:47:13 +02:00
2961162eba
fix(cmp): use better cmp.confirm
2024-05-19 22:46:09 +02:00
24a2a9fb0b
feat(cmp): add missing documentation to snippets when needed
2024-05-19 21:47:42 +02:00
39f3ebcadf
feat(cmp): move cmp autobracket support to util class
2024-05-19 21:46:54 +02:00