diff options
author | sumneko <sumneko@hotmail.com> | 2019-05-22 20:46:22 +0800 |
---|---|---|
committer | sumneko <sumneko@hotmail.com> | 2019-05-22 20:46:22 +0800 |
commit | bb8aa605fcde6faee6605e0580817e50e09f79f3 (patch) | |
tree | 01f401b9e355303150239c2e2d74d866d71f01b7 /server/src | |
parent | de808902586795f0f49badd8df238bb04189c931 (diff) | |
download | lua-language-server-bb8aa605fcde6faee6605e0580817e50e09f79f3.zip |
emmy枚举值也自动处理字符串
Diffstat (limited to 'server/src')
-rw-r--r-- | server/src/core/completion.lua | 24 |
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 |