Skip to content

Latest commit

 

History

History
43 lines (35 loc) · 1.26 KB

notes.md

File metadata and controls

43 lines (35 loc) · 1.26 KB

import * as vscode from 'vscode';

export function activate(context: vscode.ExtensionContext) { vscode.window.registerTreeDataProvider('exampleView', new TreeDataProvider()); }

class TreeDataProvider implements vscode.TreeDataProvider { onDidChangeTreeData?: vscode.Event<TreeItem|null|undefined>|undefined;

data: TreeItem[];

constructor() { this.data = [new TreeItem('cars', [ new TreeItem( 'Ford', [new TreeItem('Fiesta'), new TreeItem('Focus'), new TreeItem('Mustang')]), new TreeItem( 'BMW', [new TreeItem('320'), new TreeItem('X3'), new TreeItem('X5')]) ])]; }

getTreeItem(element: TreeItem): vscode.TreeItem|Thenable<vscode.TreeItem> { return element; }

getChildren(element?: TreeItem|undefined): vscode.ProviderResult<TreeItem[]> { if (element === undefined) { return this.data; } return element.children; } }

class TreeItem extends vscode.TreeItem { children: TreeItem[]|undefined;

constructor(label: string, children?: TreeItem[]) { super( label, children === undefined ? vscode.TreeItemCollapsibleState.None : vscode.TreeItemCollapsibleState.Expanded); this.children = children; } }