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.
- fzf-lua as a replacement for telescope.nvim
- to use telescope.nvim instead, enable the
editor.telescope
extra
- to use telescope.nvim instead, enable the
- blink.cmp as a replacement for nvim-cmp
- to use nvim-cmp instead, enable the
coding.nvim-cmp
extra
- to use nvim-cmp instead, enable the
- 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-blankline
extra
- 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)
- added
snacks.input
- added
snacks.scroll
- added
snacks.indent
- added
snacks.scope
- added
snacks.dim
- added
snacks.zen
- changed default
which-key
preset tohelix
- drop
LazyVim.ui.fg
in favor ofSnacks.util.color
To disable all animations, add the following to your options.lua
:
vim.g.snacks_animate = false
<leader>uz
to toggle zen mode<leader>uZ
&<leader>wm
to toggle zoom mode<leader>uD
to toggle dimming<leader>ua
to toggle animations<leader>uS
to toggle scroll<leader>ug
to toggle indent guidessnacks.profiler
keymaps under<leader>dp
-
LazyVim now uses
Snacks.dashboard
as 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.notifier
for notifications instead ofnvim-notify
Snacks.terminal
is similar tolazyterm
, but has more features and creates bottom splits by default (similar to theedgy
integrating)
-
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-rename
andneogen
-
The typescript extra now uses
vtsls
instead oftsserver
-
Neovim >= 0.10 now uses the much faster lazydev.nvim instead of
neodev.nvim
-
moved
neoconf.nvim
to extras. Project specific LSP settings can be done with a.lazy.lua
file instead.
-
Keymaps:
<leader>gB
to open the current repo in the browsergco
andgcO
to add a comment below or above the current line<leader>wm
to toggle window maximize
-
lazydev.nvim: faster alternative to
neodev.nvim
-
Options: Added
linebreak=true
to default options. -
mini.ai
is back as a default plugin! Removing it was a mistake. It's a great plugin that enhances the native text objects. -
:LazyExtras
now 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_warnings
to disable deprecation warnings Defaults tofalse
. To enable deprecation warnings, set it totrue
in youroptions.lua
-
vim-illuminate
move 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 snippets
are now the default on Neovim 0.10 Older versions of Neovim will use the newluasnip
extra. -
native comments
are now the default on Neovim 0.10 Older versions of Neovim will use the newmini-comment
extra.nvim-ts-context-commentstring
has been integrated in the native comments. -
inlay hints
have 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.surround
mini.indentscope
scopes are now also highlighted withindent-blankline
nvim-treesitter-context
-
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-remote
for better interop with Neovim
-
The option
vim.g.lazygit_theme
was 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
basedpyright
to the python extra. Enable in youroptions.lua
with:vim.g.lazyvim_python_lsp = "basedpyright"
Be aware that
basedpyright
is still in development and may not work exactly the same aspyright
. -
User extras under
lua/plugins/extras
can now also be managed with LazyExtras -
nvim-ts-autotag
is now included by default -
nvim-treesitter-context
is now included by default -
Added extra for
symbols-outline.nvim
-
Added extra for
aerial.nvim
-
nvim-navic
has been removed. If you want to keep usingnvim-navic
, you can enable the editor.navic extra -
New
:LazyExtras
command 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
:LazyFormat
command for formatting the current selection or buffer -
New
:LazyFormatInfo
command 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.nvim
is no longer installed by defaultconform.nvim
is now the default formatternvim-lint
is now the default linter- If you want to keep using
none-ls.nvim
, you can enable the lsp.none-ls extra
-
dashboard.nvim
is 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
:LazyRoot
command 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" }
-