diff options
author | 最萌小汐 <sumneko@hotmail.com> | 2023-04-25 16:57:52 +0800 |
---|---|---|
committer | 最萌小汐 <sumneko@hotmail.com> | 2023-04-25 16:57:52 +0800 |
commit | 71885b139cdae9f3d65268278882bd4793f4fe24 (patch) | |
tree | cf629bf48b8dfcf5652f1cbc150f1c5c50689011 | |
parent | 1c2ea3463e3dc07a9cf43947677169aaeada164e (diff) | |
download | lua-language-server-71885b139cdae9f3d65268278882bd4793f4fe24.zip |
export name and comment in returns
-rw-r--r-- | script/cli/doc.lua | 7 | ||||
-rw-r--r-- | script/core/hover/description.lua | 3 | ||||
-rw-r--r-- | script/vm/compiler.lua | 5 |
3 files changed, 15 insertions, 0 deletions
diff --git a/script/cli/doc.lua b/script/cli/doc.lua index efaa70c8..c643deea 100644 --- a/script/cli/doc.lua +++ b/script/cli/doc.lua @@ -59,6 +59,13 @@ local function packObject(source, mark) end new['view'] = getLabel(source, source.parent.type == 'setmethod') end + if source.type == 'local' + or source.type == 'self' then + new['name'] = source[1] + end + if source.type == 'function.return' then + new['desc'] = source.comment and getDesc(source.comment) + end if source.type == 'doc.type.table' then new['fields'] = packObject(source.fields, mark) end diff --git a/script/core/hover/description.lua b/script/core/hover/description.lua index d515313b..f5890b21 100644 --- a/script/core/hover/description.lua +++ b/script/core/hover/description.lua @@ -512,6 +512,9 @@ return function (source) if source.type == 'string' then return asString(source) end + if source.type == 'doc.tailcomment' then + return source.text + end if source.type == 'field' then source = source.parent end diff --git a/script/vm/compiler.lua b/script/vm/compiler.lua index 8487ec56..d4309cc9 100644 --- a/script/vm/compiler.lua +++ b/script/vm/compiler.lua @@ -478,6 +478,7 @@ function vm.getReturnOfFunction(func, index) parent = func, returnIndex = index, } + vm.compileNode(func._returns[index]) end return func._returns[index] end @@ -1382,6 +1383,10 @@ local compilerSwitch = util.switch() lastReturn = rtn if rtn.returnIndex == index then hasMarkDoc = true + source.comment = doc.comment + if rtn.name then + source.name = rtn.name[1] + end local hasGeneric if sign then guide.eachSourceType(rtn, 'doc.generic.name', function (src) |