<feed xmlns='http://www.w3.org/2005/Atom'>
<title>neovim/runtime, branch master</title>
<subtitle>Vim-fork focused on extensibility and usability</subtitle>
<id>http://git.waynecole.info/neovim/atom?h=master</id>
<link rel='self' href='http://git.waynecole.info/neovim/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/'/>
<updated>2026-04-24T22:48:23Z</updated>
<entry>
<title>fix(lsp): handle self-mapped methods in supports_method #39383</title>
<updated>2026-04-24T22:48:23Z</updated>
<author>
<name>Tristan Knight</name>
<email>admin@snappeh.com</email>
</author>
<published>2026-04-24T22:48:23Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=f83d0b9653a8a548093645a9397f9f293b91c127'/>
<id>urn:sha1:f83d0b9653a8a548093645a9397f9f293b91c127</id>
<content type='text'>
Problem:
The LSP client incorrectly checks for server capabilities when determining
support for self-mapped methods (e.g., 'shutdown'), which do not have
corresponding capabilities in the server's response. This leads to false
negatives when checking if such methods are supported.
This was handled correctly for dynamic registrations, but not for static.

Methods such as 'shutdown', do not have a related server capability and should
be assumed to be supported.

Solution:
Update the `supports_method` logic to always return true for self-mapped
methods.</content>
</entry>
<entry>
<title>feat(tui): restore 'ttyfast' to control tty requests #38699</title>
<updated>2026-04-24T18:45:20Z</updated>
<author>
<name>Kyle</name>
<email>50718101+kylesower@users.noreply.github.com</email>
</author>
<published>2026-04-24T18:45:20Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=66149ca6681102ff758b516984a1ccfe2ce0d974'/>
<id>urn:sha1:66149ca6681102ff758b516984a1ccfe2ce0d974</id>
<content type='text'>
Problem:
When running nvim on a remote machine over SSH, if there is high ping,
then bg detection may not complete in time. This results in a warning
every time nvim is started. #38648

Solution:
Restore 'ttyfast' option and allow it to control whether or not bg
detection is performed. Because this is during startup and before any
user config or commands, we use the environment variable
`NVIM_NOTTYFAST` to allow disabling `ttyfast` during initialization.</content>
</entry>
<entry>
<title>feat(api): nvim_echo(percent=nil) means "unknown" progress #39029</title>
<updated>2026-04-24T15:57:35Z</updated>
<author>
<name>Peter Cardenas</name>
<email>16930781+PeterCardenas@users.noreply.github.com</email>
</author>
<published>2026-04-24T15:57:35Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=27191e0f4f4f9086180a8fbe3e52c1c280a70b09'/>
<id>urn:sha1:27191e0f4f4f9086180a8fbe3e52c1c280a70b09</id>
<content type='text'>
Problem:
No way to signal "unknown" or "indeterminate" progress percentage.

Solution:
Treat percent=nil as "indeterminate" percent.</content>
</entry>
<entry>
<title>fix(lsp): more info in error msg, deduplicate test #39359</title>
<updated>2026-04-24T11:40:33Z</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2026-04-24T11:40:33Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=2c7679f4d380deb05785476e925147bed032a1a9'/>
<id>urn:sha1:2c7679f4d380deb05785476e925147bed032a1a9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix(trust): always use "/" slashes in filepaths #39355</title>
<updated>2026-04-24T11:37:21Z</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2026-04-24T11:37:21Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=5c88492a13f80d23e7b0d48d036ed60a7d24be0d'/>
<id>urn:sha1:5c88492a13f80d23e7b0d48d036ed60a7d24be0d</id>
<content type='text'>
Problem:
We should not use "\" (backslashes) except where absolutely required.
See references in https://github.com/neovim/neovim/pull/37729

