<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rneovim.git/runtime/lua/vim/lsp/_changetracking.lua, branch master</title>
<subtitle>Neovim fork with Rahm's personal hacks.</subtitle>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/'/>
<entry>
<title>fix(lua): enable param-type-mismatch diagnostic</title>
<updated>2026-09-28T13:43:14+00:00</updated>
<author>
<name>Lewis Russell</name>
<email>lewis6991@gmail.com</email>
</author>
<published>2026-09-28T13:19:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=c6535538f8717a8f6134020a5bee65341cf8280f'/>
<id>c6535538f8717a8f6134020a5bee65341cf8280f</id>
<content type='text'>
Problem: Argument type mismatches are excluded from EmmyLua checks.

Solution: Correct runtime annotations and calls, document local checker
workarounds, and enable the diagnostic.

AI-assisted
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem: Argument type mismatches are excluded from EmmyLua checks.

Solution: Correct runtime annotations and calls, document local checker
workarounds, and enable the diagnostic.

AI-assisted
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(lua): enable unnecessary-assert diagnostic</title>
<updated>2026-09-28T09:14:17+00:00</updated>
<author>
<name>Lewis Russell</name>
<email>lewis6991@gmail.com</email>
</author>
<published>2026-09-28T08:39:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=d7848ccb3dd7a711459e62c05d4fefd165f34947'/>
<id>d7848ccb3dd7a711459e62c05d4fefd165f34947</id>
<content type='text'>
AI-assisted
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
AI-assisted
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(lsp): only send `didSave` to clients attached to the buffer (#41126)</title>
<updated>2026-08-03T18:43:33+00:00</updated>
<author>
<name>Maria Solano</name>
<email>majosolano99@gmail.com</email>
</author>
<published>2026-08-03T18:43:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=1e6d4479d23721e9a3f4751a0ccd941a854721a5'/>
<id>1e6d4479d23721e9a3f4751a0ccd941a854721a5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(lsp): make LspNotify more robust #40332</title>
<updated>2026-06-20T16:46:58+00:00</updated>
<author>
<name>jdrouhard</name>
<email>john@drouhard.dev</email>
</author>
<published>2026-06-20T16:46:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=54188fa242582808fc1d0651786a4aa2f6295fa6'/>
<id>54188fa242582808fc1d0651786a4aa2f6295fa6</id>
<content type='text'>
Problem: LspNotify never passed a buffer when executing the autocmds, so
buffer-local LspNotify autocmd subscriptions didn't have the correct buf
in the event metadata. It was also wrapped in a schedule() so the actual
autocmd was delayed until after the event loop.

This could result in the wrong buffer receiving the notification if
multiple LspNotify autocmds with buffer filters were added. Only the
"latest" one would actually receive non-buffer-filtered autocmds, not
the matching one. It also caused listeners to receive the notification
"out of sync" with when the notification is actually sent. If a buffer
is being deleted (which fires a textDocument/didClose notification), the
notification is scheduled and fired after the buffer is already gone.

Solution: For LSP notifications that pertain to a particular buffer, set
it when executing the LspNotify autocmds so the callback functions that
are filtered on that buffer will get the correct notifications and the
metadata buf field will be correct. Additionally, there is no need to
wrap the LspNotify callback in vim.schedule when it can be called inline
when the notification to the rpc server is fired.

This is tested by removing now-unnecessary autocmds from semantic tokens
(InsertEnter and BufWinEnter should no longer be necessary now that
requests are fired by LspNotify). Without this fix, simply modifying a
buffer doesn't actually trigger LspNotify correctly, and the test for
that fails.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem: LspNotify never passed a buffer when executing the autocmds, so
buffer-local LspNotify autocmd subscriptions didn't have the correct buf
in the event metadata. It was also wrapped in a schedule() so the actual
autocmd was delayed until after the event loop.

This could result in the wrong buffer receiving the notification if
multiple LspNotify autocmds with buffer filters were added. Only the
"latest" one would actually receive non-buffer-filtered autocmds, not
the matching one. It also caused listeners to receive the notification
"out of sync" with when the notification is actually sent. If a buffer
is being deleted (which fires a textDocument/didClose notification), the
notification is scheduled and fired after the buffer is already gone.

Solution: For LSP notifications that pertain to a particular buffer, set
it when executing the LspNotify autocmds so the callback functions that
are filtered on that buffer will get the correct notifications and the
metadata buf field will be correct. Additionally, there is no need to
wrap the LspNotify callback in vim.schedule when it can be called inline
when the notification to the rpc server is fired.

This is tested by removing now-unnecessary autocmds from semantic tokens
(InsertEnter and BufWinEnter should no longer be necessary now that
requests are fired by LspNotify). Without this fix, simply modifying a
buffer doesn't actually trigger LspNotify correctly, and the test for
that fails.</pre>
</div>
</content>
</entry>
<entry>
<title>fix(lsp): catch another nil buffer state #40285</title>
<updated>2026-06-16T20:20:17+00:00</updated>
<author>
<name>Steve Huff</name>
<email>shuff@vecna.org</email>
</author>
<published>2026-06-16T20:20:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=942778c7587ec51a772d01dcc891973a1aa9f618'/>
<id>942778c7587ec51a772d01dcc891973a1aa9f618</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(lsp): flush change notifications on save (#39894)</title>
<updated>2026-05-20T23:33:10+00:00</updated>
<author>
<name>Maria Solano</name>
<email>majosolano99@gmail.com</email>
</author>
<published>2026-05-20T23:33:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=3883cba99665b7c4e48d957880cabd299d465347'/>
<id>3883cba99665b7c4e48d957880cabd299d465347</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(lua)!: vim.isnil, vim.nonnil, deprecate vim.F #39495</title>
<updated>2026-05-06T12:15:00+00:00</updated>
<author>
<name>Olivia Kinnear</name>
<email>git@superatomic.dev</email>
</author>
<published>2026-05-06T12:15:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=fcd1d972657338eb9c4733848a6a532098ff67b8'/>
<id>fcd1d972657338eb9c4733848a6a532098ff67b8</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>docs: lsp, options, api #38980</title>
<updated>2026-04-14T10:09:54+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2026-04-14T10:09:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=d77808ec59be2428f03fc43489ec70dcb71ac572'/>
<id>d77808ec59be2428f03fc43489ec70dcb71ac572</id>
<content type='text'>
docs: lsp, options

- revert bogus change to `_meta/builtin_types.lua` from 3a4a66017b74

Close #38991

Co-authored-by: David Mejorado &lt;david.mejorado@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
docs: lsp, options

- revert bogus change to `_meta/builtin_types.lua` from 3a4a66017b74

Close #38991

Co-authored-by: David Mejorado &lt;david.mejorado@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>fix(lsp): send didOpen on save to all clients+groups #37454</title>
<updated>2026-04-12T14:56:12+00:00</updated>
<author>
<name>Emilv2</name>
<email>emil@vanherp.me</email>
</author>
<published>2026-04-12T14:56:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=37eb1b99792c81c5f437e6d5a2fbb8dfba7c1472'/>
<id>37eb1b99792c81c5f437e6d5a2fbb8dfba7c1472</id>
<content type='text'>
Problem: _get_and_set_name edits the name for the whole group,
thus only one client per group gets the didOpen message.

Solution: move the logic to _changetracking and loop over every
client per group.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem: _get_and_set_name edits the name for the whole group,
thus only one client per group gets the didOpen message.

Solution: move the logic to _changetracking and loop over every
client per group.</pre>
</div>
</content>
</entry>
<entry>
<title>refactor: integer functions, optimize asserts #34112</title>
<updated>2026-03-12T15:04:05+00:00</updated>
<author>
<name>Lewis Russell</name>
<email>lewis6991@gmail.com</email>
</author>
<published>2026-03-12T15:04:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=ce1154048b11cdc402d0e5da352a3adca19afb56'/>
<id>ce1154048b11cdc402d0e5da352a3adca19afb56</id>
<content type='text'>
refactor(lua): add integer coercion helpers

Add vim._tointeger() and vim._ensure_integer(), including optional base
support, and switch integer-only tonumber()/assert call sites in the Lua
runtime to use them.

This also cleans up related integer parsing in LSP, health, loader, URI,
tohtml, and Treesitter code.

supported by AI</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
refactor(lua): add integer coercion helpers

Add vim._tointeger() and vim._ensure_integer(), including optional base
support, and switch integer-only tonumber()/assert call sites in the Lua
runtime to use them.

This also cleans up related integer parsing in LSP, health, loader, URI,
tohtml, and Treesitter code.

supported by AI</pre>
</div>
</content>
</entry>
</feed>
