diff options
author | 最萌小汐 <sumneko@hotmail.com> | 2020-10-31 15:05:00 +0800 |
---|---|---|
committer | 最萌小汐 <sumneko@hotmail.com> | 2020-10-31 15:05:00 +0800 |
commit | 709d4d828978ecd787dbbf108b04e985c4afc0a4 (patch) | |
tree | f2184e5193a0291cddfe8eaf56cf771f89041da7 /script-beta/parser/luadoc.lua | |
parent | 1ce3f9689ff1b072385b7af69c588f951f2d4098 (diff) | |
download | lua-language-server-709d4d828978ecd787dbbf108b04e985c4afc0a4.zip |
doc.type.function 支持 ?
Diffstat (limited to 'script-beta/parser/luadoc.lua')
-rw-r--r-- | script-beta/parser/luadoc.lua | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/script-beta/parser/luadoc.lua b/script-beta/parser/luadoc.lua index ad2dea14..ca4ee25d 100644 --- a/script-beta/parser/luadoc.lua +++ b/script-beta/parser/luadoc.lua @@ -52,6 +52,7 @@ Symbol <- ({} { / '>' / '(' / ')' + / '?' } {}) -> Symbol ]], { @@ -291,6 +292,10 @@ local function parseTypeUnitFunction() if not arg.extends then break end + if checkToken('symbol', '?', 1) then + nextToken() + arg.optional = true + end arg.finish = getFinish() typeUnit.args[#typeUnit.args+1] = arg if checkToken('symbol', ',', 1) then @@ -303,10 +308,14 @@ local function parseTypeUnitFunction() if checkToken('symbol', ':', 1) then nextToken() while true do - local rtn = parseType(arg) + local rtn = parseType(typeUnit) if not rtn then break end + if checkToken('symbol', '?', 1) then + nextToken() + rtn.optional = true + end typeUnit.returns[#typeUnit.returns+1] = rtn if checkToken('symbol', ',', 1) then nextToken() |