diff options
author | 最萌小汐 <sumneko@hotmail.com> | 2022-06-23 19:18:58 +0800 |
---|---|---|
committer | 最萌小汐 <sumneko@hotmail.com> | 2022-06-23 19:18:58 +0800 |
commit | 25e076d4baa0a47a376d0ed647c68c56b817c88b (patch) | |
tree | 62ccfbb898a23387f5c02e3e97197e5e5b04fa99 | |
parent | 2bcd7495aad00ffc47fc96e8cf801e52e7452a83 (diff) | |
download | lua-language-server-25e076d4baa0a47a376d0ed647c68c56b817c88b.zip |
fix completion in tablefield enums
-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, + }, +} |