Issue #36

Neovim Core updates {#core}

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

Important: some updates might be missing from this week content. If you want to be sure to always keep up to date with what’s going on in Neovim Core, you are strongly advised to have a look to these places:

Neovim Plugin Community updates {#plugins}

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

New plugins {#new-plugins}



easyread.nvim brings bionic-like reading to Neovim. With features like saccades and custom highlighting, you can tailor your reading experience just how you like.


Did you make a typo and accidentally opened the wrong file or directory in Neovim? Typo.nvim suggests files you probably meant to open instead, and is able to detect various types of typos. A plugin by @axieax.

Updates {#updates}


🗺️ A legend for your keymaps, commands, and autocmds, with which-key.nvim integration


legendary.nvim now supports an in-place filter syntax when defining keymaps! This is mainly useful when you want to register keymaps that come from plugins which are only active on special filetypes or other conditions. There are special filter keys for filetype and buftype, but you can also pass an arbitrary filter function.

For example, to register nvim-tree.lua keymaps with legendary.nvim, you can define the keymap like this:

  description 'Open file under cursor in a vertical split',
  filters = {
    -- only show this keymap if the current filetype is NvimTree
    filetype = 'NvimTree',

Here's another example showing all the types of filtering you can use:

  description = 'My custom keymap',
  filters = {
    -- filetype and buftype can both be a string
    -- or a list of strings
    filetype = { 'ThisFiletype', 'OrThisFiletype' },
    buftype = 'nofile',
    -- Custom filter function receives the item being filtered
    -- and a context table as parameters
    function(item, context)
      return context.filetype == 'SomeFileType' and context.mode == 'v'

Changes to the mason.nvim package registry

mason.nvim is a portable package manager for Neovim that runs everywhere Neovim runs. Easily install and manage LSP servers, DAP servers, linters, and formatters.

The core package registry for mason.nvim is being migrated to This will be an entirely seamless migration, with no action required by users.

For more information, read the full announcement.


Rainbow delimiters for Neovim through Tree-sitter.

This release brings with it bugfixes and support for new file types. A very big Thank You to all who have contributed their efforts.


  • Highlight groups getting cleared when colour scheme is reloaded
  • Null-dereference error if an injected language does not have a query define


  • Query rainbow-tags for HTML includes style and script tags
  • Query rainbow-parens for Javascript includes parenthesized_expression and subscript_expression
  • Support for reStructuredText (rst)
  • Support for Markdown (markdown)
  • Support for Vue.js (vue)
  • Support for Fennel (fennel)
  • Support for React.js (part of Javascript support)
  • Support for React.js in Typescript (tsx)


Add, change, and delete surrounding delimiters with ease.

nvim-surround v2.0.0 has been released, bringing a few more options and a ton of bug fixes. Future releases should be more frequent, with an emphasis on stability and improved user experience. See the GitHub release for more information on what's changed.

Did you know? {#tips}

Nothing for this week!

Special thanks {#special-thanks}

These people help contributing various updates about Neovim and its ecosystem! Thanks for your contributions! ❤️

Want to contribute? {#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.