mirror of
https://github.com/neovim/neovim.git
synced 2025-10-20 16:51:48 +00:00
Merge #23954 vim.version() returns Version object
This commit is contained in:
@@ -226,13 +226,11 @@ function Range:has(version)
|
||||
if type(version) == 'string' then
|
||||
---@diagnostic disable-next-line: cast-local-type
|
||||
version = M.parse(version)
|
||||
else
|
||||
elseif getmetatable(version) ~= Version then
|
||||
-- Need metatable to compare versions.
|
||||
version = setmetatable(vim.deepcopy(version), Version)
|
||||
end
|
||||
if version then
|
||||
-- Workaround: vim.version() reports "prerelease" as a boolean.
|
||||
version.prerelease = version.prerelease or nil
|
||||
if version.prerelease ~= self.from.prerelease then
|
||||
return false
|
||||
end
|
||||
@@ -423,8 +421,12 @@ function M.parse(version, opts)
|
||||
end
|
||||
|
||||
setmetatable(M, {
|
||||
--- Returns the current Nvim version.
|
||||
__call = function()
|
||||
return vim.fn.api_info().version
|
||||
local version = vim.fn.api_info().version
|
||||
-- Workaround: vim.fn.api_info().version reports "prerelease" as a boolean.
|
||||
version.prerelease = version.prerelease and 'dev' or nil
|
||||
return setmetatable(version, Version)
|
||||
end,
|
||||
})
|
||||
|
||||
|
@@ -17,6 +17,18 @@ describe('version', function()
|
||||
eq({ major = 42, minor = 3, patch = 99 }, exec_lua("return vim.version.parse('v42.3.99')"))
|
||||
end)
|
||||
|
||||
it('version() returns Nvim version', function()
|
||||
local expected = exec_lua('return vim.fn.api_info().version')
|
||||
local actual = exec_lua('return vim.version()')
|
||||
eq(expected.major, actual.major)
|
||||
eq(expected.minor, actual.minor)
|
||||
eq(expected.patch, actual.patch)
|
||||
eq(expected.prerelease and 'dev' or nil, actual.prerelease)
|
||||
|
||||
-- tostring() #23863
|
||||
matches([[%d+%.%d+%.%d+]], exec_lua('return tostring(vim.version())'))
|
||||
end)
|
||||
|
||||
describe('_version()', function()
|
||||
local tests = {
|
||||
['v1.2.3'] = { major = 1, minor = 2, patch = 3 },
|
||||
|
Reference in New Issue
Block a user