<feed xmlns='http://www.w3.org/2005/Atom'>
<title>neovim/runtime/lua/vim/version.lua, branch master</title>
<subtitle>Vim-fork focused on extensibility and usability</subtitle>
<id>http://git.waynecole.info/neovim/atom?h=master</id>
<link rel='self' href='http://git.waynecole.info/neovim/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/'/>
<updated>2026-04-08T17:33:00Z</updated>
<entry>
<title>feat(vim.version): add __eq to vim.VersionRange #38881</title>
<updated>2026-04-08T17:33:00Z</updated>
<author>
<name>ngicks</name>
<email>94618820+ngicks@users.noreply.github.com</email>
</author>
<published>2026-04-08T17:33:00Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=a165eee64fa628045241b200d150b0f1e7737301'/>
<id>urn:sha1:a165eee64fa628045241b200d150b0f1e7737301</id>
<content type='text'>
Problem: vim.VersionRange had no __eq metamethod, so comparing 2 distinct
but same value instances always returned false. In vim.pack.add this caused
redundant lockfile rewrites, even when the resulting lockfile content was
unchanged.

Solution: Add __eq metamethod on vim.VersionRange</content>
</entry>
<entry>
<title>refactor: rename _ensure_integer =&gt; _assert_integer</title>
<updated>2026-03-13T19:32:01Z</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2026-03-12T16:10:00Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=017d8aa298254f887a2df1983039f3d678d3ed1a'/>
<id>urn:sha1:017d8aa298254f887a2df1983039f3d678d3ed1a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: integer functions, optimize asserts #34112</title>
<updated>2026-03-12T15:04:05Z</updated>
<author>
<name>Lewis Russell</name>
<email>lewis6991@gmail.com</email>
</author>
<published>2026-03-12T15:04:05Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=ce1154048b11cdc402d0e5da352a3adca19afb56'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>refactor(lua): use vim.system #34707</title>
<updated>2025-07-24T03:03:30Z</updated>
<author>
<name>Yochem van Rosmalen</name>
<email>git@yochem.nl</email>
</author>
<published>2025-07-24T03:03:30Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=35af766de6ee2436a4b24495fb862383d16b419d'/>
<id>urn:sha1:35af766de6ee2436a4b24495fb862383d16b419d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge #34715 vim.version improvements</title>
<updated>2025-07-01T11:19:42Z</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2025-07-01T11:19:42Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=f731766474901e5e345e0ca630315ef69122e556'/>
<id>urn:sha1:f731766474901e5e345e0ca630315ef69122e556</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat(vim.version): add `vim.version.intersect()`</title>
<updated>2025-06-30T17:59:44Z</updated>
<author>
<name>Evgeni Chasnovski</name>
<email>evgeni.chasnovski@gmail.com</email>
</author>
<published>2025-06-30T13:08:39Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=773075b2bce8f2193343c0efa73f02b1f370dc67'/>
<id>urn:sha1:773075b2bce8f2193343c0efa73f02b1f370dc67</id>
<content type='text'>
Problem: No way to compute intersection of two version ranges, which is
useful when computing version range that fits inside several reference
ranges.

Solution: Add `vim.version.intersect()`.
</content>
</entry>
<entry>
<title>fix(vim.version): improve construction of '&lt;=a.b.c' and '&gt;a.b.c' ranges</title>
<updated>2025-06-30T17:59:12Z</updated>
<author>
<name>Evgeni Chasnovski</name>
<email>evgeni.chasnovski@gmail.com</email>
</author>
<published>2025-06-30T13:08:37Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=649ff924d990003e9d9338d964a206e7c7a5c144'/>
<id>urn:sha1:649ff924d990003e9d9338d964a206e7c7a5c144</id>
<content type='text'>
Problem: `vim.version.range('&lt;=a.b.c')` is not precise when it comes to
its right hand side. This is due to version ranges using exclusive right
hand side. While `vim.version.range('&gt;a.b.c')` is not precise when it
comes to its left hand side because left hand sides are inclusive.

Solution: For '&gt;=a.b.c' increase `to` from 'a.b.c' to the smallest
reasonable version that is bigger than 'a.b.c'. For '&lt;a.b.c' do the same
for `from`.
More proper solution is an explicit control over inclusivity of version
range sides, but it has more side effects and requires design decisions.
</content>
</entry>
<entry>
<title>doc(vim.version): options formatting #34716</title>
<updated>2025-06-30T16:55:29Z</updated>
<author>
<name>James Trew</name>
<email>66286082+jamestrew@users.noreply.github.com</email>
</author>
<published>2025-06-30T16:55:29Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=4034476dd362b577024cfe6cac011ed82ef1ef38'/>
<id>urn:sha1:4034476dd362b577024cfe6cac011ed82ef1ef38</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat(vim.version): make `tostring()` return human-readable version range</title>
<updated>2025-06-30T13:08:56Z</updated>
<author>
<name>Evgeni Chasnovski</name>
<email>evgeni.chasnovski@gmail.com</email>
</author>
<published>2025-06-30T13:08:35Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=aeb8bca12ddfe741569df622ef0cbc90211a6064'/>
<id>urn:sha1:aeb8bca12ddfe741569df622ef0cbc90211a6064</id>
<content type='text'>
Problem: `tostring()` applied to version range doesn't return
human-readable text with information about the range.

Solution: Add `__tostring()` method.
</content>
</entry>
<entry>
<title>docs(vim.version): document `vim.VersionRange` as a dedicated class</title>
<updated>2025-06-30T13:08:30Z</updated>
<author>
<name>Evgeni Chasnovski</name>
<email>evgeni.chasnovski@gmail.com</email>
</author>
<published>2025-06-30T13:08:30Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=561021bacd8e9f4acc01efe99b03c70e5dd8accb'/>
<id>urn:sha1:561021bacd8e9f4acc01efe99b03c70e5dd8accb</id>
<content type='text'>
</content>
</entry>
</feed>
