Skip to content

Releases: NotAShelf/nvf

v0.8

12 Dec 12:21
v0.8
8e03147

Choose a tag to compare

Hello all, good to be back after a full year. I'm happy to announce yet another major release that moves NVF forward in all the positive ways, and I'm happy to talk about the new fancy stuff that made their way into NVF within the last year. We might've taken a little long, but it was for a good reason I promise. I also want to give a big shoutout to everyone who has decided to contribute to NVF! We've seen a surge of new users and with that, a massive hike in the number of contributors. The number might not mean much to you, but I want to thank everyone who has taken the time to contribute to NVF. As a community led framework, it really means a lot to me when the users engage with the project in any way that positively influences it. Thank you!

Notable Changes

The most notable change if you're updating from v0.7 is no doubt the changes to the LSP API. Upstream has finally decided that Neovim should strive for better LSP experiences out of the box, and has blessed us with a vim.lsp API that makes language server configurations more modular and configurable. As a result the LSP and diagnostics module in NVF have seen large improvements. Namely, we've introduced vim.diagnostics.config and vim.lsp.servers for much better control over the diagnostics and LSP systems that were fleshed out in Neovim.

A more complete overview can be found by comparing v0.7 and v0.8. In addition, please consult the release notes on mitigating breaking changes.

New Documentation

You also might have noticed that we have a brand new documentation system! It was written from ground up for a much more robust Markdown parser, and better ergonomics. What I mean is that the system is now more intuitive, and integrates much better with our documentation framework. It is also nice to have something written in-house so we can deal with the issues ourselves instead of debugging Python code. The tool is completely open source, and can be found at https://github.com/feel-co/ndg. This system is still a little experimental, so please let us know if you notice anything wrong.

The new documentation is currently live, and can be found at https://nvf.notashelf.dev with a new domain. Should be nicer to look at, and easier to type :)

Notable Changelog Entries

  • Lspsaga: Default keybindings removed entirely due to upstream API changes
  • git-conflict: Keybinds now prefixed with <leader> to avoid builtin conflicts
  • vim.useSystemClipboard: Deprecated, migrate to vim.clipboard.registers
  • Gitsigns: Keybinds moved from <leader>g to <leader>h (hunks) to avoid neogit conflicts
  • LSP keybinds: Now attached via LspAttach autocmd instead of manual default_on_attach()

Major New Features

  • blink.cmp support: New completion engine alternative to nvim-cmp
  • Language module migration: Moved from none-ls to conform/nvim-lint for better formatting and linting. none-ls has been updated to its latest version and made available as a standalone module.
  • New clipboard module: vim.clipboard for managing clipboard providers
  • Autocommand support: vim.autocmds and vim.augroups for Nix-based autocmds
  • Multiple formatters: Language modules now support multiple formatters simultaneously

Notable New Language Support

  • Haskell: Complete module with haskell-tools.nvim
  • Odin: Full language support
  • Cue: Language support
  • Wgsl: Language support
  • Ruby: Solargraph LSP support
  • Zig: DAP support via LLDB
  • F#: Language support
  • Helm: Chart support
  • Clojure: LSP + Conjure REPL support
  • Just: Build system support with just-lsp
  • JSON: Dedicated language module
  • QML: Qt Modeling Language support

And lots of new plugin additions. The biggest changes are the completion system overhaul (blink.cmp), the formatting/linting migration, and the massive expansion of language support. Due to the sheer size of this release, some bugs are to be expected but please do not hesitate to report when something feels off.

Thanks & Quick Notes

