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_keymapnow always returns a LuaRef object as
callbackfor 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
callbackfor 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.
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.
@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.
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!
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.
@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.
@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
|, the extended UTF-8 box drawing characters look so much nicer! Great job!
@marklcrns released a new version of
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:
- Support for zen-mode.nvim.
- Support for floating windows.
And a couple of performance / bug fixes. Good job!
Oh this is a nice name for a plugin! @romainchapou made
confiture.nvim, a new plugin to save and launch project
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! 👏
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
- 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.
- Fix closing the tree with
- 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,
:MindOpenSmartProjectdetects 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.
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!
@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.
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
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 :):
No tips for this week. 😦
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.