介绍
我目前正在开发一个基于 Bluegiga BLE-112 模块的应用程序。该模块可使用 BGScript 脚本语言进行编程。然而,我发现的唯一对 BGScript 有某种支持的编辑器是 Notepad++,它不适合我的需要。因此,我开始开发自己的 Visual Studio Code 扩展(扩展市场中提供的扩展无法正常工作)。我已经完成了着色器和错误解析,现在我正在创建一个带有代码建议的部分。
主要问题
我想要语言中嵌入的所有函数、枚举和事件 https://www.silabs.com/documents/login/reference-manuals/Bluetooth_Smart_Software-BLE-1.6-API-RM.pdf#page=40当我打字时列出。我发现代码片段可能是实现这一目标的方法。按照我的预期工作的 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 建议了一个代码片段,我可以使用它。
However,创建一个代码片段枚举 https://www.silabs.com/documents/login/reference-manuals/Bluetooth_Smart_Software-BLE-1.6-API-RM.pdf#page=64看起来有点矫枉过正,因为枚举没有任何变量 - 它们应该按原样插入。
我的问题是:除了代码片段之外,还有其他方法可以在 Visual Studio Code 扩展中实现,以使用 BGScript 语言创建枚举建议吗?
是的,您可以注册一个完成项目提供者 https://code.visualstudio.com/docs/extensionAPI/vscode-api#CompletionItemProvider via registerCompletionItemProvider()
(参见languages名称空间 https://code.visualstudio.com/docs/extensionAPI/vscode-api#_languages)。这应该涵盖您的所有用例,因为完成项也可以通过使其insertText
a SnippetString
.
通常,这(与其他提供者一起)是通过称为语言服务器协议 https://microsoft.github.io/language-server-protocol/而不是直接使用 VSCode API,这使得它独立于编辑器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)