我正在VSCode中编辑GML文件(VSCode)。有一个很棒的插件,GML支持,它为内置的GML函数和实例变量添加了自动完成功能,以及其他一些很酷的东西。
然而,VSCode似乎不识别GML中的局部变量(参见下面的屏幕抓取)。点表示法效果很好)
我查看了变量名称自动完成的VSCode的程序语言扩展,但仍然不知道如何将变量声明(即var fooBar = 23;)注册到VSCode的Language Server。
理想情况下,我希望Language尊重GML文件的可变范围:
script文件夹下的文件的任何script声明var中的所有{...}声明如前所述,添加变量名称完成的最简单方法是什么?
提前感谢!
编辑:查看vscode-python以了解如何使用registerCompletionItemProvider (基于VSCode语言扩展文档)。不幸的是,我仍然不清楚vscode-python似乎依赖绝地来提供符号?
所以任何积分都会升值!

发布于 2021-07-13 19:14:49
如果要启用简单的自动完成,可以将以下内容添加到settings.json (命令调色板➜Open (JSON)):
"[gml-gms81]": { "editor.quickSuggestions": true },
"[gml-gms1]": { "editor.quickSuggestions": true },
"[gml-gms2]": { "editor.quickSuggestions": true },它适用于解决方法:

为了找到合适的解决方案,您需要使用registerCompletionItemProvider并按需或按需对文件进行索引。
官方例子演示了它的用法。
对于处理GML语法的复杂问题,您可以在我制作的基于Ace的外部编辑器中检查代码。处理变量定义特别要求您跳过具有相对可信度的字符串、注释和遍历值(var name[=value][, name2[=value2]]) (这可以通过平衡的解析器实现)。
https://stackoverflow.com/questions/68347156
复制相似问题