Skip to content

Spinner + ProgressBar primitives #142

Description

@JDonaghy

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    infrastructureBuild, CI, distributionuiUI/rendering

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions