美文网首页
创建VS Code 扩展插件(八)——TreeDataProvi

创建VS Code 扩展插件(八)——TreeDataProvi

作者: 寻找无名的特质 | 来源:发表于2023-12-18 05:42 被阅读0次

TreeDataProvider负责显示TreeView中的节点,在代码中,可以在构造函数中,传入需要显示的数据,比如:

    constructor(private temps: any) { }

然后实现getTreeItem,这里只要简单返回就行:

    getTreeItem(element: TempNode): vscode.TreeItem {
        return element;
    }

最主要的是需要实现getChildren,这里有几种情况,首先是没有element传入,这时返回的是根节点集合,然后是有element传入,需要根据返回的节点是否有子节点,决定节点的展开和关闭图标,示例代码如下:

getChildren(element?: TempNode): vscode.ProviderResult<TempNode[]> {
        if (element) {
            let res=[];
            for(var i=0;i<element.children.length;i++){
                let temp=element.children[i];
                if(temp.isFolder){ //有子节点
                    res.push(new TempNode(temp.name,temp.temps,vscode.TreeItemCollapsibleState.Collapsed));
                }else{ //没有子节点
                    res.push(new TempNode(temp.name,temp.temps,vscode.TreeItemCollapsibleState.None));
                }
            }
            return  Promise.resolve(res);
        }else{
            //根节点
            let res=[];
            for(var i=0;i<this.temps.length;i++){
                let temp=this.temps[i];
                if(temp.isFolder){
                    res.push(new TempNode(temp.name,temp.temps,vscode.TreeItemCollapsibleState.Collapsed));
                }else{
                    res.push(new TempNode(temp.name,temp.temps,vscode.TreeItemCollapsibleState.None));
                }
                
            }
            return  Promise.resolve(res);
        }
    }

相关文章

网友评论

      本文标题:创建VS Code 扩展插件(八)——TreeDataProvi

      本文链接:https://www.haomeiwen.com/subject/uoiygdtx.html