Solution:
There is no reason to use "\" slashes in the trust db, so don't.</content>
</entry>
<entry>
<title>vim-patch:9.2.0390: filetype: some Beancount files are not recognized (#39360)</title>
<updated>2026-04-23T23:50:31Z</updated>
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<published>2026-04-23T23:50:31Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=c0e358f7e8ac92dbaba771a74d17d1754e3c6320'/>
<id>urn:sha1:c0e358f7e8ac92dbaba771a74d17d1754e3c6320</id>
<content type='text'>
Problem:  filetype: some Beancount files are not recognized
Solution: Detect *.bean files as beancount filetype
          (Bruno Belanyi)

closes: vim/vim#20037

https://github.com/vim/vim/commit/521eac1877355d408c8c57bc31947cc86f31f41d

Co-authored-by: Bruno Belanyi &lt;bruno@belanyi.fr&gt;</content>
</entry>
<entry>
<title>feat(excmd): add :uptime command #39331</title>
<updated>2026-04-23T21:11:59Z</updated>
<author>
<name>Olivia Kinnear</name>
<email>git@superatomic.dev</email>
</author>
<published>2026-04-23T21:11:59Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=645a588aa60f4e816a704c97685e2036958af176'/>
<id>urn:sha1:645a588aa60f4e816a704c97685e2036958af176</id>
<content type='text'>
Problem
Nvim marks its v:starttime, but there is no user-friendly way to get Nvim's uptime.

Solution
Add :uptime (based loosely on uptime(1)).</content>
</entry>
<entry>
<title>fix(lsp): handle null id in JSON-RPC responses #38340</title>
<updated>2026-04-23T20:41:59Z</updated>
<author>
<name>atusy</name>
<email>30277794+atusy@users.noreply.github.com</email>
</author>
<published>2026-04-23T20:41:59Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=46b6859a4f0298b63b93fe07612a593b44d99ea6'/>
<id>urn:sha1:46b6859a4f0298b63b93fe07612a593b44d99ea6</id>
<content type='text'>
Problem:
LSP spec allows response message to have a null request-id.
This may happen when for example client sends unparseable request.
https://github.com/microsoft/language-server-protocol/issues/196

Solution:
Guard the server response branches against id=vim.NIL (json null),
and handle error responses with null id by logging a warning
and dispatching on error.

Problem:
CI (ubuntu asan, ubuntu tsan, windows) reports `uv_loop_close()
hang?` from the two new null-id response tests. The leaked
handle is the server-side accepted TCP socket created inside
`server:listen` callback. The tests closed only the listener
but not the accepted socket, so libuv could not finish shutting
down the loop and each test session took ~2s extra to exit.

Solution:
Hoist the accepted socket to the outer `exec_lua` scope and
close it at teardown before closing the listener. The close
runs synchronously inside `exec_lua`, so the loop has time to
dispose the handle before the session exits.

* test(lsp): close accepted socket on read-loop exit/error

Match the precedent in the handler test ("handler can return
false as response") and the shared `_create_tcp_server` helper
in `test/functional/plugin/lsp/testutil.lua`: close the
accepted socket from inside the `create_read_loop` exit/error
callbacks. The teardown close added in the previous commit
remains as belt-and-suspenders, so the socket is disposed
whether the server goes away first or the client does.</content>
</entry>
<entry>
<title>fix(trust): hash unchanged empty buffers as empty files #39027</title>
<updated>2026-04-23T19:01:37Z</updated>
<author>
<name>Barrett Ruth</name>
<email>62671086+barrettruth@users.noreply.github.com</email>
</author>
<published>2026-04-23T19:01:37Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=0a8218a2b40fa8f6b533605db4377ff89250711c'/>
<id>urn:sha1:0a8218a2b40fa8f6b533605db4377ff89250711c</id>
<content type='text'>
Problem:
`vim.secure.trust()` hashes an unchanged empty buffer as
a newline, so trusting an empty file by buffer never works.

Solution:
Hash unchanged empty-buffers `''` so buffer-based
trust matches the on-disk empty file.</content>
</entry>
<entry>
<title>fix(lsp): malformed edit if apply_text_edits() is called twice #34954</title>
<updated>2026-04-23T16:01:44Z</updated>
<author>
<name>geril07</name>
<email>62308020+geril07@users.noreply.github.com</email>
</author>
<published>2026-04-23T16:01:44Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=790a8be5f306a28ca8e96c2ae3fa3b465ae3718f'/>
<id>urn:sha1:790a8be5f306a28ca8e96c2ae3fa3b465ae3718f</id>
<content type='text'>
Problem:
Use vim.lsp.util.apply_text_edits to re-apply the same textedit causes
an incorrect edit, because apply_text_edits silently modifies the
parameter.

Solution:
- Avoid changing `text_edit._index`.
- Document this fun feature.

Helped-by: Riley Bruins &lt;ribru17@hotmail.com&gt;
Helped-by: Yi Ming &lt;ofseed@foxmail.com&gt;
Co-authored-by: Justin M. Keyes &lt;justinkz@gmail.com&gt;</content>
</entry>
</feed>
