[jbosstools-issues] [JBoss JIRA] (ERT-623) Evaluate combination of Docker images of LS (from Che?) with LSP4E

Mickael Istria (JIRA) issues at jboss.org
Thu May 3 17:39:00 EDT 2018


    [ https://issues.jboss.org/browse/ERT-623?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13570701#comment-13570701 ] 

Mickael Istria commented on ERT-623:
------------------------------------

So I've made some progress with this one.
First step was to find a LS that works as a Docker image and streams over stdio. I found 2 candidates: https://hub.docker.com/r/mtsmfm/language_server-ruby/ which I didn't manage to get working because of https://github.com/mtsmfm/language_server-ruby/issues/65 , and https://hub.docker.com/r/rcjsuen/docker-langserver/ which works like a charm. The command-line to start the LS over stdio is "docker run -i rcjsuen/docker-langserver --stdio".

* If I create a dedicated extension which just runs the CLI and pass the streams to LSP4E, everything works perfectly.
* If I create an external Launch Config to run the same CLI and associate it with the Dockerfile, then I have to tweak several things for it to work (disable build before run, check console output is enabled) and I get in best case all features working. By best case, I mean that results are not so predictable and it can also happen that the exact same step freeze the IDE. I guess the cuprit can be both Docker which would add extra things to stdout in some case (making LSP4E fail) and LSP4E which sucks at properly retrieving the streams from a Launch Configuration.
* Then, if I use the Docker Run Launch Configuration; LSP4E fails because it cannot find the IProcess and the streams attached to the Docker Launch. Not sure whether this is a bug in LSP4E not using a good approach to retrieve the streams or if it's the Docker Launch Config which misses to set an IProcess, or both...

All those are overall very encouraging results, as it shows that:
* Seen from LSP4E, Docker images of LS can be treated as regular executables and just work with the same limitations
* We don't really need DocketTools for LSP4E to take advantage of Docker as we can directly pass command lines
* If we want to use DockerTools, it's probably doable

> Evaluate combination of Docker images of LS (from Che?) with LSP4E
> ------------------------------------------------------------------
>
>                 Key: ERT-623
>                 URL: https://issues.jboss.org/browse/ERT-623
>             Project: Eclipse Release Train
>          Issue Type: Enhancement
>            Reporter: Mickael Istria
>
> LSP4E offers a way to dynamically associate a Launch configuration representing a language server (communicating over stdio) with a content type to enable LS-based edition assistance in editor.
> It would be interesting to try this using a Docker Launch Configuration with LSP4E, more particularly, it'd be nice to test the Docker LS images that are created for Eclipse Che.
> cc [~rgrunber] : any obvious concern about it?
> cc [~flbe] : are the image for Language Server in Che streaming the LS messages over stdio? Or is it using another channel?



--
This message was sent by Atlassian JIRA
(v7.5.0#75005)


More information about the jbosstools-issues mailing list