Module progress

Module progress 

Source
Expand description

LSP Work Done Progress protocol support for loading indicators.

Uses a channel-based architecture to decouple progress producers (fetch tasks) from the LSP transport consumer, preventing backpressure from blocking fetches.

§Architecture

┌─────────────┐     mpsc channel     ┌──────────────┐     LSP transport
│ fetch task 1 │──┐                   │              │──────────────────►
│ fetch task 2 │──┼── ProgressUpdate ──► progress    │  send_notification
│ fetch task N │──┘                   │   task       │──────────────────►
└─────────────┘                       └──────────────┘

§Protocol Flow

  1. window/workDoneProgress/create - Request token creation
  2. $/progress with WorkDoneProgressBegin - Start indicator
  3. $/progress with WorkDoneProgressReport - Update progress (via channel)
  4. $/progress with WorkDoneProgressEnd - Complete indicator

Structs§

ProgressSender
Non-blocking sender for progress updates from fetch tasks.
RegistryProgress
Progress tracker for registry data fetching.