Neovim
neovim.io
Neovim
@neovim.io
Neovim is a hyperextensible Vim-based text editor
Ways to support the project:
- https://github.com/sponsors/neovim
- https://store.neovim.io
- Have fun using it and spread the word
#neovim Development News

The 0.12 version will update tree-sitter parser object to parse multiple ranges at once.

This should eliminate occasional flickering of tree-sitter highlighting.

PR:
- github.com/neovim/neovi...
perf(treesitter): parse multiple ranges in languagetree to eliminate flickering by ribru17 · Pull Request #36503 · neovim/neovim
feat(treesitter): support parsing multiple ranges at once Problem: Whenever LanguageTree:parse() is called, injection trees from previously parsed ranges are dropped. Solution: Allow the function t...
github.com
February 9, 2026 at 3:47 PM
#neovim Development News

The 0.12 version will make buffer name URI scheme parsing follow RFC3986 standard more closely.

In particular, it means that "svn+ssh", "ed2k", and "iris.xpc" are now recognized as URI schemes prefixes.

PR:
- github.com/neovim/neovi...
refactor(path)!: update path_with_url to support RFC3986 by chipsenkbeil · Pull Request #36564 · neovim/neovim
Resolves #23824. Follows along with vim/vim#8299, but actually adds full support for detecting a scheme via RFC3986. Reason Was bit by this when I thought that neovim (and thereby vim) supported de...
github.com
February 5, 2026 at 4:45 PM
#neovim Development News

The 0.12 version will add `v:vim_did_init` variable to check if `init.lua` is sourced but plugins are not yet loaded.

This allows to improve `vim.pack.add` usability, as it can be properly called in user's 'plugin/' directory.

PR (Vim patch):
- github.com/neovim/neovi...
vim-patch:9.1.1892: Not possible to know once Vim is done with sourcing vimrc by zeertzjq · Pull Request #36429 · neovim/neovim
vim-patch:9.1.1892: Not possible to know once Vim is done with sourcing vimrc Problem: A plugin does not know when startup scripts were already triggered. This is useful to determine if a functio...
github.com
February 2, 2026 at 8:59 PM
#neovim Development News

The 0.12 version will allow Neovim to be built without Unibilium (terminfo implementation). If missing, only internal definitions for the most common terminals are used.

Less build time dependency -> support for more platforms is possible.

PR:
- github.com/neovim/neovi...
feat(build): HAVE_UNIBILIUM by bfredl · Pull Request #36381 · neovim/neovim
compile time features are hot again. Note: this changes the &term value for builtin definition from 'builtin_xterm' to just 'xterm'. It's an xterm regardless of we use an ex...
github.com
January 29, 2026 at 4:36 PM
Reposted by Neovim
Great to see this also in vim:)

github.com/vim/vim/pull...

#vim #neovim
January 29, 2026 at 1:20 PM
There is a #neovim 0.11.6 maintenance release to lift up your mood during this time of the year. It mostly focuses on small fixes, but it is an honest work.

