<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rneovim.git/test/functional/plugin, 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(lsp): ignore completion items without LSP metadata #42401</title>
<updated>2026-10-16T15:14:52+00:00</updated>
<author>
<name>Volodymyr Chernetskyi</name>
<email>volodymyr_chernetskyi@goodyear.com</email>
</author>
<published>2026-10-16T15:14:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=69fcfed4a47160cbf28e828d2c15aa6abb2834ca'/>
<id>69fcfed4a47160cbf28e828d2c15aa6abb2834ca</id>
<content type='text'>
Problem:
Accepting an item from another completion source raises an error when its
user_data.nvim table does not contain LSP metadata.

Solution:
Retrieve and guard the nested LSP metadata before accessing its fields.

Cover acceptance of a foreign completion item without LSP metadata.

AI-assisted</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
Accepting an item from another completion source raises an error when its
user_data.nvim table does not contain LSP metadata.

Solution:
Retrieve and guard the nested LSP metadata before accessing its fields.

Cover acceptance of a foreign completion item without LSP metadata.

AI-assisted</pre>
</div>
</content>
</entry>
<entry>
<title>fix(lsp): keep label fallback for empty snippet insertText #42402</title>
<updated>2026-10-16T15:13:36+00:00</updated>
<author>
<name>Volodymyr Chernetskyi</name>
<email>volodymyr_chernetskyi@goodyear.com</email>
</author>
<published>2026-10-16T15:13:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=8d5395ed790b90849d7cac836f63ca7d2fb292b3'/>
<id>8d5395ed790b90849d7cac836f63ca7d2fb292b3</id>
<content type='text'>
Problem:
An empty snippet insertText falls back to the label during selection, but
acceptance clears that label and expands an empty string.

Solution:
Require nonempty insertText before expanding a snippet without textEdit.

Extend the omnifunc acceptance fixture with an empty snippet insertion.

AI-assisted</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
An empty snippet insertText falls back to the label during selection, but
acceptance clears that label and expands an empty string.

Solution:
Require nonempty insertText before expanding a snippet without textEdit.

Extend the omnifunc acceptance fixture with an empty snippet insertion.

AI-assisted</pre>
</div>
</content>
</entry>
<entry>
<title>fix(lsp): preserve explicit completion edit ranges #42399</title>
<updated>2026-10-16T14:54:56+00:00</updated>
<author>
<name>Volodymyr Chernetskyi</name>
<email>volodymyr_chernetskyi@goodyear.com</email>
</author>
<published>2026-10-16T14:54:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=36f9bccedc278b8c2bf6e2b3a92f10373f511927'/>
<id>36f9bccedc278b8c2bf6e2b3a92f10373f511927</id>
<content type='text'>
Problem:
A completion list default edit range can replace the explicit range of an
InsertReplaceEdit, filtering out valid items or changing their replacement.

Solution:
Only synthesize a default text edit when the completion item has none.

Extend the existing itemDefaults test for explicit edits with both range variants.

AI-assisted</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
A completion list default edit range can replace the explicit range of an
InsertReplaceEdit, filtering out valid items or changing their replacement.

Solution:
Only synthesize a default text edit when the completion item has none.

Extend the existing itemDefaults test for explicit edits with both range variants.

AI-assisted</pre>
</div>
</content>
</entry>
<entry>
<title>fix(lsp): prefer textEdit for snippet completion text #42400</title>
<updated>2026-10-16T14:35:03+00:00</updated>
<author>
<name>Volodymyr Chernetskyi</name>
<email>volodymyr_chernetskyi@goodyear.com</email>
</author>
<published>2026-10-16T14:35:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=28a17adbb9943c920c4e6600bb47f48328e58617'/>
<id>28a17adbb9943c920c4e6600bb47f48328e58617</id>
<content type='text'>
Problem:
Snippet completion words and previews prefer insertText even when textEdit
is present, although the actual expansion uses textEdit.newText.

Solution:
Use the text edit before the fallback insertion text in both selectors.

Extend the existing precedence test to check the snippet word and preview.

AI-assisted</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
Snippet completion words and previews prefer insertText even when textEdit
is present, although the actual expansion uses textEdit.newText.

Solution:
Use the text edit before the fallback insertion text in both selectors.

Extend the existing precedence test to check the snippet word and preview.

AI-assisted</pre>
</div>
</content>
</entry>
<entry>
<title>fix(health): run provider probes only once #42391</title>
<updated>2026-10-16T09:57:45+00:00</updated>
<author>
<name>Volodymyr Chernetskyi</name>
<email>volodymyr_chernetskyi@goodyear.com</email>
</author>
<published>2026-10-16T09:57:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=d10f02bdc9085adc8dbd9e208540dde0085fae7f'/>
<id>d10f02bdc9085adc8dbd9e208540dde0085fae7f</id>
<content type='text'>
Problem:
Provider checks start and wait for a job, then execute the same command
again to obtain its output. The returned output can disagree with the
first process's exit status, and the second execution has no timeout.

Solution:
Return the first job's captured output. Bind the output callbacks to
their state and preserve line breaks between callback data entries.
Cover invocation count, multiline stdout, and merged stderr.

