commit 4034476dd362b577024cfe6cac011ed82ef1ef38
parent d6d1bfd20da05e8bd40441ecdc0ac75af66f77eb
Author: James Trew <66286082+jamestrew@users.noreply.github.com>
Date: Mon, 30 Jun 2025 12:55:29 -0400
doc(vim.version): options formatting #34716
Diffstat:
2 files changed, 17 insertions(+), 12 deletions(-)
diff --git a/runtime/doc/lua.txt b/runtime/doc/lua.txt
@@ -4044,15 +4044,14 @@ vim.version.parse({version}, {opts}) *vim.version.parse()*
Parameters: ~
• {version} (`string`) Version string to parse.
- • {opts} (`table?`) Optional keyword arguments:
- • strict (boolean): Default false. If `true`, no coercion
- is attempted on input not conforming to semver v2.0.0. If
- `false`, `parse()` attempts to coerce input such as
- "1.0", "0-x", "tmux 3.2a" into valid versions.
+ • {opts} (`table?`) Options for parsing.
+ • {strict}? (`boolean`, default: `false`) If `true`, no
+ coercion is attempted on input not conforming to semver
+ v2.0.0. If `false`, `parse()` attempts to coerce input
+ such as "1.0", "0-x", "tmux 3.2a" into valid versions.
Return: ~
- (`vim.Version?`) parsed_version Version object or `nil` if input is
- invalid.
+ (`vim.Version?`) `Version` object or `nil` if input is invalid.
See also: ~
• https://semver.org/spec/v2.0.0.html
diff --git a/runtime/lua/vim/version.lua b/runtime/lua/vim/version.lua
@@ -435,6 +435,15 @@ function M.gt(v1, v2)
return M.cmp(v1, v2) == 1
end
+---@class vim.version.parse.Opts
+---@inlinedoc
+---
+--- If `true`, no coercion is attempted on input not conforming to semver v2.0.0.
+--- If `false`, `parse()` attempts to coerce input such as "1.0", "0-x", "tmux 3.2a" into valid
+--- versions.
+--- (default: `false`)
+---@field strict? boolean
+
--- 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:
---
@@ -446,11 +455,8 @@ end
---@since 11
---
---@param version string Version string to parse.
----@param opts table|nil Optional keyword arguments:
---- - strict (boolean): Default false. If `true`, no coercion is attempted on
---- input not conforming to semver v2.0.0. If `false`, `parse()` attempts to
---- coerce input such as "1.0", "0-x", "tmux 3.2a" into valid versions.
----@return vim.Version? parsed_version Version object or `nil` if input is invalid.
+---@param opts vim.version.parse.Opts? Options for parsing.
+---@return vim.Version? # `Version` object or `nil` if input is invalid.
function M.parse(version, opts)
assert(type(version) == 'string', create_err_msg(version))
opts = opts or { strict = false }