Interface TreeDataProvider<T>

A data provider that provides tree data

interface TreeDataProvider<T> {
    onDidChangeTreeData?: Event<undefined | null | void | T | T[]>;
    getChildren(element?): ProviderResult<T[]>;
    getParent?(element): ProviderResult<T>;
    getTreeItem(element): TreeItem | Thenable<TreeItem>;
    resolveTreeItem?(item, element, token): ProviderResult<TreeItem>;
}

Type Parameters

  • T

Properties

onDidChangeTreeData?: Event<undefined | null | void | T | T[]>

An optional event to signal that an element or root has changed. This will trigger the view to update the changed element/root and its children recursively (if shown). To signal that root has changed, do not pass any argument or pass undefined or null.

Methods

  • Optional method to return the parent of element. Return null or undefined if element is a child of root.

    NOTE: This method should be implemented in order to access reveal API.

    Parameters

    • element: T

      The element for which the parent has to be returned.

    Returns ProviderResult<T>

    Parent of element.

  • Called on hover to resolve the TreeItem property if it is undefined. Called on tree item click/open to resolve the TreeItem property if it is undefined. Only properties that were undefined can be resolved in resolveTreeItem. Functionality may be expanded later to include being called to resolve other missing properties on selection and/or on open.

    Will only ever be called once per TreeItem.

    onDidChangeTreeData should not be triggered from within resolveTreeItem.

    Note that this function is called when tree items are already showing in the UI. Because of that, no property that changes the presentation (label, description, etc.) can be changed.

    Parameters

    • item: TreeItem

      Undefined properties of item should be set then item should be returned.

    • element: T

      The object associated with the TreeItem.

    • token: CancellationToken

      A cancellation token.

    Returns ProviderResult<TreeItem>

    The resolved tree item or a thenable that resolves to such. It is OK to return the given item. When no result is returned, the given item will be used.