12 KiB
What's new?
15.x
Neovim >= 0.11.2 includes a lot of changes to the underlying LSP implementation.
Going forward, LazyVim requires Neovim >= 0.11.2, and drops support for older versions.
Changes
- removed compatibility code for Neovim
< 0.11.2 - configure LSP with the native
vim.lsp.config - migrated mason.nvim and mason-lspconfig.nvim to
v2.x - migrated to nvim-treesitter main branch
- with the new version, the
tree-sittercli is required to install parsers - best to run
:checkhealth nvim-treesitterafter updating
- with the new version, the
- replace
nvim-treesitterincremental selection withflash.nvim, since it is no longer supported - enabled blink.cmp cmdline completions
- use LSP based folding when available (disable with
nvim-lspconfig.folds.enabled = false)
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 as a replacement for telescope.nvim
- to use telescope.nvim instead, enable the
editor.telescopeextra
- to use telescope.nvim instead, enable the
- blink.cmp as a replacement for nvim-cmp
- to use nvim-cmp instead, enable the
coding.nvim-cmpextra
- to use nvim-cmp instead, enable the
Removed Plugins
- dressing.nvim (replaced with fzf-lua and snacks.input)
- telescope-fzf-native.nvim (replaced with fzf-lua)
- telescope.nvim (replaced with fzf-lua)
- indent-blankline.nvim (replaced with snacks.indent)
- to use indent-blankline.nvim instead, enable the
indent-blanklineextra
- to use indent-blankline.nvim instead, enable the
- nvim-cmp (replaced with blink)
- nvim-snippets (replaced with blink)
- cmp-buffer (replaced with blink)
- cmp-nvim-lsp (replaced with blink)
- cmp-path (replaced with blink)
Changes
- added
snacks.input - added
snacks.scroll - added
snacks.indent - added
snacks.scope - added
snacks.dim - added
snacks.zen - changed default
which-keypreset tohelix - drop
LazyVim.ui.fgin favor ofSnacks.util.color
To disable all animations, add the following to your options.lua:
vim.g.snacks_animate = false
Keymaps
<leader>uzto toggle zen mode<leader>uZ&<leader>wmto toggle zoom mode<leader>uDto toggle dimming<leader>uato toggle animations<leader>uSto toggle scroll<leader>ugto toggle indent guidessnacks.profilerkeymaps under<leader>dp
13.x
-
LazyVim now uses
Snacks.dashboardas the default dashboard. Check the docs, for more information and examples. -
A new 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 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.notifierfor notifications instead ofnvim-notifySnacks.terminalis similar tolazyterm, but has more features and creates bottom splits by default (similar to theedgyintegrating)
12.x
-
Markdown Extra: headlines.nvim has been removed in favor of markdown.nvim to spice up your markdown files.
-
nvim-spectre has been removed in favor of grug-far.nvim. grug-far.nvim has a great UI and feels more intuitive to use.
-
This news is now also available on the website at https://www.lazyvim.org/news
-
prettier extra now works for all prettier supported filetypes and will be enabled for astro/svelte extra if you have a proper config file with the correct prettier plugin
-
New Language Support: SQL, Clojure, Thrift, Elm, Gleam, Angular, NuShell, Svelte, Kotlin, Astro, Toml and PHP
-
New Extras:
copilot-chat,git,octo,inc-renameandneogen -
The typescript extra now uses
vtslsinstead oftsserver -
Neovim >= 0.10 now uses the much faster lazydev.nvim instead of
neodev.nvim -
moved
neoconf.nvimto extras. Project specific LSP settings can be done with a.lazy.luafile instead.
11.x
-
Keymaps:
<leader>gBto open the current repo in the browsergcoandgcOto add a comment below or above the current line<leader>wmto toggle window maximize
-
lazydev.nvim: faster alternative to
neodev.nvim -
Options: Added
linebreak=trueto default options. -
mini.aiis back as a default plugin! Removing it was a mistake. It's a great plugin that enhances the native text objects. -
:LazyExtrasnow has multiple new sections:- Enabled: extras that are currently enabled
- Recommended Languages: language extras recommended for the current buffer / directory
- Recommended Plugins: extras that are recommended for most users
- Plugins: other plugin extras
- Languages: other language extras
-
new option
vim.g.deprecation_warningsto disable deprecation warnings Defaults tofalse. To enable deprecation warnings, set it totruein youroptions.lua -
vim-illuminatemove to extras Document highlights now use native lsp functionality by default
Since Neovim 0.10 has been released, I've been working on a new version of LazyVim that is fully compatible with all the latest Neovim features.
Additionally, some core plugins have been moved to extras.
-
native snippetsare now the default on Neovim 0.10 Older versions of Neovim will use the newluasnipextra. -
native commentsare now the default on Neovim 0.10 Older versions of Neovim will use the newmini-commentextra.nvim-ts-context-commentstringhas been integrated in the native comments. -
inlay hintshave been in LazyVim for a while, but are now enabled by default. To disable them:{ "nvim-lspconfig", opts = { inlay_hints = { enabled = false }, } } -
plugins moved to extras:
mini.surroundmini.indentscopescopes are now also highlighted withindent-blanklinenvim-treesitter-context
10.x
-
added new extra for mini.diff This is a plugin similar to gitsigns but with a neat diff overlay that can be toggled with
<leader>go. -
trouble.nvim has been rewritten from scratch and is now in beta. I've added a new extra for it (
trouble-v3) for those of you who want to try it out. You can find the updated docs here -
The lazygit integration now configures:
- the theme based on the colorscheme
- nerd font icons (v3)
- editor preset is set to
nvim-remotefor better interop with Neovim
-
The option
vim.g.lazygit_themewas renamed tovim.g.lazygit_config -
lazygit now automatically uses the colors of your current colorscheme. This is enabled by default. To disable, add the below to your
options.lua:vim.g.lazygit_config = false -
Added support for
basedpyrightto the python extra. Enable in youroptions.luawith:vim.g.lazyvim_python_lsp = "basedpyright"Be aware that
basedpyrightis still in development and may not work exactly the same aspyright. -
User extras under
lua/plugins/extrascan now also be managed with LazyExtras -
nvim-ts-autotagis now included by default -
nvim-treesitter-contextis now included by default -
Added extra for
symbols-outline.nvim -
Added extra for
aerial.nvim -
nvim-navichas been removed. If you want to keep usingnvim-navic, you can enable the editor.navic extra -
New
:LazyExtrascommand for managing LazyVim extras -
Improved formatting:
-
LazyVim can now work with multiple formatters. Types:
- primary: only one primary formatter can be active at a time. (conform, none-ls, LSP)
- secondary: multiple secondary formatters can be active (eslint, ...)
-
LazyVim automatically selects the primary formatter based on the current available sources and priorities.
-
New
:LazyFormatcommand for formatting the current selection or buffer -
New
:LazyFormatInfocommand for displaying the active formatters for the current buffer -
Auto-formatting can be disabled with:
vim.g.autoformat = false -- globally vim.b.autoformat = false -- buffer-local
-
-
none-ls.nvimis no longer installed by defaultconform.nvimis now the default formatternvim-lintis now the default linter- If you want to keep using
none-ls.nvim, you can enable the lsp.none-ls extra
-
dashboard.nvimis the new default dashboard plugin- If you want to keep using
alpha.nvim, you can enable the ui.alpha extra
- If you want to keep using
-
Improved root detection:
-
New
:LazyRootcommand that shows info about the root dir detection -
Configurable with
vim.g.root_spec-- LazyVim root dir detection -- Each entry can be: -- * the name of a detector function like `lsp` or `cwd` -- * a pattern or array of patterns like `.git` or `lua`. -- * a function with signature `function(buf) -> string|string[]` vim.g.root_spec = { "lsp", { ".git", "lua" }, "cwd" } -- To disable root detection set to just "cwd" vim.g.root_spec = { "cwd" }
-