summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Hahn <hahn.kev@gmail.com>2022-06-27 12:32:29 +0700
committerKevin Hahn <hahn.kev@gmail.com>2022-06-27 14:14:36 +0700
commitbd517b96174441ace37885353d5570f2d11e6404 (patch)
treef4bc4b493378f9e1abbdc380c249f7d982783ab5
parenteb6165ea4cafe386d8aa38f7ad33a40e14d404fe (diff)
downloadlua-language-server-bd517b96174441ace37885353d5570f2d11e6404.zip
fix some cases where we would return emus twice or would screw up other completions
-rw-r--r--script/core/completion/completion.lua3
-rw-r--r--script/vm/compiler.lua6
2 files changed, 4 insertions, 5 deletions
diff --git a/script/core/completion/completion.lua b/script/core/completion/completion.lua
index b8e863cc..815b00fd 100644
--- a/script/core/completion/completion.lua
+++ b/script/core/completion/completion.lua
@@ -1524,6 +1524,9 @@ local function tryArray(state, position, results)
if source.type ~= 'table' then
tbl = source.parent
end
+ if source.parent.type == 'callargs' and source.parent.parent.type == 'call' then
+ return
+ end
-- { } inside when enum
checkEqualEnumLeft(state, position, tbl, results, true)
end
diff --git a/script/vm/compiler.lua b/script/vm/compiler.lua
index d0063d00..409b2f47 100644
--- a/script/vm/compiler.lua
+++ b/script/vm/compiler.lua
@@ -1494,14 +1494,10 @@ local compilerSwitch = util.switch()
if (source.parent.type == 'table') then
local node = vm.compileNode(source.parent)
for n in node:eachObject() do
- if (n.type == 'global'
- and n.cate == 'type') then
- vm.setNode(source, vm.compileNode(n))
- elseif n.type == 'doc.type.array' then
+ if n.type == 'doc.type.array' then
vm.setNode(source, vm.compileNode(n.node))
end
end
- return
end
vm.setNode(source, vm.compileNode(source.value))
end)