创建VS Code扩展插件(十一)添加TreeView刷新按钮
2023-12-21 本文已影响0人
寻找无名的特质
在TemplateTreeProvider中增加刷新事件的定义,代码如下:
private _onDidChangeTreeData: vscode.EventEmitter<TempNode | undefined | null | void> = new vscode.EventEmitter<TempNode | undefined | null | void>();
readonly onDidChangeTreeData: vscode.Event<TempNode | undefined | null | void> = this._onDidChangeTreeData.event;
然后增加刷新代码:
async refresh(): Promise<void> {
await this.getData();
this._onDidChangeTreeData.fire();
}
需要使用一个命令执行refresh:
vscode.commands.registerCommand('tempuploader.refreshTemplates', () =>
templateTreeProvider.refresh()
);
还需要将这个命令进行注册:
{
"command": "tempuploader.refreshTemplates",
"title": "Refresh",
"icon": {
"light": "resources/light/refresh.svg",
"dark": "resources/dark/refresh.svg"
}
},
然后,在TreeView的顶部导航菜单部分,增加这个命令的图标:
"menus": {
"view/title": [
{
"command": "tempuploader.refreshTemplates",
"when": "view == templateTree",
"group": "navigation"
}
],
当view是templateTree时,显示command,显示的位置为navigation。
这样就完成了刷新按钮的添加。