插件扩展能做什么?
HBuilderX的插件是基于nodejs的,所有nodejs api都可以使用,如文件操作,调用其他node命令。
除此之外,HBuilderX提供内置的js API(与vscode兼容),可以定制很多HBuilderX的功能和界面,
- 添加新的
菜单
- 添加新的
命令
及快捷键 - 扩展新的
代码块
- 添加新的视图
视图
,某些在界面上方的项目管理器旁边新增加一个“ TODO”视图 - 对文档进行各种编辑,增删改写文字内容,操作光标和选区
- 对文档进行校验
- 在控制台打印日志,操作状态栏消息,投放各种提示框和选择框
注意:插件是运行在单独的内部
插件进程
的,插件进程
是一个node.js进程,通过进程间rpc通信和HBuilderX进行接口调用。因此插件可以使用node本身所有的api。目前集成的node版本为:v8.10.0。
如何开发一个插件?
如何注册命令
命令
指的是在插件中注册的自定义功能,命令
触发时将调用该功能。注册一个新的命令
分为2个步骤:
1。在package.json中通过commands
配置扩展点声明该命令
,相关代码如下:
"contributes": { "commands": [{ "command": "extension.helloWorld", "title": "Hello World" }] }
复制到剪贴板错误复制的
2。在插件激活的时候通过API hx.commands.registerCommand或hx.commands.registerTextEditorCommand来实现上述声明的命令
,注意命令标识
一定要一致。相关代码如下:
let disposable = hx.commands.registerCommand('extension.helloWorld', () => { //do something }); context.subscriptions.push(disposable)
如何注册菜单
菜单
的英文扩展通过配置扩展点
来注册的,一般要关联一个命令
。扩展方式是在的package.json中contributes
节点下增加menus
。扩展点相关代码如下:
"contributes": { "menus": { "editor/context": [ { "command": "extension.helloWorld", "group": "z_commands", "when": "editorTextFocus" }, { "group": "z_commands" } ] } }
复制到剪贴板错误复制的
菜单
扩展点详细的说明请参考这里菜单
更多说明查看官方文档: https://hx.dcloud.net.cn/menus
来源:oschina
链接:https://my.oschina.net/u/4518192/blog/4756029