Part of the cross-platform UI crate (see `docs/UI_CRATE_DESIGN.md`).
What
Two primitives for communicating activity:
`Spinner` — indeterminate activity indicator; renders inline or floating. Multi-backend rendering (braille spinner in TUI, platform native-feel in GUIs).
`ProgressBar` — determinate (0..1) or indeterminate; optional label, optional cancel button.
Why
Connects to #59 "Git panel operations have no progress indicator". Also applies to:
LSP server install / Mason downloads
Extension install / uninstall
`:DapInstall`
`git clone` / pull / fetch
Large project searches / replace-all
DAP attach / exec of long-running programs
Today these are either blocking (bad) or silent (bad). A `Spinner` + `ProgressBar` primitive pair lets every backend show progress consistently.
Acceptance
Data structs and event enums (CancelClicked for ProgressBar)
Reference implementations in all existing backends
Migrate at least one vimcode long-running operation (likely LspInstall or project search) to use them
Visible resolution in Git panel operations have no progress indicator #59
Part of the cross-platform UI crate (see `docs/UI_CRATE_DESIGN.md`).
What
Two primitives for communicating activity:
Why
Connects to #59 "Git panel operations have no progress indicator". Also applies to:
Today these are either blocking (bad) or silent (bad). A `Spinner` + `ProgressBar` primitive pair lets every backend show progress consistently.
Acceptance