<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rneovim.git/runtime/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>feat(defaults): drop TAB from 'termpastefilter' #42433</title>
<updated>2026-10-17T14:15:28+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2026-10-17T14:15:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=f8b704e019ed8194a5e873773670b263abd3dedf'/>
<id>f8b704e019ed8194a5e873773670b263abd3dedf</id>
<content type='text'>
Problem:
By default, 'termpastefilter' removes TAB chars when pasting to a :terminal.
Very annoying, and does not improve "security".

Solution:
Drop "HT" from the 'termpastefilter' default.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
By default, 'termpastefilter' removes TAB chars when pasting to a :terminal.
Very annoying, and does not improve "security".

Solution:
Drop "HT" from the 'termpastefilter' default.</pre>
</div>
</content>
</entry>
<entry>
<title>fix(snippet): preserve the full TM_DIRECTORY path (#42408)</title>
<updated>2026-10-16T22:18:03+00:00</updated>
<author>
<name>Volodymyr Chernetskyi</name>
<email>volodymyr_chernetskyi@goodyear.com</email>
</author>
<published>2026-10-16T22:18:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=23c4872afa1291632c2b29fa67b5614b0fbe3791'/>
<id>23c4872afa1291632c2b29fa67b5614b0fbe3791</id>
<content type='text'>
Problem:
TM_DIRECTORY expands to the directory's basename, losing its parent path.

Solution:
Remove the tail modifier when expanding the current file's directory.
Extend the existing known-variable test to check the full directory path.

AI-assisted</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
TM_DIRECTORY expands to the directory's basename, losing its parent path.

Solution:
Remove the tail modifier when expanding the current file's directory.
Extend the existing known-variable test to check the full directory path.

AI-assisted</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(watch): extract watchdirs into a class</title>
<updated>2026-10-16T18:29:39+00:00</updated>
<author>
<name>Lewis Russell</name>
<email>lewis6991@gmail.com</email>
</author>
<published>2026-10-06T11:10:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=d2c8b216198968ae810e54716296065f1945b0ca'/>
<id>d2c8b216198968ae810e54716296065f1945b0ca</id>
<content type='text'>
Problem: watchdirs() keeps its state in large nested callbacks in
_watch.lua, which makes its directory tracking logic harder to change.

Solution: Move the backend into its own module and store its state in a
WatchDirs instance. Split setup, event handling and cleanup into
methods. Extend the existing test to cover cancellation while a
directory stat is pending.

AI-assisted
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem: watchdirs() keeps its state in large nested callbacks in
_watch.lua, which makes its directory tracking logic harder to change.

Solution: Move the backend into its own module and store its state in a
WatchDirs instance. Split setup, event handling and cleanup into
methods. Extend the existing test to cover cancellation while a
directory stat is pending.

AI-assisted
</pre>
</div>
</content>
</entry>
<entry>
<title>docs: flow layout</title>
<updated>2026-10-16T17:02:23+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2026-10-16T14:27:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=b83273aefdd9a8bec89210bc76bdd79bafba88f4'/>
<id>b83273aefdd9a8bec89210bc76bdd79bafba88f4</id>
<content type='text'>
Work towards enabling "flow" layout in most `:help` files.

Since [tables are supported in help](https://github.com/neovim/tree-sitter-vimdoc#tables),
it's now possible to render most help files as ["flow" layout](https://github.com/neovim/neovim/blob/9244da12e400ec0291450a5e9400d995e7a29b83/src/gen/gen_help_html.lua#L86-L88)
instead of the legacy fixed-width layout. Besides [improved HTML rendering](https://github.com/neovim/neovim/pull/42381#discussion_r4285705739),
flow layout will allow `:help` presentation-mode to un-hardwrap text
blocks.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Work towards enabling "flow" layout in most `:help` files.

Since [tables are supported in help](https://github.com/neovim/tree-sitter-vimdoc#tables),
it's now possible to render most help files as ["flow" layout](https://github.com/neovim/neovim/blob/9244da12e400ec0291450a5e9400d995e7a29b83/src/gen/gen_help_html.lua#L86-L88)
instead of the legacy fixed-width layout. Besides [improved HTML rendering](https://github.com/neovim/neovim/pull/42381#discussion_r4285705739),
flow layout will allow `:help` presentation-mode to un-hardwrap text
blocks.
</pre>
</div>
</content>
</entry>
<entry>
<title>docs: cleanup invalid help source</title>
<updated>2026-10-16T17:02:23+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2026-10-16T12:46:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=d65f9daf45f8ba1f9a92ab33d59301bff17f4039'/>
<id>d65f9daf45f8ba1f9a92ab33d59301bff17f4039</id>
<content type='text'>
Work towards enabling "flow" layout in most `:help` files.

Since [tables are supported in help](https://github.com/neovim/tree-sitter-vimdoc#tables),
it's now possible to render most help files as ["flow" layout](https://github.com/neovim/neovim/blob/9244da12e400ec0291450a5e9400d995e7a29b83/src/gen/gen_help_html.lua#L86-L88)
instead of the legacy fixed-width layout. Besides [improved HTML rendering](https://github.com/neovim/neovim/pull/42381#discussion_r4285705739),
flow layout will allow `:help` presentation-mode to un-hardwrap text
blocks.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Work towards enabling "flow" layout in most `:help` files.

Since [tables are supported in help](https://github.com/neovim/tree-sitter-vimdoc#tables),
it's now possible to render most help files as ["flow" layout](https://github.com/neovim/neovim/blob/9244da12e400ec0291450a5e9400d995e7a29b83/src/gen/gen_help_html.lua#L86-L88)
instead of the legacy fixed-width layout. Besides [improved HTML rendering](https://github.com/neovim/neovim/pull/42381#discussion_r4285705739),
flow layout will allow `:help` presentation-mode to un-hardwrap text
blocks.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(diagnostic): use logical positions for counted jumps #42394</title>
<updated>2026-10-16T15:16:20+00:00</updated>
<author>
<name>Volodymyr Chernetskyi</name>
<email>volodymyr_chernetskyi@goodyear.com</email>
</author>
<published>2026-10-16T15:16:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=4bbc08553f035911e591913f4253163c4e5c0985'/>
<id>4bbc08553f035911e591913f4253163c4e5c0985</id>
<content type='text'>
Problem:
After edits move diagnostic ranges, counted jumps resume searching from
their original positions. This can revisit the same diagnostic and hang
the default first/last diagnostic mappings.

Solution:
Advance the search origin using the diagnostic's current logical position.
Test forward and backward counted jumps after inserting or deleting a
line, including jumps to the last or first diagnostic without wrapping.

AI-assisted</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
After edits move diagnostic ranges, counted jumps resume searching from
their original positions. This can revisit the same diagnostic and hang
the default first/last diagnostic mappings.

Solution:
Advance the search origin using the diagnostic's current logical position.
Test forward and backward counted jumps after inserting or deleting a
line, including jumps to the last or first diagnostic without wrapping.

AI-assisted</pre>
</div>
</content>
</entry>
<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>
</feed>
