19 KiB
Release 0.9
Breaking changes
-
Nixpkgs has merged a fully incompatible rewrite of
vimPlugins.nvim-treesitter. Namely, it changes from the frozenmasterbranch to the new main branch. This change removes incremental selections, so it is no longer available. -
obsidian.nvim now uses a maintained fork which has removed the
dirsetting. Useworkspacesinstead:{ workspaces = [ { name = "any-string"; path = "~/old/dir/path/value"; } ]; }Some other settings and commands are now deprecated but are still supported.
- The
setupOpts.mappingsoptions were also removed. Use the built-in Neovim settings (nvf's {option}vim.keymaps)
- The
-
languages.{terraform,hcl}: LSP servers now default totofu-ls. While this is unlikely to cause any noticeable change in behavior or breakage, it's mentioned just in case. -
vim.treesitter.foldByDefaultis removed. Folding behavior should be controlled viavim.options.foldenabledirectly instead. RIPvim.treesitter.foldByDefault2026-03-19 - 2026-03-19. -
vim.assistant.codecompanion-nvim.setupOpts.strategieshas been renamed tovim.assistant.codecompanion-nvim.setupOpts.interactionsto match the upstream codecompanion.nvim v19 rename. If you set options likesetupOpts.strategies.chat.adapter, rename them tosetupOpts.interactions.chat.adapter.
-
Remove
mind.nvim. This plugin doesn't exist anymore. The original author deleted all their GitHub repositories and moved to sourcehut. Some repositories where migrated.mind.nvimwasn't one of them. More can be read in his blog post. -
"Correct
languages.go.treesitterto contain all Go file types.languages.go.treesitter.packageis nowlanguages.go.treesitter.goPackage. New are:-
languages.go.treesitter.goPackage. -
languages.go.treesitter.gomodPackage. -
languages.go.treesitter.gosumPackage. -
languages.go.treesitter.goworkPackage. -
languages.go.treesitter.gotmplPackage.
-
-
Fix
vim.assistant.codecompanion-nvim.setupOpts.display.diff.providerto only allow valid options.defaultis no longer valid.inlineandsplitare two new valid options. -
Added taplo as the default formatter and lsp for
languages.tomlso we don't default to AI-Slop. -
Added
json5intolanguages.json. Some options where renamed. -
Moved
vim.lsp.harper-lstovim.lsp.presets.haper. -
Removed
typst_lspfromlanguages.typst.lsp.servers, because it is deprecated and thus was pulled from nixpkgs. https://github.com/NixOS/nixpkgs/commit/bf24296bbe2e31ac7147b02ea645922390ca8f4b -
Renamed
ts_lstotypescript-language-server. -
Renamed
denolstodeno. -
Renamed
tsgototypescript-go. -
Renamed
vala_lstovala-language-server. -
Renamed
terraformls-tfandterraformls-hcltoterraform-ls. -
Renamed
tofuls-tfandtofuls-hcltotofu-ls. -
Renamed
ruby_lsptoruby-lsp. -
Renamed
r_language_servertor-languageserver. -
Renamed
julialstojulia-languageserver. -
Renamed
astrotoastro-language-server. -
Renamed
bash-lstobash-language-server. -
Renamed
jsonlstovscode-json-language-server. -
Renamed
csslstovscode-css-language-server. -
Renamed
jdtlstojdt-language-server. -
Renamed
elixirlstoelixir-ls. -
Removed
languages.tailwindwhich only provided an LSP. Uselsp.presets.tailwindcss-language-serverinstead. -
Renamed
languages.tstolanguages.typescript. -
Added {option}
vim.languages.go.treesitter.gotmpl.injectionand Renamedlanguages.go.treesitter.gotmplPackageto {option}vim.languages.go.treesitter.gotmpl.package -
Split SCSS from
languages.cssintolanguages.scssand add extra tools for SCSS/SASS. This also changes the default LSP tosome-sass-language-serverfor SCSS/SASS.
- Renamed
roslyn_lstoroslyn-ls - Turned
omnisharp-extended-lsp-nviminto an extension disabled by default - Turned
csharpls-extended-lsp-nviminto an extension disabled by default
Changelog
- Renamed
setupOpts.strategiestosetupOpts.interactionsin the codecompanion-nvim module to match the upstream v19 rename. The old key triggered a migration shim that silently discarded userinteractionsoverrides.
-
Changed the prettier-plugin-astro build to use
writableTmpDirAsHomeHookto avoid pnpm hook failures in sandboxed builds. -
Fix
vim.utility.leetcode-nvimaddingfzf-luatovim.startPluginswhenvim.fzf-luaalready manages the plugin lazily, avoiding duplicate/startand/optinstalls and the correspondingmnwevaluation warning.
-
Introduce a
darwinModuleoption for Darwin users. The ergonomics of importing anixosModuleinto a Darwin flake were less than ideal, and when users fork and update npins, they are prone to encountering errors like the following:(class: "nixos") cannot be imported into a module evaluation that expects class "darwin".
- Fix
vim.tabline.nvimBufferlinewheresetupOpts.options.hoverrequiresvim.opt.mousemoveeventto be set.
- Attempt to adapt nvim-treesitter to (breaking) Nixpkgs changes. Some
treesitter grammars were changed to prefer
grammarPluginsoverbuiltGrammars.
- Lazyload noice.nvim and nvim-web-devicons on
DeferredUIEnter - Allow nulling treesitter packages for various language modules, filter
nullvalues invim.treesitter.grammars.
jfeo:
- Added ccc.nvim option {option}
vim.utility.ccc.setupOptswith the existing hard-coded options as default values.
- Aligned
codelldbadapter setup with [rustaceanvim]’s built-in logic. - Added
languages.rust.dap.backendoption to choose betweencodelldbandlldb-dapadapters.
toggletermopen map now also works when in terminal mode
- Improved/harmonized for
terraformandhcl:- formatting (use
terraform fmtortofu fmtfortffiles) - LSP config
- Added
tofuandtofu-lsas (free) alternative toterrraformandterraform-ls
- formatting (use
- Updated nix language plugin to use pkgs.nixfmt instead of pkgs.nixfmt-rfc-style
-
Upgrade obsidian.nvim to use a maintained fork, instead of the unmaintained upstream.
-
Various upstream improvements:
-
Support blink.cmp and completion plugin autodetection.
-
Support various pickers for prompts, including snacks.nvim's
snacks.picker, mini.nvim'smini.pick, telescope.nvim, and fzf-lua. -
Merge commands like
ObsidianBacklinksintoObisidian backlinks. The old format is still supported by default. -
Some
setupOptsoptions have changed:-
disable_frontmatter->frontmatter.enabled(and inverted), still supported. -
note_frontmatter_func->frontmatter.func, still supported. -
statuslinemodule is now deprecated in favour offooter, still supported. -
diris no longer supported, useworkspaces:{ workspaces = [ { name = "any-string"; path = "~/old/dir/path/value"; } ]; } -
use_advanced_uri->open.use_advanced_uri. -
Mappings are now expected to be set using the built-in Neovim APIs, managed by
vim.keymapsin nvf, instead ofmappingsoptions. -
Some option defaults have changed.
-
-
And more.
-
-
Automatically configure an enabled picker in the order mentioned above, if any are enabled.
-
Add integration with
snacks.imagefor rendering workspace/vault assets. -
Detect if render-markdown.nvim or markview.nvim are enabled and disable the
uimodule if so. It should work without this, butrender-markdown's {command}:healthcheckdoesn't know that. -
Remove which-key.nvim
<leader>o+Notesdescription which did not actually correspond to any keybinds.
-
-
Allow disabling nvf's vendored keymaps by toggling
vendoredKeymaps.enable.
-
Added rumdl support to
languages.markdown -
Added sqruff support to
languages.sql -
Lazy-load
crates.nvimplugin when usingvim.languages.rust.extensions.crates-nvim.enable -
Added TOML support via {option}
vim.languages.toml.enableand the Tombi language server, linter, and formatter. -
Added Jinja support via
languages.jinja -
Added hlargs.nvim support as
visuals.hlargs-nvim. -
Lazy-load
nvim-autopairsplugin when usingvim.autopairs.nvim-autopairs.enable -
Added support for neovim 0.12's
ui2feature viavim.ui.ui2
- Added
ruffandtyLSP support for Python underprograms.python.
-
Allow the usage of
pks.tree-sitter-grammarsin {option}vim.treesitter.grammarsand language module tree-sitter package options created viamkGrammarOption. -
Add
emmet-lsto the supported LSPs for all languages it supports. -
Added {option}
vim.treesitter.queriesto support adding custom queries. -
Added injections for
query = '' ... ''asqueryandmkLualine '' ... '',entryAnywhere '' ... '',entryBefore [] '' ... '',entryAfter [] '' ... ''asluain nix. -
Added {option}
vim.languages.tera.treesitter.injectionto configure, what language the content is. -
Added {option}
vim.languages.jinja.treesitter.injectionto configure, what language the content is. -
Added {option}
vim.treesitter.filetypeMappingsto support mappings similar to https://github.com/nvim-treesitter/nvim-treesitter/blob/main/plugin/filetypes.lua. This is mostly use full for Markdown code block injections. -
Added some Tree-sitter filetype mappings for:
bash=ash,dash,zshyaml=yaml
-
Added
vim.lsp.presets.<name>to contain LSP configurations. This allows for more flexibility in nvf and reuse of LSPs across languages. DroppeddeprecatedSingleOrListOfin favor oflistOffor the affected LSP options. -
Added {option}
vim.lsp.presets.docker-language-server.enablefor Docker support. -
Added {option}
vim.lsp.presets.angular-language-server.enablefor Angular Template support. -
Added {option}
vim.lsp.presets.vtsls.enablefor Vue TypeScript support. -
Added {option}
vim.lsp.presets.vue-language-server.enablefor Vue Template -
Added {option}
vim.lsp.presets.some-sass-language-server.enable. -
Fix
vim.lsp.presets.vala-language-serverto be wrapped correctly withuncrustify. -
Fix
tressiterto allownullin grammar options, so they can be filtered out. -
Fix {option}
vim.utility.nvim-biscuits.enableby upgrading, to fix tree-sitter incompatibilities. -
Fix image.nvim processor configuration and cleanup module.
-
Added Selenen for more diagnostics in
languages.lua. -
Added
languages.dockerfor Docker and Docker-Compose support. Thanks to poseidon-rises for creating most of it in !1104. -
Added
mdformatsupport tolanguages.markdownwith the extensions for GFM, front matter and footnotes. -
Added XML syntax highlighting, LSP support and formatting
-
Added mypy to
languages.pythonfor extra diagnostics. -
Added tera language support (syntax highlighting only).
-
Added liquid language support (syntax highlighting only) via
languages.liquid. -
Added Debugging support to
languages.odinwith nvim-dap-odin. -
Disabled notifications for nvim-dap-odin, because it contain no use full information, only spam, and it can't be made lazy.
-
Added
golangci-lintfor more diagnostics. -
Added
gopher.nvimfor extra actions inlanguages.go. -
updated default filetypes for harper-ls to match what they are supposed to be.
-
Added Makefile support via
languages.make. -
Add
lsp.presets.emmet-lsas supported LSP tolanguages.jinjalanguages.liquidlanguages.teralanguages.twiglanguages.astro
-
Fix
languages.hclinit, depending oncomment-nvimby checking if it is enabled. Fixes a crash (#1350). -
Added
tsgoas an LSP tolanguages.ts. -
Fix
languages.tsregistration of formatters. -
Added
asmfmtandnasmfmtformatters tolanguages.asm. -
Added
astyle,indentandclang-formattolanguages.clangformatters. -
Added
biome-checkandbiome-organize-importsformatters tolanguages.ts. -
Added
biomejsas extra diagnostics provider tolanguages.ts. -
Added
languages.standard-ml. -
Added
languages.vue. -
Add
languages.fluentusing the official plugin. This only provides highlighting. -
Add
languages.gettext. This only provides highlighting. -
Add
languages.env. This provides extra filetype hooks and diagnostics. -
Add
languages.openscadusingopenscad-lsp. This currently relies on neovim builtin syntax for highlighting, and the lsp for formatting and diagnostics. -
Added Debugging support to
languages.php. -
Added Formatting support to
languages.phpvia PHP-CS-Fixer. -
Added minimal
languages.twig. Currently using djlint for most options, as better alternatives like twig-cs-fixer aren't packaged for nix. -
Added
languages.tex. Currently only highlighting, formatting and lsp. No previewing yet. -
Added
languages.jq. Supports highlighting, formatting and lsp. -
Extend
languages.asmto support more filetypes out of the box. -
Added {option}
vim.languages.java.extensions.maven-nvim.enablefor Maven support; -
Added {option}
vim.languages.java.extensions.gradle-nvim.enablefor Gradle support; -
Didn't Add
syntax-gaslighting, you're crazy. -
Added neovim theme
gruber-darkerhttps://github.com/blazkowolf/gruber-darker.nvim. -
Added coverage support (
vim.utility.crazy-coverage) viacrazy-coverage.nvim.
vagahbond: [codewindow.nvim]: https://github.com/gorbit99/codewindow.nvim
- Add [codewindow.nvim] plugin in
vim.assistant.codewindowwithenableandsetupOpts
- Fix non-functional
vim.keymaps.*.noremap. Now, setting it to false is equivalent to:lua vim.keymap.set(..., { remap = true })
- Added
grug-far.nvimthe find and replace tool for neovim. - Fix lsp
client.supports_methoddeprecation warning in nvim v0.12. - Add
blink.indentindent guideline plugin.
- Changed
withRubyto not be enabled by default - Fix virtualtext mode in colorizer
- Ignore terminals by default in spell-checking
poz:
- Add CMake support with neocmakelsp.
- Add Arduino support with arduino-language-server.
- Add GLSL support with glsl_analyzer.
- Update fidget-nvim setupOpts and fix NvimTree issue.
- Add Fish support via {option}
vim.languages.fish.enableusing fish-lsp and fish_indent. Most of the work done by poseidon-rises in !1107.
- Add VHDL support with vhdl-ls.
- img-clip.nvim's configuration now has it's own DAG entry, separate from image-nvim.
- Add Elm support with elm-language-server
- Fix
vim.assistant.codecompanion-nvimlazy loading with [blink-cmp]
- Fix
vim.formatter.conform-nvim.setupOpts.formatterstype for correct merging
- Updated codecompanion-nvim adapters to allow specifying a model.
- Added configuration option for
foldenable
- Added razor support for
roslyn_lsandcsharp_ls - Added
csharpierformatter to csharp language
- Add
vim.treesitter.indent.patternto specify file pattern(s) for which treesitter indentation should be used - Add
vim.treesitter.indent.excludesto exclude filetypes from the treesitter indentation; e.g. useful for Haskell and PureScript, for which treesitter indentation does not work good - Allow
vim.treesitter.context.setupOpts.max_linesto also be given as a string in order to allow percentage values like"20%"