registerCustomEditorProvider
从HBuilderX 2.9.2及以上版本开始支持
完整的自定义编辑器示例:如何扩展一个自定义编辑器?
简介
注册指定类型的CustomEditorProvider,当用户打开匹配的文件时,在编辑器区域创建自定义编辑器标签卡。自定义编辑器使用webview提供视图显示。
参数说明
参数名称 | 参数类型 | 描述 |
---|---|---|
type | String | 自定义编辑器类型,需要首先在配置扩展点customEditors 中声明。 |
provider | CustomEditorProvider | 用户自定义CustomEditorProvider |
示例
hx.window.registerCustomEditorProvider("catEdit.catScratch", new CatCustomEditorProvider());
CustomDocument
自定义文档,用户可以继承。
属性列表
属性名 | 属性类型 | 描述 |
---|---|---|
uri | String | 本地文件地址(file:///C:/abc/test.txt),通过构造函数初始化 |
CustomEditorProvider
自定义编辑器数据提供接口,用户需要继承。
属性列表
属性名 | 属性类型 | 描述 |
---|---|---|
onDidChangeCustomDocument | HBuilderX内置的EventEmitter | 用于触发文件变化事件,编辑器置为未保存状态 |
代码示例
provider.onDidChangeCustomDocument.fire(new CustomDocumentEditEvent(document));
openCustomDocument
当用户用户打开匹配的文件时,由HBuilderX调用,开发者创建并返回CustomDocument 。HBuilderX在这之后会创建WebViewPanel,并调用resolveCustomEditor。
参数说明
参数名称 | 参数类型 | 描述 |
---|---|---|
uri | String | 本地文件地址(file:///C:/abc/test.txt) |
返回值
返回类型 | 描述 |
---|---|
Promise<CustomDocument> | Promise对象 |
resolveCustomEditor
HBuilderX使用WebViewPanel来作为自定义编辑器的视图,创建WebViewPanel并与document关联后,调用该方法。 WebViewPanel的用法也可以参考视图扩展中部分示例。
参数说明
参数名称 | 参数类型 | 描述 |
---|---|---|
document | CustomDocument | 由开发者创建的CustomDocument |
webViewPanel | WebViewPanel | 与document关联的WebViewPanel |
saveCustomDocument
用户执行“保存”操作时,HBuilderX调用该方法。
参数说明
参数名称 | 参数类型 | 描述 |
---|---|---|
document | CustomDocument | 保存操作对应的CustomDocument |
返回值
返回类型 | 描述 |
---|---|
Promise<boolean> 或 boolean | true表示成功,编辑器标签卡会移除dirty状态 |
saveCustomDocumentAs
用户执行“另存为”操作,选择目标文件后,HBuilderX调用该方法。成功后,HBuilderX会重新关联document与目标文件。
参数说明
参数名称 | 参数类型 | 描述 |
---|---|---|
document | CustomDocument | 保存操作对应的CustomDocument |
destination | String | 目标文件地址(例如:file:///C:/abc/test.txt) |
返回值
返回类型 | 描述 |
---|---|
Promise<boolean> 或 boolean | true表示成功,编辑器标签卡会移除dirty状态 |
CustomDocumentEditEvent
用CustomDocument构造CustomDocumentEditEvent对象。CustomEditorProvider可以向HBuilderX发送该事件,编辑器标签卡会置为未保存状态。