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 });
1条答案
按热度按时间3qpi33ja1#
如果我理解你的问题正确,你可以这样做:
(this代码扩展了您提到的示例)