[
https://issues.jboss.org/browse/ERT-623?page=com.atlassian.jira.plugin.sy...
]
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)