summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author最萌小汐 <sumneko@hotmail.com>2022-06-23 19:18:58 +0800
committer最萌小汐 <sumneko@hotmail.com>2022-06-23 19:18:58 +0800
commit25e076d4baa0a47a376d0ed647c68c56b817c88b (patch)
tree62ccfbb898a23387f5c02e3e97197e5e5b04fa99
parent2bcd7495aad00ffc47fc96e8cf801e52e7452a83 (diff)
downloadlua-language-server-25e076d4baa0a47a376d0ed647c68c56b817c88b.zip
fix completion in tablefield enums
-rw-r--r--script/core/completion/completion.lua4
-rw-r--r--test/completion/common.lua22
2 files changed, 26 insertions, 0 deletions
diff --git a/script/core/completion/completion.lua b/script/core/completion/completion.lua
index 2f0180d2..392c21ca 100644
--- a/script/core/completion/completion.lua
+++ b/script/core/completion/completion.lua
@@ -1219,6 +1219,10 @@ local function checkEqualEnumInString(state, position, results)
or parent.type == 'setindex' then
checkEqualEnumLeft(state, position, parent.node, results)
end
+ if parent.type == 'tablefield'
+ or parent.type == 'tableindex' then
+ checkEqualEnumLeft(state, position, parent, results)
+ end
end
local function isFuncArg(state, position)
diff --git a/test/completion/common.lua b/test/completion/common.lua
index 7c383fe4..27431000 100644
--- a/test/completion/common.lua
+++ b/test/completion/common.lua
@@ -3396,3 +3396,25 @@ end
kind = define.CompletionItemKind.Variable,
},
}
+
+TEST [[
+---@class A
+---@field xxx 'aaa'|'bbb'
+
+---@type A
+local t = {
+ xxx = '<??>
+}
+]]
+{
+ {
+ label = "'aaa'",
+ kind = define.CompletionItemKind.EnumMember,
+ textEdit = EXISTS,
+ },
+ {
+ label = "'bbb'",
+ kind = define.CompletionItemKind.EnumMember,
+ textEdit = EXISTS,
+ },
+}