ebkalderon / tower-lsp

Language Server Protocol implementation written in Rust
Apache License 2.0
951 stars 54 forks source link

Implement support for server initiated $/progress #381

Open ebkalderon opened 1 year ago

ebkalderon commented 1 year ago

Background

This task was split from #176.

According to the relevant section in the specification, server initiated progress is defined as follows:

  1. The server sends a window/workDoneProgress/create request (with a server-generated WorkDoneToken) to the client.
  2. If it succeeds, the server sends $/progress begin/report/end notifications to the client using the same WorkDoneToken.
  3. If it fails, the server must not send progress notifications using that WorkDoneToken at all.
  4. The client may send a window/workDoneProgress/cancel notification to the server, requesting the $/progress notification stream with the given WorkDoneToken be canceled.

Implementation

To support this type of $/progress, we should do the following:

ematipico commented 2 months ago

Any chance we could help here?