eclipse-lsp4e / eclipse-lsp4e/lsp4e
Better support when language server doesn't work
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 85
- Forks
- 69
- Avg merge
- 8h 33m
- Merged PRs (30d)
- 6
Description
LSP4E provides a great support for language server when it can start and when everything is working well, but when language server crashes or cannot be started,it is a very nightmare, because in short any operations tries again and again to start the language server and it freezes the Eclipse IDE.
Here a sample issue https://github.com/jbosstools/jbosstools-quarkus/issues/235
In short, there is a problem with the Quarkus language server and there are several problems:
- the first is that it freezes on each operations and Java editor (Quarkus language server is mapped to Java content type) freezes for any operations like hyperlink. The only solution for the user is to uninstall the plugin although the plugin provides another features than language server.
- we have none overview about the problem (the language server can be sarted, on which operations is faiiling?)
On LSP4IJ (LSP support for IJ), I managed this usecase by disabling automaticly the language server (after 50 attempt of language server start). The LSP console shows that the language server is disabled and show the error stack trace. As we can see the server status, we can know that the problem comes from the start of language server. User can copy the start command to try it a shell command to investigate more the problem (One of problem for instance is that it starts the language server with a wron Java version runtime)
Here a demo with a language server which cannot be started:
In this demo you can see:
- stack trace error on LSP console
- the server status which shows that after several attemps become disabled
User can choose too to disable it with Stop button
In other words:
- there are no freeze if language server cannot start
- user can choose to disable it (with LSP4E you have already implemented that by unchecking the language server)
- LSP console shows the error message easily
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 from the language-server startup and retry flow, then reproduce the issue with a server that cannot start as shown in the demos. The work is done when repeated failures no longer freeze Eclipse, the server becomes visibly disabled, the LSP console exposes the error, and the user can stop or investigate the server.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- developer-experience, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100