Compare commits

..

264 Commits

Author SHA1 Message Date
9a0d14dcf5 chore(main): release 14.0.1 (#5033)
🤖 I have created a release *beep* *boop*
---


##
[14.0.1](https://github.com/LazyVim/LazyVim/compare/v14.0.0...v14.0.1)
(2024-12-13)


### Bug Fixes

* **NEWS:** typo
([0fd7140](0fd7140a6d))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-13 17:27:22 +01:00
0fd7140a6d fix(NEWS): typo 2024-12-13 17:21:37 +01:00
5a503c556a docs: fix NEWS link to blink.cmp 2024-12-13 16:57:55 +01:00
f3a919d23d chore(main): release 14.0.0 (#5008)
🤖 I have created a release *beep* *boop*
---


##
[14.0.0](https://github.com/LazyVim/LazyVim/compare/v13.9.1...v14.0.0)
(2024-12-13)


### ⚠ BREAKING CHANGES

* **cmp:** moved `nvim-cmp` to extras and prefer `blink.cmp` on Neovim
>= `0.10` as default completion engine
* **cmp:** moved `nvim-cmp` to extras and prefer `blink.cmp` on Neovim
>= `0.10` as default completion engine
* **snacks:** use `snacks.scope` indent objects in favor of custom
`mini.ai` indent objects
* **snacks:** use `snacks.indent` and moved `indent-blankline` to extras
* **pick:** make fzf the default picker for LazyVim

### Features

* **cmp:** moved `nvim-cmp` to extras and prefer `blink.cmp` on Neovim
&gt;= `0.10` as default completion engine
([152f9d1](152f9d113f))
* **cmp:** moved `nvim-cmp` to extras and prefer `blink.cmp` on Neovim
&gt;= `0.10` as default completion engine
([2cbfb9b](2cbfb9b6b7))
* **keymaps:** added leader-uD to toggle dim mode
([9b97388](9b973882b8))
* **keymaps:** added leader-z to toggle zen mode
([e6d6a09](e6d6a096b3))
* **keymaps:** added leader-Z to toggle zoom
([f2e1cac](f2e1cac965))
* **lualine:** add snacks profiler status
([7bc8490](7bc8490d46))
* **pick:** make fzf the default picker for LazyVim
([ae2340f](ae2340f60a))
* **rust:** exclude bad directories from rust-analyzer
([#5021](https://github.com/LazyVim/LazyVim/issues/5021))
([94f6df0](94f6df048f))
* **snacks:** added `snacks.input`
([54bece1](54bece17b3))
* **snacks:** added leader-ua to toggle global animations
([303980d](303980d267))
* **snacks:** added leader-ug to toggle indent guides
([b3ac642](b3ac642317))
* **snacks:** added leader-uS to toggle scroll
([cded8d4](cded8d4d28))
* **snacks:** added profiler keymaps
([a8332c6](a8332c6d50))
* **snacks:** enable `snacks.scroll`
([1a1a484](1a1a48497c))
* **snacks:** use `snacks.indent` and moved `indent-blankline` to extras
([94fdc42](94fdc421a1))
* **snacks:** use `snacks.scope` indent objects in favor of custom
`mini.ai` indent objects
([d904a1e](d904a1ef47))
* **snacks:** use `Snacks.zen.zoom()` instead of custom **maximize**
([e389a5a](e389a5ada9))
* **which-key:** make `helix` the default which-key preset
([44c712a](44c712aa31))
* **zen:** zoom with leader-wm and leader-uZ. zen with leader-uz
([2acedaa](2acedaa3a8))


### Bug Fixes

* **blink:** disable cmdline integration for now since it doesn't work
well with the enter keymap
([20eff4f](20eff4fc3f))
* **blink:** remove unneeded code
([d95e530](d95e530c02))
* **blink:** unset provider.kind
([#5024](https://github.com/LazyVim/LazyVim/issues/5024))
([29c4dea](29c4dea4e7))
* **blink:** unset sources.compat. Fixes
[#5016](https://github.com/LazyVim/LazyVim/issues/5016). Closes
[#5017](https://github.com/LazyVim/LazyVim/issues/5017)
([2946031](29460318f3))
* **clangd:** avoid nil-indexing the completion sorting comparators
([#5011](https://github.com/LazyVim/LazyVim/issues/5011))
([c4b0d6d](c4b0d6d0d1))
* **clangd:** nvim-cmp optional
([94be6fb](94be6fb787))
* **copliot:** restructure copilot-cmp spec
([34d2bdc](34d2bdcac6))
* fqn for nvim-cmp
([a9a273d](a9a273d041))
* **git:** make nvim-cmp optional for the git extra
([ec92fa8](ec92fa8558))
* **java:** only setup debug adapter config if mason is installed
([#5013](https://github.com/LazyVim/LazyVim/issues/5013))
([aad0edb](aad0edbf74))
* **java:** only setup debug adapter config if mason is installed (for
real this time)
([#5014](https://github.com/LazyVim/LazyVim/issues/5014))
([5b1b6b2](5b1b6b29d7))
* **java:** only use mason-registry if mason installed
([#4991](https://github.com/LazyVim/LazyVim/issues/4991))
([21b02f0](21b02f056d))
* **mini.animate:** disable `snacks.scroll` when `mini.animate` is
enabled
([9b07544](9b07544e89))
* **mini.indentscope:** disable snacks and indent-blankline scope
([98c77f1](98c77f1de4))
* **nvim-cmp:** set high prio for loading the nvim-cmp extra to prevent
issues with opts
([adf8db6](adf8db69ed))
* **nvim-cmp:** specs
([88e77b0](88e77b0e24))
* **ui:** use `Snacks.util.color` instead of `LazyVim.ui.fg`
([6d774ba](6d774ba8f2))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-13 16:39:33 +01:00
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
94f6df048f feat(rust): exclude bad directories from rust-analyzer (#5021)
## Description

rust-analyzer is unfortunately not smart enough to use a folder's
.gitignore (or similar) when looking for rust files to analyze, meaning
that when it finds a large enough folder (e.g: .git, .direnv) it
completely dies going through it searching for rust files.

This commit adds a filter of common folders that are big enough to
potentially choke rust-analyzer. The list could be amended in the
future.

## Checklist

- [X] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-13 07:28:09 +01:00
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
b0808cb31f chore(build): auto-generate docs 2024-12-13 06:24:40 +00:00
a396a2462f docs(README): add fzf dependencies to docker (#5020)
## Description

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->
With the picker and completion changes, fzf and curl need to be
installed as part of the try it with docker instructions.

## 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-13 07:23:41 +01:00
d95e530c02 fix(blink): remove unneeded code 2024-12-13 00:33:52 +01:00
29460318f3 fix(blink): unset sources.compat. Fixes #5016. Closes #5017 2024-12-13 00:25:53 +01:00
5b1b6b29d7 fix(java): only setup debug adapter config if mason is installed (for real this time) (#5014)
## Description

This one *actually* fixes the issue, sorry about my previous PR.
2024-12-12 19:37:08 +01:00
aad0edbf74 fix(java): only setup debug adapter config if mason is installed (#5013)
## Description
This prevents the following error when opening java files when mason is
disabled (e.g: NixOS)

```
Failed to run `config` for nvim-jdtls

...im/lazy/LazyVim/lua/lazyvim/plugins/extras/lang/java.lua:149: module 'mason-registry' not found:
	no field package.preload['mason-registry']
cache_loader: module mason-registry not found
cache_loader_lib: module mason-registry not found
	no file '/nix/store/j3563y13yim4m7qdwk0m8h22648wbifj-luajit-2.1.1713773202-env/share/lua/5.1/mason-registry.lua'
	no file '/nix/store/j3563y13yim4m7qdwk0m8h22648wbifj-luajit-2.1.1713773202-env/share/lua/5.1/mason-registry/init.lua'
	no file '/nix/store/j3563y13yim4m7qdwk0m8h22648wbifj-luajit-2.1.1713773202-env/lib/lua/5.1/mason-registry.so'

# stacktrace:
  - /LazyVim/lua/lazyvim/plugins/extras/lang/java.lua:149 _in_ **config**
  - /nix/store/xgn4baapvvk35ssi47bsmmyawl83917g-neovim-unwrapped-0.10.2/share/nvim/runtime/filetype.lua:36
  - /nix/store/xgn4baapvvk35ssi47bsmmyawl83917g-neovim-unwrapped-0.10.2/share/nvim/runtime/filetype.lua:35
```

## Checklist

- [X] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-12 18:58:39 +01:00
21b02f056d fix(java): only use mason-registry if mason installed (#4991)
## Description
The current config breaks when mason is not installed (e.g. for Nix
users). This PR makes the mason-related functionality (which, as of now,
consists only of finding `lombok`) dependent on mason being installed.
As noted in the commit, this does make it impossible to use lombok
without mason, but I'm unaware of any other method of finding it (which
is why mason-registry was used in the first place, I assume)

Please note that I'm not very experienced with Lua and the code might be
not the most idiomatic one.

## 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.

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2024-12-12 18:15:53 +01:00
8b8e322b68 docs: fixed keymaps in NEWS 2024-12-12 17:38:42 +01:00
adf8db69ed fix(nvim-cmp): set high prio for loading the nvim-cmp extra to prevent issues with opts 2024-12-12 16:54:34 +01:00
c4b0d6d0d1 fix(clangd): avoid nil-indexing the completion sorting comparators (#5011)
## Description

This prevents the following popup appearing when opening nvim:

```
Failed to run `config` for nvim-cmp

.../lazy/LazyVim/lua/lazyvim/plugins/extras/lang/clangd.lua:108: attempt to index field 'sorting' (a nil value)

# stacktrace:
  - /LazyVim/lua/lazyvim/plugins/extras/lang/clangd.lua:108 _in_ **values**
  - ~/.config/nvim/lua/config/lazy.lua:17
  - ~/.config/nvim/init.lua:2
  
```

## Checklist

- [X] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-12 16:51:34 +01:00
98c77f1de4 fix(mini.indentscope): disable snacks and indent-blankline scope 2024-12-12 16:44:28 +01:00
94be6fb787 fix(clangd): nvim-cmp optional 2024-12-12 16:43:25 +01:00
a9a273d041 fix: fqn for nvim-cmp 2024-12-12 14:45:47 +01:00
3a67abdf6d docs: updated NEWS.md 2024-12-12 13:47:29 +01:00
34d2bdcac6 fix(copliot): restructure copilot-cmp spec 2024-12-12 13:47:29 +01:00
bdc865b291 style: typo 2024-12-12 13:47:29 +01:00
a8332c6d50 feat(snacks): added profiler keymaps 2024-12-12 13:47:29 +01:00
2acedaa3a8 feat(zen): zoom with leader-wm and leader-uZ. zen with leader-uz 2024-12-12 13:47:29 +01:00
54bece17b3 feat(snacks): added snacks.input 2024-12-12 13:47:29 +01:00
cded8d4d28 feat(snacks): added leader-uS to toggle scroll 2024-12-12 13:47:29 +01:00
b3ac642317 feat(snacks): added leader-ug to toggle indent guides 2024-12-12 13:47:29 +01:00
ec92fa8558 fix(git): make nvim-cmp optional for the git extra 2024-12-12 13:47:29 +01:00
ba632c500d refactor(snacks): move snacks specs to ui/util so that they show up in the generated docs 2024-12-12 13:47:29 +01:00
303980d267 feat(snacks): added leader-ua to toggle global animations 2024-12-12 13:47:29 +01:00
88e77b0e24 fix(nvim-cmp): specs 2024-12-12 13:47:29 +01:00
e6d6a096b3 feat(keymaps): added leader-z to toggle zen mode 2024-12-12 13:47:29 +01:00
f2e1cac965 feat(keymaps): added leader-Z to toggle zoom 2024-12-12 13:47:29 +01:00
9b973882b8 feat(keymaps): added leader-uD to toggle dim mode 2024-12-12 13:47:29 +01:00
7bc8490d46 feat(lualine): add snacks profiler status 2024-12-12 13:47:29 +01:00
6d774ba8f2 fix(ui): use Snacks.util.color instead of LazyVim.ui.fg 2024-12-12 13:47:29 +01:00
e389a5ada9 feat(snacks): use Snacks.zen.zoom() instead of custom **maximize** 2024-12-12 13:47:29 +01:00
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
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
d904a1ef47 feat(snacks)!: use snacks.scope indent objects in favor of custom mini.ai indent objects 2024-12-12 13:47:29 +01:00
1a1a48497c feat(snacks): enable snacks.scroll 2024-12-12 13:47:29 +01:00
94fdc421a1 feat(snacks)!: use snacks.indent and moved indent-blankline to extras 2024-12-12 13:47:29 +01:00
9b07544e89 fix(mini.animate): disable snacks.scroll when mini.animate is enabled 2024-12-12 13:47:29 +01:00
44c712aa31 feat(which-key): make helix the default which-key preset 2024-12-12 13:47:29 +01:00
ae2340f60a feat(pick)!: make fzf the default picker for LazyVim 2024-12-12 13:47:29 +01:00
31af207542 chore(main): release 13.9.1 (#5003)
🤖 I have created a release *beep* *boop*
---


##
[13.9.1](https://github.com/LazyVim/LazyVim/compare/v13.9.0...v13.9.1)
(2024-12-12)


### Bug Fixes

* **blink:** set kind to int, not string, if overriding
([#4999](https://github.com/LazyVim/LazyVim/issues/4999))
([cee60a6](cee60a6d30))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-12 13:47:07 +01:00
69e8867a0f chore(build): auto-generate docs 2024-12-12 05:30:09 +00:00
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
475e3f32b8 chore(main): release 13.9.0 (#4979)
🤖 I have created a release *beep* *boop*
---


##
[13.9.0](https://github.com/LazyVim/LazyVim/compare/v13.8.0...v13.9.0)
(2024-12-11)


### Features

* **luasnip:** add default user snippet location
([#4987](https://github.com/LazyVim/LazyVim/issues/4987))
([8c79ab6](8c79ab601a))
* **vscode:** add vscode-specific keymaps and sync undo/redo with vscode
([#4983](https://github.com/LazyVim/LazyVim/issues/4983))
([9ad1c49](9ad1c49b67))


### Bug Fixes

* **autocmds:** remove snacks_win from close_with_q, since they have
their own keymaps
([99c361f](99c361f708))
* **blink:** config breaking changes. Fixes
[#4990](https://github.com/LazyVim/LazyVim/issues/4990)
([439340b](439340bd8a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-12 00:29:18 +01:00
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
87915a1f23 chore(build): auto-generate docs 2024-12-11 09:58:12 +00:00
439340bd8a fix(blink): config breaking changes. Fixes #4990 2024-12-11 10:57:09 +01:00
9ad1c49b67 feat(vscode): add vscode-specific keymaps and sync undo/redo with vscode (#4983)
## Summary
This pull request introduces several new keymaps specifically for VSCode
when using LazyVim. These changes aim to enhance the integration between
VSCode and LazyVim by adding keymaps for, tab navigation, and syncing
nvim undo/redo actions with vscode undo/redo.

## Changes
- Synced undo/redo lists with VSCode using `VSCodeNotify`: (check
https://github.com/vscode-neovim/vscode-neovim/issues/1139 for more
details)
  - `u` for undo
  - `<C-r>` for redo
- Enabled navigation of VSCode tabs similar to LazyVim buffers:
  - `<S-h>` to go to the previous editor
  - `<S-l>` to go to the next editor

## Additional Notes
These changes are intended to improve the user experience for those who
use LazyVim within VSCode by providing more intuitive and consistent
keybindings. Please test these keymaps to ensure they work as expected
in your VSCode setup.

Co-authored-by: Deniz Gökçin <deniz.gokcin@treatwell.com>
2024-12-10 12:13:01 +01:00
e2c189e066 chore(build): auto-generate docs 2024-12-10 11:10:44 +00:00
1519cd6da7 chore: remove dead code. Closes #4985 2024-12-10 12:09:40 +01:00
4b86cf9900 chore(build): auto-generate docs 2024-12-09 23:32:30 +00:00
99c361f708 fix(autocmds): remove snacks_win from close_with_q, since they have their own keymaps 2024-12-10 00:31:36 +01:00
71ea193cf6 chore(build): auto-generate docs 2024-12-08 20:54:21 +00:00
3c605f547c chore(main): release 13.8.0 (#4955)
🤖 I have created a release *beep* *boop*
---


##
[13.8.0](https://github.com/LazyVim/LazyVim/compare/v13.7.0...v13.8.0)
(2024-12-07)


### Features

* **git:** added toggles for gitsigns.nvim and mini.diff
([2ebba15](2ebba15e12))


### Bug Fixes

* **dot:** kitty ft with bash treesitter highlights
([7ef2dfd](7ef2dfd3ba))
* **keymaps:** toggle name
([b2f7505](b2f750558a))
* **mini.diff:** toggle
([3f4b1ff](3f4b1ff003))
* **rust:** only use mason.nvim if it is present
([#4963](https://github.com/LazyVim/LazyVim/issues/4963))
([5ddad99](5ddad99bac))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-08 21:53:24 +01:00
7ef2dfd3ba fix(dot): kitty ft with bash treesitter highlights 2024-12-07 20:52:48 +01:00
3f4b1ff003 fix(mini.diff): toggle 2024-12-07 20:52:13 +01:00
0d71732902 chore(build): auto-generate docs 2024-12-07 10:58:17 +00:00
2ebba15e12 feat(git): added toggles for gitsigns.nvim and mini.diff 2024-12-07 11:57:21 +01:00
d424a02554 chore(build): auto-generate docs 2024-12-06 15:36:29 +00:00
5ddad99bac fix(rust): only use mason.nvim if it is present (#4963)
## Description

Fix the lang/rust extra for users that don't use mason. Uses the fix
suggested in
https://github.com/LazyVim/LazyVim/issues/4957#issuecomment-2521787846,
which works perfectly!

## Related Issue(s)

Fixes https://github.com/LazyVim/LazyVim/issues/4957

## Screenshots

n/a

## Checklist

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

Co-authored-by: Felix Rath <frath@cloudflare.com>
2024-12-06 16:35:27 +01:00
b2f750558a fix(keymaps): toggle name 2024-12-05 09:52:49 +01:00
8a3321d827 chore(main): release 13.7.0 (#4929)
🤖 I have created a release *beep* *boop*
---


##
[13.7.0](https://github.com/LazyVim/LazyVim/compare/v13.6.0...v13.7.0)
(2024-12-05)


### Features

* **blink:** enabled treesitter highlighting
([0a9447c](0a9447c1b1))
* **extras.ai:** blink.cmp integration and kind overrides for menu
drawing ([#4942](https://github.com/LazyVim/LazyVim/issues/4942))
([f841ecf](f841ecf6bd))
* **rust:** add bacon-ls and improve debugging
([#3212](https://github.com/LazyVim/LazyVim/issues/3212))
([ea794ff](ea794ffd94))
* **snacks:** silence copy url keymap
([#4939](https://github.com/LazyVim/LazyVim/issues/4939))
([03e203b](03e203bfbe))
* **toggle:** added leader-A to toggle tabline. Closes
[#4951](https://github.com/LazyVim/LazyVim/issues/4951)
([8232651](8232651c4a))


### Bug Fixes

* **blink:** update config for latest changes
([#4953](https://github.com/LazyVim/LazyVim/issues/4953))
([090ca75](090ca75d3b))
* **copilot:** CopilotChat.nvim has moved to main
([#4931](https://github.com/LazyVim/LazyVim/issues/4931))
([0d6026a](0d6026a3e8))
* **extras.treesitter-context:** change event back to `LazyFile`
([#4940](https://github.com/LazyVim/LazyVim/issues/4940))
([83017ff](83017ff28a))
* **supermaven:** blink.cmp integration
([#4941](https://github.com/LazyVim/LazyVim/issues/4941))
([d714711](d71471151b))
* **tex:** specify filetype for &lt;localleader&gt;l
([#4905](https://github.com/LazyVim/LazyVim/issues/4905))
([12e3752](12e37529e7))
* **ui:** actually disable mini-indentscope on snacks_dashboard
([#4947](https://github.com/LazyVim/LazyVim/issues/4947))
([bfe29fb](bfe29fb013))
* **ui:** disable mini.indentscope on `ft=snacks_dashboard`
([#4928](https://github.com/LazyVim/LazyVim/issues/4928))
([4bf3a39](4bf3a39223))
* **ui:** properly clear maximize state on exit. See
[#4934](https://github.com/LazyVim/LazyVim/issues/4934)
([9ec253b](9ec253b9b6))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-05 09:22:10 +01:00
ea794ffd94 feat(rust): add bacon-ls and improve debugging (#3212)
## Changes

**NOTE: the PR will be in draft until
https://github.com/mason-org/mason-registry/pull/5774 is not merged**

Some improvements in the Rust extra

- Set `codelldb` adapter for rustacean.nvim
- Add support for [bacon-ls](https://github.com/crisidev/bacon-ls)
([blog post](https://lmno.lol/crisidev/bacon-language-server))

`bacon-ls` can be used as an alternative to `rust-analyzer` for
diagnostics, improving `rust-analyzer` performances. This is configured
by `vim.g.lazyvim_rust_diagnostics`, which can be set to `rust-analyzer`
or `bacon-lsp`.

<img width="1063" alt="screenshot"
src="https://github.com/LazyVim/LazyVim/assets/1781140/f50a38ff-0ec0-4d10-8cdc-796d027b16f0">

---------

Co-authored-by: Iordanis Petkakis <12776461+dpetka2001@users.noreply.github.com>
2024-12-05 09:20:34 +01:00
8232651c4a feat(toggle): added leader-A to toggle tabline. Closes #4951 2024-12-05 09:18:16 +01:00
83017ff28a fix(extras.treesitter-context): change event back to LazyFile (#4940)
## Description

Load treesitter-context on `LazyFile` instead of `VeryLazy`. IMHO it
didn't make sense to load the plugin earlier just so that the toggle is
available, especially when the toggle won't actually have any effect
anything until a file is opened.

~Previously, treesitter-context was loaded on `VeryLazy` and its toggle
map in `opt`, which also `require`d it. Now, mapping happens in config,
after treesitter-context is setup (also how toggle is handled in other
extras, eg for render-markdown).~

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-05 09:11:40 +01:00
12e37529e7 fix(tex): specify filetype for <localleader>l (#4905)
## Description

Specify the filetype for the keymap `<localleader>l` to ensure that this
keybinding group only appears when editing TeX files.

## 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-05 09:11:11 +01:00
bfe29fb013 fix(ui): actually disable mini-indentscope on snacks_dashboard (#4947)
## Description

Disables mini.indentscope for the buffer on which the
`SnacksDashboardOpened` autocmd is called.

## Related Issue(s)

closes #4944

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-05 09:10:44 +01:00
097b9e2f27 chore(build): auto-generate docs 2024-12-05 07:47:07 +00:00
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
efc95dc6aa chore(build): auto-generate docs 2024-12-03 20:08:00 +00:00
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
4a626a8137 refactor(ui): cleanup maximize code 2024-12-02 23:46:11 +01:00
9ec253b9b6 fix(ui): properly clear maximize state on exit. See #4934 2024-12-02 22:34:39 +01:00
d71471151b fix(supermaven): blink.cmp integration (#4941)
## Description

Supermaven completion now works with the latest release of blink.cmp and
blink.compat. I'll also take a look at the other ai extras soon.

~A draft for now, until some issues with ghost text are resolved, see
https://github.com/Saghen/blink.cmp/issues/257. Alternatively, enabling
the supermaven extra could disable ghost text.~

## Screenshots


![image](https://github.com/user-attachments/assets/feb8003d-85c5-49a4-80df-7f57b240d371)

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-02 21:51:25 +01:00
03e203bfbe feat(snacks): silence copy url keymap (#4939)
## Description

Silences keymap introduced in related PR
## Related PR(s)

https://github.com/LazyVim/LazyVim/pull/4870

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-02 20:22:55 +01:00
0a9447c1b1 feat(blink): enabled treesitter highlighting 2024-12-02 19:43:08 +01:00
fefcda5431 chore(build): auto-generate docs 2024-12-02 06:36:02 +00:00
0d6026a3e8 fix(copilot): CopilotChat.nvim has moved to main (#4931)
## Description

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

CopilotChat.nvim has moved to main
([ref](https://github.com/CopilotC-Nvim/CopilotChat.nvim/issues/665))

## Related Issue(s)
https://github.com/CopilotC-Nvim/CopilotChat.nvim/issues/665
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

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

![image](https://github.com/user-attachments/assets/2970e3c0-04af-49e9-974b-d535e47b9c12)

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-02 07:35:04 +01:00
4bf3a39223 fix(ui): disable mini.indentscope on ft=snacks_dashboard (#4928)
## Description

mini.indentscope would act on the snacks dashboard if it was somehow
loaded while the dashboard is still open.

## Related Issue(s)

I forgot about mini.indentscope in #4895 :)

## Screenshots

**Actually** fixes this:

![image](https://github.com/user-attachments/assets/1f77cf1d-c9c1-48d1-9bf3-8508782e8dd1)

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-01 19:57:55 +01:00
7bdc205e7d chore(main): release 13.6.0 (#4872)
🤖 I have created a release *beep* *boop*
---


##
[13.6.0](https://github.com/LazyVim/LazyVim/compare/v13.5.3...v13.6.0)
(2024-12-01)


### Features

* **colorscheme:** enable catppuccin snacks integration by default
([#4882](https://github.com/LazyVim/LazyVim/issues/4882))
([5659786](5659786893))
* **extras:** added extra for `smear-cursor.nvim`
([40dba86](40dba86925))
* **lang:** add maxInlayHintLength for vtsls to resolve inlay hint to…
([#4902](https://github.com/LazyVim/LazyVim/issues/4902))
([1847e3f](1847e3fb25))
* **smear-cursor:** enable `cursor_color = "none"`, to show trail using
color of target text fg color
([275c786](275c78665e))
* **snacks:** add keymap to copy url from gitbrowse
([#4870](https://github.com/LazyVim/LazyVim/issues/4870))
([cdf3f1f](cdf3f1f2bd))
* **snacks:** added leader-. to toggle a scratch buffer. Uses `count`
for new scratch buffers
([6d42f10](6d42f1084d))
* **snacks:** added leader-n to show notification history
([be0cb96](be0cb9622d))
* **snacks:** added leader-S to select a previous scratch buffer
([e05379b](e05379babc))


### Bug Fixes

* **blink:** fixed luasnip completions for blink
([7bb954f](7bb954fd1d))
* **blink:** icons
([2263b94](2263b94439))
* **blink:** make sure blink.compat is setup correctly when used in
extras
([91a3c66](91a3c663a7))
* **blink:** updated to config to reflect breaking changes
([efcba66](efcba66a22))
* **dial:** add and/or augend to python ft
([#4875](https://github.com/LazyVim/LazyVim/issues/4875))
([ecfaed3](ecfaed3cc1))
* **java:** give java a default nvim-dap config
([#4261](https://github.com/LazyVim/LazyVim/issues/4261))
([c9102bc](c9102bc351))
* **java:** minisurround jdtls keybind conflict
([#4886](https://github.com/LazyVim/LazyVim/issues/4886))
([30fac42](30fac4206a))
* **lazydev:** use luals' bundled luv library
([eb525c6](eb525c680d))
* **lsp:** don't leak keymaps from LSP server configs
([#4849](https://github.com/LazyVim/LazyVim/issues/4849))
([85e4118](85e4118065))
* **mini.animate:** disable when in Neovide
([66459f9](66459f9361))
* **octo:** upstream changed mappings to `localleader`
([#4850](https://github.com/LazyVim/LazyVim/issues/4850))
([c979225](c979225c37))
* **snacks:** remove lazygit requirement for git browse/blame keymaps
([#4869](https://github.com/LazyVim/LazyVim/issues/4869))
([2c37492](2c37492461))
* **sql:** fix autocomplete, it was using the wrong plugin name on the
`LazyVim.has` check
([#4900](https://github.com/LazyVim/LazyVim/issues/4900))
([ed10d3c](ed10d3cf19))
* **sql:** only use cmp if it is available
([#4891](https://github.com/LazyVim/LazyVim/issues/4891))
([9eccb5d](9eccb5d2de))
* **ui:** disable indent-blankline on `ft=snacks_dashboard`
([#4895](https://github.com/LazyVim/LazyVim/issues/4895))
([c022759](c02275919e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-01 09:38:42 +01:00
c8bd062ef8 chore(build): auto-generate docs 2024-12-01 08:32:23 +00:00
6d42f1084d feat(snacks): added leader-. to toggle a scratch buffer. Uses count for new scratch buffers 2024-12-01 09:31:26 +01:00
e05379babc feat(snacks): added leader-S to select a previous scratch buffer 2024-12-01 09:31:26 +01:00
be0cb9622d feat(snacks): added leader-n to show notification history 2024-12-01 09:31:26 +01:00
2fc7697786 chore(build): auto-generate docs 2024-11-29 13:31:50 +00:00
275c78665e feat(smear-cursor): enable cursor_color = "none", to show trail using color of target text fg color 2024-11-29 14:30:47 +01:00
2263b94439 fix(blink): icons 2024-11-28 21:51:23 +01:00
1847e3fb25 feat(lang): add maxInlayHintLength for vtsls to resolve inlay hint to… (#4902)
## Description

feat(lang): add maxInlayHintLength for vtsls to resolve inlay hint too
long

## Related Issue(s)
* https://github.com/neovim/neovim/issues/27240
* https://github.com/yioneko/vtsls/pull/173


## Screenshots
before

![image](https://github.com/user-attachments/assets/5bc53695-7457-4f8f-bd03-b4de29f6f80d)


after

![image](https://github.com/user-attachments/assets/c9281173-4198-4bf2-84cf-33c5d1984550)



## Checklist

- [ x ] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-28 08:49:40 +01:00
7bb954fd1d fix(blink): fixed luasnip completions for blink 2024-11-28 07:39:30 +01:00
efcba66a22 fix(blink): updated to config to reflect breaking changes 2024-11-28 07:39:30 +01:00
76fbed6de5 chore(build): auto-generate docs 2024-11-28 06:22:02 +00:00
ed10d3cf19 fix(sql): fix autocomplete, it was using the wrong plugin name on the LazyVim.has check (#4900)
## Description

`LazyVim.has` was called with the wrong plugin name.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-28 07:21:00 +01:00
13dc88a317 chore(build): auto-generate docs 2024-11-27 16:11:17 +00:00
40dba86925 feat(extras): added extra for smear-cursor.nvim 2024-11-27 17:10:22 +01:00
66459f9361 fix(mini.animate): disable when in Neovide 2024-11-27 17:09:59 +01:00
c02275919e fix(ui): disable indent-blankline on ft=snacks_dashboard (#4895)
## Description

`indent-blankline.nvim` would act on the snacks dashboard if it was
somehow loaded while the dashboard is still open.

## Related Issue(s)

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

## Screenshots

Fixes this:

![image](https://github.com/user-attachments/assets/1f77cf1d-c9c1-48d1-9bf3-8508782e8dd1)

## Checklist

- [X] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-26 22:39:05 +01:00
9eccb5d2de fix(sql): only use cmp if it is available (#4891)
## Description

The blink and sql extras are currently conflicting because the sql extra
has a hard dependency on nvim-cmp, which is disabled by the blink extra.
Introducing a check for cmp in the sql extra resolves this.

## Checklist

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

Co-authored-by: Jakob Pfender <jakob.pfender@safetyio.com>
2024-11-26 16:12:56 +01:00
d5734087e4 chore(build): auto-generate docs 2024-11-26 08:14:53 +00:00
c9102bc351 fix(java): give java a default nvim-dap config (#4261)
## Description

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->
Currently, there are no Java configurations for nvim-dap upon enabling
the Java extras.

This requires debugging configurations to be setup manually afterwards.

(This is unlike many other language extras which do have nvim-dap
support "out of the box")

This pr creates an initial configuration for nvim-dap which lets it
attach to a debugging process on port 5005.
(such as a spring boot application) More can be added if there are any
experienced Java devs here.

## Related Issue(s)

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

## Screenshots

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

![image](https://github.com/user-attachments/assets/5922cf48-6ac7-4a2a-8785-1f9b958089e4)

Java remote debugging open:

![image](https://github.com/user-attachments/assets/dfbe7c5b-2308-4aa4-a236-487605e4c75a)


## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-26 09:13:01 +01:00
cdf3f1f2bd feat(snacks): add keymap to copy url from gitbrowse (#4870)
## Description

Adds a `<leader>gY` keymap that copies the URL from `Snacks.gitbrowse()`
to the clipboard.

This is a feature in other git browse plugins like `vim-rhubarb`, so
other people will probably be looking for this when migrating like I
did.

Let me know if you'd prefer a different key combination, thanks!

## Related Issue(s)

N/A

## Screenshots

N/A

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-25 15:00:36 +01:00
85e4118065 fix(lsp): don't leak keymaps from LSP server configs (#4849)
## Description

I found an issue where if I'm editing files of different types, say for
example `.cs` and `.py` files, they will naturally load the
corresponding LSPs for each language. However, if one of those LSPs has
keys defined in their `server` config section, then those key maps will
leak into the other, so in this case, the `gd` (go to definition)
mapping intended for `.cs` buffers is now present in `.py` buffers,
causing it not to work. This is currently the case with the `omnisharp`
LSP, as it defines a `gd` key map, see:
63150fa4c5/lua/lazyvim/plugins/extras/lang/omnisharp.lua (L53-L61)

The fix here is to shallow clone the "global" LSP keymaps before adding
the LSP server-specific keymaps so the LSP keymaps aren't added to the
global ones.

## Related Issue(s)

## Screenshots

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-25 14:59:55 +01:00
37dbb63c61 docs(readme): enhance the quality of the Chinese translation (#4860)
## Description

Enhance the quality of the Chinese README.

### Changes
1. Complete the translation of the untranslated sections.
2. Correct inaccuracies in existing translations.
3. Revise the language to sound more natural and idiomatic.
4. Adjust punctuation and paragraph structure to align with Chinese
typography standards.

## 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-11-25 14:59:25 +01:00
55be9a1648 chore(build): auto-generate docs 2024-11-25 13:58:01 +00:00
30fac4206a fix(java): minisurround jdtls keybind conflict (#4886)
## Description

Fixes the keybind conflict with jdtls and mini-surround plugin.

When pressing "\<gs\>" or "\<gS\>" to start the surround once the java
language server starts,
it replaces the surround bind with "goto super" and "goto subjects".

When pressing "\<gs\>" quickly, it attempts the command "goto super".
When pressing "\<gs\>" slowly, it brings up "which-key" and the surround
bind works.

## Related Issue(s)

None

## Screenshots
Pressing "\<gs\>" quickly

![image](https://github.com/user-attachments/assets/8fbaf39f-72cd-4d7d-bcf7-035faa7650e8)

Pressing "\<gs\>" slowly

![image](https://github.com/user-attachments/assets/2ec4d1f3-f900-413c-8351-26cb8a5cbafc)


## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-25 14:57:17 +01:00
c979225c37 fix(octo): upstream changed mappings to localleader (#4850)
## Description
As of this [PR](https://github.com/pwntester/octo.nvim/pull/681)
`<leader>` got changed to `<localleader>`.
<!-- 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-11-25 14:57:02 +01:00
eb525c680d fix(lazydev): use luals' bundled luv library 2024-11-24 23:03:03 +01:00
91a3c663a7 fix(blink): make sure blink.compat is setup correctly when used in extras 2024-11-24 22:03:43 +01:00
a03f796097 chore(build): auto-generate docs 2024-11-24 16:30:10 +00:00
5659786893 feat(colorscheme): enable catppuccin snacks integration by default (#4882)
## Description

Enable catppuccin's snacks integration by default.

## 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-11-24 17:28:26 +01:00
ecfaed3cc1 fix(dial): add and/or augend to python ft (#4875)
## Description

The python language includes the keywords `and` or `or` for logical
operations.
The current `dial.nvim` config does not include an augend for swapping
these
keywords.

## 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-11-23 00:05:43 +01:00
2c37492461 fix(snacks): remove lazygit requirement for git browse/blame keymaps (#4869)
## Description

The Snacks keymaps for `gitbrowse()` and `git.blame_line()` were in a
conditional checking if `lazygit` is installed. But both work without
`lazygit`.

## Related Issue(s)

N/A

## Screenshots

N/A

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-22 12:25:33 +01:00
adcbfc72fd chore(main): release 13.5.3 (#4845)
🤖 I have created a release *beep* *boop*
---


##
[13.5.3](https://github.com/LazyVim/LazyVim/compare/v13.5.2...v13.5.3)
(2024-11-22)


### Bug Fixes

* **copilot:** remove tmp nightly fix
([30f556d](30f556d17a))
* **dial:** make sure defaults are part of every group. Fixes
[#4868](https://github.com/LazyVim/LazyVim/issues/4868)
([2108028](2108028cde))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-22 09:41:06 +01:00
ba8f6b0215 chore(build): auto-generate docs 2024-11-22 05:55:52 +00:00
2108028cde fix(dial): make sure defaults are part of every group. Fixes #4868 2024-11-22 06:54:47 +01:00
63150fa4c5 chore(build): auto-generate docs 2024-11-20 08:49:27 +00:00
30f556d17a fix(copilot): remove tmp nightly fix 2024-11-20 09:48:30 +01:00
4d596cf4b4 chore(main): release 13.5.2 (#4840)
🤖 I have created a release *beep* *boop*
---


##
[13.5.2](https://github.com/LazyVim/LazyVim/compare/v13.5.1...v13.5.2)
(2024-11-19)


### Bug Fixes

* **keymaps:** `gitbrowse` also in Visual mode
([#4818](https://github.com/LazyVim/LazyVim/issues/4818))
([86dc548](86dc548ff9))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-19 15:35:35 +01:00
86dc548ff9 fix(keymaps): gitbrowse also in Visual mode (#4818)
## Description
If https://github.com/folke/snacks.nvim/pull/89 gets accepted, then we
should also update the keymap for Visual mode
<!-- 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-11-19 15:27:07 +01:00
fc2eae5faf chore(main): release 13.5.1 (#4835)
🤖 I have created a release *beep* *boop*
---


##
[13.5.1](https://github.com/LazyVim/LazyVim/compare/v13.5.0...v13.5.1)
(2024-11-19)


### Bug Fixes

* **copilot:** work-around to get copilot working again on nightly
([5961528](59615281f8))
* **extras:** add blink.cmp integration for SQL extra
([#4833](https://github.com/LazyVim/LazyVim/issues/4833))
([0bb1da6](0bb1da6d57))
* **snacks:** alignment of header
([4df9392](4df9392cb8))
* **snacks:** cleaner way to adjust keys preset
([9c31004](9c31004365))
* **snacks:** make sure early notifications show up in noice
([b873f9a](b873f9a7e7))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-19 09:47:23 +01:00
4df9392cb8 fix(snacks): alignment of header 2024-11-19 09:35:42 +01:00
b873f9a7e7 fix(snacks): make sure early notifications show up in noice 2024-11-19 09:03:00 +01:00
59615281f8 fix(copilot): work-around to get copilot working again on nightly 2024-11-19 08:49:53 +01:00
f198eef6e5 chore(build): auto-generate docs 2024-11-19 06:32:29 +00:00
9c31004365 fix(snacks): cleaner way to adjust keys preset 2024-11-19 07:31:28 +01:00
0bb1da6d57 fix(extras): add blink.cmp integration for SQL extra (#4833)
## Description

This PR adds blink.cmp integration with `vim-dadbod-completion` in the
SQL extras module. It allows blink.cmp to use the dadbod provider for
SQL autocompletion in Neovim.

## 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-11-19 00:02:56 +01:00
2786fdb6e2 chore(main): release 13.5.0 (#4823)
🤖 I have created a release *beep* *boop*
---


##
[13.5.0](https://github.com/LazyVim/LazyVim/compare/v13.4.0...v13.5.0)
(2024-11-18)


### Features

* **copilot-chat:** remove call to nvim-cmp integration
([#4822](https://github.com/LazyVim/LazyVim/issues/4822))
([af95531](af9553135d))
* **snacks:** use `snacks.dashboard` as the default dashboard. moved
`dashboard-nvim` to extras
([#4832](https://github.com/LazyVim/LazyVim/issues/4832))
([a07db1a](a07db1a723))


### Bug Fixes

* **lualine:** dont show statusline on snacks_dashboard
([33557ae](33557ae68b))
* **tabnine:** dont call CmpTabnineHub in build. Fixes
[#4828](https://github.com/LazyVim/LazyVim/issues/4828)
([6dcf5d7](6dcf5d7159))


### Performance Improvements

* **ui:** never show folds on dashboards
([0352f94](0352f944c3))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-18 23:34:15 +01:00
a07db1a723 feat(snacks): use snacks.dashboard as the default dashboard. moved dashboard-nvim to extras (#4832)
## Description

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

Snacks has a new dashboard plugin that will be LazyVim's default.

Check the docs at
https://github.com/folke/snacks.nvim/blob/main/docs/dashboard.md

## 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-11-18 23:32:49 +01:00
0352f944c3 perf(ui): never show folds on dashboards 2024-11-18 21:27:36 +01:00
33557ae68b fix(lualine): dont show statusline on snacks_dashboard 2024-11-18 21:27:36 +01:00
6dcf5d7159 fix(tabnine): dont call CmpTabnineHub in build. Fixes #4828 2024-11-18 21:27:36 +01:00
5c5ae903c9 chore(build): auto-generate docs 2024-11-18 09:06:35 +00:00
af9553135d feat(copilot-chat): remove call to nvim-cmp integration (#4822)
nvim-cmp integration was removed in favour of custom autocomplete (it
was pointless trying to support all the new completion plugins when its
15 lines to implement something plugin specific)

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
2024-11-18 10:05:28 +01:00
704c29110d chore(main): release 13.4.0 (#4806)
🤖 I have created a release *beep* *boop*
---


##
[13.4.0](https://github.com/LazyVim/LazyVim/compare/v13.3.1...v13.4.0)
(2024-11-16)


### Features

* **blink:** auto-enable catppuccin integration
([#4799](https://github.com/LazyVim/LazyVim/issues/4799))
([ffce089](ffce089a9f))
* **copilot-chat:** remove deprecated options
([#4802](https://github.com/LazyVim/LazyVim/issues/4802))
([7a1414b](7a1414b5e5))
* **dial:** support vue filetype
([#4785](https://github.com/LazyVim/LazyVim/issues/4785))
([8235126](8235126a32))
* **extras:** add biome formatter
([#4448](https://github.com/LazyVim/LazyVim/issues/4448))
([b8407f4](b8407f4b12))
* **vscode:** automatically enable the vscode extra when running in
vscode
([1c5a330](1c5a330b6b))


### Bug Fixes

* **terminal:** set shellcmdflags for powershell to recommended values.
Closes [#4805](https://github.com/LazyVim/LazyVim/issues/4805)
([1db2af2](1db2af267e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-16 13:09:51 +01:00
1db2af267e fix(terminal): set shellcmdflags for powershell to recommended values. Closes #4805 2024-11-16 07:39:48 +01:00
1c5a330b6b feat(vscode): automatically enable the vscode extra when running in vscode 2024-11-16 07:35:47 +01:00
b8407f4b12 feat(extras): add biome formatter (#4448)
## Description
This PR adds biome as a conform/null-ls formatter.

When using biome lsp formatting directly, the syntax highlighting is
flickering. However, it works great when formatting is configured with
conform.

To avoid conflicts with Prettier, it is recommended to set
`vim.g.lazyvim_prettier_needs_config = true` In this case, both prettier
and biome formatters could be activated simultaneously.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-16 07:34:21 +01:00
8235126a32 feat(dial): support vue filetype (#4785)
## Description

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

support vue filetype

## 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-11-16 07:33:27 +01:00
767d873f93 chore(build): auto-generate docs 2024-11-16 06:32:40 +00:00
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
7a1414b5e5 feat(copilot-chat): remove deprecated options (#4802)
- Diagnostic help was deprecated and now just proxies to prompt actions
(by default diagnostics are auto included in all selections so this
feature was no longer necessary)
- Selecton is now visual || buffer by default so the custom selection
config is no longer needed too

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
2024-11-16 07:31:50 +01:00
bb289f4345 chore(main): release 13.3.1 (#4796)
🤖 I have created a release *beep* *boop*
---


##
[13.3.1](https://github.com/LazyVim/LazyVim/compare/v13.3.0...v13.3.1)
(2024-11-15)


### Bug Fixes

* **copilot:** don't enable blink when using copilot when blink is not
installed. Fixes [#4795](https://github.com/LazyVim/LazyVim/issues/4795)
([07a0468](07a046867d))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-15 06:29:54 +01:00
bbd5c8a771 chore(build): auto-generate docs 2024-11-15 05:26:21 +00:00
07a046867d fix(copilot): don't enable blink when using copilot when blink is not installed. Fixes #4795 2024-11-15 06:25:26 +01:00
ad3e2b6354 chore(main): release 13.3.0 (#4765)
🤖 I have created a release *beep* *boop*
---


##
[13.3.0](https://github.com/LazyVim/LazyVim/compare/v13.2.0...v13.3.0)
(2024-11-14)


### Features

* **copilot:** added support for blink.cmp source
([a7eca05](a7eca05609))
* **extras:** add supermaven
([#3491](https://github.com/LazyVim/LazyVim/issues/3491))
([c1e8e3c](c1e8e3c80d))


### Bug Fixes

* **dial.nvim:** added boolean and logical toggles to default group.
Fixes [#4515](https://github.com/LazyVim/LazyVim/issues/4515)
([5e485d3](5e485d39b4))
* **fzf:** decouple `defaults` from `opts` to easy switch profiles
([#4190](https://github.com/LazyVim/LazyVim/issues/4190))
([0819f93](0819f9396e))
* **lsp:** wrap signature_help
([#4791](https://github.com/LazyVim/LazyVim/issues/4791))
([deb9fd8](deb9fd85b1))
* **lualine:** dynamically fetch the color used in lualine
([#4788](https://github.com/LazyVim/LazyVim/issues/4788))
([e50b435](e50b43544f))
* **lualine:** normalize paths before calculating pretty path. Fixes
[#4763](https://github.com/LazyVim/LazyVim/issues/4763)
([ea266e7](ea266e7326))
* **snacks:** explicitely enable snakcs plugins
([c0b623c](c0b623c332))


### Performance Improvements

* **treesitter:** better foldtext and foldexpr
([1d7b9a1](1d7b9a1a61))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-14 23:55:29 +01:00
c0b623c332 fix(snacks): explicitely enable snakcs plugins 2024-11-14 23:53:03 +01:00
deb9fd85b1 fix(lsp): wrap signature_help (#4791)
## Description

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

Related to 7616816.
Without wrap `lsp_doc_border` does not work

## 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-11-14 20:32:52 +01:00
86b2c23e2a chore(build): auto-generate docs 2024-11-14 14:54:39 +00:00
e50b43544f fix(lualine): dynamically fetch the color used in lualine (#4788)
## Description

The color used in lualine was previously static and did not update
dynamically when a new colorscheme was applied. This resulted in
inconsistencies between the theme and the lualine colors, as the 'local'
color table returned the highlight color defined during initialization.

This pull request resolves the issue by ensuring that the lualine colors
are always in sync with the current colorscheme. It achieves this by
using `LazyVim.ui.fg(HIGHLIGHT)` to dynamically fetch the appropriate
highlight colors, making the lualine colors responsive to colorscheme
changes.

## Related Issue(s)

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

## Screenshots

**Before**


![image](https://github.com/user-attachments/assets/6b78483b-4a64-4ec3-a902-a0d1ed10a992)

**After**


![image](https://github.com/user-attachments/assets/3f73ec26-cbf1-4ff7-873f-6c7b2c13c481)

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-14 15:53:27 +01:00
3ac62a4364 refactor(ui): cleanup fg/color 2024-11-13 21:14:29 +01:00
1d7b9a1a61 perf(treesitter): better foldtext and foldexpr 2024-11-13 21:11:32 +01:00
0819f9396e fix(fzf): decouple defaults from opts to easy switch profiles (#4190)
## Description
This decouples `defaults` from `opts`, so that if users switch to
another profile they can take advantage of
the profile's default settings and prompts.

I use `default-title` either way. I just stumbled upon this when I tried
the rest profiles and thought maybe there
would be users who would prefer to have the default prompts if they
chose another profile.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
No
<!--
  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.

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2024-11-13 19:20:48 +01:00
5e485d39b4 fix(dial.nvim): added boolean and logical toggles to default group. Fixes #4515 2024-11-13 19:00:07 +01:00
a7eca05609 feat(copilot): added support for blink.cmp source 2024-11-13 18:28:58 +01:00
c1e8e3c80d feat(extras): add supermaven (#3491)
Add fast copilot alternative

---------

Co-authored-by: Iordanis Petkakis <12776461+dpetka2001@users.noreply.github.com>
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2024-11-13 17:49:47 +01:00
b98b048ec6 chore(build): auto-generate docs 2024-11-13 16:22:02 +00:00
5df382765b refactor(lualine): status component 2024-11-13 17:20:50 +01:00
ea266e7326 fix(lualine): normalize paths before calculating pretty path. Fixes #4763 2024-11-11 15:44:08 +01:00
0137a110c1 chore(main): release 13.2.0 (#4745)
🤖 I have created a release *beep* *boop*
---


##
[13.2.0](https://github.com/LazyVim/LazyVim/compare/v13.1.0...v13.2.0)
(2024-11-11)


### Features

* **ai:** better completion/suggestions of AI engines
([#4752](https://github.com/LazyVim/LazyVim/issues/4752))
([fbf881f](fbf881f80b))
* **ai:** move ai related extras from `coding` to `ai`
([#4751](https://github.com/LazyVim/LazyVim/issues/4751))
([86904d2](86904d2fb1))
* **keymaps:** leader-bo to close other buffers
([24665fc](24665fc736))
* **rest:** add more keymaps to util.rest
([#4467](https://github.com/LazyVim/LazyVim/issues/4467))
([c22db72](c22db72435))


### Bug Fixes

* **extras:** fix alpha-nvim non-string keycodes
([#4735](https://github.com/LazyVim/LazyVim/issues/4735))
([9c9e650](9c9e650530))
* **snacks:** allow overriding `statuscolumn` through `options.lua`
([17a1b84](17a1b846f0))
* **vscode:** added snacks.nvim to allowed plugins for vscode. Fixes
[#4757](https://github.com/LazyVim/LazyVim/issues/4757)
([06071dd](06071dd452))


### Performance Improvements

* **ui:** only enable treesitter folds if the buffer has treesitter
highlighting
([b9dae57](b9dae57961))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-11 11:09:35 +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
c22db72435 feat(rest): add more keymaps to util.rest (#4467)
## Description

Add keymaps util.rest extra

## Related Issue(s)

n/a


## Checklist

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

---------

Co-authored-by: janbua <janbua@apetito.com>
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2024-11-11 09:44:11 +01:00
06071dd452 fix(vscode): added snacks.nvim to allowed plugins for vscode. Fixes #4757 2024-11-11 09:41:45 +01:00
dcab30f242 chore(build): auto-generate docs 2024-11-11 08:38:55 +00:00
17a1b846f0 fix(snacks): allow overriding statuscolumn through options.lua 2024-11-11 09:37:47 +01:00
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
309d189448 chore(build): auto-generate docs 2024-11-10 07:19:09 +00:00
b9dae57961 perf(ui): only enable treesitter folds if the buffer has treesitter highlighting 2024-11-09 23:33:05 +01:00
24665fc736 feat(keymaps): leader-bo to close other buffers 2024-11-09 16:13:11 +01:00
9c9e650530 fix(extras): fix alpha-nvim non-string keycodes (#4735)
## Description

The `dashboard.button` function provided by alpha-nvim expects a string
keybind, not a function:


https://github.com/goolord/alpha-nvim/blob/main/lua/alpha/themes/dashboard.lua#L63

## Related Issue(s)

Fixes https://github.com/LazyVim/LazyVim/issues/3728.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-09 15:57:48 +01:00
f57944f926 chore(main): release 13.1.0 (#4733)
🤖 I have created a release *beep* *boop*
---


##
[13.1.0](https://github.com/LazyVim/LazyVim/compare/v13.0.0...v13.1.0)
(2024-11-09)


### Features

* **terraform:** add formatter for packer files
([#4591](https://github.com/LazyVim/LazyVim/issues/4591))
([4876d11](4876d1137d))


### Bug Fixes

* **extras:** lazy-load telescope-terraform plugins
([#4667](https://github.com/LazyVim/LazyVim/issues/4667))
([94b4219](94b4219327))
* **options:** make sure spelling works in regular text files
([548fddd](548fddd1d5))
* **snacks:** noice now honors `Snacks.config.notifier.enabled = false`
([220148f](220148f47f))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-09 15:51:45 +01:00
5b66db294f chore(build): auto-generate docs 2024-11-09 14:50:33 +00:00
220148f47f fix(snacks): noice now honors Snacks.config.notifier.enabled = false 2024-11-09 15:49:40 +01:00
4876d1137d feat(terraform): add formatter for packer files (#4591)
## Description

Adds a formatter for Packer configuration files (`ft=hcl`), a file type
already partially supported by the `lang.terraform` extra.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-08 21:14:22 +01:00
EJ
94b4219327 fix(extras): lazy-load telescope-terraform plugins (#4667)
## Description

In the current terraform extra, both
`cappyzawa/telescope-terraform.nvim` and
`ANGkeith/telescope-terraform-doc.nvim` are dependencies of
`telescope.nvim`.
This should be reversed so that the telescope extensions only load when
needed
(I added a `ft` trigger which I think makes the most sense), and not as
a
dependency of `telescope.nvim`.

## Related Issue(s)

No related issues, just fixed this when the loading time of
`telescope-terraform-doc.nvim` in-particular was annoying (+~30ms
startup).

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-08 21:08:21 +01:00
548fddd1d5 fix(options): make sure spelling works in regular text files 2024-11-08 21:05:30 +01:00
5efb88f44a chore(main): release 13.0.0 (#4723)
🤖 I have created a release *beep* *boop*
---


##
[13.0.0](https://github.com/LazyVim/LazyVim/compare/v12.44.1...v13.0.0)
(2024-11-08)


### ⚠ BREAKING CHANGES

* **core:** move a bunch of LazyVim features to snacks.nvim
([#4706](https://github.com/LazyVim/LazyVim/issues/4706))

### Features

* **core:** move a bunch of LazyVim features to snacks.nvim
([#4706](https://github.com/LazyVim/LazyVim/issues/4706))
([2f46974](2f4697443c))
* **elixir:** add support for livebook files (`*.livemd`)
([#4184](https://github.com/LazyVim/LazyVim/issues/4184))
([2fcd4cd](2fcd4cdc5f))
* **eslint:** add option to disable eslint auto format
([#4225](https://github.com/LazyVim/LazyVim/issues/4225))
([2d2e425](2d2e425d25))
* **extras.nushell:** update to upstream treesitter
([#4715](https://github.com/LazyVim/LazyVim/issues/4715))
([37cc039](37cc03948d))
* **extras:** lang/zig
([#4437](https://github.com/LazyVim/LazyVim/issues/4437))
([4379faf](4379fafc7b))
* **extras:** rego language support
([#4297](https://github.com/LazyVim/LazyVim/issues/4297))
([cf86484](cf86484797))
* **keymaps:** only add lazygit keymaps when available. Closes
[#4643](https://github.com/LazyVim/LazyVim/issues/4643). Closes
[#4247](https://github.com/LazyVim/LazyVim/issues/4247)
([aa53cd4](aa53cd47c4))
* **lang.angular:** configure `prettier` as formatter for `angular`
templates ([#4345](https://github.com/LazyVim/LazyVim/issues/4345))
([2d6687c](2d6687c646))
* **scala:** add key for worksheet hover
([#3853](https://github.com/LazyVim/LazyVim/issues/3853))
([859646f](859646f628))
* **toggle:** add illuminate toggle for which-key
([#4708](https://github.com/LazyVim/LazyVim/issues/4708))
([67ba582](67ba58215b))


### Bug Fixes

* **blink:** remove `draw="reversed"` for now till new release
([b841a1d](b841a1dfc3))
* **copilot-chat:** setup cmp conditionally
([#4716](https://github.com/LazyVim/LazyVim/issues/4716))
([a86c252](a86c25286b))
* **dap:** use dap's splitstr when running with args. Closes
[#4387](https://github.com/LazyVim/LazyVim/issues/4387)
([776994a](776994a207))
* **dial:** follow comment explanation for integers
([#4658](https://github.com/LazyVim/LazyVim/issues/4658))
([c879b39](c879b397c7))
* **extras:** make kulala keys only for http files
([#4574](https://github.com/LazyVim/LazyVim/issues/4574))
([b0ced33](b0ced339a8))
* **extras:** use the correct naming when setting up eruby formatter
([#4625](https://github.com/LazyVim/LazyVim/issues/4625))
([8534af4](8534af4a79))
* **lang/r:** make keymaps in which-key menu available in visual mode
([#4565](https://github.com/LazyVim/LazyVim/issues/4565))
([ee2ec7e](ee2ec7e474))
* **lang/ruby:** do not enable Rubocop as LSP if Solargraph is used
([#4566](https://github.com/LazyVim/LazyVim/issues/4566))
([fd361d0](fd361d07a2))
* **lsp:** wrap hover and signature_help
([7616816](76168166e5))
* **lualine:** apply highlight groups correctly to truncated
pretty_paths ([#4379](https://github.com/LazyVim/LazyVim/issues/4379))
([1d4157e](1d4157e681))
* **lualine:** make sure path is in root before substituting
([67b216c](67b216c973))
* **navic:** use the same background color as lualine section_c
([#4231](https://github.com/LazyVim/LazyVim/issues/4231))
([64b0f0b](64b0f0b71d))
* **neotest:** disambiguous key map descriptions
([#4374](https://github.com/LazyVim/LazyVim/issues/4374))
([dfde914](dfde9148ef))
* **options:** disable default ruler
([#4731](https://github.com/LazyVim/LazyVim/issues/4731))
([da3058a](da3058a72d))
* **options:** removed deprecated options
([1e975be](1e975be7a5))
* **prettier:** keep existing formatters_by_ft
([#4719](https://github.com/LazyVim/LazyVim/issues/4719))
([4ff3606](4ff36062dd))
* **project.nvim:** correctly delete projects
([#4314](https://github.com/LazyVim/LazyVim/issues/4314))
([c097355](c09735594a))
* **snacks:** dont add `snacks_notif` to close_with_q
([e6f612f](e6f612f1cc))
* **snippet:** don't set navigation mappings in nightly
([#4375](https://github.com/LazyVim/LazyVim/issues/4375))
([1552791](15527910c3))
* **telescope:** buffers to start at final item
([#4189](https://github.com/LazyVim/LazyVim/issues/4189))
([f78bc3b](f78bc3b858))
* **telescope:** check for gmake if needed
([0bc09d8](0bc09d8206))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-08 17:18:00 +01:00
da3058a72d fix(options): disable default ruler (#4731)
## Description

The ruler option causes numbers to be briefly shown on the dashboard
while LazyVim is loading. This MR disables the ruler.


## Screenshots
<img width="1086" alt="image"
src="https://github.com/user-attachments/assets/debd9e9b-bfd2-485e-be51-d1b7a59c3729">


<!-- 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-11-08 17:10:53 +01:00
76168166e5 fix(lsp): wrap hover and signature_help 2024-11-08 16:55:40 +01:00
2fcd4cdc5f feat(elixir): add support for livebook files (*.livemd) (#4184)
Livebook is a subset of Markdown, so we can safely use markdown's
treesitter for it.

Co-authored-by: Iordanis Petkakis <dpetka2001@users.noreply.github.com>
2024-11-08 14:10:11 +01:00
859646f628 feat(scala): add key for worksheet hover (#3853)
## What is this PR for?

Worksheet hovering is a useful feature provided by `metals` to see not
just the end result, but also the entire output of a function call, as
can be seen here for example:
https://youtu.be/Jv9B1crzpWM?t=16m20s

Having a default key assigned not only makes it more convenient, but
also increases discoverability.

(I was also contemplating `<leader>mK` as the mapping to be in line with
`K` for regular hover, but I wasn't convinced that the consistency is
worth the extra keypress.)

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-08 14:09:17 +01:00
64b0f0b71d fix(navic): use the same background color as lualine section_c (#4231)
## Description

Prior to this, when using the navic Extra, the symbol breadcrumbs shown
in lualine section_c had a background color different from the
background of lualine_c, causing it to standout and not blend in with
some colorschemes.

There were ways around this problem, but hose involved overriding a lot
of highlights. See https://github.com/LazyVim/LazyVim/issues/328

This change uses the new (as of April 2023) lualine component built in
to SmiteshP/nvim-navic, which has a `color_correction` option to fix the
problem described above. This built-in component replaces the manual
method of calling `require("nvim-navic").is_available()` and
`require("nvim-navic").get_location()`.

*
711e9f117a
*
bf587250f8

With `color_correction` set to "static" or "dynamic", navic uses the
lualine section's background color when building the breadcrumbs text.

*
bf587250f8/doc/navic.txt (L83-L88)

I chose to set color_correction to "dynamic" to provide the best user
experience as that will update the background any time the lualine
section's background changes (e.g. when switching modes).

## Related Issue(s)

* Fixes #328

## Screenshots

Before this fix, the breadcrumb's background did not match lualine
section_c's:

![before](https://github.com/user-attachments/assets/b30e9844-5aac-4ec8-96fd-a5243de8cded)

After this fix, the breadcrumb's background does match:

![after](https://github.com/user-attachments/assets/63945c48-2edc-4aea-8144-ae0bff1ed952)

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-08 14:08:43 +01:00
f78bc3b858 fix(telescope): buffers to start at final item (#4189)
## Description

Currently hitting `<leader>fb` triggers the telescope buffers command
but because we're passing the `sort_lastused=true` flag the index starts
at the second item.

This happens because of this line of code in telescope.nvim:


https://github.com/nvim-telescope/telescope.nvim/blob/master/lua/telescope/builtin/__internal.lua#L941-L943

This makes it annoying to actually use the tool to find buffers because
you have to first type your query then exit insert mode, then scroll one
item down, and then hitting enter:



https://github.com/user-attachments/assets/4126d017-df4b-48dc-b6d4-f7d9b8f491ff

When removing that flag it makes the function much more usable in terms
of UX since now you can just write your query and hit enter to go
straight to it.

## 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-11-08 14:06:39 +01:00
2d2e425d25 feat(eslint): add option to disable eslint auto format (#4225)
## Description

This adds an option to disable eslint's autoformatting. The reasons for
not wanting an auto format by eslint are:
1. It is generally not recommended to use a linter as a formatter as
highlighted by
https://typescript-eslint.io/users/what-about-formatting/#:~:text=We%20recommend%20against%20using%20ESLint,dprint%2C%20or%20an%20equivalent%20instead
2. A personal preference not to have a linter change my code which I'm
sure other people share.
3. As highlighted in the link above, eslint auto format can be quite
slow.

I would even argue that this should be the default, but I've left it as
is in order not to break anyone's config or ruffle anyone's feathers.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-08 14:05:00 +01:00
fd361d07a2 fix(lang/ruby): do not enable Rubocop as LSP if Solargraph is used (#4566)
## Description

Solargraph already delegates some diagnostics to Rubocop by itself if it
is installed on your system. However, if Rubocop is also enabled as an
LSP while you're using Solargraph, then all Rubocop diagnostics are
going to be duplicated and shown twice. Once from Solargraph after it
calls Rubocop, and again by Rubocop separately running as an LSP.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-08 13:56:44 +01:00
8534af4a79 fix(extras): use the correct naming when setting up eruby formatter (#4625)
## Description

Eruby files (.*.erb) are not formatted because the formatter name is
incorrect. This PR fixes it.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-08 13:56:05 +01:00
2d6687c646 feat(lang.angular): configure prettier as formatter for angular templates (#4345)
## Description

Angular templates didn't have a configured formatter.
This PR configures prettier as a default formatter for angular
templates.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-08 13:45:53 +01:00
cf86484797 feat(extras): rego language support (#4297)
It took a while, but finally we can work with
[OPA](https://www.openpolicyagent.org/) like a BOSS in neovim.

Linking some PR-s that had to land in the past couple of months to make
this config as
simple as it is now:

- treesitter commentstring support in
<https://github.com/JoosepAlviste/nvim-ts-context-commentstring/pull/108>
- regols support in nvim-lspconfig:
<https://github.com/neovim/nvim-lspconfig/pull/2721>
- regols support in mason-registry:
<https://github.com/mason-org/mason-registry/pull/4896>
- regols support in mason-lspconfig:
<https://github.com/williamboman/mason-lspconfig.nvim/pull/403>
- regal support in nvim-lspconfig:
<https://github.com/neovim/nvim-lspconfig/pull/3071>
- regal support in mason-registry:
<https://github.com/mason-org/mason-registry/pull/5717>
- regal support in mason-lspconfig:
<https://github.com/williamboman/mason-lspconfig.nvim/pull/426>

## 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

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

Signed-off-by: Zoltán Reegn <zoltan.reegn@gmail.com>
2024-11-08 13:44:59 +01:00
c09735594a fix(project.nvim): correctly delete projects (#4314)
## Description
Unfortunately, the upstream Github repo hasn't been active for over a
year. This overwrites the `history.delete_project` function to correctly
be able to delete projects. Because of `ipairs` being used, when you
delete the first key from the table the `for` loop iteration will just
stop, since there will be a gap between the available indices.
> will iterate over the pairs (`1,t[1]`), (`2,t[2]`), ..., up to the
first integer key absent from the table.

There's also a
[PR](https://github.com/ahmedkhalf/project.nvim/pull/106/files) for this
upstream, but like I mentioned the Github repo hasn't been active for
over a year.

Feel free to disregard, since this is obviously something that should be
rather fixed upstream under normal circumstances. I just created this
PR, since it's such a basic functionality with little change in
LazyVim's codebase, that I thought it might be acceptable.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
No, rather a discussion #4310
<!--
  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-11-08 13:43:11 +01:00
15527910c3 fix(snippet): don't set navigation mappings in nightly (#4375)
## Description

Since [this commit in
Neovim](https://github.com/neovim/neovim/pull/27339), snippet navigation
mappings are set by default to `<tab>` and `<s-tab>`, and hence don't
need to be redefined here. Moreover, the core implementation makes sure
that those snippet navigation mappings are active only when snippet
expansion is happening, and if other user bindings are using those keys,
they're restored when snippet navigation ends.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-08 13:40:25 +01:00
dfde9148ef fix(neotest): disambiguous key map descriptions (#4374)
## Description

Neotest key map descriptions were too ambiguous. This change simply adds
the plugin name to the key map descriptions, following the pattern of
other plugin related key map descriptions.

## Screenshots


![240830_09h47m20s_screenshot](https://github.com/user-attachments/assets/9c63b9f5-139d-4f9d-a6aa-4f9744c62a57)

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-08 13:37:09 +01:00
776994a207 fix(dap): use dap's splitstr when running with args. Closes #4387 2024-11-08 13:31:19 +01:00
ee2ec7e474 fix(lang/r): make keymaps in which-key menu available in visual mode (#4565)
## Description
`r.nvim` keymaps don't show group names in visual mode.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
No, rather discussion #4564
<!--
  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-11-08 13:26:31 +01:00
4e1fd66078 docs(dap): document continue to be used also for run (#4603)
The `dap.continue` is meant to be used also to start the program if no
debugging session is active.

The documentation states:

> `continue()` is the main entry-point for users to start debugging an
application.

With this change, it should be clearer to the user that `continue` is
the way to start a program. Otherwise, one could think to use `Run with
args` (which is misleading). At least for me, it was, until I read the
dap documentation.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-08 13:25:56 +01:00
b0ced339a8 fix(extras): make kulala keys only for http files (#4574)
## Description

[Kulala's](https://github.com/mistweaverco/kulala.nvim) keys are
currently globally active. This PR makes them available in .http files
only.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-08 13:25:09 +01:00
b5b3122843 chore(build): auto-generate docs 2024-11-08 08:01:42 +00:00
67ba58215b feat(toggle): add illuminate toggle for which-key (#4708)
## Description
Adds a Toggle-Shortcut to enable/disable
[Illuminate](https://github.com/RRethy/vim-illuminate)

I dont think 'leader ux' is the right shortcut here. I just took the
next free one.


![image](https://github.com/user-attachments/assets/65990e1b-f527-4691-8d2e-eee103695bff)
2024-11-08 09:00:36 +01:00
b841a1dfc3 fix(blink): remove draw="reversed" for now till new release 2024-11-07 22:52:38 +01:00
e6f612f1cc fix(snacks): dont add snacks_notif to close_with_q 2024-11-07 22:52:11 +01:00
67b216c973 fix(lualine): make sure path is in root before substituting 2024-11-07 17:01:08 +01:00
d017bb861e chore(build): auto-generate docs 2024-11-07 15:46:41 +00:00
db052ed9c0 docs(Readme): reflect that LazyVim For Ambitious Developers is complete (#4407)
## Description

LazyVim for Ambitious Developers is completely released online, with
ebooks available and print edition coming shortly. This just updates the
links to remove the "is working on" wording.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-07 16:45:39 +01:00
4379fafc7b feat(extras): lang/zig (#4437)
## Description

A fresh and minimalist take on #1750.
It only adds what is maintainable (has activity in the past year at
least).

## Related Issue(s)

Closes #1750.


## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-07 16:40:06 +01:00
1d4157e681 fix(lualine): apply highlight groups correctly to truncated pretty_paths (#4379)
## Description

This is a small fix to the path truncating in
`LazyVim.lualine.pretty_path()` to make the filename highlighting
actually apply to only the filename, rather than the filename and all
path elements after the inserted ellipsis (`…`).

This keeps it consistent with the behaviour exhibited when the path
isn't truncated, and is what I think most users would expect the
behaviour to be.

## Screenshots

Before this fix:

<img width="320" alt="image"
src="https://github.com/user-attachments/assets/d708a140-2b23-457a-a296-dd411d29d268">

```
   nvim/…/nvim/lua/plugins/lazyvim/ui.lua
   └──┬──┘└──────────────┬──────────────┘
directory_hl        filename_hl
```

After this fix:

<img width="319" alt="image"
src="https://github.com/user-attachments/assets/e9d13fdd-79a8-4e3d-942a-58d0e2bb8bca">

```
nvim/…/nvim/lua/plugins/lazyvim/ui.lua
└──────────────┬───────────────┘└─┬──┘
         directory_hl        filename_hl
```

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-07 16:26:17 +01:00
aa53cd47c4 feat(keymaps): only add lazygit keymaps when available. Closes #4643. Closes #4247 2024-11-07 16:21:48 +01:00
1e975be7a5 fix(options): removed deprecated options 2024-11-07 16:19:18 +01:00
c879b397c7 fix(dial): follow comment explanation for integers (#4658)
relevant doc page:
https://github.com/monaqa/dial.nvim?tab=readme-ov-file#augend-alias

## Description

The specific augend for integers in several languages is a different one
than what the comment explaining it suggests.

Changed the augend to the one that includes negative integers like the
comment suggests.


## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-07 16:16:41 +01:00
37cc03948d feat(extras.nushell): update to upstream treesitter (#4715)
## Description

Since the nushell treesitter parser is now upstream, as seen in [this
pr](https://github.com/nvim-treesitter/nvim-treesitter/pull/7267), it
updates the treesitter config of this extra

## Checklist

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

Co-authored-by: Conarius <Conarius+34580743@users.noreply.github.com>
2024-11-07 16:11:59 +01:00
4ff36062dd fix(prettier): keep existing formatters_by_ft (#4719)
## Description

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

This change makes it possible to configure other formatters for
filetypes supported by the prettier extra, for instance

```js
return {
  {
    "stevearc/conform.nvim",
    opts = {
      formatters_by_ft = {
        css = { "stylelint" },
      },
    },
  },
}
```

Currently the prettier extra overwrites any existing `formatters_by_ft`
for the filetypes it supports. I've changed it to use `table.insert`
[like the sql extra
does](75750be1c0/lua/lazyvim/plugins/extras/lang/sql.lua (L148-L149)).

## Related Issue(s)

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

None that I know of

## Screenshots

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

N/A

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-07 16:11:36 +01:00
0bc09d8206 fix(telescope): check for gmake if needed 2024-11-07 16:10:45 +01:00
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
81a4f3f690 chore(build): auto-generate docs 2024-11-07 14:55:42 +00:00
2f4697443c feat(core)!: move a bunch of LazyVim features to snacks.nvim (#4706)
## Description

LazyVim comes with a bunch of smaller QoL plugin like features, but it's
not easy for non LazyVim users to use them.

That's why I started working on
[snacks.nvim](https://github.com/folke/snacks.nvim), a collection of
small QoL plugins for Neovim.

Snacks also includes a bunch of new improvements to these features.

This PR fully integrates with snacks.

## Todo

- [ ] add proper deprecations where needed
- [ ] create snacks docs
- [ ] document all the new improvements relevant to LazyVim users

## Closes

- [ ] #4492 
- [ ] #4333
- [ ] #4687

## 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-07 15:54:47 +01:00
75750be1c0 chore(build): auto-generate docs 2024-11-04 11:56:40 +00:00
73f14943ba chore(main): release 12.44.1 (#4694)
🤖 I have created a release *beep* *boop*
---


##
[12.44.1](https://github.com/LazyVim/LazyVim/compare/v12.44.0...v12.44.1)
(2024-11-03)


### Bug Fixes

* **blink:** use release version
([7ebed53](7ebed5349d))
* **copilot:** properly process tab with copilot and blink. Fixes
[#4692](https://github.com/LazyVim/LazyVim/issues/4692)
([fa37396](fa3739678a))
* **java:** jdtls run with args
([#4689](https://github.com/LazyVim/LazyVim/issues/4689))
([0403e80](0403e80a8e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-04 12:55:25 +01:00
7ebed5349d fix(blink): use release version 2024-11-03 15:26:45 +01:00
fa3739678a fix(copilot): properly process tab with copilot and blink. Fixes #4692 2024-11-03 12:53:10 +01:00
f4d78ac0de chore(build): auto-generate docs 2024-11-03 11:49:08 +00:00
0403e80a8e fix(java): jdtls run with args (#4689)
## Description

Makes run with args work for jdtls

## Related Issue(s)
- Closes #4686
- Closes #4673
2024-11-03 12:48:11 +01:00
29dab35619 chore(main): release 12.44.0 (#4635)
🤖 I have created a release *beep* *boop*
---


##
[12.44.0](https://github.com/LazyVim/LazyVim/compare/v12.43.0...v12.44.0)
(2024-11-02)


### Features

* **blink:** use vim.o.pumblend as winblend option for autocomplete menu
in blink
([28da1eb](28da1eb073))
* **extras:** blink
([#4680](https://github.com/LazyVim/LazyVim/issues/4680))
([ad52bf9](ad52bf91bc))
* **extras:** enable crates.nvim in-process lsp server
([#4684](https://github.com/LazyVim/LazyVim/issues/4684))
([db8895b](db8895b518))


### Bug Fixes

* **autocmds:** `vim.highlight` is deprecated
([a7b4c43](a7b4c4391b))
* **autocmds:** change mapping for `lazyvim_close_with_q`
([#4638](https://github.com/LazyVim/LazyVim/issues/4638))
([5f432d9](5f432d997e))
* **autocmds:** close window and force delete buf on q. See
[#4638](https://github.com/LazyVim/LazyVim/issues/4638)
([cb40a09](cb40a09538))
* **autocmds:** force close buffers with q. See
[#4638](https://github.com/LazyVim/LazyVim/issues/4638)
([0eb4009](0eb400908d))
* **blink:** explicetely set version=false for now
([ec616a3](ec616a3cec))
* **catppuccin:** fix bufferline integration when no colorscheme is set.
Closes [#4641](https://github.com/LazyVim/LazyVim/issues/4641)
([6570a14](6570a141c0))
* **copilot:** create undo point before accepting copilot suggestion
when using blink
([6e1d099](6e1d0994d9))
* **dap:** remove explicit `load_launchjs` call
([#4634](https://github.com/LazyVim/LazyVim/issues/4634))
([2f6c1f6](2f6c1f6083))
* **lazygit:** file history when cwd is outside the repo
([#4666](https://github.com/LazyVim/LazyVim/issues/4666))
([4ee6be4](4ee6be4499))
* **rust:** disable rust_analyzer in the rust extra. Fixes
[#4685](https://github.com/LazyVim/LazyVim/issues/4685)
([1d3d64f](1d3d64fd1a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-03 00:15:26 +01:00
a7b4c4391b fix(autocmds): vim.highlight is deprecated 2024-11-02 18:51:04 +01:00
ec616a3cec fix(blink): explicetely set version=false for now 2024-11-02 18:12:31 +01:00
28da1eb073 feat(blink): use vim.o.pumblend as winblend option for autocomplete menu in blink 2024-11-02 17:43:11 +01:00
6e1d0994d9 fix(copilot): create undo point before accepting copilot suggestion when using blink 2024-11-02 17:41:38 +01:00
db8895b518 feat(extras): enable crates.nvim in-process lsp server (#4684)
## Description

Rather than manually handling hover and completions through nvim-cmp and
nvim-lspconfig, enable the crates.nvim in-process lsp server. This also
allows crates.nvim to provide code actions.

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

## Related Issue(s)

This change also removes the direct dependency on nvim-cmp, which should
help with #4680

<!--
  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.

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2024-11-02 10:02:23 +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
a66b44a9fe chore(build): auto-generate docs 2024-11-02 08:48:22 +00:00
1d3d64fd1a fix(rust): disable rust_analyzer in the rust extra. Fixes #4685 2024-11-02 09:47:17 +01:00
f11890bf99 chore(build): auto-generate docs 2024-11-01 21:48:00 +00:00
4ee6be4499 fix(lazygit): file history when cwd is outside the repo (#4666)
## Description

When using `<leader>gf` Lazygit is launched in the current directory
rather than the root directory.
<!-- 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

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-01 22:47:03 +01:00
cb40a09538 fix(autocmds): close window and force delete buf on q. See #4638 2024-10-24 17:18:01 +02:00
0eb400908d fix(autocmds): force close buffers with q. See #4638 2024-10-24 09:25:03 +02:00
5f432d997e fix(autocmds): change mapping for lazyvim_close_with_q (#4638)
## Description
Currently `checkhealth` buffers stay visible on `bufferline` when you
close them with `q`. Use `:bd` instead to delete the buffer from
bufferlist. `vim.schedule` is needed because `LspInfo` adds its own
mapping to close the window (see
[here](edd9591199/lua/lspconfig/health.lua (L328))),
so we need to overwrite it.

<!-- 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-24 08:30:17 +02:00
944d214c26 chore(build): auto-generate docs 2024-10-24 05:59:11 +00:00
6570a141c0 fix(catppuccin): fix bufferline integration when no colorscheme is set. Closes #4641 2024-10-24 07:58:14 +02:00
2f6c1f6083 fix(dap): remove explicit load_launchjs call (#4634)
## Description

The explicit call to `load_launchjs` is unnecessary, since after
https://github.com/mfussenegger/nvim-dap/pull/1237 `.vscode/launch.json`
files are loaded automatically.

## Related Issue(s)
Fixes #4432


## 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 16:03:06 +02:00
7c7c196a78 chore(main): release 12.43.0 (#4630)
🤖 I have created a release *beep* *boop*
---


##
[12.43.0](https://github.com/LazyVim/LazyVim/compare/v12.42.0...v12.43.0)
(2024-10-23)


### Features

* **catppuccin:** bufferline integration. Closes
[#4583](https://github.com/LazyVim/LazyVim/issues/4583). Closes
[#4581](https://github.com/LazyVim/LazyVim/issues/4581)
([917c685](917c685c1f))
* **extras:** expose `prios` to users for customization
([#4587](https://github.com/LazyVim/LazyVim/issues/4587))
([e46cb62](e46cb62a17))
* **keymaps:** allow `v:count1` when moving lines
([#4618](https://github.com/LazyVim/LazyVim/issues/4618))
([b4eb4e1](b4eb4e1f4a))


### Bug Fixes

* **folds:** enable folds when treesitter available. Fixes
[#4563](https://github.com/LazyVim/LazyVim/issues/4563)
([fe7003d](fe7003de50))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-10-23 11:55:48 +02:00
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
b4eb4e1f4a feat(keymaps): allow v:count1 when moving lines (#4618)
## Description
Allow user to use `v:count1` when moving lines
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
Closes #4615.
<!--
  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:40:31 +02:00
fe7003de50 fix(folds): enable folds when treesitter available. Fixes #4563 2024-10-23 11:32:21 +02:00
e46cb62a17 feat(extras): expose prios to users for customization (#4587)
## Description
Offer to users capability to customize priorities of the Extras.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
Closes #4584
<!--
  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:26:14 +02:00
27f53eaa1e chore(build): auto-generate docs 2024-10-23 09:24:14 +00:00
917c685c1f feat(catppuccin): bufferline integration. Closes #4583. Closes #4581 2024-10-23 11:23:09 +02:00
13a4a84e34 chore(main): release 12.42.0 (#4535)
🤖 I have created a release *beep* *boop*
---


##
[12.42.0](https://github.com/LazyVim/LazyVim/compare/v12.41.0...v12.42.0)
(2024-10-04)


### Features

* **root:** provide `vim.g.root_lsp_ignore` to ignore LSP servers
([#4332](https://github.com/LazyVim/LazyVim/issues/4332))
([90a9231](90a92312ae))


### Bug Fixes

* **gitsigns:** change name of filetype blame
([#4243](https://github.com/LazyVim/LazyVim/issues/4243))
([3e257fd](3e257fdb88))
* **neotest:** properly initialize adapter with call table. Fixes
[#4538](https://github.com/LazyVim/LazyVim/issues/4538)
([327e829](327e829c15))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-10-05 00:01:48 +02:00
c49b788319 chore(build): auto-generate docs 2024-10-04 21:51:19 +00:00
327e829c15 fix(neotest): properly initialize adapter with call table. Fixes #4538 2024-10-04 23:50:15 +02:00
90a92312ae feat(root): provide vim.g.root_lsp_ignore to ignore LSP servers (#4332)
## Description
This provides `vim.g.root_lsp_ignore` for users to customize which LSP
servers should be taken into account when evaluating the LSP `root_dir`.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
Closes #4330
<!--
  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-03 15:55:25 +02:00
3b8f6554f4 chore(build): auto-generate docs 2024-10-03 13:48:11 +00:00
d2bd3114c0 style(typo): vimtext -> vimtex (#4530)
Typo: `vimtext` -> `vimtex`
2024-10-03 15:47:41 +02:00
3e257fdb88 fix(gitsigns): change name of filetype blame (#4243)
## Description
There was a change in `gitsigns` filetype name for blame.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
No
<!--
  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-03 15:47:09 +02:00
d5a4ced75a chore(main): release 12.41.0 (#4526)
🤖 I have created a release *beep* *boop*
---


##
[12.41.0](https://github.com/LazyVim/LazyVim/compare/v12.40.0...v12.41.0)
(2024-10-02)


### Features

* **rust:** update rustaceanvim
([#4477](https://github.com/LazyVim/LazyVim/issues/4477))
([04515b1](04515b1399))
* **toggle:** add more `M.wk` fields for better user customization
([#4521](https://github.com/LazyVim/LazyVim/issues/4521))
([57c0c0b](57c0c0bc9f))


### Bug Fixes

* **extras:** migrate away from deprecated `get_target_window()` in
mini-files ([#4479](https://github.com/LazyVim/LazyVim/issues/4479))
([b110550](b110550393))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-10-02 11:29:17 +02:00
04515b1399 feat(rust): update rustaceanvim (#4477)
The recommended version of rustaceanvim has changed to 5.x, which brings
in a lot of improvements.

## Description

Version 5.x of rustaceanvim has a lot of improvements over 4.x, and is
the recommended version according to its maintainer.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-10-02 10:41:44 +02:00
b110550393 fix(extras): migrate away from deprecated get_target_window() in mini-files (#4479)
## Description

This method is deprecated in the most recent version of mini-files:
a3a9cce821/lua/mini/files.lua (L1060-L1068),
which causes a warning message to be displayed every time the
`<leader>wv` and similar commands are used from the mini file browser.

I've tested this change locally and it gets rid of the warning message.

## Screenshots
Warning message without this fix:
<img width="1355" alt="image"
src="https://github.com/user-attachments/assets/cf5dc674-6054-4cb2-9e9b-3b0bb03dd5ca">

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-10-02 10:23:26 +02:00
57c0c0bc9f feat(toggle): add more M.wk fields for better user customization (#4521)
## Description
Add to `M.wk` fields for `icon`, `color_enabled` and `color_disabled`
for more granual user customization.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
No, rather a discussion #4512
<!--
  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-02 10:22:08 +02:00
dee5e18cf6 chore(main): release 12.40.0 (#4522)
🤖 I have created a release *beep* *boop*
---


##
[12.40.0](https://github.com/LazyVim/LazyVim/compare/v12.39.0...v12.40.0)
(2024-10-02)


### Features

* **lang:** add ts_ls to lsp config
([#4406](https://github.com/LazyVim/LazyVim/issues/4406))
([34f0e56](34f0e568d4))


### Bug Fixes

* **extras:** rename `lspconfig.server_configurations` to
`lspconfig.configs`
([#4518](https://github.com/LazyVim/LazyVim/issues/4518))
([7432574](74325743e7))
* **lsp:** backward compat with lspconfig refactor. Fixes
[#4525](https://github.com/LazyVim/LazyVim/issues/4525). See
[#4518](https://github.com/LazyVim/LazyVim/issues/4518)
([6e40252](6e4025229d))
* **render-markdown:** remove redundant `opts.file_types`
([#4506](https://github.com/LazyVim/LazyVim/issues/4506))
([9b17672](9b1767205c))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-10-02 10:19:57 +02:00
6e4025229d fix(lsp): backward compat with lspconfig refactor. Fixes #4525. See #4518 2024-10-02 10:18:21 +02:00
34f0e568d4 feat(lang): add ts_ls to lsp config (#4406)
## Description

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

In this [PR](https://github.com/neovim/nvim-lspconfig/pull/3232),
tsserver is renamed to ts_ls, but it hasn't been released yet.

Therefore, ts_ls is added to the LSP configuration in case the user
updates their plugins locally.

## Related Issue(s)

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

## Screenshots

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

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-10-02 09:32:17 +02:00
9b1767205c fix(render-markdown): remove redundant opts.file_types (#4506)
## Description
After
cb9a5e2412
there's no need for defining filetypes both in Lazy's `ft` and the
plugin's `opts.file_types`.
<!-- 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-02 09:26:05 +02:00
b6ff54bb95 chore(build): auto-generate docs 2024-10-02 07:25:07 +00:00
74325743e7 fix(extras): rename lspconfig.server_configurations to lspconfig.configs (#4518)
## Description


bedb2a0df1
introduces a change to the Lua module structure for `nvim-lspconfig`
that broke `tailwindcss`. Tried to also address all the other usages of
`lspconfig.server_configurations` within the ecosystem.

## Screenshots

![mason-lspconfig
nvim](https://github.com/user-attachments/assets/bc9f80f0-3386-436f-8f86-abfcb311cec2)


## Checklist

- [X] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-10-02 09:24:02 +02:00
98 changed files with 2439 additions and 1953 deletions

View File

@ -1,3 +1,3 @@
{
".": "12.39.0"
".": "14.0.1"
}

File diff suppressed because it is too large Load Diff

82
NEWS.md
View File

@ -1,5 +1,83 @@
# What's new?
## 14.x
Big new release with a lot of changes and improvements!
Two new plugins have been added, and a lot of plugins have been replaced.
With these changes, default **LazyVim** is now just `34` plugins.
### Added Plugins
- [fzf-lua](https://github.com/ibhagwan/fzf-lua) as a replacement for [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim)
- to use **telescope.nvim** instead, enable the `editor.telescope` extra
- [blink.cmp](https://github.com/saghen/blink.cmp) as a replacement for [nvim-cmp](https://github.com/hrsh7th/nvim-cmp)
- to use **nvim-cmp** instead, enable the `coding.nvim-cmp` extra
### Removed Plugins
- [dressing.nvim](https://github.com/stevearc/dressing.nvim) (replaced with [fzf-lua](https://github.com/ibhagwan/fzf-lua) and [snacks.input](https://github.com/folke/snacks.nvim))
- [telescope-fzf-native.nvim](https://github.com/nvim-telescope/telescope-fzf-native.nvim) (replaced with [fzf-lua](https://github.com/ibhagwan/fzf-lua))
- [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) (replaced with [fzf-lua](https://github.com/ibhagwan/fzf-lua))
- [indent-blankline.nvim](https://github.com/lukas-reineke/indent-blankline.nvim) (replaced with [snacks.indent](https://github.com/Folke/snacks.nvim))
- to use **indent-blankline.nvim** instead, enable the `indent-blankline` extra
- [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) (replaced with [blink](https://github.com/Saghen/blink.cmp))
- [nvim-snippets](https://github.com/hrsh7th/vim-vsnip) (replaced with [blink](https://github.com/Saghen/blink.cmp))
- [cmp-buffer](https://github.com/hrsh7th/cmp-buffer) (replaced with [blink](https://github.com/Saghen/blink.cmp))
- [cmp-nvim-lsp](https://github.com/hrsh7th/cmp-nvim-lsp) (replaced with [blink](https://github.com/Saghen/blink.cmp))
- [cmp-path](https://github.com/hrsh7th/cmp-path) (replaced with [blink](https://github.com/Saghen/blink.cmp))
### Changes
- added [`snacks.input`](https://github.com/folke/snacks.nvim/blob/main/docs/input.md)
- added [`snacks.scroll`](https://github.com/folke/snacks.nvim/blob/main/docs/scroll.md)
- added [`snacks.indent`](https://github.com/folke/snacks.nvim/blob/main/docs/indent.md)
- added [`snacks.scope`](https://github.com/folke/snacks.nvim/blob/main/docs/scope.md)
- added [`snacks.dim`](https://github.com/folke/snacks.nvim/blob/main/docs/dim.md)
- added [`snacks.zen`](https://github.com/folke/snacks.nvim/blob/main/docs/zen.md)
- changed default [`which-key`](https://github.com/folke/which-key.nvim) preset to `helix`
- drop `LazyVim.ui.fg` in favor of [`Snacks.util.color`](https://github.com/folke/snacks.nvim/blob/main/docs/util.md)
To disable **all animations**, add the following to your `options.lua`:
```lua
vim.g.snacks_animate = false
```
### Keymaps
- `<leader>uz` to toggle [zen mode](https://github.com/folke/snacks.nvim/blob/main/docs/zen.md)
- `<leader>uZ` & `<leader>wm` to toggle [zoom mode](https://github.com/folke/snacks.nvim/blob/main/docs/zen.md)
- `<leader>uD` to toggle [dimming](https://github.com/folke/snacks.nvim/blob/main/docs/dim.md)
- `<leader>ua` to toggle [animations](https://github.com/folke/snacks.nvim/blob/main/docs/animate.md)
- `<leader>uS` to toggle [scroll](https://github.com/folke/snacks.nvim/blob/main/docs/scroll.md)
- `<leader>ug` to toggle [indent guides](https://github.com/folke/snacks.nvim/blob/main/docs/indent.md)
- [`snacks.profiler`](https://github.com/folke/snacks.nvim/blob/main/docs/profiler.md) keymaps under `<leader>dp`
---
## 13.x
- **LazyVim** now uses `Snacks.dashboard` as the default dashboard.
Check the [docs](https://github.com/folke/snacks.nvim/blob/main/docs/dashboard.md),
for more information and examples.
- A new [dashboard-nvim](https://github.com/nvimdev/dashboard-nvim) extra
is available for those who prefer the old dashboard.
- Big new release with a lot of changes and improvements!
- The biggest change is the move of a bunch of core features to
[snacks.nvim](https://github.com/folke/snacks.nvim) and fully
integrating it into **LazyVim**.
- I highly suggest having a look at the **snacks.nvim** documentation
to see all the new features and improvements. Most important changes:
- `Snacks.notifier` for notifications instead of `nvim-notify`
- `Snacks.terminal` is similar to `lazyterm`, but has more features
and creates bottom splits by default (similar to the `edgy` integrating)
---
## 12.x
- **Markdown Extra**: [headlines.nvim](https://github.com/lukas-reineke/headlines.nvim) has been removed in favor of [markdown.nvim](https://github.com/MeanderingProgrammer/markdown.nvim)
@ -27,6 +105,8 @@
- moved `neoconf.nvim` to extras. Project specific LSP settings
can be done with a `.lazy.lua` file instead.
---
## 11.x
- **Keymaps:**
@ -86,6 +166,8 @@ Additionally, some core plugins have been moved to extras.
- `mini.indentscope` scopes are now also highlighted with `indent-blankline`
- `nvim-treesitter-context`
---
## 10.x
- added new extra for [mini.diff](https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-diff.md)

View File

@ -36,9 +36,9 @@
</a>
</div>
LazyVim 是 [💤 lazy.nvim](https://github.com/folke/lazy.nvim) 驱动的一套 Neovim 配置,可以轻松自定义和扩展您的配置
不必在从头开始或使用预制发行版之间做选择,
LazyVim 提供了两全其美的方式 - 根据需要调整配置的灵活性,以及默认配置的便利
LazyVim 是一个基于 [💤 lazy.nvim](https://github.com/folke/lazy.nvim) Neovim 配置方案,让定制和扩展变得简单直观
不必再在“从零配置”和“使用预制发行版之间做选择,LazyVim
提供了一个两全其美的方式——既可以享受默认配置带来的便利,又能根据个人需求来灵活调整各项设置
![image](https://user-images.githubusercontent.com/292349/211285846-0b7bb3bf-0462-4029-b64c-4ee1d037fc1c.png)
@ -46,28 +46,28 @@ LazyVim 提供了两全其美的方式 - 根据需要调整配置的灵活性,
## ✨ 特性
- 🔥 将你的 Neovim 变成一个成熟的 IDE
- 💤 使用 [lazy.nvim](https://github.com/folke/lazy.nvim) 轻松自定义和扩展您的
- 🔥 将你的 Neovim 打造为一个功能完备的 IDE
- 💤 使用 [lazy.nvim](https://github.com/folke/lazy.nvim) 轻松自定义和扩展您的
- 🚀 快如闪电
- 🧹 选项、自动命令和键盘映射的合理预设
- 📦 预配置了大量插件,随时可
- 📦 内置大量精心优化的预配置插件,开箱即
## ⚡️ 要求
## ⚡️ 环境要求
- Neovim >= **0.9.0** (需要用 **LuaJIT** 构建)
- Git >= **2.19.0** (用于部分克隆支持)
- 一个 [Nerd Font](https://www.nerdfonts.com/) 字体 **_(可选)_**
- 一个用于 `nvim-treesitter`**C** 编译器。看 [这里](https://github.com/nvim-treesitter/nvim-treesitter#requirements)
## 🚀 入门
## 🚀 开始使用
您可以在 [此处](https://github.com/LazyVim/starter) 找到 **LazyVim**入门模板
您可以在 [此处](https://github.com/LazyVim/starter) 找到 **LazyVim**初始模板
<details><summary>在 Docker 中尝</summary>
<details><summary>在 Docker 中尝</summary>
```sh
docker run -w /root -it --rm alpine:edge sh -uelic '
apk add git lazygit neovim ripgrep alpine-sdk --update
apk add git lazygit fzf curl neovim ripgrep alpine-sdk --update
git clone https://github.com/LazyVim/starter ~/.config/nvim
cd ~/.config/nvim
nvim
@ -91,7 +91,7 @@ docker run -w /root -it --rm alpine:edge sh -uelic '
git clone https://github.com/LazyVim/starter ~/.config/nvim
```
- 删除 `.git` 文件夹,以便稍后将其添加到您自己的存储
- 删除 `.git` 文件夹,以便稍后将其添加到您自己的
```sh
rm -rf ~/.config/nvim/.git
@ -109,22 +109,23 @@ docker run -w /root -it --rm alpine:edge sh -uelic '
---
[@elijahmanor](https://github.com/elijahmanor) 制作了一很棒的视频,其中包含入门演练
[@elijahmanor](https://github.com/elijahmanor) 制作了一很棒的视频,可以带领你快速入门
[![Watch the video](https://img.youtube.com/vi/N93cTbtLCIM/hqdefault.jpg)](https://www.youtube.com/watch?v=N93cTbtLCIM)
[![查看这个视频](https://img.youtube.com/vi/N93cTbtLCIM/hqdefault.jpg)](https://www.youtube.com/watch?v=N93cTbtLCIM)
[@dusty-phillips](https://github.com/dusty-phillips) 正在编写一本名为
[LazyVim for Ambitious Developers](https://lazyvim-ambitious-devs.phillips.codes)
的书,该书可在线免费获得
[@dusty-phillips](https://github.com/dusty-phillips) 为 LazyVim 编写一本全面的书籍
[LazyVim for Ambitious Developers](https://lazyvim-ambitious-devs.phillips.codes)
可在线免费阅读
## 📂 文件结构
config 下的文件会在适当的时候自动加载,所以你不需要手动引入这些文件。
**LazyVim** 带有一组默认配置文件,这些文件将在您的配置**之前**加载。
看[这里](https://github.com/LazyVim/LazyVim/tree/main/lua/lazyvim/config)
config 下的文件会在适当的时候自动加载,所以你不需要手动引入这些文件。
您可以在 `lua/plugins/` 下添加自定义插件配置(specs)
[lazy.nvim](https://github.com/folke/lazy.nvim) 会自动加载这些文件。
**LazyVim** 带有一组默认配置文件,这些文件会在您的配置**之前**被加载
请看[这里](https://github.com/LazyVim/LazyVim/tree/main/lua/lazyvim/config)
您可以在 `lua/plugins/` 下添加自定义插件配置。
[lazy.nvim](https://github.com/folke/lazy.nvim) 会自动加载此目录中的全部文件。
<pre>
~/.config/nvim
@ -141,6 +142,6 @@ config 下的文件会在适当的时候自动加载,所以你不需要手动
└── init.lua
</pre>
## ⚙️ Configuration
## ⚙️ 设置
参考[文档](https://lazyvim.github.io/)
请参阅[官方文档](https://lazyvim.github.io/)

View File

@ -68,7 +68,7 @@ Sie können eine Startvorlage für **LazyVim** [hier](https://github.com/LazyVim
```sh
docker run -w /root -it --rm alpine:edge sh -uelic '
apk add git lazygit neovim ripgrep alpine-sdk --update
apk add git lazygit fzf curl neovim ripgrep alpine-sdk --update
git clone https://github.com/LazyVim/starter ~/.config/nvim
cd ~/.config/nvim
nvim

View File

@ -67,7 +67,7 @@ LazyVimは、ゼロから始めるか、あらかじめ作成されたディス
```sh
docker run -w /root -it --rm alpine:edge sh -uelic '
apk add git lazygit neovim ripgrep alpine-sdk --update
apk add git lazygit fzf curl neovim ripgrep alpine-sdk --update
git clone https://github.com/LazyVim/starter ~/.config/nvim
cd ~/.config/nvim
nvim

View File

@ -65,7 +65,7 @@ LazyVim은 [💤 lazy.nvim](https://github.com/folke/lazy.nvim)를 기반으로
```sh
docker run -w /root -it --rm alpine:edge sh -uelic '
apk add git lazygit neovim ripgrep alpine-sdk --update
apk add git lazygit fzf curl neovim ripgrep alpine-sdk --update
git clone https://github.com/LazyVim/starter ~/.config/nvim
cd ~/.config/nvim
nvim

View File

@ -70,7 +70,7 @@ Podes encontrar uma template **LazyVim** starter para começar, [aqui](https://g
```sh
docker run -w /root -it --rm alpine:edge sh -uelic '
apk add git lazygit neovim ripgrep alpine-sdk --update
apk add git lazygit fzf curl neovim ripgrep alpine-sdk --update
git clone https://github.com/LazyVim/starter ~/.config/nvim
cd ~/.config/nvim
nvim

View File

@ -69,7 +69,7 @@ You can find a starter template for **LazyVim** [here](https://github.com/LazyVi
```sh
docker run -w /root -it --rm alpine:edge sh -uelic '
apk add git lazygit neovim ripgrep alpine-sdk --update
apk add git lazygit fzf curl neovim ripgrep alpine-sdk --update
git clone https://github.com/LazyVim/starter ~/.config/nvim
cd ~/.config/nvim
nvim
@ -115,7 +115,7 @@ There's a great video created by [@elijahmanor](https://github.com/elijahmanor)
[![Watch the video](https://img.youtube.com/vi/N93cTbtLCIM/hqdefault.jpg)](https://www.youtube.com/watch?v=N93cTbtLCIM)
[@dusty-phillips](https://github.com/dusty-phillips) is working on a book called
[@dusty-phillips](https://github.com/dusty-phillips) wrote a comprehensive book called
[LazyVim for Ambitious Developers](https://lazyvim-ambitious-devs.phillips.codes)
available for free online.

View File

@ -1,4 +1,4 @@
*LazyVim.txt* For Neovim Last change: 2024 September 18
*LazyVim.txt* For Neovim Last change: 2024 December 13
==============================================================================
Table of Contents *LazyVim-table-of-contents*
@ -68,7 +68,7 @@ Try it with Docker ~
>sh
docker run -w /root -it --rm alpine:edge sh -uelic '
apk add git lazygit neovim ripgrep alpine-sdk --update
apk add git lazygit fzf curl neovim ripgrep alpine-sdk --update
git clone https://github.com/LazyVim/starter ~/.config/nvim
cd ~/.config/nvim
nvim
@ -102,8 +102,8 @@ Theres a great video created by @elijahmanor
<https://www.youtube.com/watch?v=N93cTbtLCIM>
@dusty-phillips <https://github.com/dusty-phillips> is working on a book called
LazyVim for Ambitious Developers
@dusty-phillips <https://github.com/dusty-phillips> wrote a comprehensive book
called LazyVim for Ambitious Developers
<https://lazyvim-ambitious-devs.phillips.codes> available for free online.

View File

@ -18,7 +18,7 @@ vim.api.nvim_create_autocmd({ "FocusGained", "TermClose", "TermLeave" }, {
vim.api.nvim_create_autocmd("TextYankPost", {
group = augroup("highlight_yank"),
callback = function()
vim.highlight.on_yank()
(vim.hl or vim.highlight).on_yank()
end,
})
@ -55,28 +55,33 @@ vim.api.nvim_create_autocmd("FileType", {
group = augroup("close_with_q"),
pattern = {
"PlenaryTestPopup",
"checkhealth",
"dbout",
"gitsigns-blame",
"grug-far",
"help",
"lspinfo",
"neotest-output",
"neotest-output-panel",
"neotest-summary",
"notify",
"qf",
"spectre_panel",
"startuptime",
"tsplayground",
"neotest-output",
"checkhealth",
"neotest-summary",
"neotest-output-panel",
"dbout",
"gitsigns.blame",
},
callback = function(event)
vim.bo[event.buf].buflisted = false
vim.keymap.set("n", "q", "<cmd>close<cr>", {
buffer = event.buf,
silent = true,
desc = "Quit buffer",
})
vim.schedule(function()
vim.keymap.set("n", "q", function()
vim.cmd("close")
pcall(vim.api.nvim_buf_delete, event.buf, { force = true })
end, {
buffer = event.buf,
silent = true,
desc = "Quit buffer",
})
end)
end,
})
@ -119,29 +124,3 @@ vim.api.nvim_create_autocmd({ "BufWritePre" }, {
vim.fn.mkdir(vim.fn.fnamemodify(file, ":p:h"), "p")
end,
})
vim.filetype.add({
pattern = {
[".*"] = {
function(path, buf)
return vim.bo[buf]
and vim.bo[buf].filetype ~= "bigfile"
and path
and vim.fn.getfsize(path) > vim.g.bigfile_size
and "bigfile"
or nil
end,
},
},
})
vim.api.nvim_create_autocmd({ "FileType" }, {
group = augroup("bigfile"),
pattern = "bigfile",
callback = function(ev)
vim.b.minianimate_disable = true
vim.schedule(function()
vim.bo[ev.buf].syntax = vim.filetype.match({ buf = ev.buf }) or ""
end)
end,
})

View File

@ -3,7 +3,7 @@ _G.LazyVim = require("lazyvim.util")
---@class LazyVimConfig: LazyVimOptions
local M = {}
M.version = "12.39.0" -- x-release-please-version
M.version = "14.0.1" -- x-release-please-version
LazyVim.config = M
---@class LazyVimOptions
@ -88,6 +88,7 @@ local defaults = {
Snippet = "",
String = "",
Struct = "󰆼 ",
Supermaven = "",
TabNine = "󰏚 ",
Text = "",
TypeParameter = "",
@ -135,7 +136,7 @@ local defaults = {
}
M.json = {
version = 6,
version = 7,
path = vim.g.lazyvim_json or vim.fn.stdpath("config") .. "/lazyvim.json",
data = {
version = nil, ---@type string?

View File

@ -23,12 +23,12 @@ map("n", "<C-Left>", "<cmd>vertical resize -2<cr>", { desc = "Decrease Window Wi
map("n", "<C-Right>", "<cmd>vertical resize +2<cr>", { desc = "Increase Window Width" })
-- Move Lines
map("n", "<A-j>", "<cmd>m .+1<cr>==", { desc = "Move Down" })
map("n", "<A-k>", "<cmd>m .-2<cr>==", { desc = "Move Up" })
map("n", "<A-j>", "<cmd>execute 'move .+' . v:count1<cr>==", { desc = "Move Down" })
map("n", "<A-k>", "<cmd>execute 'move .-' . (v:count1 + 1)<cr>==", { desc = "Move Up" })
map("i", "<A-j>", "<esc><cmd>m .+1<cr>==gi", { desc = "Move Down" })
map("i", "<A-k>", "<esc><cmd>m .-2<cr>==gi", { desc = "Move Up" })
map("v", "<A-j>", ":m '>+1<cr>gv=gv", { desc = "Move Down" })
map("v", "<A-k>", ":m '<-2<cr>gv=gv", { desc = "Move Up" })
map("v", "<A-j>", ":<C-u>execute \"'<,'>move '>+\" . v:count1<cr>gv=gv", { desc = "Move Down" })
map("v", "<A-k>", ":<C-u>execute \"'<,'>move '<-\" . (v:count1 + 1)<cr>gv=gv", { desc = "Move Up" })
-- buffers
map("n", "<S-h>", "<cmd>bprevious<cr>", { desc = "Prev Buffer" })
@ -37,7 +37,12 @@ map("n", "[b", "<cmd>bprevious<cr>", { desc = "Prev Buffer" })
map("n", "]b", "<cmd>bnext<cr>", { desc = "Next Buffer" })
map("n", "<leader>bb", "<cmd>e #<cr>", { desc = "Switch to Other Buffer" })
map("n", "<leader>`", "<cmd>e #<cr>", { desc = "Switch to Other Buffer" })
map("n", "<leader>bd", LazyVim.ui.bufremove, { desc = "Delete Buffer" })
map("n", "<leader>bd", function()
Snacks.bufdelete()
end, { desc = "Delete Buffer" })
map("n", "<leader>bo", function()
Snacks.bufdelete.other()
end, { desc = "Delete Other Buffers" })
map("n", "<leader>bD", "<cmd>:bd<cr>", { desc = "Delete Buffer and Window" })
-- Clear search with <esc>
@ -115,37 +120,41 @@ map("n", "[w", diagnostic_goto(false, "WARN"), { desc = "Prev Warning" })
-- stylua: ignore start
-- toggle options
LazyVim.toggle.map("<leader>uf", LazyVim.toggle.format())
LazyVim.toggle.map("<leader>uF", LazyVim.toggle.format(true))
LazyVim.toggle.map("<leader>us", LazyVim.toggle("spell", { name = "Spelling" }))
LazyVim.toggle.map("<leader>uw", LazyVim.toggle("wrap", { name = "Wrap" }))
LazyVim.toggle.map("<leader>uL", LazyVim.toggle("relativenumber", { name = "Relative Number" }))
LazyVim.toggle.map("<leader>ud", LazyVim.toggle.diagnostics)
LazyVim.toggle.map("<leader>ul", LazyVim.toggle.number)
LazyVim.toggle.map( "<leader>uc", LazyVim.toggle("conceallevel", { values = { 0, vim.o.conceallevel > 0 and vim.o.conceallevel or 2 } }))
LazyVim.toggle.map("<leader>uT", LazyVim.toggle.treesitter)
LazyVim.toggle.map("<leader>ub", LazyVim.toggle("background", { values = { "light", "dark" }, name = "Background" }))
LazyVim.format.snacks_toggle():map("<leader>uf")
LazyVim.format.snacks_toggle(true):map("<leader>uF")
Snacks.toggle.option("spell", { name = "Spelling"}):map("<leader>us")
Snacks.toggle.option("wrap", {name = "Wrap"}):map("<leader>uw")
Snacks.toggle.option("relativenumber", { name = "Relative Number"}):map("<leader>uL")
Snacks.toggle.diagnostics():map("<leader>ud")
Snacks.toggle.line_number():map("<leader>ul")
Snacks.toggle.option("conceallevel", {off = 0, on = vim.o.conceallevel > 0 and vim.o.conceallevel or 2, name = "Conceal Level"}):map("<leader>uc")
Snacks.toggle.option("showtabline", {off = 0, on = vim.o.showtabline > 0 and vim.o.showtabline or 2, name = "Tabline"}):map("<leader>uA")
Snacks.toggle.treesitter():map("<leader>uT")
Snacks.toggle.option("background", { off = "light", on = "dark" , name = "Dark Background"}):map("<leader>ub")
Snacks.toggle.dim():map("<leader>uD")
Snacks.toggle.animate():map("<leader>ua")
Snacks.toggle.indent():map("<leader>ug")
Snacks.toggle.scroll():map("<leader>uS")
Snacks.toggle.profiler():map("<leader>dpp")
Snacks.toggle.profiler_highlights():map("<leader>dph")
if vim.lsp.inlay_hint then
LazyVim.toggle.map("<leader>uh", LazyVim.toggle.inlay_hints)
Snacks.toggle.inlay_hints():map("<leader>uh")
end
-- lazygit
map("n", "<leader>gg", function() LazyVim.lazygit( { cwd = LazyVim.root.git() }) end, { desc = "Lazygit (Root Dir)" })
map("n", "<leader>gG", function() LazyVim.lazygit() end, { desc = "Lazygit (cwd)" })
map("n", "<leader>gb", LazyVim.lazygit.blame_line, { desc = "Git Blame Line" })
map("n", "<leader>gB", LazyVim.lazygit.browse, { desc = "Git Browse" })
if vim.fn.executable("lazygit") == 1 then
map("n", "<leader>gg", function() Snacks.lazygit( { cwd = LazyVim.root.git() }) end, { desc = "Lazygit (Root Dir)" })
map("n", "<leader>gG", function() Snacks.lazygit() end, { desc = "Lazygit (cwd)" })
map("n", "<leader>gf", function() Snacks.lazygit.log_file() end, { desc = "Lazygit Current File History" })
map("n", "<leader>gl", function() Snacks.lazygit.log({ cwd = LazyVim.root.git() }) end, { desc = "Lazygit Log" })
map("n", "<leader>gL", function() Snacks.lazygit.log() end, { desc = "Lazygit Log (cwd)" })
end
map("n", "<leader>gf", function()
local git_path = vim.api.nvim_buf_get_name(0)
LazyVim.lazygit({args = { "-f", vim.trim(git_path) }})
end, { desc = "Lazygit Current File History" })
map("n", "<leader>gl", function()
LazyVim.lazygit({ args = { "log" }, cwd = LazyVim.root.git() })
end, { desc = "Lazygit Log" })
map("n", "<leader>gL", function()
LazyVim.lazygit({ args = { "log" } })
end, { desc = "Lazygit Log (cwd)" })
map("n", "<leader>gb", function() Snacks.git.blame_line() end, { desc = "Git Blame Line" })
map({ "n", "x" }, "<leader>gB", function() Snacks.gitbrowse() end, { desc = "Git Browse (open)" })
map({"n", "x" }, "<leader>gY", function()
Snacks.gitbrowse({ open = function(url) vim.fn.setreg("+", url) end, notify = false })
end, { desc = "Git Browse (copy)" })
-- quit
map("n", "<leader>qq", "<cmd>qa<cr>", { desc = "Quit All" })
@ -158,18 +167,12 @@ map("n", "<leader>uI", "<cmd>InspectTree<cr>", { desc = "Inspect Tree" })
map("n", "<leader>L", function() LazyVim.news.changelog() end, { desc = "LazyVim Changelog" })
-- floating terminal
local lazyterm = function() LazyVim.terminal(nil, { cwd = LazyVim.root() }) end
map("n", "<leader>ft", lazyterm, { desc = "Terminal (Root Dir)" })
map("n", "<leader>fT", function() LazyVim.terminal() end, { desc = "Terminal (cwd)" })
map("n", "<c-/>", lazyterm, { desc = "Terminal (Root Dir)" })
map("n", "<c-_>", lazyterm, { desc = "which_key_ignore" })
map("n", "<leader>fT", function() Snacks.terminal() end, { desc = "Terminal (cwd)" })
map("n", "<leader>ft", function() Snacks.terminal(nil, { cwd = LazyVim.root() }) end, { desc = "Terminal (Root Dir)" })
map("n", "<c-/>", function() Snacks.terminal(nil, { cwd = LazyVim.root() }) end, { desc = "Terminal (Root Dir)" })
map("n", "<c-_>", function() Snacks.terminal(nil, { cwd = LazyVim.root() }) end, { desc = "which_key_ignore" })
-- Terminal Mappings
map("t", "<esc><esc>", "<c-\\><c-n>", { desc = "Enter Normal Mode" })
map("t", "<C-h>", "<cmd>wincmd h<cr>", { desc = "Go to Left Window" })
map("t", "<C-j>", "<cmd>wincmd j<cr>", { desc = "Go to Lower Window" })
map("t", "<C-k>", "<cmd>wincmd k<cr>", { desc = "Go to Upper Window" })
map("t", "<C-l>", "<cmd>wincmd l<cr>", { desc = "Go to Right Window" })
map("t", "<C-/>", "<cmd>close<cr>", { desc = "Hide Terminal" })
map("t", "<c-_>", "<cmd>close<cr>", { desc = "which_key_ignore" })
@ -178,7 +181,8 @@ map("n", "<leader>w", "<c-w>", { desc = "Windows", remap = true })
map("n", "<leader>-", "<C-W>s", { desc = "Split Window Below", remap = true })
map("n", "<leader>|", "<C-W>v", { desc = "Split Window Right", remap = true })
map("n", "<leader>wd", "<C-W>c", { desc = "Delete Window", remap = true })
LazyVim.toggle.map("<leader>wm", LazyVim.toggle.maximize)
Snacks.toggle.zoom():map("<leader>wm"):map("<leader>uZ")
Snacks.toggle.zen():map("<leader>uz")
-- tabs
map("n", "<leader><tab>l", "<cmd>tablast<cr>", { desc = "Last Tab" })
@ -188,3 +192,13 @@ map("n", "<leader><tab><tab>", "<cmd>tabnew<cr>", { desc = "New Tab" })
map("n", "<leader><tab>]", "<cmd>tabnext<cr>", { desc = "Next Tab" })
map("n", "<leader><tab>d", "<cmd>tabclose<cr>", { desc = "Close Tab" })
map("n", "<leader><tab>[", "<cmd>tabprevious<cr>", { desc = "Previous Tab" })
-- native snippets. only needed on < 0.11, as 0.11 creates these by default
if vim.fn.has("nvim-0.11") == 0 then
map("s", "<Tab>", function()
return vim.snippet.active({ direction = 1 }) and "<cmd>lua vim.snippet.jump(1)<cr>" or "<Tab>"
end, { expr = true, desc = "Jump Next" })
map({ "i", "s" }, "<S-Tab>", function()
return vim.snippet.active({ direction = -1 }) and "<cmd>lua vim.snippet.jump(-1)<cr>" or "<S-Tab>"
end, { expr = true, desc = "Jump Previous" })
end

View File

@ -5,12 +5,26 @@ vim.g.maplocalleader = "\\"
-- LazyVim auto format
vim.g.autoformat = true
-- Snacks animations
-- Set to `false` to globally disable all snacks animations
vim.g.snacks_animate = true
-- LazyVim picker to use.
-- Can be one of: telescope, fzf
-- Leave it to "auto" to automatically use the picker
-- enabled with `:LazyExtras`
vim.g.lazyvim_picker = "auto"
-- LazyVim completion engine to use.
-- Can be one of: nvim-cmp, blink.cmp
-- Leave it to "auto" to automatically use the completion engine
-- enabled with `:LazyExtras`
vim.g.lazyvim_cmp = "auto"
-- if the completion engine supports the AI source,
-- use that instead of inline suggestions
vim.g.ai_cmp = true
-- LazyVim root dir detection
-- Each entry can be:
-- * the name of a detector function like `lsp` or `cwd`
@ -18,37 +32,19 @@ vim.g.lazyvim_picker = "auto"
-- * a function with signature `function(buf) -> string|string[]`
vim.g.root_spec = { "lsp", { ".git", "lua" }, "cwd" }
-- LazyVim automatically configures lazygit:
-- * theme, based on the active colorscheme.
-- * editPreset to nvim-remote
-- * enables nerd font icons
-- Set to false to disable.
-- Set the options you want to override in `~/.config/lazygit/custom.yml`
-- WARN: on Windows you might want to set `editPreset: "nvim"` due to
-- this issue https://github.com/jesseduffield/lazygit/issues/3467
vim.g.lazygit_config = true
-- Options for the LazyVim statuscolumn
vim.g.lazyvim_statuscolumn = {
folds_open = false, -- show fold sign when fold is open
folds_githl = false, -- highlight fold sign with git sign color
}
-- Optionally setup the terminal to use
-- This sets `vim.o.shell` and does some additional configuration for:
-- * pwsh
-- * powershell
-- LazyVim.terminal.setup("pwsh")
-- Set LSP servers to be ignored when used with `util.root.detectors.lsp`
-- for detecting the LSP root
vim.g.root_lsp_ignore = { "copilot" }
-- Hide deprecation warnings
vim.g.deprecation_warnings = false
-- Set filetype to `bigfile` for files larger than 1.5 MB
-- Only vim syntax will be enabled (with the correct filetype)
-- LSP, treesitter and other ft plugins will be disabled.
-- mini.animate will also be disabled.
vim.g.bigfile_size = 1024 * 1024 * 1.5 -- 1.5 MB
-- Show the current document symbols location from Trouble in lualine
-- You can disable this for a buffer by setting `vim.b.trouble_lualine = false`
vim.g.trouble_lualine = true
@ -88,6 +84,7 @@ opt.number = true -- Print line number
opt.pumblend = 10 -- Popup blend
opt.pumheight = 10 -- Maximum number of entries in a popup
opt.relativenumber = true -- Relative line numbers
opt.ruler = false -- Disable the default ruler
opt.scrolloff = 4 -- Lines of context
opt.sessionoptions = { "buffers", "curdir", "tabpages", "winsize", "help", "globals", "skiprtp", "folds" }
opt.shiftround = true -- Round indent
@ -99,11 +96,10 @@ opt.signcolumn = "yes" -- Always show the signcolumn, otherwise it would shift t
opt.smartcase = true -- Don't ignore case with capitals
opt.smartindent = true -- Insert indents automatically
opt.spelllang = { "en" }
opt.spelloptions:append("noplainbuffer")
opt.splitbelow = true -- Put new windows below current
opt.splitkeep = "screen"
opt.splitright = true -- Put new windows right of current
opt.statuscolumn = [[%!v:lua.require'lazyvim.util'.ui.statuscolumn()]]
opt.statuscolumn = [[%!v:lua.require'snacks.statuscolumn'.get()]]
opt.tabstop = 2 -- Number of spaces tabs count for
opt.termguicolors = true -- True color support
opt.timeoutlen = vim.g.vscode and 1000 or 300 -- Lower than default (1000) to quickly trigger which-key

View File

@ -1,129 +1,15 @@
return {
-- auto completion
{
"hrsh7th/nvim-cmp",
version = false, -- last release is way too old
event = "InsertEnter",
dependencies = {
"hrsh7th/cmp-nvim-lsp",
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-path",
},
-- Not all LSP servers add brackets when completing a function.
-- To better deal with this, LazyVim adds a custom option to cmp,
-- that you can configure. For example:
--
-- ```lua
-- opts = {
-- auto_brackets = { "python" }
-- }
-- ```
opts = function()
vim.api.nvim_set_hl(0, "CmpGhostText", { link = "Comment", default = true })
local cmp = require("cmp")
local defaults = require("cmp.config.default")()
local auto_select = true
return {
auto_brackets = {}, -- configure any filetype to auto add brackets
completion = {
completeopt = "menu,menuone,noinsert" .. (auto_select and "" or ",noselect"),
},
preselect = auto_select and cmp.PreselectMode.Item or cmp.PreselectMode.None,
mapping = cmp.mapping.preset.insert({
["<C-b>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(4),
["<C-n>"] = cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Insert }),
["<C-p>"] = cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Insert }),
["<C-Space>"] = cmp.mapping.complete(),
["<CR>"] = LazyVim.cmp.confirm({ select = auto_select }),
["<C-y>"] = LazyVim.cmp.confirm({ select = true }),
["<S-CR>"] = LazyVim.cmp.confirm({ behavior = cmp.ConfirmBehavior.Replace }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
["<C-CR>"] = function(fallback)
cmp.abort()
fallback()
end,
}),
sources = cmp.config.sources({
{ name = "nvim_lsp" },
{ name = "path" },
}, {
{ name = "buffer" },
}),
formatting = {
format = function(entry, item)
local icons = LazyVim.config.icons.kinds
if icons[item.kind] then
item.kind = icons[item.kind] .. item.kind
end
local widths = {
abbr = vim.g.cmp_widths and vim.g.cmp_widths.abbr or 40,
menu = vim.g.cmp_widths and vim.g.cmp_widths.menu or 30,
}
for key, width in pairs(widths) do
if item[key] and vim.fn.strdisplaywidth(item[key]) > width then
item[key] = vim.fn.strcharpart(item[key], 0, width - 1) .. ""
end
end
return item
end,
},
experimental = {
ghost_text = {
hl_group = "CmpGhostText",
},
},
sorting = defaults.sorting,
}
import = "lazyvim.plugins.extras.coding.nvim-cmp",
enabled = function()
return LazyVim.cmp_engine() == "nvim-cmp"
end,
main = "lazyvim.util.cmp",
},
-- snippets
{
"nvim-cmp",
dependencies = {
{
"garymjr/nvim-snippets",
opts = {
friendly_snippets = true,
},
dependencies = { "rafamadriz/friendly-snippets" },
},
},
opts = function(_, opts)
opts.snippet = {
expand = function(item)
return LazyVim.cmp.expand(item.body)
end,
}
if LazyVim.has("nvim-snippets") then
table.insert(opts.sources, { name = "snippets" })
end
import = "lazyvim.plugins.extras.coding.blink",
enabled = function()
return LazyVim.cmp_engine() == "blink.cmp"
end,
keys = {
{
"<Tab>",
function()
return vim.snippet.active({ direction = 1 }) and "<cmd>lua vim.snippet.jump(1)<cr>" or "<Tab>"
end,
expr = true,
silent = true,
mode = { "i", "s" },
},
{
"<S-Tab>",
function()
return vim.snippet.active({ direction = -1 }) and "<cmd>lua vim.snippet.jump(-1)<cr>" or "<S-Tab>"
end,
expr = true,
silent = true,
mode = { "i", "s" },
},
},
},
-- auto pairs
@ -175,7 +61,6 @@ return {
{ "%u[%l%d]+%f[^%l%d]", "%f[%S][%l%d]+%f[^%l%d]", "%f[%P][%l%d]+%f[^%l%d]", "^[%l%d]+%f[^%l%d]" },
"^().*()$",
},
i = LazyVim.mini.ai_indent, -- indent
g = LazyVim.mini.ai_buffer, -- buffer
u = ai.gen_spec.function_call(), -- u for "Usage"
U = ai.gen_spec.function_call({ name_pattern = "[%w_]" }), -- without dot in function name
@ -198,19 +83,11 @@ return {
cmd = "LazyDev",
opts = {
library = {
{ path = "luvit-meta/library", words = { "vim%.uv" } },
{ path = "${3rd}/luv/library", words = { "vim%.uv" } },
{ path = "LazyVim", words = { "LazyVim" } },
{ path = "snacks.nvim", words = { "Snacks" } },
{ path = "lazy.nvim", words = { "LazyVim" } },
},
},
},
-- Manage libuv types with lazy. Plugin will never be loaded
{ "Bilal2453/luvit-meta", lazy = true },
-- Add lazydev source to cmp
{
"hrsh7th/nvim-cmp",
opts = function(_, opts)
table.insert(opts.sources, { name = "lazydev", group_index = 0 })
end,
},
}

View File

@ -44,11 +44,23 @@ return {
noice = true,
notify = true,
semantic_tokens = true,
snacks = true,
telescope = true,
treesitter = true,
treesitter_context = true,
which_key = true,
},
},
specs = {
{
"akinsho/bufferline.nvim",
optional = true,
opts = function(_, opts)
if (vim.g.colors_name or ""):find("catppuccin") then
opts.highlights = require("catppuccin.groups.integrations.bufferline").get()
end
end,
},
},
},
}

View File

@ -4,6 +4,9 @@ return {
{ "garymjr/nvim-snippets", enabled = false },
{ import = "lazyvim.plugins.extras.coding.luasnip" },
-- Use nvim-cmp instead of blink.cmp
{ import = "lazyvim.plugins.extras.coding.nvim-cmp" },
-- Use mini.comment instead of ts-comments
{ "folke/ts-comments.nvim", enabled = false },
{ import = "lazyvim.plugins.extras.coding.mini-comment" },

View File

@ -105,7 +105,7 @@ return {
},
config = function(_, opts)
local function on_move(data)
LazyVim.lsp.on_rename(data.source, data.destination)
Snacks.rename.on_rename_file(data.source, data.destination)
end
local events = require("neo-tree.events")
@ -176,12 +176,15 @@ return {
event = "VeryLazy",
opts_extend = { "spec" },
opts = {
preset = "helix",
defaults = {},
spec = {
{
mode = { "n", "v" },
{ "<leader><tab>", group = "tabs" },
{ "<leader>c", group = "code" },
{ "<leader>d", group = "debug" },
{ "<leader>dp", group = "profiler" },
{ "<leader>f", group = "file/find" },
{ "<leader>g", group = "git" },
{ "<leader>gh", group = "hunks" },
@ -300,6 +303,20 @@ return {
end,
},
},
{
"gitsigns.nvim",
opts = function()
Snacks.toggle({
name = "Git Signs",
get = function()
return require("gitsigns.config").config.signcolumn
end,
set = function(state)
require("gitsigns").toggle_signs(state)
end,
}):map("<leader>uG")
end,
},
-- better diagnostics list and others
{

View File

@ -0,0 +1,69 @@
return {
-- codeium
{
"Exafunction/codeium.nvim",
cmd = "Codeium",
build = ":Codeium Auth",
opts = {
enable_cmp_source = vim.g.ai_cmp,
virtual_text = {
enabled = not vim.g.ai_cmp,
key_bindings = {
accept = false, -- handled by nvim-cmp / blink.cmp
next = "<M-]>",
prev = "<M-[>",
},
},
},
},
-- add ai_accept action
{
"Exafunction/codeium.nvim",
opts = function()
LazyVim.cmp.actions.ai_accept = function()
if require("codeium.virtual_text").get_current_completion_item() then
LazyVim.create_undo()
vim.api.nvim_input(require("codeium.virtual_text").accept())
return true
end
end
end,
},
-- codeium cmp source
{
"hrsh7th/nvim-cmp",
optional = true,
dependencies = { "codeium.nvim" },
opts = function(_, opts)
table.insert(opts.sources, 1, {
name = "codeium",
group_index = 1,
priority = 100,
})
end,
},
{
"nvim-lualine/lualine.nvim",
optional = true,
event = "VeryLazy",
opts = function(_, opts)
table.insert(opts.sections.lualine_x, 2, LazyVim.lualine.cmp_source("codeium"))
end,
},
vim.g.ai_cmp and {
"saghen/blink.cmp",
optional = true,
dependencies = { "codeium.nvim", "saghen/blink.compat" },
opts = {
sources = {
compat = { "codeium" },
providers = { codeium = { kind = "Codeium" } },
},
},
} or nil,
}

View File

@ -17,23 +17,18 @@ end
return {
{
"CopilotC-Nvim/CopilotChat.nvim",
branch = "canary",
branch = "main",
cmd = "CopilotChat",
opts = function()
local user = vim.env.USER or "User"
user = user:sub(1, 1):upper() .. user:sub(2)
return {
auto_insert_mode = true,
show_help = true,
question_header = "" .. user .. " ",
answer_header = " Copilot ",
window = {
width = 0.4,
},
selection = function(source)
local select = require("CopilotChat.select")
return select.visual(source) or select.buffer(source)
end,
}
end,
keys = {
@ -66,14 +61,11 @@ return {
desc = "Quick Chat (CopilotChat)",
mode = { "n", "v" },
},
-- Show help actions with telescope
{ "<leader>ad", M.pick("help"), desc = "Diagnostic Help (CopilotChat)", mode = { "n", "v" } },
-- Show prompts actions with telescope
{ "<leader>ap", M.pick("prompt"), desc = "Prompt Actions (CopilotChat)", mode = { "n", "v" } },
},
config = function(_, opts)
local chat = require("CopilotChat")
require("CopilotChat.integrations.cmp").setup()
vim.api.nvim_create_autocmd("BufEnter", {
pattern = "copilot-chat",

View File

@ -0,0 +1,116 @@
return {
recommended = true,
-- copilot
{
"zbirenbaum/copilot.lua",
cmd = "Copilot",
build = ":Copilot auth",
event = "InsertEnter",
opts = {
suggestion = {
enabled = not vim.g.ai_cmp,
auto_trigger = true,
keymap = {
accept = false, -- handled by nvim-cmp / blink.cmp
next = "<M-]>",
prev = "<M-[>",
},
},
panel = { enabled = false },
filetypes = {
markdown = true,
help = true,
},
},
},
-- add ai_accept action
{
"zbirenbaum/copilot.lua",
opts = function()
LazyVim.cmp.actions.ai_accept = function()
if require("copilot.suggestion").is_visible() then
LazyVim.create_undo()
require("copilot.suggestion").accept()
return true
end
end
end,
},
-- lualine
{
"nvim-lualine/lualine.nvim",
optional = true,
event = "VeryLazy",
opts = function(_, opts)
table.insert(
opts.sections.lualine_x,
2,
LazyVim.lualine.status(LazyVim.config.icons.kinds.Copilot, function()
local clients = package.loaded["copilot"] and LazyVim.lsp.get_clients({ name = "copilot", bufnr = 0 }) or {}
if #clients > 0 then
local status = require("copilot.api").status.data.status
return (status == "InProgress" and "pending") or (status == "Warning" and "error") or "ok"
end
end)
)
end,
},
vim.g.ai_cmp
and {
-- copilot cmp source
{
"hrsh7th/nvim-cmp",
optional = true,
dependencies = { -- this will only be evaluated if nvim-cmp is enabled
{
"zbirenbaum/copilot-cmp",
opts = {},
config = function(_, opts)
local copilot_cmp = require("copilot_cmp")
copilot_cmp.setup(opts)
-- attach cmp source whenever copilot attaches
-- fixes lazy-loading issues with the copilot cmp source
LazyVim.lsp.on_attach(function()
copilot_cmp._on_insert_enter({})
end, "copilot")
end,
specs = {
{
"hrsh7th/nvim-cmp",
optional = true,
---@param opts cmp.ConfigSchema
opts = function(_, opts)
table.insert(opts.sources, 1, {
name = "copilot",
group_index = 1,
priority = 100,
})
end,
},
},
},
},
},
{
"saghen/blink.cmp",
optional = true,
dependencies = { "giuxtaposition/blink-cmp-copilot" },
opts = {
sources = {
default = { "copilot" },
providers = {
copilot = {
name = "copilot",
module = "blink-cmp-copilot",
kind = "Copilot",
},
},
},
},
},
}
or nil,
}

View File

@ -0,0 +1,85 @@
return {
{
"supermaven-inc/supermaven-nvim",
opts = {
keymaps = {
accept_suggestion = nil, -- handled by nvim-cmp / blink.cmp
},
disable_inline_completion = vim.g.ai_cmp,
},
},
-- add ai_accept action
{
"supermaven-inc/supermaven-nvim",
opts = function()
require("supermaven-nvim.completion_preview").suggestion_group = "SupermavenSuggestion"
LazyVim.cmp.actions.ai_accept = function()
local suggestion = require("supermaven-nvim.completion_preview")
if suggestion.has_suggestion() then
LazyVim.create_undo()
vim.schedule(function()
suggestion.on_accept_suggestion()
end)
return true
end
end
end,
},
-- cmp integration
{
"hrsh7th/nvim-cmp",
optional = true,
dependencies = { "supermaven-nvim" },
opts = function(_, opts)
if vim.g.ai_cmp then
table.insert(opts.sources, 1, {
name = "supermaven",
group_index = 1,
priority = 100,
})
end
end,
},
vim.g.ai_cmp and {
"saghen/blink.cmp",
optional = true,
dependencies = { "supermaven-nvim", "saghen/blink.compat" },
opts = {
sources = {
compat = { "supermaven" },
providers = { supermaven = { kind = "Supermaven" } },
},
},
} or nil,
{
"nvim-lualine/lualine.nvim",
optional = true,
event = "VeryLazy",
opts = function(_, opts)
table.insert(opts.sections.lualine_x, 2, LazyVim.lualine.cmp_source("supermaven"))
end,
},
{
"folke/noice.nvim",
optional = true,
opts = function(_, opts)
vim.list_extend(opts.routes, {
{
filter = {
event = "msg_show",
any = {
{ find = "Starting Supermaven" },
{ find = "Supermaven Free Tier" },
},
},
skip = true,
},
})
end,
},
}

View File

@ -1,25 +1,22 @@
return {
-- Tabnine cmp source
{
"nvim-cmp",
dependencies = {
{
"tzachar/cmp-tabnine",
build = {
LazyVim.is_win() and "pwsh -noni .\\install.ps1" or "./install.sh",
":CmpTabnineHub",
},
dependencies = "hrsh7th/nvim-cmp",
opts = {
max_lines = 1000,
max_num_results = 3,
sort = true,
},
config = function(_, opts)
require("cmp_tabnine.config"):setup(opts)
end,
},
"tzachar/cmp-tabnine",
build = LazyVim.is_win() and "pwsh -noni .\\install.ps1" or "./install.sh",
opts = {
max_lines = 1000,
max_num_results = 3,
sort = true,
},
config = function(_, opts)
require("cmp_tabnine.config"):setup(opts)
end,
},
{
"hrsh7th/nvim-cmp",
optional = true,
dependencies = { "tzachar/cmp-tabnine" },
---@param opts cmp.ConfigSchema
opts = function(_, opts)
table.insert(opts.sources, 1, {
@ -36,6 +33,19 @@ return {
end)
end,
},
{
"saghen/blink.cmp",
optional = true,
dependencies = { "tzachar/cmp-tabnine", "saghen/blink.compat" },
opts = {
sources = {
compat = { "cmp_tabnine" },
providers = { cmp_tabnine = { kind = "TabNine" } },
},
},
},
-- Show TabNine status in lualine
{
"nvim-lualine/lualine.nvim",

View File

@ -0,0 +1,164 @@
if lazyvim_docs then
-- set to `true` to follow the main branch
-- you need to have a working rust toolchain to build the plugin
-- in this case.
vim.g.lazyvim_blink_main = false
end
return {
{
"saghen/blink.cmp",
version = not vim.g.lazyvim_blink_main and "*",
build = vim.g.lazyvim_blink_main and "cargo build --release",
opts_extend = {
"sources.completion.enabled_providers",
"sources.compat",
"sources.default",
},
dependencies = {
"rafamadriz/friendly-snippets",
-- add blink.compat to dependencies
{
"saghen/blink.compat",
optional = true, -- make optional so it's only enabled if any extras need it
opts = {},
version = not vim.g.lazyvim_blink_main and "*",
},
},
event = "InsertEnter",
---@module 'blink.cmp'
---@type blink.cmp.Config
opts = {
appearance = {
-- sets the fallback highlight groups to nvim-cmp's highlight groups
-- useful for when your theme doesn't support blink.cmp
-- will be removed in a future release, assuming themes add support
use_nvim_cmp_as_default = false,
-- set to 'mono' for 'Nerd Font Mono' or 'normal' for 'Nerd Font'
-- adjusts spacing to ensure icons are aligned
nerd_font_variant = "mono",
},
completion = {
accept = {
-- experimental auto-brackets support
auto_brackets = {
enabled = true,
},
},
menu = {
draw = {
treesitter = true,
},
},
documentation = {
auto_show = true,
auto_show_delay_ms = 200,
},
ghost_text = {
enabled = vim.g.ai_cmp,
},
},
-- experimental signature help support
-- signature = { enabled = true },
sources = {
-- adding any nvim-cmp sources here will enable them
-- with blink.compat
compat = {},
default = { "lsp", "path", "snippets", "buffer" },
cmdline = {},
},
keymap = {
preset = "enter",
["<Tab>"] = {
LazyVim.cmp.map({ "snippet_forward", "ai_accept" }),
"fallback",
},
},
},
---@param opts blink.cmp.Config | { sources: { compat: string[] } }
config = function(_, opts)
-- setup compat sources
local enabled = opts.sources.default
for _, source in ipairs(opts.sources.compat or {}) do
opts.sources.providers[source] = vim.tbl_deep_extend(
"force",
{ name = source, module = "blink.compat.source" },
opts.sources.providers[source] or {}
)
if type(enabled) == "table" and not vim.tbl_contains(enabled, source) then
table.insert(enabled, source)
end
end
-- Unset custom prop to pass blink.cmp validation
opts.sources.compat = nil
-- check if we need to override symbol kinds
for _, provider in pairs(opts.sources.providers or {}) do
---@cast provider blink.cmp.SourceProviderConfig|{kind?:string}
if provider.kind then
local CompletionItemKind = require("blink.cmp.types").CompletionItemKind
local kind_idx = #CompletionItemKind + 1
CompletionItemKind[kind_idx] = provider.kind
CompletionItemKind[provider.kind] = kind_idx
---@type fun(ctx: blink.cmp.Context, items: blink.cmp.CompletionItem[]): blink.cmp.CompletionItem[]
local transform_items = provider.transform_items
---@param ctx blink.cmp.Context
---@param items blink.cmp.CompletionItem[]
provider.transform_items = function(ctx, items)
items = transform_items and transform_items(ctx, items) or items
for _, item in ipairs(items) do
item.kind = kind_idx or item.kind
end
return items
end
-- Unset custom prop to pass blink.cmp validation
provider.kind = nil
end
end
require("blink.cmp").setup(opts)
end,
},
-- add icons
{
"saghen/blink.cmp",
opts = function(_, opts)
opts.appearance = opts.appearance or {}
opts.appearance.kind_icons = LazyVim.config.icons.kinds
end,
},
-- lazydev
{
"saghen/blink.cmp",
opts = {
sources = {
-- add lazydev to your completion providers
default = { "lazydev" },
providers = {
lazydev = {
name = "LazyDev",
module = "lazydev.integrations.blink",
},
},
},
},
},
-- catppuccin support
{
"catppuccin",
optional = true,
opts = {
integrations = { blink_cmp = true },
},
},
}

View File

@ -1,33 +0,0 @@
return {
-- codeium cmp source
{
"nvim-cmp",
dependencies = {
-- codeium
{
"Exafunction/codeium.nvim",
cmd = "Codeium",
build = ":Codeium Auth",
opts = {},
},
},
---@param opts cmp.ConfigSchema
opts = function(_, opts)
table.insert(opts.sources, 1, {
name = "codeium",
group_index = 1,
priority = 100,
})
end,
},
{
"nvim-lualine/lualine.nvim",
optional = true,
event = "VeryLazy",
opts = function(_, opts)
table.insert(opts.sections.lualine_x, 2, LazyVim.lualine.cmp_source("codeium"))
end,
},
}

View File

@ -1,83 +0,0 @@
return {
recommended = true,
-- copilot
{
"zbirenbaum/copilot.lua",
cmd = "Copilot",
build = ":Copilot auth",
opts = {
suggestion = { enabled = false },
panel = { enabled = false },
filetypes = {
markdown = true,
help = true,
},
},
},
{
"nvim-lualine/lualine.nvim",
optional = true,
event = "VeryLazy",
opts = function(_, opts)
local colors = {
[""] = LazyVim.ui.fg("Special"),
["Normal"] = LazyVim.ui.fg("Special"),
["Warning"] = LazyVim.ui.fg("DiagnosticError"),
["InProgress"] = LazyVim.ui.fg("DiagnosticWarn"),
}
table.insert(opts.sections.lualine_x, 2, {
function()
local icon = LazyVim.config.icons.kinds.Copilot
local status = require("copilot.api").status.data
return icon .. (status.message or "")
end,
cond = function()
if not package.loaded["copilot"] then
return
end
local ok, clients = pcall(LazyVim.lsp.get_clients, { name = "copilot", bufnr = 0 })
if not ok then
return false
end
return ok and #clients > 0
end,
color = function()
if not package.loaded["copilot"] then
return
end
local status = require("copilot.api").status.data
return colors[status.status] or colors[""]
end,
})
end,
},
-- copilot cmp source
{
"nvim-cmp",
dependencies = {
{
"zbirenbaum/copilot-cmp",
dependencies = "copilot.lua",
opts = {},
config = function(_, opts)
local copilot_cmp = require("copilot_cmp")
copilot_cmp.setup(opts)
-- attach cmp source whenever copilot attaches
-- fixes lazy-loading issues with the copilot cmp source
LazyVim.lsp.on_attach(function(client)
copilot_cmp._on_insert_enter({})
end, "copilot")
end,
},
},
---@param opts cmp.ConfigSchema
opts = function(_, opts)
table.insert(opts.sources, 1, {
name = "copilot",
group_index = 1,
priority = 100,
})
end,
},
}

View File

@ -1,4 +1,8 @@
return {
-- disable builtin snippet support
{ "garymjr/nvim-snippets", enabled = false },
-- add luasnip
{
"L3MON4D3/LuaSnip",
lazy = true,
@ -10,20 +14,7 @@ return {
"rafamadriz/friendly-snippets",
config = function()
require("luasnip.loaders.from_vscode").lazy_load()
end,
},
{
"nvim-cmp",
dependencies = {
"saadparwaiz1/cmp_luasnip",
},
opts = function(_, opts)
opts.snippet = {
expand = function(args)
require("luasnip").lsp_expand(args.body)
end,
}
table.insert(opts.sources, { name = "luasnip" })
require("luasnip.loaders.from_vscode").lazy_load({ paths = { vim.fn.stdpath("config") .. "/snippets" } })
end,
},
},
@ -32,23 +23,64 @@ return {
delete_check_events = "TextChanged",
},
},
-- add snippet_forward action
{
"nvim-cmp",
"L3MON4D3/LuaSnip",
opts = function()
LazyVim.cmp.actions.snippet_forward = function()
if require("luasnip").jumpable(1) then
require("luasnip").jump(1)
return true
end
end
end,
},
-- nvim-cmp integration
{
"hrsh7th/nvim-cmp",
optional = true,
dependencies = { "saadparwaiz1/cmp_luasnip" },
opts = function(_, opts)
opts.snippet = {
expand = function(args)
require("luasnip").lsp_expand(args.body)
end,
}
table.insert(opts.sources, { name = "luasnip" })
end,
-- stylua: ignore
keys = {
{
"<tab>",
function()
return require("luasnip").jumpable(1) and "<Plug>luasnip-jump-next" or "<tab>"
end,
expr = true, silent = true, mode = "i",
},
{ "<tab>", function() require("luasnip").jump(1) end, mode = "s" },
{ "<s-tab>", function() require("luasnip").jump(-1) end, mode = { "i", "s" } },
},
},
-- blink.cmp integration
{
"garymjr/nvim-snippets",
enabled = false,
"saghen/blink.cmp",
optional = true,
dependencies = {
{ "saghen/blink.compat", opts = { impersonate_nvim_cmp = true } },
{ "saadparwaiz1/cmp_luasnip" },
},
opts = {
sources = { compat = { "luasnip" } },
snippets = {
expand = function(snippet)
require("luasnip").lsp_expand(snippet)
end,
active = function(filter)
if filter and filter.direction then
return require("luasnip").jumpable(filter.direction)
end
return require("luasnip").in_snippet()
end,
jump = function(direction)
require("luasnip").jump(direction)
end,
},
},
},
}

View File

@ -0,0 +1,113 @@
return {
-- Setup nvim-cmp
{
"hrsh7th/nvim-cmp",
version = false, -- last release is way too old
event = "InsertEnter",
dependencies = {
"hrsh7th/cmp-nvim-lsp",
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-path",
},
-- Not all LSP servers add brackets when completing a function.
-- To better deal with this, LazyVim adds a custom option to cmp,
-- that you can configure. For example:
--
-- ```lua
-- opts = {
-- auto_brackets = { "python" }
-- }
-- ```
opts = function()
vim.api.nvim_set_hl(0, "CmpGhostText", { link = "Comment", default = true })
local cmp = require("cmp")
local defaults = require("cmp.config.default")()
local auto_select = true
return {
auto_brackets = {}, -- configure any filetype to auto add brackets
completion = {
completeopt = "menu,menuone,noinsert" .. (auto_select and "" or ",noselect"),
},
preselect = auto_select and cmp.PreselectMode.Item or cmp.PreselectMode.None,
mapping = cmp.mapping.preset.insert({
["<C-b>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(4),
["<C-n>"] = cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Insert }),
["<C-p>"] = cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Insert }),
["<C-Space>"] = cmp.mapping.complete(),
["<CR>"] = LazyVim.cmp.confirm({ select = auto_select }),
["<C-y>"] = LazyVim.cmp.confirm({ select = true }),
["<S-CR>"] = LazyVim.cmp.confirm({ behavior = cmp.ConfirmBehavior.Replace }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
["<C-CR>"] = function(fallback)
cmp.abort()
fallback()
end,
["<tab>"] = function(fallback)
return LazyVim.cmp.map({ "snippet_forward", "ai_accept" }, fallback)()
end,
}),
sources = cmp.config.sources({
{ name = "lazydev" },
{ name = "nvim_lsp" },
{ name = "path" },
}, {
{ name = "buffer" },
}),
formatting = {
format = function(entry, item)
local icons = LazyVim.config.icons.kinds
if icons[item.kind] then
item.kind = icons[item.kind] .. item.kind
end
local widths = {
abbr = vim.g.cmp_widths and vim.g.cmp_widths.abbr or 40,
menu = vim.g.cmp_widths and vim.g.cmp_widths.menu or 30,
}
for key, width in pairs(widths) do
if item[key] and vim.fn.strdisplaywidth(item[key]) > width then
item[key] = vim.fn.strcharpart(item[key], 0, width - 1) .. ""
end
end
return item
end,
},
experimental = {
-- only show ghost text when we show ai completions
ghost_text = vim.g.ai_cmp and {
hl_group = "CmpGhostText",
} or false,
},
sorting = defaults.sorting,
}
end,
main = "lazyvim.util.cmp",
},
-- snippets
{
"hrsh7th/nvim-cmp",
dependencies = {
{
"garymjr/nvim-snippets",
opts = {
friendly_snippets = true,
},
dependencies = { "rafamadriz/friendly-snippets" },
},
},
opts = function(_, opts)
opts.snippet = {
expand = function(item)
return LazyVim.cmp.expand(item.body)
end,
}
if LazyVim.has("nvim-snippets") then
table.insert(opts.sources, { name = "snippets" })
end
end,
},
}

View File

@ -1,11 +1,17 @@
---@param config {args?:string[]|fun():string[]?}
---@param config {type?:string, args?:string[]|fun():string[]?}
local function get_args(config)
local args = type(config.args) == "function" and (config.args() or {}) or config.args or {}
local args = type(config.args) == "function" and (config.args() or {}) or config.args or {} --[[@as string[] | string ]]
local args_str = type(args) == "table" and table.concat(args, " ") or args --[[@as string]]
config = vim.deepcopy(config)
---@cast args string[]
config.args = function()
local new_args = vim.fn.input("Run with args: ", table.concat(args, " ")) --[[@as string]]
return vim.split(vim.fn.expand(new_args) --[[@as string]], " ")
local new_args = vim.fn.expand(vim.fn.input("Run with args: ", args_str)) --[[@as string]]
if config.type and config.type == "java" then
---@diagnostic disable-next-line: return-type-mismatch
return new_args
end
return require("dap.utils").splitstr(new_args)
end
return config
end
@ -27,10 +33,9 @@ return {
-- stylua: ignore
keys = {
{ "<leader>d", "", desc = "+debug", mode = {"n", "v"} },
{ "<leader>dB", function() require("dap").set_breakpoint(vim.fn.input('Breakpoint condition: ')) end, desc = "Breakpoint Condition" },
{ "<leader>db", function() require("dap").toggle_breakpoint() end, desc = "Toggle Breakpoint" },
{ "<leader>dc", function() require("dap").continue() end, desc = "Continue" },
{ "<leader>dc", function() require("dap").continue() end, desc = "Run/Continue" },
{ "<leader>da", function() require("dap").continue({ before = get_args }) end, desc = "Run with Args" },
{ "<leader>dC", function() require("dap").run_to_cursor() end, desc = "Run to Cursor" },
{ "<leader>dg", function() require("dap").goto_() end, desc = "Go to Line (No Execute)" },
@ -40,7 +45,7 @@ return {
{ "<leader>dl", function() require("dap").run_last() end, desc = "Run Last" },
{ "<leader>do", function() require("dap").step_out() end, desc = "Step Out" },
{ "<leader>dO", function() require("dap").step_over() end, desc = "Step Over" },
{ "<leader>dp", function() require("dap").pause() end, desc = "Pause" },
{ "<leader>dP", function() require("dap").pause() end, desc = "Pause" },
{ "<leader>dr", function() require("dap").repl.toggle() end, desc = "Toggle REPL" },
{ "<leader>ds", function() require("dap").session() end, desc = "Session" },
{ "<leader>dt", function() require("dap").terminate() end, desc = "Terminate" },
@ -69,11 +74,6 @@ return {
vscode.json_decode = function(str)
return vim.json.decode(json.json_strip_comments(str))
end
-- Extends dap.configurations with entries read from .vscode/launch.json
if vim.fn.filereadable(".vscode/launch.json") then
vscode.load_launchjs()
end
end,
},

View File

@ -98,39 +98,40 @@ return {
return {
dials_by_ft = {
css = "css",
vue = "vue",
javascript = "typescript",
typescript = "typescript",
typescriptreact = "typescript",
javascriptreact = "typescript",
json = "json",
lua = "lua",
markdown = "markdown",
python = "python",
sass = "css",
scss = "css",
typescript = "typescript",
typescriptreact = "typescript",
yaml = "yaml",
python = "python",
},
groups = {
default = {
augend.integer.alias.decimal, -- nonnegative decimal number (0, 1, 2, 3, ...)
augend.integer.alias.decimal_int, -- nonnegative and negative decimal number
augend.integer.alias.hex, -- nonnegative hex number (0x01, 0x1a1f, etc.)
augend.date.alias["%Y/%m/%d"], -- date (2022/02/19, etc.)
ordinal_numbers,
weekdays,
months,
},
typescript = {
augend.integer.alias.decimal, -- nonnegative and negative decimal number
capitalized_boolean,
augend.constant.alias.bool, -- boolean value (true <-> false)
logical_alias,
},
vue = {
augend.constant.new({ elements = { "let", "const" } }),
augend.hexcolor.new({ case = "lower" }),
augend.hexcolor.new({ case = "upper" }),
},
typescript = {
augend.constant.new({ elements = { "let", "const" } }),
},
yaml = {
augend.integer.alias.decimal, -- nonnegative and negative decimal number
augend.constant.alias.bool, -- boolean value (true <-> false)
},
css = {
augend.integer.alias.decimal, -- nonnegative and negative decimal number
augend.hexcolor.new({
case = "lower",
}),
@ -142,12 +143,9 @@ return {
augend.misc.alias.markdown_header,
},
json = {
augend.integer.alias.decimal, -- nonnegative and negative decimal number
augend.semver.alias.semver, -- versioning (v1.1.2)
},
lua = {
augend.integer.alias.decimal, -- nonnegative and negative decimal number
augend.constant.alias.bool, -- boolean value (true <-> false)
augend.constant.new({
elements = { "and", "or" },
word = true, -- if false, "sand" is incremented into "sor", "doctor" into "doctand", etc.
@ -155,14 +153,20 @@ return {
}),
},
python = {
augend.integer.alias.decimal, -- nonnegative and negative decimal number
capitalized_boolean,
logical_alias,
augend.constant.new({
elements = { "and", "or" },
}),
},
},
}
end,
config = function(_, opts)
-- copy defaults to each group
for name, group in pairs(opts.groups) do
if name ~= "default" then
vim.list_extend(group, opts.groups.default)
end
end
require("dial.config").augends:register_group(opts.groups)
vim.g.dials_by_ft = opts.dials_by_ft
end,

Some files were not shown because too many files have changed in this diff Show More