繁体   English   中英

VSCode 语言扩展(GameMaker / GML 文件)的变量名称自动完成?

[英]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 文件的变量范围:

  1. 全局变量 - script文件夹下文件的任何var声明
  2. 任何局部变量声明 - 周围{...}中的所有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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM