From 7e97893e92f694b65f58630cba04d0732ca75e23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=80=E8=90=8C=E5=B0=8F=E6=B1=90?= Date: Mon, 16 Nov 2020 14:07:10 +0800 Subject: =?UTF-8?q?=E6=95=B4=E7=90=86=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- script-beta/core/completion.lua | 10 +++++----- script-beta/core/definition.lua | 10 +++++----- script-beta/core/hover/description.lua | 10 +++++----- script-beta/vm/getLibrary.lua | 8 ++++++++ 4 files changed, 23 insertions(+), 15 deletions(-) (limited to 'script-beta') diff --git a/script-beta/core/completion.lua b/script-beta/core/completion.lua index d2f53d8f..1939025d 100644 --- a/script-beta/core/completion.lua +++ b/script-beta/core/completion.lua @@ -670,11 +670,11 @@ local function checkUri(ast, text, offset, results) local call = callargs.parent local func = call.node local literal = guide.getLiteral(source) - local lib = vm.getLibrary(func) - if not lib then + local libName = vm.getLibraryName(func) + if not libName then return end - if lib.name == 'require' then + if libName == 'require' then for uri in files.eachFile() do uri = files.getOriginUri(uri) if files.eq(myUri, uri) then @@ -701,8 +701,8 @@ local function checkUri(ast, text, offset, results) end ::CONTINUE:: end - elseif lib.name == 'dofile' - or lib.name == 'loadfile' then + elseif libName == 'dofile' + or libName == 'loadfile' then for uri in files.eachFile() do uri = files.getOriginUri(uri) if files.eq(myUri, uri) then diff --git a/script-beta/core/definition.lua b/script-beta/core/definition.lua index 63af4034..19bab22d 100644 --- a/script-beta/core/definition.lua +++ b/script-beta/core/definition.lua @@ -64,14 +64,14 @@ local function checkRequire(source, offset) local call = callargs.parent local func = call.node local literal = guide.getLiteral(source) - local lib = vm.getLibrary(func) - if not lib then + local libName = vm.getLibraryName(func) + if not libName then return nil end - if lib.name == 'require' then + if libName == 'require' then return workspace.findUrisByRequirePath(literal) - elseif lib.name == 'dofile' - or lib.name == 'loadfile' then + elseif libName == 'dofile' + or libName == 'loadfile' then return workspace.findUrisByFilePath(literal) end return nil diff --git a/script-beta/core/hover/description.lua b/script-beta/core/hover/description.lua index 8192beec..badeade7 100644 --- a/script-beta/core/hover/description.lua +++ b/script-beta/core/hover/description.lua @@ -15,14 +15,14 @@ local function asStringInRequire(source, literal) local result, searchers local call = parent.parent local func = call.node - local lib = vm.getLibrary(func) - if not lib then + local libName = vm.getLibraryName(func) + if not libName then return end - if lib.name == 'require' then + if libName == 'require' then result, searchers = ws.findUrisByRequirePath(literal) - elseif lib.name == 'dofile' - or lib.name == 'loadfile' then + elseif libName == 'dofile' + or libName == 'loadfile' then result = ws.findUrisByFilePath(literal) end if result and #result > 0 then diff --git a/script-beta/vm/getLibrary.lua b/script-beta/vm/getLibrary.lua index 36d53c84..86f1ae58 100644 --- a/script-beta/vm/getLibrary.lua +++ b/script-beta/vm/getLibrary.lua @@ -55,6 +55,14 @@ function vm.getLibrary(source, deep) end end +function vm.getLibraryName(source, deep) + local lib = vm.getLibrary(source, deep) + if lib then + return lib.name + end + return nil +end + local globalLibraryNames = { 'arg', 'assert', 'collectgarbage', 'dofile', '_G', 'getfenv', 'getmetatable', 'ipairs', 'load', 'loadfile', 'loadstring', -- cgit debian/1.2.3+git2.25.1-1-2-gaceb0