美文网首页
创建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