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 allow highlighting active snippet tabstop (expanded with `vim.snippet.expand()`) with `SnippetTabstopActive` highlight group.

PR:
- github.com/neovim/neovi...
feat(snippet): highlight active tabstop by TheBlob42 · Pull Request #35378 · neovim/neovim
Introduce a new highlight group SnippetTabstopActive for the currently active tabstop. This makes it easier to identify the current text that is changed, especially for directly adjacent tabstops o...
github.com
November 10, 2025 at 2:46 PM
#neovim Development News

The 0.12 version will add `vim.pos` and `vim.range` sets of functions to deal with buffer positions and ranges. Useful for plugin developers. It will probably be experimental.

PR:
- github.com/neovim/neovi...
feat(lua): add `vim.pos`/`vim.range` by ofseed · Pull Request #35109 · neovim/neovim
ref #25509 Currently, the main focus is on defining the vim.pos.Pos and vim.range.Range structures, and moving the logic of the comparing functions in vim.treesitter._range so that we can deprecate...
github.com
November 7, 2025 at 8:40 PM
#neovim Development News

The 0.12 version will add `:connect` command which detaches UI from the current server and attaches to the server specified by the address.

PR:
- github.com/neovim/neovi...
feat(ui): :connect command by siddhantdev · Pull Request #34586 · neovim/neovim
Add the :connect <address> command which connects the currently running TUI to the server running at the given address. Reference issue: :connect to another Nvim server (dynamic detach/reatt...
github.com
November 5, 2025 at 5:14 PM
There is yet another #neovim 0.11.5 maintenance release with new features, performance improvements, and fixes.

Release: github.com/neovim/neovi...
Changelog: github.com/neovim/neovi...
Release Nvim 0.11.5 · neovim/neovim
NVIM v0.11.5 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
November 3, 2025 at 1:10 PM
#neovim Development News

The 0.12 version will update `chdir()` function to allow setting the scope (window, tabpage, global) of the current directory change.

PR (Vim patch):
- github.com/neovim/neovi...
vim-patch:9.1.1605: cannot specify scope for chdir() by zeertzjq · Pull Request #35239 · neovim/neovim
vim-patch:9.1.1605: cannot specify scope for chdir() Problem: Cannot specify scope for chdir() Solution: Add optional scope argument (kuuote) closes: vim/vim#17888 vim/vim@8a65a49 Co-authored-by: ...
github.com
October 31, 2025 at 2:23 PM
#neovim Development News

The 0.12 version will improve built-in fuzzy matching with a new fzy-based implementation.

PR (Vim patch):
- github.com/neovim/neovi...
vim-patch:9.1.{1627,1628} by zeertzjq · Pull Request #35320 · neovim/neovim
Fix #34101 vim-patch:9.1.1627: fuzzy matching can be improved Problem: fuzzy-matching can be improved Solution: Implement a better fuzzy matching algorithm (Girish Palya) Replace fuzzy matching al...
github.com
October 29, 2025 at 4:13 PM
#neovim Development News

The 0.12 version will add many built-in completion improvements with 'autocomplete', 'autocompletedelay', 'autocompletetimeout', and 'completetimeout' options.

PRs (Vim patch):
- github.com/neovim/neovi...
- github.com/neovim/neovi...
- github.com/neovim/neovi...
vim-patch:9.1.1590: cannot perform autocompletion by zeertzjq · Pull Request #35141 · neovim/neovim
vim-patch:9.1.1590: cannot perform autocompletion Problem: cannot perform autocompletion Solution: Add the 'autocomplete' option value (Girish Palya) This change introduces the 'autoco...
github.com
October 27, 2025 at 6:02 PM
#neovim Development News

The 0.12 version will add `vim.list.bisect()` (find position to insert a value in a sorted list while keeping it sorted) and `vim.list.unique()` (removes duplicates in-place) functions.

PR:
- github.com/neovim/neovi...
- github.com/neovim/neovi...
feat(lua): add `vim.list.bisect` by ofseed · Pull Request #35108 · neovim/neovim
Problem Usages of binary search are pretty common. We added vim.list.unique a while ago, so having a function like vim.list.bisect should be appropriate too. This is also for reducing duplicated co...
github.com
October 24, 2025 at 6:34 PM
#neovim Development News

The 0.12 version will add `vim.diagnostic.status()` helper to get formatted string with diagnostics for the current buffer.

PR:
- github.com/neovim/neovi...
feat(statusline): add buffer diagnostics count by antonk52 · Pull Request #33723 · neovim/neovim
Problem: there is no way to see diagnostic count in stock neovim Solution: add buffer diagnostic count to the default statusline Context: There is interest in trying this out. I tried to keep the i...
github.com
October 22, 2025 at 1:25 PM
#neovim Development News

The 0.12 version will update how trusted files are enabled: no "(a)llow" choice in favor of "(v)iew" and explicit `:trust`. This is aimed to improve overall security of your Neovim setup.

PR:
- github.com/neovim/neovi...
fix(vim.secure): remove "allow" from choices of `vim.secure.read` by nyngwang · Pull Request #35069 · neovim/neovim
Problem: It's relatively easy to mispress key a to (a)llow arbitrary execution of exrc files. See also discuss #35050. Solution: For exrc files, remove "allow" from choices of vim.se...
github.com
October 20, 2025 at 2:55 PM
#neovim Development News

The 0.12 version will add `wildtrigger()` function to trigger command-line wildcard expansion. This offers more flexible solutions to implementing autocompletion-like functionality in Command line.

PR (Vim patch):
- github.com/neovim/neovi...
vim-patch:9.1.1576: cannot easily trigger wildcard expansion by zeertzjq · Pull Request #35022 · neovim/neovim
vim-patch:9.1.1576: cannot easily trigger wildcard expansion Problem: cannot easily trigger wildcard expansion Solution: Introduce wildtrigger() function (Girish Palya) This PR introduces a new wi...
github.com
October 17, 2025 at 4:03 PM
#neovim Development News

The 0.12 version will add support for `textDocument/linkedEditingRange` request. This will allow LSP server to update related regions when one has changed (like HTML closing tag when editing an opening one).

PR:
- github.com/neovim/neovi...
feat(lsp): support linked editing ranges by ribru17 · Pull Request #34388 · neovim/neovim
See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_linkedEditingRange. Maybe some LSP experts can help point me in the right direction with...
github.com
October 15, 2025 at 4:52 PM
#neovim Development News

The 0.12 version will update `:retab` function with a new option `-indentonly` parameter. It will allow to adjust only leading and not all whitespace.

PR (Vim patch):
- github.com/neovim/neovi...
vim-patch:9.1.1544: :retab cannot be limited to indentation only by zeertzjq · Pull Request #34939 · neovim/neovim
vim-patch:9.1.1544: :retab cannot be limited to indentation only Problem: :retab cannot be limited to indentation only Solution: add the optional -indentonly parameter (Hirohito Higashi) closes: v...
github.com
October 13, 2025 at 3:44 PM
#neovim Development News

The 0.12 version will add 'pumborder' option allowing built-in completion menu to have borders. Option works the same way as 'winborder' for floating windows.

PR:
- github.com/neovim/neovi...
feat(ui): add pumborder by glepnir · Pull Request #25541 · neovim/neovim
Problem: missing option 'pumborder'. Solution: support 'pumborder' option. and refactor win_redr_border to grid_redr_border, which redraw border for window grid and pum grid. Fix #...
github.com
October 10, 2025 at 2:22 PM
#neovim Development News

The 0.12 version will add 'diffanchors' option to have finer control over how diffs are computed. This will allow getting more natural diffs in complex cases (like move and modify a function).

PR (Vim patch):
- github.com/neovim/neovi...
vim-patch:9.1.1557: not possible to anchor specific lines in difff mode by zeertzjq · Pull Request #34967 · neovim/neovim
vim-patch:9.1.1557: not possible to anchor specific lines in difff mode Problem: not possible to anchor specific lines in difff mode Solution: Add support for the anchoring lines in diff mode usin...
github.com
October 8, 2025 at 12:51 PM
#neovim Development News

The 0.12 version will increase maximum value of 'scrollback' option from 100_000 to 1_000_000. This should improve user experience when exploring large terminal scrollback with built-in terminal buffer.

PR:
- github.com/neovim/neovi...
feat(term): increase max scrollback to 1000000 by lewis6991 · Pull Request #34880 · neovim/neovim
Problem: Cannot use nvim_open_term() to pipe terminal scrollback > 100000 Solution: Increase scrollback limit to 1000000 If there's no technical consequences of doing this, can be set even h...
github.com
October 6, 2025 at 3:55 PM
#neovim Development News

The 0.12 version will add `vim.net.request()` function for downloading files from the Internet. It will also integrate with `:edit` command to view network request results.

It is a step towards easier built-in editing of remote files.

PR:
- github.com/neovim/neovi...
feat(net): add vim.net.request() and :e integration by tampueroc · Pull Request #34140 · neovim/neovim
This PR introduces vim.net.request() as a new minimal Lua API for fetching content from network URLs and integrates directly into Neovim :e command for remote file opening. Closes #23232 . Implemen...
github.com
October 3, 2025 at 3:19 PM
#neovim Development News

The 0.12 version will move `vim.diff` function to a more suitable `vim.text.diff`. This is not a breaking change until 1.0 release.

PR:
- github.com/neovim/neovi...
refactor(lua): rename vim.diff => vim.text.diff by justinmk · Pull Request #34864 · neovim/neovim
Problem: vim.diff() was introduced before we had the vim.text module, where it obviously belongs. Solution: Move it.
github.com
October 1, 2025 at 5:16 PM
#neovim Development News

The 0.12 version will add 'maxsearchcount' option to control maximum value of search count (instead of default 999).

PR (Vim patch):
- github.com/neovim/neovi...
vim-patch:9.1.1535: the maximum search count uses hard-coded value 99 by zeertzjq · Pull Request #34873 · neovim/neovim
vim-patch:9.1.1535: the maximum search count uses hard-coded value 99 Problem: The maximum search count uses a hard-coded value of 99 (Andres Monge, Joschua Kesper) Solution: Make it configurable ...
github.com
September 29, 2025 at 12:34 PM
We just passed 4000 followers here! Thank you all for using and supporting Neovim ❤️
September 27, 2025 at 5:04 PM
#neovim Development News

The 0.12 version will allow 'winborder' option to define custom border styles. So it is now not restricted to a fixed set of choices (like "single", "rounded", etc.)

PR:
- github.com/neovim/neovi...
feat(option): add support for custom characters in winborder option by glepnir · Pull Request #33772 · neovim/neovim
Problem: winborder option only supported predefined styles and lacked support for custom border characters. Solution: implement parsing for comma-separated list format that allows specifying 8 indi...
github.com
September 26, 2025 at 1:59 PM
#neovim Development News

The 0.12 version will update `TermResponse` event to also support DA1 query ("Primary Device Attributes") responses.

PR:
- github.com/neovim/neovi...
feat(tui): use DA1 response to determine OSC 52 support by gpanders · Pull Request #34860 · neovim/neovim
Many terminals now include support for OSC 52 in their Primary Device Attributes (DA1) response. This is preferable to using XTGETTCAP because DA1 is much more broadly supported. Closes: #34472
github.com
September 24, 2025 at 1:26 PM
#neovim Development News

The 0.12 version will relax API contract to allow `nvim_xxx()` functions to:
- Start returning values.
- Add new optional parameter `opts`.

This allows revisiting API decisions while (hopefully) not being too breaking.

PR:
- github.com/neovim/neovi...
feat(api): relax contract, allow return-type void => non-void by justinmk · Pull Request #34811 · neovim/neovim
Allow changing return-type from void => non-void. Part of #31903 cc @shadmansaleh @luukvbaal
github.com
September 22, 2025 at 12:16 PM
#neovim Development News

The 0.12 version will add a way for plugins to show that buffer is "busy" by setting buffer-local option of the same name. This can be helpful to visually indicate a long running background task, as default statusline will do.

PR:
- github.com/neovim/neovi...
feat: add busy status for buffers by shadmansaleh · Pull Request #34493 · neovim/neovim
busy status indicator for buffers in statusline Adds new buffer specific boolean option 'busy'. When busy is set it indicates the buffer is busy. For now this busy status is shown in the d...
github.com
September 19, 2025 at 3:48 PM
#neovim Development News

The 0.12 version will update `vim.iter():take()` and `vim.iter():skip()` to accept predicates. This enables take-while and skip-while patterns.

PR:
- github.com/neovim/neovi...
feat(runtime): accept predicates in take and skip by mart-mihkel · Pull Request #34657 · neovim/neovim
Make vim.iter():take() and vim.iter():skip() optionally accept predicates to enable takewhile and skipwhile patterns used in functional programming. #33202
github.com
September 17, 2025 at 1:02 PM