Lua:有没有办法在运行时之前识别未定义的函数?

时间:2018-01-05 20:08:27

标签: lua compilation static-analysis preprocessor

由于调用不存在的函数(有时由于名称中的拼写错误,有时是由于重组代码,...),我有几次遇到Lua运行时错误。

所以,我想知道在运行时之前是否有办法识别对非定义函数的调用?

我找到了一些脚本来识别未定义的全局变量,但它们似乎只能在一个文件中工作(我的项目有几十个lua文件)。

更新:以下是一个例子:

b.lua

local b = {}

b.myTest = function()
end

return b

main.lua

local function myFunc()
end
local myModule = require("b")


myFunc() -- works
myfunc() -- error

myModule.myTest() -- works
myModule.mytext() -- error

所以,我想在运行代码之前运行某种脚本/预处理器来识别这2个错误(这会产生运行时错误)

更新2

@ hjpotter92提到了ZeroBrane IDE,我看了一下。它依赖于luacheck来进行静态分析,所以我在我的Sublime上安装了SublimeLinter-luacheck,现在我可以在同一个文件中检测未定义的函数。不幸的是,它没有检测到在表或外部模块上定义的那些。

enter image description here

0 个答案:

没有答案