summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author最萌小汐 <sumneko@hotmail.com>2021-11-16 15:14:10 +0800
committer最萌小汐 <sumneko@hotmail.com>2021-11-16 15:14:10 +0800
commit0db905ab64b8e6486f04f5a48d4871eb14141379 (patch)
tree8935a7cb1b65450aa7067e0068abaff92081a3c2
parent4c636f0c792fb7abcdf4d38430be23d8bfc40491 (diff)
downloadlua-language-server-0db905ab64b8e6486f04f5a48d4871eb14141379.zip
`Lua.IntelliSense.localSet`
-rw-r--r--script/config/config.lua1
-rw-r--r--script/core/noder.lua4
-rw-r--r--test/definition/bug.lua4
-rw-r--r--test/hover/init.lua4
-rw-r--r--test/type_inference/init.lua4
5 files changed, 17 insertions, 0 deletions
diff --git a/script/config/config.lua b/script/config/config.lua
index c2eec880..07b8b77c 100644
--- a/script/config/config.lua
+++ b/script/config/config.lua
@@ -202,6 +202,7 @@ local Template = {
['Lua.hint.await'] = Type.Boolean >> true,
['Lua.window.statusBar'] = Type.Boolean >> true,
['Lua.window.progressBar'] = Type.Boolean >> true,
+ ['Lua.IntelliSense.localSet'] = Type.Boolean >> false,
['Lua.telemetry.enable'] = Type.Or(Type.Boolean >> false, Type.Nil),
['files.associations'] = Type.Hash(Type.String, Type.String),
['files.exclude'] = Type.Hash(Type.String, Type.Boolean),
diff --git a/script/core/noder.lua b/script/core/noder.lua
index e40df0a2..999b797e 100644
--- a/script/core/noder.lua
+++ b/script/core/noder.lua
@@ -2,6 +2,7 @@ local util = require 'utility'
local guide = require 'parser.guide'
local collector = require 'core.collector'
local files = require 'files'
+local config = require 'config'
local tostring = tostring
local error = error
@@ -747,6 +748,9 @@ local function bindValue(noders, source, id)
end
if source.type == 'getlocal'
or source.type == 'setlocal' then
+ if not config.get 'Lua.IntelliSense.localSet' then
+ return
+ end
source = source.node
end
if source.bindDocs and value.type ~= 'table' then
diff --git a/test/definition/bug.lua b/test/definition/bug.lua
index aace2aee..d9f85899 100644
--- a/test/definition/bug.lua
+++ b/test/definition/bug.lua
@@ -1,3 +1,5 @@
+local config = require "config"
+
TEST [[
local <!x!>
function _(x)
@@ -170,6 +172,7 @@ string.xx:<?format?>()
--v.<?bar1?>
--]]
+config.set('Lua.IntelliSense.localSet', true)
TEST [[
local A, B
@@ -229,6 +232,7 @@ end
local <!b!> = B:get()
print(<?b?>)
]]
+config.set('Lua.IntelliSense.localSet', false)
TEST [[
g[a.b.c] = 1
diff --git a/test/hover/init.lua b/test/hover/init.lua
index 089a4b51..5d275091 100644
--- a/test/hover/init.lua
+++ b/test/hover/init.lua
@@ -838,6 +838,7 @@ local t: {
}
]]
+config.set('Lua.IntelliSense.localSet', true)
TEST [[
local x
x = 1
@@ -848,6 +849,7 @@ print(<?x?>)
[[
local x: number = 1
]]
+config.set('Lua.IntelliSense.localSet', false)
TEST [[
local <?x?> <close> = 1
@@ -1728,6 +1730,7 @@ t.<?x?>()
field t.x: any
]]
+config.set('Lua.IntelliSense.localSet', true)
TEST [[
---@class A
local a
@@ -1740,6 +1743,7 @@ print(b.<?x?>)
[[
field A.x: any
]]
+config.set('Lua.IntelliSense.localSet', false)
TEST [[
---@class A
diff --git a/test/type_inference/init.lua b/test/type_inference/init.lua
index a3764328..96da94aa 100644
--- a/test/type_inference/init.lua
+++ b/test/type_inference/init.lua
@@ -57,6 +57,7 @@ local var = '111'
t.<?x?> = var
]]
+config.set('Lua.IntelliSense.localSet', true)
TEST 'string' [[
local <?var?>
var = '111'
@@ -67,6 +68,7 @@ local var
var = '111'
print(<?var?>)
]]
+config.set('Lua.IntelliSense.localSet', false)
TEST 'function' [[
function <?xx?>()
@@ -78,11 +80,13 @@ local function <?xx?>()
end
]]
+config.set('Lua.IntelliSense.localSet', true)
TEST 'function' [[
local xx
<?xx?> = function ()
end
]]
+config.set('Lua.IntelliSense.localSet', false)
TEST 'table' [[
local <?t?> = {}