<feed xmlns='http://www.w3.org/2005/Atom'>
<title>neovim/src/nvim/lua/executor.c, branch release-0.12</title>
<subtitle>Vim-fork focused on extensibility and usability</subtitle>
<id>http://git.waynecole.info/neovim/atom?h=release-0.12</id>
<link rel='self' href='http://git.waynecole.info/neovim/atom?h=release-0.12'/>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/'/>
<updated>2026-04-23T17:06:31Z</updated>
<entry>
<title>fix(lua): don't strip debuginfo in precompile module #39191</title>
<updated>2026-04-23T17:06:31Z</updated>
<author>
<name>phanium</name>
<email>91544758+phanen@users.noreply.github.com</email>
</author>
<published>2026-04-23T16:42:41Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=731f9743e2ec675c80ef554c1295494c51b5725a'/>
<id>urn:sha1:731f9743e2ec675c80ef554c1295494c51b5725a</id>
<content type='text'>
Problem:
debug.getinfo on bytecode module/func don't give you detail source info.

Solution:
- Use `loadstring`+`string.dump` to replace LUAC_PRG(`luac`/`luajit -b`)
- `string.dump(…,false)` to generate non-strip version bytecode
- `loadstring(…,fname)` to specify the full source name

BEFORE:

    $ nvim --clean +'=debug.getinfo(vim.fn.maparg("]&lt;Space&gt;", "n", 0, 1).callback, "Sl")' --headless +q
    {
      currentline = -1,
      lastlinedefined = 456,
      linedefined = 452,
      short_src = "?",
      source = "=?",
      what = "Lua"
    }

AFTER:

    $ nvim --clean +'=debug.getinfo(vim.fn.maparg("]&lt;Space&gt;", "n", 0, 1).callback, "Sl")' --headless +q
    {
      currentline = -1,
      lastlinedefined = 456,
      linedefined = 452,
      short_src = "/home/xx/b/neovim/runtime/lua/vim/_core/defaults.lua",
      source = "@/home/xx/b/neovim/runtime/lua/vim/_core/defaults.lua",
      what = "Lua"
    }

(cherry picked from commit 398f2c108d8ee3ce7ac950b60520a9569b63da67)
</content>
</entry>
<entry>
<title>feat(eval): treat Lua string as "blob" in writefile() #39098</title>
<updated>2026-04-22T17:56:29Z</updated>
<author>
<name>Barrett Ruth</name>
<email>62671086+barrettruth@users.noreply.github.com</email>
</author>
<published>2026-04-22T17:36:43Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=c407e3e67b60d261ecc7f9518e88f3ca27219254'/>
<id>urn:sha1:c407e3e67b60d261ecc7f9518e88f3ca27219254</id>
<content type='text'>
Problem:
vim.fn.writefile() treats Lua strings as Vimscript strings instead of a "binary clean" string.

Solution:
Treat Lua-originated strings as blob data.

(cherry picked from commit fb6aeaba2d3a38c7febd0a39cabd89685de11b9d)
</content>
</entry>
<entry>
<title>docs: news #38464</title>
<updated>2026-03-28T13:59:54Z</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2026-03-28T13:59:54Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=64d55b74d83d566975e269bed0810d9008119ddf'/>
<id>urn:sha1:64d55b74d83d566975e269bed0810d9008119ddf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix(messages): disallow user-defined integer message-id #38359</title>
<updated>2026-03-19T01:07:17Z</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2026-03-19T01:07:17Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=1b2b715389c5a34f323001f34e4b78b86c9cff8d'/>
<id>urn:sha1:1b2b715389c5a34f323001f34e4b78b86c9cff8d</id>
<content type='text'>
Problem:
`nvim_echo(…, {id=…})` accepts user-defined id as a string or integer.
Generated ids are always higher than last highest msg-id used. Thus
plugins may accidentally advance the integer id "address space", which,
at minimum, could lead to confusion when troubleshooting, or in the
worst case, could overflow or "exhaust" the id address space.

