<feed xmlns='http://www.w3.org/2005/Atom'>
<title>neovim, 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-25T14:33:39Z</updated>
<entry>
<title>ci: ensure full sanitizer logs are shown in CI #39361</title>
<updated>2026-04-25T14:33:39Z</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2026-04-25T14:33:39Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=0a9016689e63d5ff05e8f7d87ee7625dd6576cdc'/>
<id>urn:sha1:0a9016689e63d5ff05e8f7d87ee7625dd6576cdc</id>
<content type='text'>
Problem:
When ASAN detects an error in a child process, the process may be killed
by test teardown before ASAN finishes writing its log file. This results
in truncated logs with no stack trace.

Also, the sanitizer log content was only written to stdout (which the
test runner may not display) and not included in the test_assert error
message.

Solution:
- Poll (up to 2s) for the ASAN "SUMMARY" line before reading, so the
  crashing process has time to finish writing.
- Include full log content in the test_assert error message, so it
  appears in CI output regardless of stdout handling.
- Warn when the log appears truncated (no SUMMARY line found).</content>
</entry>
<entry>
<title>fix(channel): stack-buffer-overflow with exit during connection (#39387)</title>
<updated>2026-04-25T12:07:22Z</updated>
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<published>2026-04-25T12:07:22Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=4ed2e66d2ec20c2bf0325283b0e785ca3abb15c0'/>
<id>urn:sha1:4ed2e66d2ec20c2bf0325283b0e785ca3abb15c0</id>
<content type='text'>
Problem:  When Nvim exits while connecting to a socket it leads to
          stack-buffer-overflow.
Solution: Associate the handle with the Stream and use the Stream's
          internal_close_cb to update the "closed" status.</content>
</entry>
<entry>
<title>fix(build): add `_core/time.lua` to gettext #39384</title>
<updated>2026-04-25T09:24:43Z</updated>
<author>
<name>Olivia Kinnear</name>
<email>git@superatomic.dev</email>
</author>
<published>2026-04-25T09:24:43Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=fb795cee3e1603de5fe632a4aad11650a6da88d4'/>
<id>urn:sha1:fb795cee3e1603de5fe632a4aad11650a6da88d4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>test: add finally() to meta file (#39388)</title>
<updated>2026-04-25T08:47:48Z</updated>
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<published>2026-04-25T08:47:48Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=df8cf0ed25467856b58b44352cb6aad504baf1aa'/>
<id>urn:sha1:df8cf0ed25467856b58b44352cb6aad504baf1aa</id>
<content type='text'>
</content>
</entry>
<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>fix(api): leak preview callback LuaRef in nvim_create_user_command #39357</title>
<updated>2026-04-24T18:13:24Z</updated>
<author>
<name>Barrett Ruth</name>
<email>62671086+barrettruth@users.noreply.github.com</email>
</author>
<published>2026-04-24T18:13:24Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=393f687503a319a6f521e8335b4dd8030e3ea67b'/>
<id>urn:sha1:393f687503a319a6f521e8335b4dd8030e3ea67b</id>
<content type='text'>
Problem:
Invalid `nvim_create_user_command` calls can leak the
`preview` callback reference after Neovim has taken ownership of it.

1. build with {a,l}san
2. run:
    ```sh
    &lt;path/to/nvim&gt; --headless -u NONE --clean +'lua
    for i = 1, 100 do
      pcall(vim.api.nvim_create_user_command,
        "some very epic stuff" .. i,
        {}, -- NOTE: this is INVALID (not a function or string)
        { preview = function() end })
    end
    vim.cmd("qa!")
    ' +qa
    ```
3. see:
    ```
    100 lua references were leaked!
    ```

Solution:
Clear `preview_luaref` in `err:`.</content>
</entry>
<entry>
<title>fix(api): LuaRef leak in nvim_set_keymap on LHS too long (&gt;=66 bytes) #39351</title>
<updated>2026-04-24T18:10:28Z</updated>
<author>
<name>Barrett Ruth</name>
<email>62671086+barrettruth@users.noreply.github.com</email>
</author>
<published>2026-04-24T18:10:28Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=58aad59e1cf89e2bee0fc2e02c42506d2b1feeaf'/>
<id>urn:sha1:58aad59e1cf89e2bee0fc2e02c42506d2b1feeaf</id>
<content type='text'>
Problem: `nvim_set_keymap` leaks the `callback` `LuaRef` when the
LHS is too long.

Solution: Make `set_maparg_lhs_rhs` transfer `rhs_lua` to
`MapArguments` up front so the caller always owns the ref.</content>
</entry>
<entry>
<title>fix(path): normalize path slashes on Windows #37729</title>
<updated>2026-04-24T17:20:25Z</updated>
<author>
<name>tao</name>
<email>2471314@gmail.com</email>
</author>
<published>2026-04-24T17:20:25Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=f130922744657b731c24a842a85fd8a9f8058073'/>
<id>urn:sha1:f130922744657b731c24a842a85fd8a9f8058073</id>
<content type='text'>
Problem:
On Windows, path separators may become inconsistent for various reasons,
which makes normalization quite painful.

Solution:
Normalize paths to `/` at the entry boundaries and always use it
internally, converting back only in rare cases where `\` is really
needed (e.g. cmd.exe/bat scripts?).

This is the first commit in a series of incremental steps.

Note:
* some funcs won't respect shellslash. e.g. `expand/fnamemodify`
* some funcs still respect shellslash, but will be updated in a follow
  PR. e.g. `ex_pwd/f_chdir/f_getcwd`
* uv's built-in funcs always return `\`. e.g. `uv.cwd/uv.exepath`

Co-authored-by: Justin M. Keyes &lt;justinkz@gmail.com&gt;</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>
</feed>
