RIP Vim Boss, preview LSP code actions, grep using the power of an AST, mini.nvim additions and 19 new plugins!


This issue of This Week in Neovim is dedicated to Bram Moolenar, creator of Vim, who passed away on August 3 2023.

Consider donating to ICCF to help children in Uganda!

Neovim core

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

LSP updates

  • Added vim.lsp.status() to consume the last progress messages as a string.
  • LSP client now always saves and restores named buffer marks when applying text edits.
  • LSP client now supports the positionEncoding server capability. If a server responds with the positionEncoding capability in its initialization response, Nvim automatically sets the client's offset_encoding field.
  • Dynamic registration of LSP capabilities. An implication of this change is that checking a client's server_capabilities is no longer a sufficient indicator to see if a server supports a feature. Instead use client.supports_method(<method>). It considers both the dynamic capabilities and static server_capabilities.

Neovim Plugin Community

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

New plugins



Fully customizable previewer for LSP code actions.

A neovim plugin that preview code with LSP code actions applied.

You can use either telescope.nvim or nui.nvim as a backend.


Ast-grep picker for telescop.nvim

ast-grep is a AST-based tool to search code by pattern code. It will match all code that has the same syntactical structure. You can use $ sign + upper case letters as wildcard, e.g. $MATCH, to match any single AST node. Think it as REGEX dot ., except it is not textual.


View all applied tailwindcss values on an element

When you apply a lot of classes in tailwind, it can be taxing to read through all of them and think about what each one does, this plugin makes it easier.



Show next key clues. Part of 'mini.nvim' library.

A plugin to show you hints for key bindings of commands matching what you started typing.


The yank/paste enhancement plugin for neovim.

This plugin provides the following functionality.

  1. Save your all yank history automatically.
  2. Cycle yank history after paste via config.next_key and config.prev_key.
  3. Adjust indentation for line-wise content's



:yarn: A Neovim plugin to toggle python f-strings

Inspired by this Reddit post


Text edit operators. Part of 'mini.nvim' library.

  • Operators:
    • Evaluate text and replace with output.
    • Exchange text regions.
    • Multiply (duplicate) text.
    • Replace text with register.
    • Sort text.
  • Automated configurable mappings to operate on textobject, line, selection. Can be disabled in favor of more control with MiniOperators.make_mappings().
  • All operators support [count] and dot-repeat.



Custom treesitter queries for Home Manager nix files, in Neovim

This neovim plugin allows (thanks to treesitter) highlighting languages contained in strings in various places of a Home Manager configuration nix file.


A comprehensive tabline for rendering and managing tabs, buffers or arglist, and featuring buffer filtering, fzf integration and session management.

This is a lua version of vim-xtabline. Most features are the same, and most themes are also supported. It should look generally better, and be faster and more accurate (there is no tabline caching, so tabline is updated in real-time).


Generate and open your HTML code documentation inside Neovim


🚁 Automatically updated documentation and information about code symbols in a split window

A Neovim plugin designed to enhance the Language Server Protocol (LSP) experience by providing hover information in a split window. With this plugin, it is possible to quickly access additional context, documentation, or information related to code symbols directly within Neovim without disrupting your workflow.


🌲 A Neovim plugin for jumping between significant code elements, such as brackets, quotes, etc.

TabTree is a Neovim plugin for navigation within code using Tree-sitter. It allows users to quickly jump between significant code elements.


🤗 A Neovim plugin which acts as a helper or training aid for kylechui/nvim-surround


:window: A Neovim/Bufferline extension to cycle through windowless buffers to give a more traditional tab based experience

Neovims default tab-window-buffer model allows viewing open buffers in multiple windows. This plugin helps give a more traditional behaviour for tabs by configuring the ability to skip past buffers that are already open in an existing window. The behaviour is toggleable and configurable to be on or off by default.


A Neovim plugin helping to navigate in Unison codebase


Base Obsidian functionality in your Neovim

This plugin allows you to use the basic functionality to work with Obsidian vaults. It integrates with nvim-telescope/telescope.nvim plugin, nvim-cmp plugin. And it also needs CLI tools like ripgrep, fd and sd.


Create HTTP permalinks to your Git web frontend hosts

If you have a git repository with a file src/mymodule/ and you want to show your teammates something that happens in a function foo between lines 100 and 105, this is what this plugin is meant for. You execute the :RepoLink command and in a few moments vim popups a notification with a URL that you can immediately share (something like


E(x)tended commands missing in fzf.vim.

This is the next generation of fzfx.vim. A brand new fzf plugin for Neovim, build from scratch, focused on user friendly, customization and performance.


Neovim plugin to take pictures of code

Updated plugins

bennypowers/nvim-regexplainer adds support for lookbehind assertions


Describe the regexp under the cursor

roobert/action-hints.nvim now supports virtual text

⚡ A Neovim plugin that displays available actions like 'Go to Definition' and 'Go to Reference(s)' for the highlighted word, presented in the statusline or inline as virtual text.


Add your the plugin in either of the following to be featured in This Week in Neovim and Dotfyle:

Contribute to the development of Dotfyle:

  • File issues and submit pull requests on GitHub
  • Discuss ideas on Discord