<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rneovim.git/test/functional/lua/hl_spec.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(vim.hl): convert finish column independently #41618</title>
<updated>2026-09-02T11:45:52+00:00</updated>
<author>
<name>Volodymyr Chernetskyi</name>
<email>volodymyr_chernetskyi@goodyear.com</email>
</author>
<published>2026-09-02T11:45:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=1c31526a90d342253d07cb4e672361baf867be9e'/>
<id>1c31526a90d342253d07cb4e672361baf867be9e</id>
<content type='text'>
Problem:
Coordinates-to-position conversion for the finish column in
`vim.hl.range()` checks the start column. This results in an incorrect
finish column when only one of the column coordinates is `vim.v.maxcol`.

Solution:
Check the finish column when converting the finish position. Update the
existing screen test so that a `vim.v.maxcol` finish highlights the
end-of-line marker, matching the existing `-1` behavior.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
Coordinates-to-position conversion for the finish column in
`vim.hl.range()` checks the start column. This results in an incorrect
finish column when only one of the column coordinates is `vim.v.maxcol`.

Solution:
Check the finish column when converting the finish position. Update the
existing screen test so that a `vim.v.maxcol` finish highlights the
end-of-line marker, matching the existing `-1` behavior.</pre>
</div>
</content>
</entry>
<entry>
<title>test(harness): migrate away from magic globals</title>
<updated>2026-07-21T11:22:39+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2026-07-20T15:16:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=6d8c8b18d551d0be0490640c00fabb816727ec10'/>
<id>6d8c8b18d551d0be0490640c00fabb816727ec10</id>
<content type='text'>
Problem:
The magic globals `it`, `describe`, etc., are more trouble than they are
worth.

- Hooking into `after_each` requires `getfenv()` hacks.
- They confuse luals/emmylua, because the top-level `.luarc.json` isn't
  merged with `test/.luarc.json` (apparently a luals limitation?)
- They totally defeat discoverability because the user just has to
  "know" about the various magic symbols.

So they harm DX, which means they serve no purpose at all.

Solution:
- Expose the test API from `testutil`, so tests can call `t.it()`,
  `t.describe()`, etc., in the conventional way.
- Drop `getfenv()` hacks.
- Drop the `setfenv()` injection in `load_chunk`.
- Drop `test/_meta.lua`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
The magic globals `it`, `describe`, etc., are more trouble than they are
worth.

- Hooking into `after_each` requires `getfenv()` hacks.
- They confuse luals/emmylua, because the top-level `.luarc.json` isn't
  merged with `test/.luarc.json` (apparently a luals limitation?)
- They totally defeat discoverability because the user just has to
  "know" about the various magic symbols.

So they harm DX, which means they serve no purpose at all.

Solution:
- Expose the test API from `testutil`, so tests can call `t.it()`,
  `t.describe()`, etc., in the conventional way.
- Drop `getfenv()` hacks.
- Drop the `setfenv()` injection in `load_chunk`.
- Drop `test/_meta.lua`.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(vim.hl): range(0,…) highlight not cleared after buffer-switch #40130</title>
<updated>2026-06-06T10:26:12+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2026-06-06T10:26:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=ec7dab077bf6bf53794f2bc42010c977687094a6'/>
<id>ec7dab077bf6bf53794f2bc42010c977687094a6</id>
<content type='text'>
Problem:
When `vim.hl.range(0, …, { timeout = N })` is called, the deferred
`range_hl_clear` captures `buf=0`, which resolves to an arbitrary
"current buffer" at timeout. This may cause a stale highlight that never
gets cleared.

Solution:
Resolve `buf=0` explicitly, before `range_hl_clear` captures it.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
When `vim.hl.range(0, …, { timeout = N })` is called, the deferred
`range_hl_clear` captures `buf=0`, which resolves to an arbitrary
"current buffer" at timeout. This may cause a stale highlight that never
gets cleared.

Solution:
Resolve `buf=0` explicitly, before `range_hl_clear` captures it.</pre>
</div>
</content>
</entry>
<entry>
<title>feat(vim.hl): vim.hl.hl_op() #39777</title>
<updated>2026-05-17T13:56:37+00:00</updated>
<author>
<name>Ayose C.</name>
<email>ayosec@gmail.com</email>
</author>
<published>2026-05-17T13:56:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=3ace049c6a4d0580a0bcb485a30e8613c8a6b149'/>
<id>3ace049c6a4d0580a0bcb485a30e8613c8a6b149</id>
<content type='text'>
Problem:
vim.hl.on_yank() only works for TextYankPost, not TextPutPost.

