简介
我目前正在开发基于Bluegiga BLE-112模块的应用程序。该模块可使用BGScript脚本语言进行编程。但是,只有我发现的编辑器,它对BGScript有一些支持,就是Notepad ++,它不适合我的需要。因此,我开始开发自己的Visual Studio Code扩展(扩展市场中有一个不可用)。我已经通过着色器和错误解析,现在我正在创建一个包含代码建议的部分。
主要问题
我想在输入时列出all functions, enumerations and events embedded in the language。我发现代码片段可能是实现这一目标的方法。 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建议使用代码片段,我可以使用它。
然而,为enumerations创建代码段看起来像是一种过度杀伤,因为枚举没有任何变量 - 它们应该按原样插入。
我的问题是:除了代码片段之外,还有其他方法可以在Visual Studio代码扩展中实现,以便用BGScript语言创建枚举建议吗?
答案 0 :(得分:1)
是的,您可以通过registerCompletionItemProvider()
注册CompletionItemProvider(请参阅languages
namespace)。这应该涵盖您的所有用例,因为完成项目也可以通过将insertText
设为SnippetString
来使用代码段插入。
通常这个(以及其他提供者)通过名为Language Server Protocol的抽象层实现,而不是直接使用VSCode API,这使得它与编辑器无关。