eclipse-xtext / eclipse-xtext/xtext
[LSP] Build Progress Notification
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 831
- Forks
- 330
- Avg merge
- 3d 7h
- Merged PRs (30d)
- 12
Description
Currently build requests are blocking (any newer read request will remain in the queue until it finishes) and cancel any currently running request. In addition they can be long running requests, or at least be slow enough to cause timeouts in LSP4E (and probably any other client) remote calls.
Therefore I think it is important that the user is informed that a build is running with a progress indicator. Now that LSP4 supports them it would be good if the Xtext LS builder would do as well.
Adding the notification is quite easy, and I can submit a PR if the feature is welcome. @szarnekow , @cdietrich, shall I?
Supporting also that the user cancels the build from the UI is a bit more tricky because then the CompletableFuture holding the build request must be assigned a request token and then this token must be used within the build to report progress, but it is possible as well, I could submit a second PR for that as well. We have implemented this kind of progress with cancelation support for runRead by subclassing the RequestManager and it works well for us.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the Xtext LS builder and the RequestManager/runRead progress implementation described in the issue, then review the linked LSP4E progress support. Done means build requests report progress to LSP clients; build cancellation is described as a possible follow-up requiring request-token handling.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- build-system, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100