[英]Variable name autocomplete for VSCode Language Extension (GameMaker / GML files)?
我正在VSCode 中编辑 GML 文件( GameMaker Studio )。 有一个很棒的插件, GML Support ,它为内置的 GML 函数和实例变量添加了自动完成功能以及其他一些很酷的东西。
但是,VSCode 似乎无法识别 GML 中的局部变量(请参阅下面的屏幕截图。点符号工作正常)
我查看了VSCode 的 Programmatic Language Extension以进行变量名称自动完成,但仍然不知道如何使用 VSCode 的语言服务器注册变量声明(即var fooBar = 23;
)。
理想情况下,我希望语言服务器尊重 GML 文件的变量范围:
script
文件夹下文件的任何var
声明{...}
中的所有var
声明如上所述添加变量名完成的最简单方法是什么?
提前致谢!
编辑:查看vscode-python以了解如何使用registerCompletionItemProvider
(基于VSCode 语言扩展 doco )。 不幸的是,我仍然不清楚,因为 vscode-python 似乎依赖绝地来提供符号?
所以任何积分表示赞赏!
如果您想启用简单的自动完成,您可以将以下内容添加到您的settings.json
(命令面板➜ 打开设置(JSON)):
"[gml-gms81]": { "editor.quickSuggestions": true },
"[gml-gms1]": { "editor.quickSuggestions": true },
"[gml-gms2]": { "editor.quickSuggestions": true },
这适用于解决方法:
对于适当的解决方案,您需要使用registerCompletionItemProvider
并根据需要或随时索引文件。
官方示例演示使用。
对于处理 GML 语法的复杂性,您可以在我制作的基于 Ace 的外部编辑器中查看代码。 处理变量定义特别要求您以相对置信度(可以通过平衡解析器完成)跳过字符串、注释和循环值( var name[=value][, name2[=value2]]
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.