Mountain/Command/TreeView.rs
1
2//! # TreeView (Tauri command surface)
3//!
4//! Bridges tree-view UI requests from Sky (file explorer, SCM
5//! viewlet, debug viewlet, extension-contributed views) into the
6//! `MountainEnvironment::Require<dyn TreeViewProvider>` registry.
7//! Eight wire-bound commands, each in its own file (file name =
8//! Tauri command identifier per the Naming-Convention exception):
9//!
10//! - `GetTreeViewChildren::GetTreeViewChildren` - fetch children for a tree
11//! node (or root).
12//! - `GetTreeViewItem::GetTreeViewItem` - fetch a single item's metadata.
13//! - `OnTreeViewExpansionChanged::OnTreeViewExpansionChanged` (stub).
14//! - `OnTreeViewSelectionChanged::OnTreeViewSelectionChanged` (stub).
15//! - `RefreshTreeView::RefreshTreeView` - request data refresh.
16//! - `RevealTreeViewItem::RevealTreeViewItem` - focus / scroll-into -view.
17//! - `PersistTreeView::PersistTreeView` (stub).
18//! - `RestoreTreeView::RestoreTreeView` (stub).
19//!
20//! Errors propagate as `Result<Value, String>` with the error
21//! string surfaced directly to the renderer.
22//!
23//! VS Code reference:
24//! `vs/workbench/api/browser/mainThreadTreeViews.ts`,
25//! `vs/workbench/api/common/extHostTreeViews.ts`.
26//!
27//! ## Planned Work
28//!
29//! - Trait additions on `CommonTreeViewProvider` for the four stubs (expansion,
30//! selection, persist, restore)
31//! - Drag-and-drop, multi-column, badge / tooltip / icon-theming support
32//! - Tree-item validation
33
34pub mod GetTreeViewChildren;
35
36pub mod GetTreeViewItem;
37
38pub mod OnTreeViewExpansionChanged;
39
40pub mod OnTreeViewSelectionChanged;
41
42pub mod PersistTreeView;
43
44pub mod RefreshTreeView;
45
46pub mod RestoreTreeView;
47
48pub mod RevealTreeViewItem;