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
window/workDoneProgress/create- Request token creation$/progresswithWorkDoneProgressBegin- Start indicator$/progresswithWorkDoneProgressReport- Update progress (via channel)$/progresswithWorkDoneProgressEnd- Complete indicator
Structs§
- Progress
Sender - Non-blocking sender for progress updates from fetch tasks.
- Registry
Progress - Progress tracker for registry data fetching.