Release: github.com/neovim/neovi...
Changelog: github.com/neovim/neovi...
Release Nvim release build · neovim/neovim
NVIM v0.11.6 Build type: Release LuaJIT 2.1.1741730670 Release notes Changelog (fixes + features) News (:help news in Nvim) Install Windows Zip Download nvim-win64.zip (or nvim-win-arm64.zip fo...
github.com
January 26, 2026 at 6:46 PM
#neovim Development News

The 0.12 version will add support for floating windows to show statusline.

PR:
- github.com/neovim/neovi...
feat(float): supports render statusline by glepnir · Pull Request #36521 · neovim/neovim
Problem: Can't show 'statusline' in floating windows. Solution: Use window-local 'statusline' and 'laststatus' to control floating window statusline visibility. Fix #16753
github.com
January 22, 2026 at 2:37 PM
#neovim Development News

The 0.12 version will improve 'pumblend' behavior. It will not apply special attributes (bold, underline) from the background layer to the foreground layer.

PR:
- github.com/neovim/neovi...
fix(pum): do not apply some highlight attrs from character underneath by przepompownia · Pull Request #36186 · neovim/neovim
Problem: if pumblend >= 50, non-whitespace menu character gets italic, bold, underline (or similar) attribute from the cell underneath. Solution: drop highlight combination for that special case...
github.com
January 19, 2026 at 7:57 PM
#neovim Development News

The 0.12 version will have a built-in optional plugin to compare two directories and files.
Similar to `nvim -d` diff mode, but for directories.

Load it with `packadd nvim.difftool` and execute `:DiffTool {left} {right}`.

PR:
- github.com/neovim/neovi...
feat(diff): add DiffTool command for file and directory comparison by deathbeam · Pull Request #35448 · neovim/neovim
Separate repo for testing this plugin is here: https://github.com/deathbeam/difftool.nvim without requiring nvim rebuild Problem: Neovim's built-in diff mode (nvim -d) does not support director...
github.com
January 15, 2026 at 4:32 PM
#neovim Development News

The 0.12 version will update `:wall` command with a new `++p` option to create parent directories when writing changed buffers. This adds consistency with other "writing" commands like `:wa`, `:x`, and others.

PR:
- github.com/neovim/neovi...
feat: ":wall ++p" creates parent dirs for each buf by bobrippling · Pull Request #36121 · neovim/neovim
:wall ++p will create parent directories if they do not exist, for each modified buffer for history, see #19884 and #20835 :wa ++p added :update ++p works already :x ++p works already
github.com
January 12, 2026 at 5:23 PM
#neovim Development News

The 0.12 version will pass LSP client ID as a filter option to `vim.lsp.buf.code_action()`.

This will allow users to make mapping to invoke code actions from a specific LSP server.

PR:
- github.com/neovim/neovi...
feat(lsp): pass client ID in code action filter by MariaSolOs · Pull Request #36046 · neovim/neovim
Refer to this discussion.
github.com
January 8, 2026 at 2:32 PM
#neovim Development News

The 0.12 version will update 'fillchars' option with a new "foldinner" character.

It can be used as a character to show instead of the numeric foldlevel when it would be repeated in a narrow 'foldcolumn'.

PR (Vim patch):
- github.com/neovim/neovi...
vim-patch:9.1.1819: Cannot configure the inner foldlevel indicator by zeertzjq · Pull Request #36010 · neovim/neovim
Close #21740 vim-patch:9.1.1819: Cannot configure the inner foldlevel indicator Problem: Cannot configure the inner foldlevel indicator for the foldcolumn Solution: Add "foldinner" subop...
github.com
January 5, 2026 at 3:48 PM
Happy New Year, Neovim enjoyers! Let 2026 bring more "out of the box" experience and faster startup time for you!

As last year, here is a thread with #neovim development stats in 2025.
neovim.io Neovim @neovim.io · Dec 31
Happy New Year, everybody! Let's hope that next year will bring us more awesome features and less broken configs!

Here is a small thread with #neovim development stats in 2024.
December 31, 2025 at 2:17 PM
#neovim Development News

The 0.12 version will remove built-in "shellmenu" plugin due to being too narrowly scoped.

PR:
- github.com/neovim/neovi...
refactor(plugins)!: remove shellmenu by yochem · Pull Request #35815 · neovim/neovim
github.com
December 29, 2025 at 2:13 PM
Merry Christmas from your favorite text editor!
December 25, 2025 at 1:32 PM
#neovim Development News

The 0.11.5 version updated `gx` mapping in help files to open tag's documentation in the browser.

It uses this online help pages: neovim.io/doc/user .

PR:
- github.com/neovim/neovi...
Help - Neovim docs
Neovim user documentation
neovim.io
December 22, 2025 at 2:32 PM
#neovim Development News

The 0.12 version will allow `nvim_input_mouse()` method to be called with grid 0 to let Nvim decide the grid.

This should improve experience of developing third party GUIs.

PR:
- github.com/neovim/neovi...
feat(ui): support grid=0 in nvim_input_mouse by fredizzimo · Pull Request #32535 · neovim/neovim
Problem: Multigrid UIs have to find out which window to send the input by using the Neovim focus rules, which are not fully documented. Furthermore, getmousepos() has several problems when multigri...
github.com
December 18, 2025 at 2:49 PM
#neovim Development News

The 0.12 version will have a built-in optional plugin to visualize undotree.

Load it with `packadd nvim.undotree` and execute `:Undotree`.

PR:
- github.com/neovim/neovi...
feat: undotree ui by altermo · Pull Request #35627 · neovim/neovim
Problem Navigating the undo-tree is cumbersome. Solution A plugin for navigating the undo-tree visually.
github.com
December 15, 2025 at 4:54 PM
#neovim Development News

The 0.12 version will improve default value of 'diffopt' option by adding new flags:
- "indent-heuristic" for better handling of indented text.
- "inline:char" for an optimized character-wise diff.

PR:
- github.com/neovim/neovi...
vim-patch:9.1.1753: defaults: 'diffopt' option value can be improved by zeertzjq · Pull Request #35727 · neovim/neovim
vim-patch:9.1.1753: defaults: 'diffopt' option value can be improved Problem: defaults: 'diffopt' option value can be improved Solution: Update diffopt defaults to include "in...
github.com
December 11, 2025 at 6:30 PM
#neovim Development News

The 0.12 version will `CmdlineLeave` set `v:char` to the key that exited the Command line (like , , or ).

PR (Vim patch):
- github.com/neovim/neovi...
vim-patch:9.1.1679: unclear what key causes CmdlineLeave autocommand by zeertzjq · Pull Request #35677 · neovim/neovim
vim-patch:9.1.1679: unclear what key causes CmdlineLeave autocommand Problem: unclear what key causes CmdlineLeave autocommand Solution: Set |v:char| to the key (Girish Palya). related: vim/vim#17...
github.com
December 8, 2025 at 3:40 PM
#neovim Development News

The 0.12 version will update `vim.json.encode()` to support pretty-formatting and key sorting.

PR:
- github.com/neovim/neovi...
- github.com/neovim/neovi...
feat(json): support pretty-formatting with `vim.json.encode()` by skewb1k · Pull Request #35424 · neovim/neovim
Problem: There is no straightforward way to pretty-print objects as JSON. The existing vim.inspect outputs LON. Solution: Introduce an indent option for vim.json.encode() which enables human-readab...
github.com
December 4, 2025 at 3:52 PM
#neovim Development News

The 0.12 version will have `` in Insert mode insert text literally as if it was pasted. Use `=@x` to get the old behavior.

PR:
- github.com/neovim/neovi...
feat(editor)!: insert-mode ctrl-r should work like paste by shadmansaleh · Pull Request #35477 · neovim/neovim
Problem: insert-mode ctrl-r input is treated like raw user input, which almost(?) never useful. This means any newlines in the input are affected by autoindent, etc. This is (1) slow and (2) usuall...
github.com
November 27, 2025 at 4:05 PM
#neovim Development News

The 0.12 version will allow `vim.wait()` to return callback results.

PR:
- github.com/neovim/neovi...
feat(lua): `vim.wait` returns callback results by justinmk · Pull Request #35588 · neovim/neovim
Note: the C code was AI-generated, but seems to work. 👼 Problem The callback passed to vim.wait cannot return results directly, it must set upvalues or globals. local rv1, rv2, rv3 local ok = vim.w...
github.com
November 24, 2025 at 4:01 PM
#neovim Development News

The 0.12 version will support for `textDocument/onTypeFormatting` LSP method. This will allow LSP servers to adjust text during user typing.

PR:
- github.com/neovim/neovi...
feat(lsp): support `textDocument/onTypeFormatting` by ribru17 · Pull Request #34637 · neovim/neovim
Implements on-type formatting using a vim.on_key() approach to listen to typed keys. It will listen to keys on the left hand side of mappings. The on_key callback is cleared when detaching the last...
github.com
November 20, 2025 at 1:15 PM
#neovim Development News

The 0.12 version will add support for progress messages. It is meant as a way to visualize a state of a long running background task.
It also will show terminal's progress bar (if it supports OSC 9;4 sequence).

PRs:
- github.com/neovim/neovi...
- github.com/neovim/neovi...
feat(api): nvim_echo can emit Progress messages/events by shadmansaleh · Pull Request #34846 · neovim/neovim
Working toward #32537 based on a proposal from #32537 (comment) Problem: Nvim does not have a core concept for indicating "progress" of long-running tasks. The LspProgress event is specif...
github.com
November 17, 2025 at 6:28 PM