From 7657fefe4ab5b6ba7dcb7df7e766c115afa25787 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=80=E8=90=8C=E5=B0=8F=E6=B1=90?= Date: Tue, 19 Apr 2022 01:07:28 +0800 Subject: fix #3.1.1 --- changelog.md | 3 +++ script/vm/field.lua | 11 +++++++++++ test/completion/common.lua | 13 +++++++++++++ 3 files changed, 27 insertions(+) diff --git a/changelog.md b/changelog.md index 7623409b..983af002 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,8 @@ # changelog +## 3.1.1 +* `FIX` [#1051](https://github.com/sumneko/lua-language-server/issues/1051) + ## 3.1.0 `2022-4-17` * `NEW` support find definition in method diff --git a/script/vm/field.lua b/script/vm/field.lua index ba7cd4c1..614dc89b 100644 --- a/script/vm/field.lua +++ b/script/vm/field.lua @@ -2,6 +2,7 @@ local vm = require 'vm.vm' local util = require 'utility' local guide = require 'parser.guide' +local localID = require 'vm.local-id' local searchByNodeSwitch = util.switch() : case 'global' @@ -15,6 +16,15 @@ local searchByNodeSwitch = util.switch() pushResult(source) end) +local function searchByLocalID(source, pushResult) + local fields = localID.getFields(source) + if fields then + for _, field in ipairs(fields) do + pushResult(field) + end + end +end + local function searchByNode(source, pushResult) local uri = guide.getUri(source) vm.compileByParentNode(source, nil, true, function (field) @@ -35,6 +45,7 @@ function vm.getFields(source) end end + searchByLocalID(source, pushResult) searchByNode(source, pushResult) return results diff --git a/test/completion/common.lua b/test/completion/common.lua index 538ac401..1fc37bb5 100644 --- a/test/completion/common.lua +++ b/test/completion/common.lua @@ -3311,3 +3311,16 @@ TEST [[ end assert(count == 1) end) + +TEST [[ +local x +x.y.z = xxx + +x.y. +]] +{ + { + label = 'z', + kind = define.CompletionItemKind.Field, + } +} -- cgit v1.2.3