🤖 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
>= `0.10` as default completion engine
([152f9d1](152f9d113f))
* **cmp:** moved `nvim-cmp` to extras and prefer `blink.cmp` on Neovim
>= `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>
## 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.
## 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.
## 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.
## 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>
## 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.
## 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.
## 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>
## 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.
## 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.
## 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.
## 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.
## 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:

Multiple extras enabled at the same time:

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

Java remote debugging open:

## Checklist
- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
## 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.
## 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.
## 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.
## 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.
## 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.
## 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.
## 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.
## 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.
## 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.
## 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.
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>
## 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.
## 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.
- 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>
## 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.
## 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**

**After**

## Checklist
- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
## 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>
## 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.
## 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.
## 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.
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>
## 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.
## 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:

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

## Checklist
- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
## 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.
## 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.
## 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.
## 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.
## 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.
## 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.
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.
## 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.
## 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.
## 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.
## 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.
## 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>
## 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.
## 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>
## 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
## 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.
## 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.
## 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.
## 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.
## 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.
## 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.
## 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.
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.
## 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.
## 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.
## 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.
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))
- 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)
["<S-CR>"]=LazyVim.cmp.confirm({behavior=cmp.ConfirmBehavior.Replace}),-- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
["<S-CR>"]=LazyVim.cmp.confirm({behavior=cmp.ConfirmBehavior.Replace}),-- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.