summaryrefslogtreecommitdiff
path: root/script-beta/parser/luadoc.lua
diff options
context:
space:
mode:
author最萌小汐 <sumneko@hotmail.com>2020-10-31 15:05:00 +0800
committer最萌小汐 <sumneko@hotmail.com>2020-10-31 15:05:00 +0800
commit709d4d828978ecd787dbbf108b04e985c4afc0a4 (patch)
treef2184e5193a0291cddfe8eaf56cf771f89041da7 /script-beta/parser/luadoc.lua
parent1ce3f9689ff1b072385b7af69c588f951f2d4098 (diff)
downloadlua-language-server-709d4d828978ecd787dbbf108b04e985c4afc0a4.zip
doc.type.function 支持 ?
Diffstat (limited to 'script-beta/parser/luadoc.lua')
-rw-r--r--script-beta/parser/luadoc.lua11
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()