17 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.
-
"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
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.
-
Added {option}
vim.treesitter.queriesto support adding custom queries. -
Added injections for
vim.treesitter.queries.*.contentasqueryandmkLualine,entryAnywhere,entryBefore,entryAfterasluain 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.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 support. -
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. -
Added Selenen for more diagnostics in
languages.lua. -
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
biome-checkandbiome-organize-importsformatters tolanguages.ts. -
Added
biomejsas extra diagnostics provider tolanguages.ts. -
Added
languages.vue. -
Add
languages.fluentusing the official plugin. This only provides highlighting. -
Add
languages.gettext. This only provides highlighting. -
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.
- 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
- Add razor support for
roslyn_lsandcsharp_ls
- 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%"