diff options
Diffstat (limited to 'script-beta/src/core/diagnostics/undefined-global.lua')
-rw-r--r-- | script-beta/src/core/diagnostics/undefined-global.lua | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/script-beta/src/core/diagnostics/undefined-global.lua b/script-beta/src/core/diagnostics/undefined-global.lua deleted file mode 100644 index ed81ced3..00000000 --- a/script-beta/src/core/diagnostics/undefined-global.lua +++ /dev/null @@ -1,63 +0,0 @@ -local files = require 'files' -local vm = require 'vm' -local lang = require 'language' -local library = require 'library' -local config = require 'config' - -return function (uri, callback) - local ast = files.getAst(uri) - if not ast then - return - end - - local globalCache = {} - - -- 遍历全局变量,检查所有没有 mode['set'] 的全局变量 - local globals = vm.getGlobals(ast.ast) - for key, infos in pairs(globals) do - if infos.mode['set'] == true then - goto CONTINUE - end - if globalCache[key] then - goto CONTINUE - end - local skey = key and key:match '^s|(.+)$' - if not skey then - goto CONTINUE - end - if library.global[skey] then - goto CONTINUE - end - if config.config.diagnostics.globals[skey] then - goto CONTINUE - end - if globalCache[key] == nil then - local uris = files.findGlobals(key) - for i = 1, #uris do - local destAst = files.getAst(uris[i]) - local destGlobals = vm.getGlobals(destAst.ast) - if destGlobals[key] and destGlobals[key].mode['set'] then - globalCache[key] = true - goto CONTINUE - end - end - end - globalCache[key] = false - local message = lang.script('DIAG_UNDEF_GLOBAL', skey) - local otherVersion = library.other[skey] - local customVersion = library.custom[skey] - if otherVersion then - message = ('%s(%s)'):format(message, lang.script('DIAG_DEFINED_VERSION', table.concat(otherVersion, '/'), config.config.runtime.version)) - elseif customVersion then - message = ('%s(%s)'):format(message, lang.script('DIAG_DEFINED_CUSTOM', table.concat(customVersion, '/'))) - end - for _, info in ipairs(infos) do - callback { - start = info.source.start, - finish = info.source.finish, - message = message, - } - end - ::CONTINUE:: - end -end |