blob: d8afe2fc74687ff7e520a90e54f5adeef27c1766 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
return function (result, source)
local func = result.value
local declarat
if func.type == 'function' then
declarat = func.declarat or source
else
declarat = source
end
if not declarat then
return result.key or ''
end
local key
if declarat.type == 'name' then
key = declarat[1]
elseif declarat.type == 'string' then
key = ('%q'):format(declarat[1])
elseif declarat.type == 'number' or declarat.type == 'boolean' then
key = tostring(declarat[1])
elseif func.type == 'function' then
key = ''
elseif type(result.key) == 'string' then
key = result.key
else
key = ''
end
local parentName = declarat.parentName
if not parentName then
return key or ''
end
if parentName == '?' then
local parentType = result.parentValue and result.parentValue.type
if parentType == 'table' then
else
parentName = '*' .. parentType
end
end
if source.object then
return parentName .. ':' .. key
else
if parentName then
if declarat.index then
return parentName .. '[' .. key .. ']'
else
return parentName .. '.' .. key
end
else
return key
end
end
end
|