commit 24a1c7f556bba35a9c31c2fdd19cf4b8c00a4395
parent 453fffde16fe25b818a77eefc7e8e138a00aaf61
Author: Folke Lemaitre <folke.lemaitre@gmail.com>
Date: Wed, 28 Sep 2022 09:11:21 +0200
feat: added support for optional params to lua2dox
Diffstat:
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/runtime/lua/vim/shared.lua b/runtime/lua/vim/shared.lua
@@ -417,8 +417,8 @@ end
---@generic T: table
---@param dst T List which will be modified and appended to
---@param src table List from which values will be inserted
----@param start number|nil Start index on src. Defaults to 1
----@param finish number|nil Final index on src. Defaults to `#src`
+---@param start? number Start index on src. Defaults to 1
+---@param finish? number Final index on src. Defaults to `#src`
---@return T dst
function vim.list_extend(dst, src, start, finish)
vim.validate({
diff --git a/scripts/lua2dox.lua b/scripts/lua2dox.lua
@@ -410,7 +410,7 @@ function TLua2DoX_filter.readfile(this,AppStamp,Filename)
local magic_split = string_split(magic, ' ')
if magic_split[1] == "generic" then
- local generic_name, generic_type = line:match("@generic%s*(%w+)%s*:?%s*(.*)")
+ local generic_name, generic_type = line:match("@generic%s*(%w+)%s*:?%s*(.*)")
if generic_type == "" then
generic_type = "any"
end
@@ -420,6 +420,10 @@ function TLua2DoX_filter.readfile(this,AppStamp,Filename)
local type_index = 2
if magic_split[1] == 'param' then
type_index = type_index + 1
+ if magic_split[type_index] and magic_split[2]:find("%?$") then
+ magic_split[type_index] = magic_split[type_index] .. "|nil"
+ magic_split[2] = magic_split[2]:sub(1, -2)
+ end
end
if magic_split[type_index] then