Neovim's Avatar

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

4,545
Followers
11
Following
192
Posts
14.11.2024
Joined
Posts Following

Latest posts by Neovim @neovim.io

Preview
feat(ex): add `:lsp` command by superatomic · Pull Request #36925 · neovim/neovim Continuation of the work in #35078, which seeks to upstream the commands in lspconfig. Work left for me to do before review: Implement unreviewed feedback from the original PR. Add tests. Make...

#neovim Development News

The 0.12 version will add a built-in `:lsp` command to interactively enable, disable, restart, and stop LSP clients.

PR:
- github.com/neovim/neovi...

05.03.2026 20:05 👍 54 🔁 2 💬 0 📌 0
feat(events): deferred events queue, `MarkSet` autocmd by nathanmsmith · Pull Request #35793 · neovim/neovim Fixes #27896 Fixes #35366 Replaces my work in #34285. In action: nvim.marks.mp4

#neovim Development News

The 0.12 version will add `MarkSet` event that is triggered after an explicit mark is set by the user.

PR:
- github.com/neovim/neovi...

02.03.2026 19:28 👍 12 🔁 0 💬 0 📌 0
Preview
feat(lsp): support diagnostic refresh request by g-plane · Pull Request #36695 · neovim/neovim Problem: If the server wants to ask client to pull diagnostics, e.g. the server detects configuration has been changed so it needs to re-calculate diagnostics with new configuration, there's no...

#neovim Development News

The 0.12 version will improve built-in support for LSP diagnostics:

- Add `workspace/diagnostic/refresh` method support
- Support dynamic registration for `textDocument/diagnostic`

PRs:
- github.com/neovim/neovi...
- github.com/neovim/neovi...

26.02.2026 19:31 👍 22 🔁 0 💬 0 📌 0
feat(api): add experimental nvim__exec_lua_fast function by fredizzimo · Pull Request #35758 · neovim/neovim Problem: Remote UIs can't execute lua code when a blocking prompt is waiting for input. This is needed when implementing IME pre-edit for example. Solution: Add an nvim__exec_lua_fast experimen...

#neovim Development News

The 0.12 version will add experimental `nvim__exec_lua_fast()` function to allow remote API clients to execute code while Neovim is blocking for input.

PR:
- github.com/neovim/neovi...

23.02.2026 16:33 👍 28 🔁 1 💬 0 📌 1
feat(lsp): support auto-force escalation in lsp.enable() by superatomic · Pull Request #36458 · neovim/neovim Closes #36446. Related to #36378. Still left to do before review: Resolve issue lsp: possible issue with client:stop() force stopping immediately #36454. Preserve :h lsp-restart behavior. Verif...

The 0.12 version will allow configuring the time to wait for an LSP server to stop before doing force stop.

It will be controlled by `exit_timeout` field of LSP server config.

PRs:
- github.com/neovim/neovi...
- github.com/neovim/neovi...
- github.com/neovim/neovi...
- github.com/neovim/neovi...

19.02.2026 17:58 👍 26 🔁 0 💬 0 📌 0
feat: add (lua) callback to `nvim_get_commands()` by bobrippling · Pull Request #36415 · neovim/neovim Similarly to nvim_get_keymap(), expose callback for commands backed by a lua function neovim/src/nvim/mapping.c Lines 2105 to 2107 in fafc329 ...

#neovim Development News

The 0.12 version will improve `nvim_get_commands()` output dictionaries:

- `complete` field will be Lua function if it was used during command creation.
- `preview` and `callback` will also be function fields.

PR:
- github.com/neovim/neovi...

16.02.2026 15:30 👍 17 🔁 1 💬 0 📌 0
Preview
feat(lsp): add cmp option to completion.enable() by glepnir · Pull Request #36401 · neovim/neovim Problem: No way to customize completion order across multiple servers. Solution: Add sort function to vim.lsp.completion.enable() options for custom sorting logic.

#neovim Development News

The 0.12 version will add `cmp` option to `vim.lsp.completion.enable()` for custom completion ordering.

PR:
- github.com/neovim/neovi...

12.02.2026 16:51 👍 29 🔁 0 💬 0 📌 0
Preview
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...

#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...

09.02.2026 15:46 👍 24 🔁 0 💬 0 📌 0
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...

#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...

05.02.2026 16:45 👍 15 🔁 0 💬 0 📌 0
Preview
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...

#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...

02.02.2026 20:59 👍 23 🔁 2 💬 0 📌 0
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...

#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...

29.01.2026 16:36 👍 24 🔁 0 💬 0 📌 0
vim9 with semi-transparent popups

vim9 with semi-transparent popups

Great to see this also in vim:)

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

#vim #neovim

29.01.2026 13:20 👍 17 🔁 4 💬 1 📌 0
Preview
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...

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...

26.01.2026 18:46 👍 63 🔁 5 💬 1 📌 1
Preview
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

#neovim Development News

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

PR:
- github.com/neovim/neovi...

22.01.2026 14:37 👍 36 🔁 0 💬 0 📌 0
Preview
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...

#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...

19.01.2026 19:57 👍 19 🔁 2 💬 0 📌 0
Preview
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...

#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...

15.01.2026 16:32 👍 43 🔁 1 💬 2 📌 0
Preview
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

#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...

