gpt4 book ai didi

visual-studio-code - 如何在基础数据更改时刷新Treeview

转载 作者:行者123 更新时间:2023-12-03 09:28:48 28 4
gpt4 key购买 nike

我已经为Visual Studio Code编写了一个非常简单的TreeView扩展程序,该扩展程序显示VSCode Tasks的基本列表,并在选择时执行任务。

我希望添加新任务时(通过tasks.json文件或通过诸如package.json文件脚本之类的东西自动检测到的任务)自动更新treeview,但不知道如何做到这一点。

在我的activate方法中,我注册了TreeDataProvider和执行命令:

    vscode.window.registerTreeDataProvider('vscodeTasks', treeProvider);
let disposable = vscode.commands.registerCommand('task.runTask', task => {
vscode.tasks.executeTask(task);
});
vscode.context.subscriptions.push(disposable);

在getChildren函数中对TreeDataProvider的实现中,我使用以下命令获取任务:
vscode.tasks.fetchTasks()

并将每个变成一个TreeItem

与自动刷新的任何帮助将不胜感激。

最佳答案

通过将以下内容添加到实现中,我能够重新加载树 View

private _onDidChangeTreeData: EventEmitter<
myItem | undefined
> = new EventEmitter<myItem | undefined>();

readonly onDidChangeTreeData: Event<myItem | undefined> = this
._onDidChangeTreeData.event;

refresh(): void {
this._onDidChangeTreeData.fire(undefined);
}

然后将其注册为命令
commands.registerCommand("******.refresh", () =>
treeDataProvider.refresh()
);

这样,您可以使用命令refresh重新加载树 View
我遵循了以下文件- https://code.visualstudio.com/api/extension-guides/tree-view

现在,您要做的就是在数据发生更改时触发此命令,这可以通过不同的方式完成

希望能帮助到你!编码愉快。

关于visual-studio-code - 如何在基础数据更改时刷新Treeview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52421724/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com