summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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,
+ },
+}