• Public
  • Public/Protected
  • All

Interface LabelProviderContribution

A LabelProviderContribution determines how specific elements/nodes are displayed in the workbench. Theia views use a common LabelProvider to determine the label and/or an icon for elements shown in the UI. This includes elements in lists and trees, but also view specific locations like headers. The common LabelProvider collects all {@links LabelProviderContribution} and delegates to the contribution with the highest priority. This is determined via calling the LabelProviderContribution.canHandle function, so contributions define which elements they are responsible for. As arbitrary views can consume LabelProviderContributions, they must be generic for the covered element type, not view specific. Label providers and contributions can be used for arbitrary element and node types, e.g. for markers or domain-specific elements.


  • LabelProviderContribution



onDidChange?: Event<DidChangeLabelEvent>

Emit when something has changed that may result in this label provider returning a different value for one or more properties (name, icon etc).


  • canHandle(element: object): number
  • Determines whether this contribution can handle the given element and with what priority. All contributions are ordered by the returned number if greater than zero. The highest number wins. If two or more contributions return the same positive number one of those will be used. It is undefined which one.


    • element: object

    Returns number

  • getIcon(element: object): undefined | string
  • getLongName(element: object): undefined | string
  • getName(element: object): undefined | string