Solution:
Introduce hl_op().
Deprecate on_yank().</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
vim.hl.on_yank() only works for TextYankPost, not TextPutPost.

Solution:
Introduce hl_op().
Deprecate on_yank().</pre>
</div>
</content>
</entry>
<entry>
<title>fix(vim.hl): nvim_buf_del_extmark on invalid buffer #33331</title>
<updated>2025-04-05T22:56:40+00:00</updated>
<author>
<name>phanium</name>
<email>91544758+phanen@users.noreply.github.com</email>
</author>
<published>2025-04-05T22:56:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=28e819018520a2300eaeeec6794ffcd614b25dd2'/>
<id>28e819018520a2300eaeeec6794ffcd614b25dd2</id>
<content type='text'>
Problem:
nvim_buf_del_extmark error if buffer is destroyed before timer stops

Solution:
check nvim_buf_is_valid.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
nvim_buf_del_extmark error if buffer is destroyed before timer stops

Solution:
check nvim_buf_is_valid.</pre>
</div>
</content>
</entry>
<entry>
<title>test(lua/hl_spec): fix hang on exit with ASAN (#33298)</title>
<updated>2025-04-04T01:19:13+00:00</updated>
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<published>2025-04-04T01:19:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=4ef9dcb1eb7d969687872699d92e0860f3c9ff3a'/>
<id>4ef9dcb1eb7d969687872699d92e0860f3c9ff3a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(vim.hl): allow multiple timed highlights simultaneously #33283</title>
<updated>2025-04-03T14:26:56+00:00</updated>
<author>
<name>Siddhant Agarwal</name>
<email>68201519+siddhantdev@users.noreply.github.com</email>
</author>
<published>2025-04-03T14:26:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=eae2d3b145c724e8c801c7c22a2ccc3bde5534eb'/>
<id>eae2d3b145c724e8c801c7c22a2ccc3bde5534eb</id>
<content type='text'>
Problem: Currently vim.hl.range only allows one timed highlight.
Creating another one, removes the old one.

Solution: vim.hl.range now returns a timer and a function. The timer
keeps track of how much time is left in the highlight and the function
allows you to clear it, letting the user decide what to do with old
highlights.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem: Currently vim.hl.range only allows one timed highlight.
Creating another one, removes the old one.

Solution: vim.hl.range now returns a timer and a function. The timer
keeps track of how much time is left in the highlight and the function
allows you to clear it, letting the user decide what to do with old
highlights.</pre>
</div>
</content>
</entry>
<entry>
<title>fix(lua): vim.hl.on_yank highlights wrong region with yi' (#32850)</title>
<updated>2025-03-13T01:11:08+00:00</updated>
<author>
<name>phanium</name>
<email>91544758+phanen@users.noreply.github.com</email>
</author>
<published>2025-03-13T01:11:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=d832518ec6b4604c27d8ce9c9587a4641f2337fe'/>
<id>d832518ec6b4604c27d8ce9c9587a4641f2337fe</id>
<content type='text'>
Problem: yi' don't highlight last character since
https://github.com/neovim/neovim/commit/8ce504820af04194a41acbe1f4c61cf12bd5feb5.

Solution: Always use `opts.inclusive=true`, since calculation of `"]`
(`b_op_end`) have taken `inclusive` into account.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem: yi' don't highlight last character since
https://github.com/neovim/neovim/commit/8ce504820af04194a41acbe1f4c61cf12bd5feb5.

Solution: Always use `opts.inclusive=true`, since calculation of `"]`
(`b_op_end`) have taken `inclusive` into account.</pre>
</div>
</content>
</entry>
<entry>
<title>test(lua/hl_spec): fix hang on exit with ASAN (#32508)</title>
<updated>2025-02-18T13:22:46+00:00</updated>
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<published>2025-02-18T13:22:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=5d03060743da195ad2942201eed16708377c1a43'/>
<id>5d03060743da195ad2942201eed16708377c1a43</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>test(lua/hl_spec): reduce flakiness (#32489)</title>
<updated>2025-02-17T02:32:35+00:00</updated>
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<published>2025-02-17T02:32:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=5e7801329f5b1d7dc6523beb9b60a2bda19e7da1'/>
<id>5e7801329f5b1d7dc6523beb9b60a2bda19e7da1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
