summaryrefslogtreecommitdiff
path: root/script-beta/core/hover/name.lua
diff options
context:
space:
mode:
author最萌小汐 <sumneko@hotmail.com>2020-11-20 21:57:09 +0800
committer最萌小汐 <sumneko@hotmail.com>2020-11-20 21:57:09 +0800
commit4ca61ec457822dd14966afa0752340ae8ce180a1 (patch)
treeae8adb1ad82c717868e551e699fd3cf3bb290089 /script-beta/core/hover/name.lua
parentc63b2e404d8d2bb984afe3678a5ba2b2836380cc (diff)
downloadlua-language-server-4ca61ec457822dd14966afa0752340ae8ce180a1.zip
no longer beta
Diffstat (limited to 'script-beta/core/hover/name.lua')
-rw-r--r--script-beta/core/hover/name.lua101
1 files changed, 0 insertions, 101 deletions
diff --git a/script-beta/core/hover/name.lua b/script-beta/core/hover/name.lua
deleted file mode 100644
index 9ad32e09..00000000
--- a/script-beta/core/hover/name.lua
+++ /dev/null
@@ -1,101 +0,0 @@
-local guide = require 'parser.guide'
-local vm = require 'vm'
-
-local buildName
-
-local function asLocal(source)
- local name = guide.getName(source)
- if not source.attrs then
- return name
- end
- local label = {}
- label[#label+1] = name
- for _, attr in ipairs(source.attrs) do
- label[#label+1] = ('<%s>'):format(attr[1])
- end
- return table.concat(label, ' ')
-end
-
-local function asField(source, oop)
- local class
- if source.node.type ~= 'getglobal' then
- class = vm.getClass(source.node, 'deep')
- end
- local node = class or guide.getName(source.node) or '?'
- local method = guide.getName(source)
- if oop then
- return ('%s:%s'):format(node, method)
- else
- return ('%s.%s'):format(node, method)
- end
-end
-
-local function asTableField(source)
- if not source.field then
- return
- end
- return guide.getName(source.field)
-end
-
-local function asGlobal(source)
- return guide.getName(source)
-end
-
-local function asDocFunction(source)
- local doc = guide.getParentType(source, 'doc.type')
- or guide.getParentType(source, 'doc.overload')
- if not doc or not doc.bindSources then
- return ''
- end
- for _, src in ipairs(doc.bindSources) do
- local name = buildName(src)
- if name ~= '' then
- return name
- end
- end
- return ''
-end
-
-local function asDocField(source)
- return source.field[1]
-end
-
-function buildName(source, oop)
- if oop == nil then
- oop = source.type == 'setmethod'
- or source.type == 'getmethod'
- end
- if source.type == 'local'
- or source.type == 'getlocal'
- or source.type == 'setlocal' then
- return asLocal(source) or ''
- end
- if source.type == 'setglobal'
- or source.type == 'getglobal' then
- return asGlobal(source) or ''
- end
- if source.type == 'setmethod'
- or source.type == 'getmethod' then
- return asField(source, true) or ''
- end
- if source.type == 'setfield'
- or source.type == 'getfield' then
- return asField(source, oop) or ''
- end
- if source.type == 'tablefield' then
- return asTableField(source) or ''
- end
- if source.type == 'doc.type.function' then
- return asDocFunction(source)
- end
- if source.type == 'doc.field' then
- return asDocField(source)
- end
- local parent = source.parent
- if parent then
- return buildName(parent, oop)
- end
- return ''
-end
-
-return buildName