There's no use-case for it, and it could be the mildly confusing, so we
should just disallow it.

Solution:
Disallow *integer* user-defined message-id.
Only allow *string* user-defined message-id.</content>
</entry>
<entry>
<title>docs: api, messages, lsp, trust</title>
<updated>2026-03-11T17:00:18Z</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2026-02-12T13:16:47Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=b8a976afdaf0080498e85530fae65a3165f201d5'/>
<id>urn:sha1:b8a976afdaf0080498e85530fae65a3165f201d5</id>
<content type='text'>
gen_vimdoc.lua: In prepare for the upcoming release, comment-out the
"Experimental" warning for prerelease features.
</content>
</entry>
<entry>
<title>fix(cmdline): cmdline_block events for :lua debug.debug() #38171</title>
<updated>2026-03-06T18:17:12Z</updated>
<author>
<name>luukvbaal</name>
<email>luukvbaal@gmail.com</email>
</author>
<published>2026-03-06T18:17:12Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=fde1c07891e0b964346899832b5c76f81c4305cd'/>
<id>urn:sha1:fde1c07891e0b964346899832b5c76f81c4305cd</id>
<content type='text'>
Problem:  :lua debug.debug() is missing cmdline_block events.
Solution: Emit cmdline_block_show/append/hide events for :lua
          debug.debug().</content>
</entry>
<entry>
<title>fix: wait() checks condition twice on each interval (#37837)</title>
<updated>2026-02-13T13:02:40Z</updated>
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<published>2026-02-13T13:02:40Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=9c5ade9212d897db590aeb6a2a5340e73ffe44d0'/>
<id>urn:sha1:9c5ade9212d897db590aeb6a2a5340e73ffe44d0</id>
<content type='text'>
Problem:  wait() checks condition twice on each interval.
Solution: Don't schedule the due callback. Also fix memory leak when
          Nvim exits while waiting.

No test that the condition isn't checked twice, as testing for that can
be flaky when there are libuv events from other sources.</content>
</entry>
<entry>
<title>fix(lua): close vim.defer_fn() timer if vim.schedule() failed (#37647)</title>
<updated>2026-02-01T13:29:19Z</updated>
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<published>2026-02-01T13:29:19Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=1906da52dbc9876046ec9866a5aae25309d7587e'/>
<id>urn:sha1:1906da52dbc9876046ec9866a5aae25309d7587e</id>
<content type='text'>
Problem:
Using vim.defer_fn() just before Nvim exit leaks luv handles.

Solution:
Make vim.schedule() return an error message if scheduling failed.
Make vim.defer_fn() close timer if vim.schedule() failed.</content>
</entry>
<entry>
<title>fix(ui): textlock still causes issues for UI callbacks #37513</title>
<updated>2026-01-27T14:30:37Z</updated>
<author>
<name>luukvbaal</name>
<email>luukvbaal@gmail.com</email>
</author>
<published>2026-01-27T14:30:37Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=1d57374c41e6c46c41d537c342ce30ad96cdb85b'/>
<id>urn:sha1:1d57374c41e6c46c41d537c342ce30ad96cdb85b</id>
<content type='text'>
Problem:  There are still ways to run into textlock errors with
          vim.ui_attach callbacks trying to display a UI event.
Solution: Disregard textlock again during vim.ui_attach() callbacks
          (also when scheduled). Partially revert 3277dc3b; avoiding
          to flush while textlock is set is still helpful.</content>
</entry>
<entry>
<title>fix(lua): correct line number reporting for options set in coroutines (#37463)</title>
<updated>2026-01-21T02:18:33Z</updated>
<author>
<name>Tommy Guo</name>
<email>tommyguo024@outlook.com</email>
</author>
<published>2026-01-21T02:18:33Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=103ddaf9ae80a32e50325888b0cde1c4354f8413'/>
<id>urn:sha1:103ddaf9ae80a32e50325888b0cde1c4354f8413</id>
<content type='text'>
</content>
</entry>
</feed>
