Neovim Core updates

Updates of Neovim itself, which are available on Neovim nightly.

Important: if you are a plugin author, you are strongly advised to follow the #14090 breaking changes on master GitHub thread, as it contains important breaking changes information.

  • #20020 introduced the following breaking changes:
    • nvim_get_keymap now always returns a LuaRef object as callback for a Lua mapping regardless of how it is called. The LuaRef object can be called from Lua and Vim script, but is lost over RPC.
    • maparg() now returns a Funcref instead of a ref number as callback for a Lua mapping. The Funcref can be called from Lua and Vim script, but is lost over RPC.

Neovim Plugin Community updates

Neovim is full of active plugins. This section is about the community and what is going on.

Need help


Guides, tours, articles, etc.


New plugins

colortils.nvim

A neovim plugin for working with colors. It has different tools for modifying and/or creating new colors. There are also some utilities for working with css colors. Tools include a picker for rgb values, picking colors on a gradient, lighten/darken a color and make a color more grey.


actually.nvim

actually.nvim

@mong8se ported DidYouMean, a Vim plugin, to Lua and thus Neovim. Originally, the plugin is used when you open Neovim with a file that doesn’t exist. It then tries to suggest the real file. A fun and useful plugin.


hierarchy.nvim

hierarchy.nvim

A plugin by @Slyces providing something similar to what the LSP type hierarchy protocol could be… ahead of time. This is similar to “implementations” of a given function interface, but for types. Probably very useful for OOP languages. It’s easy to imagine that it would probably useful for interface dependencies as well (think of Haskell’s classes, Rust traits, etc. etc.).

The plugin is still a WIP but it’s promising!


Bob

bob

Struggle to keep your Neovim versions in check? Bob provides an easy way to install and switch versions on any system! Bob is a cross-platform and easy-to-use Neovim version manager, allowing for easy switching between versions right from the command line. Similar to tools like rustup, ghcup, nvm, etc.


web-tools.nvim

@ray-x has created a Neovim wrapper for browser-sync and HTTP/CSS LSP. View your HTML/CSS files with a live web server locally.


tint.nvim

tint.nvim

@levouh saw some interest in utilizing recently merged support for per window highlight namespaces and made tint.nvim. It makes inactive windows… well, tinted compared to an active one. Note that this plugin requires relatively fresh development Neovim version.


ascii-blocks.nvim

ascii-blocks.nvim

@superhawk610 wrote their first plugin! It quickly converts ASCII boxes into more visually appealing extended UTF-8 boxes (with a help from utf8.lua). Although it’s way easier to just type + and |, the extended UTF-8 box drawing characters look so much nicer! Great job!


vim-smartq

@marklcrns released a new version of vim-smartq! vim-smartq is a plugin to exit / delete buffers with respect to window splits and tabs, and other types of buffer.

This new release adds a couple of new things:

And a couple of performance / bug fixes. Good job!


confiture.nvim

Oh this is a nice name for a plugin! @romainchapou made confiture.nvim, a new plugin to save and launch project specific commands.


compiler-explorer.nvim

compiler-explorer.nvim

A new Neovim Lua plugin for interacting with godbolt, by @krady21


Updates

command-t

command-t

This is an erratum from last week, because an important update was not included and it should have been. @wincent rewrote command-t in Lua! The plugin provides an extremely fast “fuzzy” mechanism for:

  • Opening files and buffers.
  • Jumping to tags and help.
  • Running commands, or previous searches and commands.

Shout out to @wincent for taking the time to convert that Vim plugin to Lua and Neovim! 👏


op.nvim

op.nvim, made by @mrjones2014, just got support to edit passwords directly in Neovim. Pretty cool!


mind.nvim

@phaazon updated Mind to version v2.2.0, fixing bugs and adding a couple of new features. Here’s the changelog:

  • Update requirements in the README (mainly plenary.nvim).
  • Clean and fix documentation typos and instructions.
  • Remove some deprecated warnings.
  • Fix state JSON deserialization for prettified JSON.
  • Fix change_icon_menu that didn’t correctly save the tree.
  • Add :MindClose.
  • Fix closing the tree with :q.
  • Fix opening global project (i.e. a cwd-based project living in the main persistence place).
  • Add smart project trees. Smart project trees are regular project trees, either global or local, but the interaction depends on their existence. If no project tree exists for the current cwd, the user is prompted which kind of tree they want (local / global). After that, :MindOpenSmartProject detects whether it must open a local or a global tree, with a priority on local trees.

All of that is available as part of mind-v2.2.0, so if you were using branch = 'v2', you’re already covered. Otherwise, you need to update to branch = 'v2.2' — no need to pin the patch version.


nvim-colorizer.lua

Although norcalli/nvim-colorizer.lua is pretty stable already, there is now a more maintained fork: NvChad/nvim-colorizer.lua. It got merged several pending PRs with some nice functionality. Check it out!


heirline.nvim

heirline_tabline

@rebelot made an update of heirline.nvim with a new tabline cookbook. You can take full control on buffer and tab rendering (visible/active/inactive buffers, icons, file flags, git status, diagnostics, create the components you like!), make buffer list to automatically paginate, and more.


packer

You can now do PackerUpdate --preview (#975) to first preview possible changes, choose which plugins to actually update and then continue, instead of first updating and then checking changes.

This together with two other recent changes:

  • A compact setting to default to folding results to one line per plugin (#1035).
  • Ability to show diff of a range of commits (#1034).

Gives a pretty neat update flow :):

Huge shoutout to @akinsho and @wbthomason for reviews, ideas and testing!!


Did you know?

No tips for this week. 😦


Want to contribute?

You have noticed something missing that you saw lately? Do not keep the candies for yourself and please feel free to share with us! You can open a PR at This Week In Neovim Contents.

Feel free to read how to contribute to get started.


CC-BY-SA