vim.version
Methods10
function M.last<T>(versions: T[]) -> T | nil
TODO: generalize this, move to func.lua
function M.range(spec: string) -> vim.VersionRange | nil
Parses a semver |version-range| "spec" and returns |vim.VersionRange| object:
specstringVersion range "spec"
- vim.VersionRange | nil
@since 11
function M.intersect(r1: vim.VersionRange, r2: vim.VersionRange) -> Maximal vim.VersionRange | nil
Computes the common range shared by the given ranges.
r1vim.VersionRangeFirst range to intersect.
r2vim.VersionRangeSecond range to intersect.
Maximalvim.VersionRange | nilrange that is present inside both
r1andr2.nilif such range does not exist.
@since 14
function M.cmp(v1: vim.Version | number[] | string, v2: vim.Version | number[] | string) -> if sub<integer,1>
Parses and compares two version objects (the result of |vim.version.parse()|, or specified literally as a {major, minor, patch} tuple, e.g. {1, 0, 3}).
Example:
if vim.version.cmp({1,0,3}, {0,2,1}) == 0 then
-- ...
end
local v1 = vim.version.parse('1.0.3-pre')
local v2 = vim.version.parse('0.2.1')
if vim.version.cmp(v1, v2) == 0 then
-- ...
end
v1vim.Version | number[] | stringVersion object.
v2vim.Version | number[] | stringVersion to compare with
v1.
ifsub<integer,1>v1 < v2, 0 ifv1 == v2, 1 ifv1 > v2.
@note Per semver, build metadata is ignored when comparing two otherwise-equivalent versions. @since 11
function M.eq(v1: vim.Version | number[] | string, v2: vim.Version | number[] | string) -> boolean
Returns true if the given versions are equal. See |vim.version.cmp()| for usage.
@since 11
function M.le(v1: vim.Version | number[] | string, v2: vim.Version | number[] | string) -> boolean
Returns true if v1 <= v2. See |vim.version.cmp()| for usage.
@since 12
function M.lt(v1: vim.Version | number[] | string, v2: vim.Version | number[] | string) -> boolean
Returns true if v1 < v2. See |vim.version.cmp()| for usage.
@since 11
function M.ge(v1: vim.Version | number[] | string, v2: vim.Version | number[] | string) -> boolean
Returns true if v1 >= v2. See |vim.version.cmp()| for usage.
@since 12
function M.gt(v1: vim.Version | number[] | string, v2: vim.Version | number[] | string) -> boolean
Returns true if v1 > v2. See |vim.version.cmp()| for usage.
@since 11
function M.parse(version: string, opts: vim.version.parse.Opts | nil) -> vim.Version | nil
Parses a semantic version string and returns a version object which can be used with other vim.version functions. For example "1.0.1-rc1+build.2" returns:
{ major = 1, minor = 0, patch = 1, prerelease = "rc1", build = "build.2" }
versionstringVersion string to parse.
optsvim.version.parse.Opts | nilOptions for parsing.
- vim.Version | nil
Versionobject ornilif input is invalid.
https://semver.org/spec/v2.0.0.html
@since 11