diff options
-rw-r--r-- | script/core/completion/completion.lua | 4 | ||||
-rw-r--r-- | test/completion/common.lua | 22 |
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, + }, +} |