visual-studio-code - 将内置函数插入 VS Code 扩展的正确方法
问题描述
介绍
我目前正在开发基于 Bluegiga BLE-112 模块的应用程序。该模块可使用 BGScript 脚本语言进行编程。但是,我发现的唯一支持 BGScript 的编辑器是 Notepad++,它不适合我的需要。因此,我开始为 Visual Studio Code 开发自己的扩展(在扩展市场上可用的一个不工作)。我已经通过了着色器和错误解析,现在我正在创建一个带有代码建议的部分。
主要问题
我希望在键入时将所有函数、枚举和事件嵌入到列出的语言中。我发现代码片段可能是实现这一目标的方式。JSON 格式的片段示例如下所示。
"call attclient_indicate_confirm": {
"prefix": "call attclient_indicate_confirm",
"body": [
"call attclient_indicate_confirm(${1:connection})(${2:result})"
],
"description": "Send a acknowledge a received indication from a remote device."
}
call
是一个关键字,表示在这一行中调用了一个函数。当这样的片段存储在适当的 JSON 文件中时,一切正常 - 我开始输入call
,VS Code 建议一个代码片段,我可以使用它。
但是,为枚举创建代码片段看起来有点过头了,因为枚举没有任何变量——它们应该按原样插入。
我的问题是:除了代码片段之外,还有其他方法可以在 Visual Studio Code 扩展中实现,以创建 BGScript 语言的枚举建议吗?
解决方案
是的,您可以通过(请参阅命名空间)注册CompletionItemProvider。这应该涵盖您的所有用例,因为完成项也可以通过将其a来使用片段插入。registerCompletionItemProvider()
languages
insertText
SnippetString
通常这(与其他提供程序一起)是通过称为语言服务器协议的抽象层实现的,而不是直接使用 VSCode API,这使得它独立于编辑器。
推荐阅读
- typescript - Array 和 Object 类型的 Typescript 联合
- extjs - 一些按钮后面的奇怪边框[EXTJS 6.5.2]
- azure - Azure 自动化 - 续订 RunAsAccount 证书
- javascript - 仅在选中广播按钮时才需要输入字段 - Angular 4
- php - 将 WordPress 从 Live 迁移到 Localhost
- windows-server-2016 - 当我尝试在 Windows 10 上创建的 Windows Server 2016 上运行 docker 映像时出现错误
- rethinkdb - rethinkdb-migrate 迁移文件的位置
- r - 来自 bam {mgcv} 的人口水平预测
- xamarin.forms - 运行 UWP 项目时出错 (UniversalWindows)
- php - 我们必须在构造函数中声明所有属性吗?