For this release I have a lot of people to thank. I'd like to start by thanking @sjcobb2022 for their immense efforts in migrating NVF's language modules to the new API. Without their help this change would certainly take longer. @LilleAila has implemented some much sought after plugins and modules, namely the mini suite! A big thanks to them. I also want to thank @amadaluzia, @diniamo, @kaktu5, @tomasguinzburg, @thamenato, @ArmandoCIII, @nezia1, @jahanson, @folospior, @iynaix, @Mr-Helpful, @Libadoxon, @UltraGhostie, @TheMaxMur, @alfarelcynthesis, @alfarelcynthesis, @esdevries, @BANanaD3V, @viicslen, @butzist, @rice-cracker-dev, @Sc3l3t0n, @venkyr77, @tebuevd, @ckoehler, @rrvsh, @Noah765, @howird, @aionoid, @imnotpoz, @haskex, @taylrfnt, @cramt, @Anil9, @CallumGilly, @theutz, @lackac, @lackac, @trueNAHO, @JManch, @Morsicus, @diced, @valterschutz, @gmvar, @derethil, @jules-sommer, @PartyWumpus, @KrappRamiro, @simon-wg, @critical, @valyntyler, @axelbdt and @JudahZF

Truly an astonishing number of contributors. Thank you all. If I missed you, I apologize. Please let me know and you'll be added to the list!

We have also surpassed 1000 stars in this release, so thank you to those who dropped a star as well. Know that your support is appreciated. Additional thanks to those who have chosen to support is financially. NVF was never about the money, but please know that even the sentiment matters a lot to me. Though, I appreciate the money as well. Like many others, this release was made possible thanks to our contributors, my fellow co-maintainers, and the brave folks that have been beta-testing v0.8 while I... uh, wrote a documentation generator from scratch to use in NVF. Especially Ladas who has been supporting me from scratch. Sorry, not sorry. Just be glad we were done before 2026. Ha.

New Maintainers

In this release @poseidon-rises and @midischwarz12 has joined the team of maintainers. This is mostly a voluntary position, and if you intend to make a difference in NVF, I invite you to reach out! Additionally, @Soliprem and @horriblename have solidified their much appreciated role as co-maintainers and stepped up as repository admins while I take a step back to focus on my health. I will be taking a short break from my largest projects to recover and clear my mind a little bit, but I will be around to oversee and guide the hands of my talented co-maintainers. If your issue or pull request has gone un-noticed during the v0.8 release, please give it a friendly bump! Due to an overwhelming schedule I overlooked some incoming communication, but I want you to know that this was nothing personal and I hope to respond to each one of those as my time and health allows.

Last but not least a big shoutout to @vimjoyer for covering NVF on his Youtube channel! He is currently going through some life events, so please remember to support him if you like his content.

My thanks to everyone who was a part of this journey!

Hope to see you in the next release.
- NotAShelf

v0.7

04 Dec 14:22
v0.7
18bf52e

Choose a tag to compare

Hi all! Happy...December? We're back with a large release (perhaps the largest yet) that brings many new, exciting, shiny stuff. This release features long-time requests such as lazy-loading (finally), a boatload of new language modules (including very niche ones), new plugins, module cleanups and internal refactors across the board to make existing modules more ergonomic, or more future proof. Docs have also been updated to reflect both those changes, and our project standards.

Notable Changes

v0.7 features many changes, some of them breaking. To allow you to tackle the update (v0.6 -> v0.7) at your own pace, I have pushed the latest version of the main branch to the v0.6 tag, which you can pin in your flake input as github:notashelf/nvf/v0.6 until you feel comfortable updating. Though the breaking changes are easy to migrate, I still want users to have a smooth experience.

  1. Maps rewrite (#352 and #360)
  2. Lazy-loading support (#407)
  3. Base16 theming (#389)
  4. Completion rewrite, migrate to Luasnip (#398)
  5. New Language Modules
    • Kotlin support (#390)
    • Scala support (#399)
    • Neorg support (#413)
    • C# support (#428)
    • Julia support (#431)
    • Vala support (#432)
    • ASM support (#447)
    • Nu support (#477)
    • Gleam support (#482)
  6. Rewrite of Visual modules (#442)
    • Some options have been renamed, vim.visuals.enable has been removed
  7. All plugin inputs have been bumped to their absolute latest revisions.
  8. Documentation improvements, cleanup (#440)
    • CI will now check for typos in code to avoid spelling mistakes.
    • Documentation is now checked for dead-links on each rebuild.
  9. Deprecation of vim.leaderKey and similar vim.* options in favor of a migration to vim.options and vim.globals (#455)
    • There used to be shorthand aliases to options that would normally go under vim.opt in Neovim. Some of those shorthands
      have been removed in favor of the new vim.options and vim.globals submodules, allowing you to take full control of the generated option/global tables.

A more complete overview can be found by comparing v0.6 and v0.7. In addition, please consult the release notes on mitigating breaking changes. If you notice anything broken in the new release, please let us know in the issues tab.

Thanks

For this release my thanks go to @diniamo, @horriblename, @Soliprem, @ksonj, @nezia1, @ppenguin and @DamitusThyYeetus123.

Thank you all those who have contributed to, used, criticized or talked about nvf! Additional thanks to those who have chosen to support us financially for this release. This release was made possible thanks to my fellow contributors, and the many people who bravely beta-tested 0.7 for us.

Hope to see you in the next release.
- NotAShelf

v0.6

28 Apr 17:32
v0.6
fde2988

Choose a tag to compare

Hello again after months of silence on the main branch! We have been cooking a very large release behind the scenes. v0.6
includes several refactors and new features. I cannot list all of them here, but the documentation has been updated to reflect
the most recent changes.

Most notably, we have changed names! This project is now called nvf as opposed to the former, generic
"neovim-flake" as its name. nvf stands for several things, none of them officially confirmed as the name. You are welcome to adapt the one you think is best: nvf is not a vim flake, notashelf's vim flake, nix vim flake.

What's new

Thanks to my fellow co-maintainers and lovely contributors, we bring to you v0.6 with many notable changes. Some of them are:

  • Most plugins have been converted to a new setupOpts API that generates configuration tables from Nix directly. This means you no
    longer have to wait for us to add missing options - any option with the current naming scheme will be featured in the resulting
    configuration table. Examples of this are included in the documentation.
  • The configuration wrapper has been updated to allow for verbatim Lua code wherever you don't want to use Nix to configure your Neovim.
  • vim.extraRuntimePaths has been added to append additional directories to your Neovim configuration. This can be used to configure generic Neovim runtime paths, such as spell/, after/ and ftplugin/.
  • You can now view view nvf option documentation from the comfort of your terminal. The Home-Manager and the brand new NixOS modules have both received an enableManpages option that will optionally add the generated manual pages to your PATH. Once the option is true, simply run man 5 nvf and you will be able to view all available options from your terminal.
  • Treesitter module has received more configuration options, namely for highlight and indent. Please take a look at the documentation for the new available module options.
  • Project structure has changed significantly. The modules directory has been broken into multiple files, each with its own purpose. I hope this will make the project tree easier to navigate for those who want to contribute.

For details on how to migrate to setupOpts API in your configurations, please see v0.6 changenotes. @horriblename has kindly decided to include a section to make your migration much easier.

Thanks

For this release, I would like to thank @ksonj, @horriblename and @FrothyMarrow for their contributions.

As always, changes are documented in the changelog. Thanks for your continued support!

v0.5

14 Apr 12:05
v0.5
9cb7239

Choose a tag to compare

Another major release!

This is a big one, featuring new languages, language servers, formatters and so much more. There also have been some refactors, thanks to the efforts of @horriblename, @FrothyMarrow and @ksonj alongside plugin and tooling updates.

As usual, my thanks go to our new contributors and old ones alike: @Amanse, @Vagahbond and @yavko.

Changes are documented in the changelog

v0.4

16 Jul 09:50
85d6935

Choose a tag to compare

0.4 is finally out! It brings great many new features such as customizable keybinds, DAP support, UI improvements and much more.
With this update, I would also like to extend my thanks to @horriblename and @n3oney for implementing two of the biggest changes this update. Thank you for your efforts!

Changes are documented in the changelog

v0.3

19 Apr 13:36

Choose a tag to compare

The 0.3 is finally here after a few months of development. As this release consists mostly of refactors and restructuring, breaking changes are to be expected. If you are locking stable releases in your flake inputs, do make sure you follow the documentation carefully.

Changes are documented in the changelog.

v0.2 Release

06 Feb 05:39
705cb37

Choose a tag to compare

See changelog for a list of new additions.