Module TreeViewProvider

Module TreeViewProvider 

Source
Expand description

Β§TreeViewProvider (Environment)

Implements the TreeViewProvider trait for MountainEnvironment.

This provider manages the lifecycle of custom tree views and orchestrates data flow between the extension host (Cocoon) and the UI (Sky). It handles registration, data dispatching, UI state updates, events, and state persistence.

Β§Implementation Strategy

The trait implementation is split across multiple helper modules for maintainability:

  • Registration: RegisterTreeDataProvider, UnregisterTreeDataProvider
  • DataAccess: GetChildren, GetTreeItem (dispatcher logic)
  • UIState: SetTreeViewMessage, SetTreeViewTitle, SetTreeViewBadge
  • Events: OnTreeNodeExpanded, OnTreeSelectionChanged
  • StatePersistence: PersistTreeViewState, RestoreTreeViewState
  • Visibility: RevealTreeItem, RefreshTreeView

The single impl TreeViewProvider for MountainEnvironment block in this file delegates to those helper functions. This satisfies Rust’s orphan rules while keeping code organized.

ModulesΒ§

DataAccess πŸ”’
Tree View Data Access Helpers
Events πŸ”’
Tree View Event Handlers
Registration πŸ”’
Tree View Registration Helpers
StatePersistence πŸ”’
Tree View State Persistence Helpers
UIState πŸ”’
Tree View UI State Helpers
Visibility πŸ”’
Tree View Visibility Helpers