CLangD + Eclipse Che

Hello clang devs:

Per this message sent a few days ago:
http://lists.llvm.org/pipermail/cfe-dev/2017-January/052509.html

I am project lead for Eclipse Che - a developer workspace server and cloud IDE, which forms the basis of Codenvy. We did work with Microsoft and Red Hat to get the language server protocol announced last June. We had originally implemented a similar, but different protocol within Eclipse IDE and Eclipse Che. Our protocol was so similar to Microsoft’s that we agreed to consolidate around a common one. We’ve been fortunate to see traction with 20 or so languages providing adapters.

We have received many customer (and end user) requests for a clang language server. It’s (by far) the most requested feature we get. As soon as you have runnable prototypes for the implementation, we would like to have engineers get it packaged as a Che agent, which is how the language server gets deployed into workspaces that have c/c++ project types. Once packaged as an agent, then any browser running Che will have intellisense capabilities that match the language server protocol features implemented. Che provides a standard wrapper to the stdin/stdout JSON protocol, converting the traffic to become a JSON payload over a REST service communicated over a websocket to the browser. This allows language servers designed for working only over stdin to become distributed.

This mechanism would ship as a default with all Che (and Codenvy) installations, and likely picked up by the classic Eclipse IDE a bit later.

It would take us about a day or so to package it up. We also have a tutorial on how to register new language servers, which is fairly easy to follow as well. However, we are happy to the packaging work. https://www.eclipse.org/che/docs/workspace/agents/index.html#creating-new-agents. Eventually, we look forward to building a public, open source registry of language servers that would allow any IDE to discover, download, install, and integrate a language server without first having it packaged for the platform, but that is a ways off.

If you are not familiar with Che - it was announced in early 2016 as an Eclipse Project. While people think of it as a browser IDE, it’s key focus is on the workspace, which containes Dockerized runtimes (all your dev tools), debugger, project code (cloned like you do with localhost), and then a self-hosted browser IDE. Devs run Che servers which host workspaces are shared, collaborative. Developers can then use the embedded browser IDE or their desktop IDE. Che servers are launched as Docker containers “docker run eclipse/che start”, so it lets you have a hosted dev environment anywhere. The project has grown in adoption with our 5.0 release in January containing 1300 commits from 70 contributors including companies like SAP, Samsung and Red Hat. Telemetry from installs shows us about 150,000 hours of usage / week, up from about 10,000 a year ago. While our community is not as seasoned or as big as clang’s, we are working hard and seem to be on the front tip of a cloud development wave.

We are very excited to see this announcement - please reach out to us at any time, we we’ll help do our part.

Tyler

Hello clang devs:

Per this message sent a few days ago:
http://lists.llvm.org/pipermail/cfe-dev/2017-January/052509.html

I am project lead for Eclipse Che - a developer workspace server and cloud IDE, which forms the basis of Codenvy. We did work with Microsoft and Red Hat to get the language server protocol announced last June. We had originally implemented a similar, but different protocol within Eclipse IDE and Eclipse Che. Our protocol was so similar to Microsoft’s that we agreed to consolidate around a common one. We’ve been fortunate to see traction with 20 or so languages providing adapters.

We have received many customer (and end user) requests for a clang language server. It’s (by far) the most requested feature we get. As soon as you have runnable prototypes for the implementation, we would like to have engineers get it packaged as a Che agent, which is how the language server gets deployed into workspaces that have c/c++ project types. Once packaged as an agent, then any browser running Che will have intellisense capabilities that match the language server protocol features implemented. Che provides a standard wrapper to the stdin/stdout JSON protocol, converting the traffic to become a JSON payload over a REST service communicated over a websocket to the browser. This allows language servers designed for working only over stdin to become distributed.

This mechanism would ship as a default with all Che (and Codenvy) installations, and likely picked up by the classic Eclipse IDE a bit later.

It would take us about a day or so to package it up. We also have a tutorial on how to register new language servers, which is fairly easy to follow as well. However, we are happy to the packaging work. https://www.eclipse.org/che/docs/workspace/agents/index.html#creating-new-agents. Eventually, we look forward to building a public, open source registry of language servers that would allow any IDE to discover, download, install, and integrate a language server without first having it packaged for the platform, but that is a ways off.

If you are not familiar with Che - it was announced in early 2016 as an Eclipse Project. While people think of it as a browser IDE, it’s key focus is on the workspace, which containes Dockerized runtimes (all your dev tools), debugger, project code (cloned like you do with localhost), and then a self-hosted browser IDE. Devs run Che servers which host workspaces are shared, collaborative. Developers can then use the embedded browser IDE or their desktop IDE. Che servers are launched as Docker containers “docker run eclipse/che start”, so it lets you have a hosted dev environment anywhere. The project has grown in adoption with our 5.0 release in January containing 1300 commits from 70 contributors including companies like SAP, Samsung and Red Hat. Telemetry from installs shows us about 150,000 hours of usage / week, up from about 10,000 a year ago. While our community is not as seasoned or as big as clang’s, we are working hard and seem to be on the front tip of a cloud development wave.

We are very excited to see this announcement - please reach out to us at any time, we we’ll help do our part.

Nice to hear :slight_smile: I’m not sure whether there is a call-to-action in your email, though - is there anything from our side we could help you with, other than implementing clangd?

Cheers,
/Manuel

​At this time the call to action would ​be for us to get early builds or distributions of clang packaged into a language server. Once available we will work on providing standard agent wrappers for Eclipse and do a round to integration tests to provide feedback on behaviors, bugs, or improvements.

​At this time the call to action would ​be for us to get early builds or distributions of clang packaged into a language server. Once available we will work on providing standard agent wrappers for Eclipse and do a round to integration tests to provide feedback on behaviors, bugs, or improvements.

As Marc-Andre mentioned, the Eclipse CDT project is also signed up to hook this up to Eclipse. There is a lot of activity at Eclipse around the Language Server Protocol and where super excited to help bring clangd into the fold and contribute back where we can.

Is there a timeline in when code will start to drop so we can start to help?

Thanks!
Doug Schaefer, Eclipse CDT Project Co-Lead

From: cfe-dev <cfe-dev-bounces@lists.llvm.org> on behalf of Tyler Jewell via cfe-dev <cfe-dev@lists.llvm.org>
Reply-To: Tyler Jewell <tyler@codenvy.com>
Date: Monday, February 6, 2017 at 11:54 AM
To: Manuel Klimek <klimek@google.com>
Cc: “cfe-dev@lists.llvm.org” <cfe-dev@lists.llvm.org>
Subject: Re: [cfe-dev] CLangD + Eclipse Che

​At this time the call to action would ​be for us to get early builds or distributions of clang packaged into a language server. Once available we will work on providing standard agent wrappers for Eclipse and do a round to integration tests to provide feedback on behaviors, bugs, or improvements.

As Marc-Andre mentioned, the Eclipse CDT project is also signed up to hook this up to Eclipse. There is a lot of activity at Eclipse around the Language Server Protocol and where super excited to help bring clangd into the fold and contribute back where we can.

Is there a timeline in when code will start to drop so we can start to help?

Code started dropping in r294291. Disclaimer: early stages, will change :slight_smile: