diff options
author | 最萌小汐 <sumneko@hotmail.com> | 2018-12-28 15:42:22 +0800 |
---|---|---|
committer | 最萌小汐 <sumneko@hotmail.com> | 2018-12-28 15:42:22 +0800 |
commit | d0cad6f25ede39e95ae4486a24abba643b0860fb (patch) | |
tree | 6e366fc236af2c6e7e753010af95318af6e9849d /server/src/core/hover.lua | |
parent | 224c6b3c4c33402398805d2f04cff6d259bd98e3 (diff) | |
download | lua-language-server-d0cad6f25ede39e95ae4486a24abba643b0860fb.zip |
整理代码
Diffstat (limited to 'server/src/core/hover.lua')
-rw-r--r-- | server/src/core/hover.lua | 73 |
1 files changed, 1 insertions, 72 deletions
diff --git a/server/src/core/hover.lua b/server/src/core/hover.lua index 02671eed..627a64f5 100644 --- a/server/src/core/hover.lua +++ b/server/src/core/hover.lua @@ -1,4 +1,5 @@ local findLib = require 'core.find_lib' +local getFunctionHover = require 'core.hover_function' local OriginTypes = { ['any'] = true, @@ -219,68 +220,6 @@ local function buildValueName(result, source) return result.key or '' end -local function buildValueArgs(func, source, select) - local names = {} - local values = {} - if func.args then - for i, arg in ipairs(func.args) do - names[i] = arg.key - end - end - if func.argValues then - for i, value in ipairs(func.argValues) do - values[i] = value.type - end - end - local strs = {} - local argLabel - local start = 1 - if source.object then - start = 2 - if select then - select = select + 1 - end - end - local max - if func.built then - max = #names - else - max = math.max(#names, #values) - end - for i = start, max do - local name = names[i] - local value = values[i] or 'any' - if name then - strs[#strs+1] = name .. ': ' .. value - else - strs[#strs+1] = value - end - if i == select then - argLabel = strs[#strs] - end - end - if func.hasDots then - strs[#strs+1] = '...' - end - return table.concat(strs, ', '), argLabel -end - -local function buildValueReturns(func) - if not func.hasReturn then - return '' - end - local strs = {} - if func.returns then - for i, rtn in ipairs(func.returns) do - strs[i] = rtn.type - end - end - if #strs == 0 then - strs[1] = 'any' - end - return '\n -> ' .. table.concat(strs, ', ') -end - local function getFunctionHoverAsLib(name, lib, oo, select) local args, argLabel = buildLibArgs(lib, oo, select) local returns = buildLibReturns(lib) @@ -295,16 +234,6 @@ local function getFunctionHoverAsLib(name, lib, oo, select) } end -local function getFunctionHover(name, func, source, select) - local args, argLabel = buildValueArgs(func, source, select) - local returns = buildValueReturns(func) - local title = ('function %s(%s)%s'):format(name, args, returns) - return { - label = title, - argLabel = argLabel, - } -end - local function findClass(result) -- 根据部分字段尝试找出自定义类型 local metatable = result.value.metatable |