我正在试图弄清楚如何为Lua编写自动完成算法,但由于与许多脚本语言一样,它缺少静态类型系统,我认为我需要后台编译,但在后台编译期间,很容易停止问题所以我想知道是否有人之前已经解决过这种问题,解决编译和停止的标准策略是什么?
答案 0 :(得分:1)
基于静态文本分析的自动完成听起来比尝试在后台编译更合理。大多数提供自动填充功能的文本编辑器都使用此方法,尽管它不够准确。
为此,您可以解析文档以查找名称并记录它们所属的范围。当点遍历文档时,您的自动完成功能会记录当前所在的范围,并提供此时应该可用的名称。
由于默认情况下LUA是全局作用域,如果程序员没有使用“local”关键字来缩小作用域,则可能最终会得到一个相当污染的命名空间。
答案 1 :(得分:1)
你可以