Skip to main content

Module UI

Module UI 

Source
Expand description

UI-layer IPC handlers grouped by domain, one file per domain. Before the 2026-04-23 split this was a single UI.rs (~670 LoC, 32 handler fns); now each domain lives in its own file so grep pub async fn against one file tells you exactly which wire methods it owns.

Domains:

Modules§

Decoration
File decoration handlers (URI → badge / tooltip / colour) backing vscode.window.registerFileDecorationProvider. Mountain’s ApplicationState::Feature::Decorations owns the map keyed on URI string; handlers here just read / mutate that store.
Keybinding
Dynamic keybinding handlers. Extensions’ package.json > contributes. keybindings is a declarative registry; this surface is for the imperative keybindings:add/remove/lookup/getAll IPC path Wind uses for RunTime registrations (e.g. palette-installed commands).
Lifecycle
Lifecycle handlers: phase get / wait / shutdown. Tracks Mountain’s four-phase startup (Starting / Ready / Restored / Eventually) so Sky can gate UI installation on lifecycle progress.
Notification
Notification toast handlers. Both the plain-message and the progress-bar variants go through here; each emits on an SkyEvent::Notification* channel so Sky’s toast stack renders without a round-trip back through Mountain.
Progress
Progress indicator handlers (progress:begin/report/end). Distinct from the notification-scoped progress surface in UI::Notification - these drive window-level / status-bar progress via SkyEvent::Progress*.
QuickInput
QuickPick / InputBox dialog handlers. Routes through UserInterfaceProvider so the actual dialog rendering stays platform-agnostic (Tauri-webview on desktop; extensible to a future browser preview).
Theme
Theme IPC handlers. themes:getActive / themes:list / themes:set drive the workbench’s colour-theme picker and the RunTime theme swap.
WorkingCopy
Working-copy (dirty-state) handlers. Tracks whether an open URI has unsaved changes; Sky queries this to paint the tab’s dot-indicator, gate exit dialogs, and drive “Save All” affordances.
Workspace
Workspace folder handlers: get / add / remove / get-name. Thin wrappers over ApplicationState::Workspace that re-broadcast via UpdateWorkspaceFoldersAndNotify so Wind + Sky pick up the new folder list on the sky://workspace/* channels.