From ecdb6465e272119f80f3b68a6695e0f74b02ca49 Mon Sep 17 00:00:00 2001 From: Gianmaria Bajo Date: Wed, 7 Jun 2023 14:28:44 +0200 Subject: feat: vim.version() returns a Version object - vim.version() returns a Version object. Makes it printable and removes the need of workarounds when passing it to other vim.version methods. --- runtime/lua/vim/version.lua | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'runtime/lua/vim') diff --git a/runtime/lua/vim/version.lua b/runtime/lua/vim/version.lua index d4a3752e37..5578423453 100644 --- a/runtime/lua/vim/version.lua +++ b/runtime/lua/vim/version.lua @@ -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 or nil + return setmetatable(version, Version) end, }) -- cgit From e6887932539315e02621edb77d5e77c7c2a0b033 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Mon, 12 Jun 2023 01:14:33 +0200 Subject: feat: tostring(vim.version()) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Problem: tostring(vim.version()) returns "table: 0x…". Solution: Modify vim.version() to return a string prerelease instead of a boolean. Fix #23863 --- runtime/lua/vim/version.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'runtime/lua/vim') diff --git a/runtime/lua/vim/version.lua b/runtime/lua/vim/version.lua index 5578423453..92250ff1f8 100644 --- a/runtime/lua/vim/version.lua +++ b/runtime/lua/vim/version.lua @@ -425,7 +425,7 @@ setmetatable(M, { __call = function() local version = vim.fn.api_info().version -- Workaround: vim.fn.api_info().version reports "prerelease" as a boolean. - version.prerelease = version.prerelease or nil + version.prerelease = version.prerelease and 'dev' or nil return setmetatable(version, Version) end, }) -- cgit