summaryrefslogtreecommitdiff
path: root/server/src
diff options
context:
space:
mode:
authorsumneko <sumneko@hotmail.com>2019-05-22 20:46:22 +0800
committersumneko <sumneko@hotmail.com>2019-05-22 20:46:22 +0800
commitbb8aa605fcde6faee6605e0580817e50e09f79f3 (patch)
tree01f401b9e355303150239c2e2d74d866d71f01b7 /server/src
parentde808902586795f0f49badd8df238bb04189c931 (diff)
downloadlua-language-server-bb8aa605fcde6faee6605e0580817e50e09f79f3.zip
emmy枚举值也自动处理字符串
Diffstat (limited to 'server/src')
-rw-r--r--server/src/core/completion.lua24
1 files changed, 18 insertions, 6 deletions
diff --git a/server/src/core/completion.lua b/server/src/core/completion.lua
index 9afeec2a..331eb6cc 100644
--- a/server/src/core/completion.lua
+++ b/server/src/core/completion.lua
@@ -616,11 +616,15 @@ local function searchEnumAsLib(vm, source, word, callback, pos, args, lib)
data.documentation = enum.description
callback(enum.enum, nil, CompletionItemKind.EnumMember, data)
else
- local data = buildTextEdit(source.start, source.finish, strSource[1], nil)
- data.documentation = enum.description
- callback(enum.enum, nil, CompletionItemKind.EnumMember, data)
+ callback(enum.enum, nil, CompletionItemKind.EnumMember, {
+ documentation = enum.description
+ })
end
end
+ else
+ callback(enum.enum, nil, CompletionItemKind.EnumMember, {
+ documentation = enum.description
+ })
end
end
end
@@ -648,9 +652,17 @@ local function searchEnumAsEmmyParams(vm, source, word, callback, pos, args, fun
param:eachEnum(function (enum)
if matchKey(word, enum) then
- callback(enum, nil, CompletionItemKind.EnumMember, {
- label = enum,
- })
+ local strSource = parser:ast(tostring(enum), 'String')
+ if strSource then
+ if source.type == 'string' then
+ local data = buildTextEdit(source.start, source.finish, strSource[1], source[2])
+ callback(enum, nil, CompletionItemKind.EnumMember, data)
+ else
+ callback(enum, nil, CompletionItemKind.EnumMember)
+ end
+ else
+ callback(enum, nil, CompletionItemKind.EnumMember)
+ end
end
end)
end