12.01.2026 17:23 👍 20 🔁 1 💬 0 📌 0
Preview
feat(lsp): pass client ID in code action filter by MariaSolOs · Pull Request #36046 · neovim/neovim Refer to this discussion.

#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...

08.01.2026 14:32 👍 28 🔁 2 💬 0 📌 0
Preview
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...

#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...

05.01.2026 15:48 👍 15 🔁 0 💬 0 📌 1

Thank you for using #neovim in 2025. All in all, it was an eventful year. Don't go anywhere, many cool things are planned for 2026!

31.12.2025 14:17 👍 31 🔁 0 💬 0 📌 0
Table with information about commits that had the most lines added in 2025.
Top 3 are "feat(meta): vendor luv meta files" by Christian Clason, "vim-patch:8.2.1123: Python 3 test is old style" by Jan Edmund Lazo, and "refactor(tests): lint decorations_spec, float_spec, multigrid_spec #33274" by Jusin M. Keys.

Table with information about commits that had the most lines added in 2025. Top 3 are "feat(meta): vendor luv meta files" by Christian Clason, "vim-patch:8.2.1123: Python 3 test is old style" by Jan Edmund Lazo, and "refactor(tests): lint decorations_spec, float_spec, multigrid_spec #33274" by Jusin M. Keys.

Table with information about commits that had the most lines removed (more than 1000) in 2025.
Top 3 are "build(vim-patch.sh): ignore runtime/*/testdir/" by Eisuke Kawashima, "perf(tui): faster implementation of terminfo" by bfredl, and "vim-patch:09a62e6: runtime(netrw): cleanup Decho related comments" by Jaehwang Jung.

Table with information about commits that had the most lines removed (more than 1000) in 2025. Top 3 are "build(vim-patch.sh): ignore runtime/*/testdir/" by Eisuke Kawashima, "perf(tui): faster implementation of terminfo" by bfredl, and "vim-patch:09a62e6: runtime(netrw): cleanup Decho related comments" by Jaehwang Jung.

In total 1681 files were affected with 193158 lines added and 102468 lines removed. This increased Neovim's total line count by 90690 lines. This is a 66% increase compared to 54472 new lines in 2024.

Here is more data (@bfredl.bsky.social is again in top three for commits with removed lines 💪):

31.12.2025 14:17 👍 21 🔁 0 💬 1 📌 0
Table showing top commit authors in 2025. Top 3 are zeertzjq (1143 commits), Christian Clason (241 commits), and Luuk van Baal (189 commits).

Table showing top commit authors in 2025. Top 3 are zeertzjq (1143 commits), Christian Clason (241 commits), and Luuk van Baal (189 commits).

Table showing top commit authors in 2025 per commit type. Top 3 are zeertzjq (933 Vim patches), Christian Clason (146 Vim patches), and Luuk van Baal (139 fixes).

Table showing top commit authors in 2025 per commit type. Top 3 are zeertzjq (933 Vim patches), Christian Clason (146 Vim patches), and Luuk van Baal (139 fixes).

248 people made commit in 2025, which is 30% more than last year! Warm thanks to each and every one of you!

zeertzjq made the most Vim patches, tests, and refactors
Luuk van Baal - fixes and features
Christian Clason - builds and ci
@justinkz.bsky.social - docs

More data:

31.12.2025 14:17 👍 17 🔁 0 💬 1 📌 0
Table showing number of commits in 2025 per commit type. Top 3 are "vim-patch" (1290 commits), "fix" (867 commits), and "feat" (272 commits).

Table showing number of commits in 2025 per commit type. Top 3 are "vim-patch" (1290 commits), "fix" (867 commits), and "feat" (272 commits).

Table showing number of commits in 2025 per month. The numbers are pretty even around 250-270. The lowest is 214 in November, the highest is 298 in March.

Table showing number of commits in 2025 per month. The numbers are pretty even around 250-270. The lowest is 214 in November, the highest is 298 in March.

There were 3089 commits made in 2025. The most common type was 'vim-patch' (porting code change from Vim): around 40% of all commits.

All of them were spread pretty evenly during the year.

This is similar to 2024, with a bit more fixes and less refactors.

More data:

31.12.2025 14:17 👍 18 🔁 0 💬 1 📌 0

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.

31.12.2025 14:17 👍 98 🔁 12 💬 2 📌 1
refactor(plugins)!: remove shellmenu by yochem · Pull Request #35815 · neovim/neovim

#neovim Development News

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

PR:
- github.com/neovim/neovi...

29.12.2025 14:13 👍 28 🔁 0 💬 0 📌 0
ASCII "art" done inside `nvim --clean` that resembles Christmas tree

ASCII "art" done inside `nvim --clean` that resembles Christmas tree

Merry Christmas from your favorite text editor!

25.12.2025 13:32 👍 124 🔁 9 💬 4 📌 0
Help - Neovim docs Neovim user documentation

#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...

22.12.2025 14:32 👍 30 🔁 2 💬 0 📌 0
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...

#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...

18.12.2025 14:49 👍 22 🔁 0 💬 0 📌 0
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.

#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...

15.12.2025 16:54 👍 47 🔁 2 💬 0 📌 0
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...

#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...

11.12.2025 18:30 👍 26 🔁 0 💬 0 📌 0