eclipse-xtext / eclipse-xtext/xtext

[LSP] Build Progress Notification

Open
#2,425 1 comment 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.