diff options
author | 最萌小汐 <sumneko@hotmail.com> | 2019-11-05 21:30:04 +0800 |
---|---|---|
committer | 最萌小汐 <sumneko@hotmail.com> | 2019-11-05 21:30:04 +0800 |
commit | 30a88ee1b1f60e657393a16e55cddae9cb01a62a (patch) | |
tree | 4b4accb4c91151a1e0813562714063eedd6aacd9 /server-beta/src | |
parent | 511be388f88af275d2c1ac6bef0c8964a376b427 (diff) | |
download | lua-language-server-30a88ee1b1f60e657393a16e55cddae9cb01a62a.zip |
整理代码
Diffstat (limited to 'server-beta/src')
-rw-r--r-- | server-beta/src/core/diagnostics/redundant-value.lua | 13 | ||||
-rw-r--r-- | server-beta/src/parser/guide.lua | 30 |
2 files changed, 31 insertions, 12 deletions
diff --git a/server-beta/src/core/diagnostics/redundant-value.lua b/server-beta/src/core/diagnostics/redundant-value.lua index b3d19c21..71749f56 100644 --- a/server-beta/src/core/diagnostics/redundant-value.lua +++ b/server-beta/src/core/diagnostics/redundant-value.lua @@ -1,3 +1,14 @@ -return function () +local files = require 'files' +local guide = require 'parser.guide' + +local function check(source) end + +return function (uri, callback) + local ast = files.getAst(uri) + if not ast then + return + end + +end diff --git a/server-beta/src/parser/guide.lua b/server-beta/src/parser/guide.lua index 92dd79bc..952fa3c6 100644 --- a/server-beta/src/parser/guide.lua +++ b/server-beta/src/parser/guide.lua @@ -309,23 +309,31 @@ end --- 遍历所有指定类型的source function m.eachSourceType(ast, type, callback) - if not ast.typeCache then - ast.typeCache = {} - end - local cache = ast.typeCache[type] + local cache = ast.typeCache if not cache then - cache = {} - ast.typeCache[type] = cache local mark = {} + cache = {} + ast.typeCache = cache m.eachSource(ast, function (source) - if source.type == type and not mark[source] then - mark[source] = true - cache[#cache+1] = source + if mark[source] then + return end + mark[source] = true + local tp = source.type + local myCache = cache[tp] + if not myCache then + myCache = {} + cache[tp] = myCache + end + myCache[#myCache+1] = source end) end - for i = 1, #cache do - callback(cache[i]) + local myCache = cache[type] + if not myCache then + return + end + for i = 1, #myCache do + callback(myCache[i]) end end |