AI-assisted</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
Provider checks start and wait for a job, then execute the same command
again to obtain its output. The returned output can disagree with the
first process's exit status, and the second execution has no timeout.

Solution:
Return the first job's captured output. Bind the output callbacks to
their state and preserve line breaks between callback data entries.
Cover invocation count, multiline stdout, and merged stderr.

AI-assisted</pre>
</div>
</content>
</entry>
<entry>
<title>test: simplify functional test expectations</title>
<updated>2026-10-05T16:33:44+00:00</updated>
<author>
<name>Lewis Russell</name>
<email>lewis6991@gmail.com</email>
</author>
<published>2026-10-05T14:37:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=483815ab45cf8fc08804e0cfa95b126493a5dd1f'/>
<id>483815ab45cf8fc08804e0cfa95b126493a5dd1f</id>
<content type='text'>
Problem: Repeated default fields and field-by-field assertions obscure
the values that each functional test is meant to check.

Solution: Add eq_partial() to check selected record fields while
preserving list length and order. Use local helpers to fill fixed
expected defaults where tests need full equality. Keep explicit absence
checks and test-specific values at the call sites.

AI-assisted
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem: Repeated default fields and field-by-field assertions obscure
the values that each functional test is meant to check.

Solution: Add eq_partial() to check selected record fields while
preserving list length and order. Use local helpers to fill fixed
expected defaults where tests need full equality. Keep explicit absence
checks and test-specific values at the call sites.

AI-assisted
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(lsp): support client_id in vim.lsp.completion.get() #42189</title>
<updated>2026-10-03T19:29:48+00:00</updated>
<author>
<name>glepnir</name>
<email>glephunter@gmail.com</email>
</author>
<published>2026-10-03T19:29:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=e244a2adcabac6d59b352a8f069b4d7200368bb3'/>
<id>e244a2adcabac6d59b352a8f069b4d7200368bb3</id>
<content type='text'>
Problem:
vim.lsp.completion.get() always asks every client that has completion
enabled in the buffer, so a mapping cannot ask just some of them.

Solution:
Add a "client_id" option that limits the request to the given client,
or clients if it is a list.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
vim.lsp.completion.get() always asks every client that has completion
enabled in the buffer, so a mapping cannot ask just some of them.

Solution:
Add a "client_id" option that limits the request to the given client,
or clients if it is a list.</pre>
</div>
</content>
</entry>
<entry>
<title>fix(pack): ignore inherited GIT_INDEX_FILE #42114</title>
<updated>2026-09-30T21:01:29+00:00</updated>
<author>
<name>Jake Wang</name>
<email>jakezwang@users.noreply.github.com</email>
</author>
<published>2026-09-30T21:01:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=099f5ec89ad7a2e1270eeb55557e52609e5bd3f6'/>
<id>099f5ec89ad7a2e1270eeb55557e52609e5bd3f6</id>
<content type='text'>
Problem:
An inherited Git index can leave a plugin checkout empty or prevent
updates.

Solution:
Clear GIT_INDEX_FILE for plugin Git commands. Verify installs and
updates preserve the caller environment and index.

AI-assisted
Signed-off-by: Jake Wang &lt;jakezwang@users.noreply.github.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
An inherited Git index can leave a plugin checkout empty or prevent
updates.

Solution:
Clear GIT_INDEX_FILE for plugin Git commands. Verify installs and
updates preserve the caller environment and index.

AI-assisted
Signed-off-by: Jake Wang &lt;jakezwang@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #42134 from lewis6991/emmylua</title>
<updated>2026-09-30T08:29:34+00:00</updated>
<author>
<name>Lewis Russell</name>
<email>lewis6991@gmail.com</email>
</author>
<published>2026-09-30T08:29:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=eb601cda5f2b20536b56f3d55ffa0d0ab90b8c26'/>
<id>eb601cda5f2b20536b56f3d55ffa0d0ab90b8c26</id>
<content type='text'>
fix(lua): enable param-type-mismatch diagnostic</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
fix(lua): enable param-type-mismatch diagnostic</pre>
</div>
</content>
</entry>
<entry>
<title>fix(lsp): preserve completion state on buffer reload #42135</title>
<updated>2026-09-29T23:18:34+00:00</updated>
<author>
<name>Barrett Ruth</name>
<email>62671086+barrettruth@users.noreply.github.com</email>
</author>
<published>2026-09-29T23:18:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=4e18828f119d7539bfdf9686b8b2758b2e615523'/>
<id>4e18828f119d7539bfdf9686b8b2758b2e615523</id>
<content type='text'>
Problem:
After an LSP client restart, the completion reload callback can use an old
client ID:

    autoread: :checktime failed for buffer 17: Vim:Lua callback:
    ...ed-95df8c0/share/nvim/runtime/lua/vim/lsp/completion.lua:1315: invalid client ID

Solution:
Use the completion augroup for `BufUnload` cleanup.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
After an LSP client restart, the completion reload callback can use an old
client ID:

    autoread: :checktime failed for buffer 17: Vim:Lua callback:
    ...ed-95df8c0/share/nvim/runtime/lua/vim/lsp/completion.lua:1315: invalid client ID

Solution:
Use the completion augroup for `BufUnload` cleanup.</pre>
</div>
</content>
</entry>
</feed>
