typescript 如何在VS代码树视图中以编程方式选择给定标签的树项?

zysjyyx4  于 2023-03-09  发布在  TypeScript
关注(0)|答案(1)|浏览(88)

我按照here提供的示例创建了一个基本的VS代码树视图。我现在正在寻找如何选择(或取消选择)树视图中给定标签的项目
我搜索了很多,但没有找到任何(简单的)例子。

3qpi33ja

3qpi33ja1#

如果我理解你的问题正确,你可以这样做:
(this代码扩展了您提到的示例)

class TreeDataProvider implements vscode.TreeDataProvider<TreeItem> {
    // ...

    /** returns item object by its label */
    getTreeItemByLabel(label: string)
    {
        // more complicated logics should go here to find deep nested items
        return this.data.find(x => x.label == 'cars').children.find(x => x.label == label);
    }

    // this method from vscode.TreeDataProvider interface needed to enable reveal method.
    // logics should also be more complicated
    getParent(element: TreeItem): vscode.ProviderResult<TreeItem>
    {
        if (element.label == 'cars') return undefined;
        return this.data[0];
    }
}

// register provider and view
const provider = new TreeDataProvider();
const treeView = vscode.window.createTreeView("exampleView", { treeDataProvider: provider });

// get item by label and make it selected
const item = provider.getTreeItemByLabel("BMW");
treeView.reveal(item, { focus: true, select: true });

相关问题