diff --git a/changelog.md b/changelog.md index 147946f4a..5dea68059 100644 --- a/changelog.md +++ b/changelog.md @@ -8,6 +8,7 @@ * `FIX` [#1430](https://github.com/sumneko/lua-language-server/issues/1430) * `FIX` [#1431](https://github.com/sumneko/lua-language-server/issues/1431) * `FIX` [#1446](https://github.com/sumneko/lua-language-server/issues/1446) +* `FIX` [#1451](https://github.com/sumneko/lua-language-server/issues/1451) ## 3.5.2 `2022-8-1` diff --git a/script/core/completion/completion.lua b/script/core/completion/completion.lua index 8f28e450a..149e073bb 100644 --- a/script/core/completion/completion.lua +++ b/script/core/completion/completion.lua @@ -1135,7 +1135,7 @@ local function insertDocEnum(state, pos, doc, enums) local parent = tbl.parent local parentName if parent._globalNode then - parentName = parent._globalNode:getName() + parentName = parent._globalNode:getCodeName() else local locals = guide.getVisibleLocals(state.ast, pos) for _, loc in pairs(locals) do diff --git a/script/vm/global.lua b/script/vm/global.lua index 22235681c..3a045b227 100644 --- a/script/vm/global.lua +++ b/script/vm/global.lua @@ -103,6 +103,11 @@ function mt:getName() return self.name end +---@return string +function mt:getCodeName() + return (self.name:gsub(vm.ID_SPLITE, '.')) +end + ---@return string function mt:asKeyName() return self.cate .. '|' .. self.name diff --git a/test/completion/common.lua b/test/completion/common.lua index f1100e366..1d7d414c5 100644 --- a/test/completion/common.lua +++ b/test/completion/common.lua @@ -3698,6 +3698,37 @@ f() }, } +TEST [[ +---@enum A +ppp.fff = { + x = 1, + y = 'ss', +} + +---@param x A +local function f(x) end + +f() +]] +{ + { + label = 'ppp.fff.x', + kind = define.CompletionItemKind.EnumMember, + }, + { + label = 'ppp.fff.y', + kind = define.CompletionItemKind.EnumMember, + }, + { + label = '1', + kind = define.CompletionItemKind.EnumMember, + }, + { + label = '"ss"', + kind = define.CompletionItemKind.EnumMember, + }, +} + TEST [[ --