【问题标题】:How to get autocompletion for custom modules in Lua如何在 Lua 中获取自定义模块的自动完成功能
【发布时间】:2020-03-06 06:09:44
【问题描述】:

无论我在 Lua 中使用什么设置进行编码,总是一样的:自动补全适用于标准库,但不适用于第 3 方或我自己的库。

我尝试了 ZeroBrane studio、带有 Lua 插件的 VSCode 和带有 lua ftplugin 的 Vim,所有 3 中的行为完全相同。我开始输入标准库符号,例如

io.w

我确实得到了显示 io 模块中所有内容的自动完成弹出窗口,并显示了与 io.w 最接近的方法,即 io.write,带有签名和文档。

现在我尝试使用第 3 方或我自己的图书馆,例如

要求(“wx”); wx.

require("my_module");我的模块。

要么什么都没有发生,要么我收到关于模块名称的警告“未定义”。 如果我用解释器运行代码,它确实有效。它会很好地调用模块中的函数。但在编辑器中,警告并没有自动补全。

我错过了什么吗?

【问题讨论】:

    标签: lua autocomplete editor zerobrane


    【解决方案1】:

    wxwidgets API 与 ZeroBrane Studio 一起预打包,但需要显式启用(您可以将api = {"wxwidgets"} 添加到配置文件中;请参阅文档中的Custom APIs 部分)。任何其他(未打包的)API 都需要添加到 IDE 中,如文档 here 所述。已经有几个流行的 API provided as plugins;例如,用于 Redis、Urho3d、openRA 等。

    【讨论】:

    • 我自己的模块在 lua 文件中没有任何自动完成功能是否正常?我希望自动完成器能给我自己的代码提示,就像在其他 ide 中一样,例如 Visual Studio 中的 C++。我只是很困惑为什么我没有任何完成,在 lua 世界中你自己的代码没有完成是正常的吗?
    • @aganm - 通常,仅通过查看模块的源代码而不执行它是不可能推断出模块导出了哪些函数。
    • @EgorSkriptunoff lua 标准库是如何完成的呢?你知道我怎样才能让我的代码表现出同样的完成方式吗?我需要在某处添加 doc 文件吗?
    • @aganm - 通常,要使自动完成功能正常工作,您必须手动提供函数列表作为某种特定格式的文件(不同 IDE 中的格式不同)。阅读保罗给你的链接。
    猜你喜欢
    • 2021-06-24
    • 1970-01-01
    • 1970-01-01
    • 2019-12-19
    • 1970-01-01
    • 1970-01-01
    • 2014-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多