Lua: 有办法在运行前确定未定义的函数吗?

有时候我在 Lua 运行时会遇到由于调用不存在的函数而导致运行时错误(有时是由于名称拼写错误,有时是由于重构代码导致的)。那么,我是否有办法在运行前确定这些调用未定义的函数呢?我找到了一些脚本来识别未定义的全局变量,但它们似乎只在一个文件中起作用(我的项目有数十个 Lua 文件)。更新:以下是一个例子: b.lua local b = {} b.myTest = function() end return b main.lua local function myFunc() end local myModule = require("b") myFunc() -- 可以运行 myfunc() -- 错误 myModule.myTest() -- 可以运行 myModule.mytext() -- 错误 所以,我希望有一种方式可以运行一些脚本/预处理器,在实际运行代码之前识别出这两个错误(这将导致运行时错误)。 更新2: @hjpotter92 提到了 ZeroBrane IDE,我看了一下。它依赖于 luacheck 进行实时静态分析,所以我在 Sublime 中安装了 SublimeLinter-luacheck,我现在可以在同一个文件中检测到未定义的函数。不幸的是,它不能检测到在表或外部模块中定义的函数。enter image description here

点赞