Che: Scala support

Created on 3 Apr 2016  Â·  16Comments  Â·  Source: eclipse/che

I'd like to see Scala support added. How do you add support for a new language? Can any code from the Scala IDE Eclipse plugin be reused?

kinenhancement

Most helpful comment

Any update on this? Lack of support for Scala is the thing stops me from migrating to Eclipse che.

All 16 comments

Hi @benmccann. We'd love to see first-class Scala support within the default distribution of Eclipse Che. One of our objectives for the quarter is to focus on building out a plugin resource center, to provide a comprehensive set of tutorials and documentation that outlines how alter the product with two key use cases: a) adding a new programming language with intellisense experience, and b) adding a new tool capability like what we do for Git (or the subversion plugin which just got merged).

We'd love it if the communite could start contributing early. There is a number of things that can be done with the product today.

  • Add a Stack. Stacks are the configuration of the workspace runtimes. Is there an optimized Scala stack that we can package into the product. We would want to make sure the appropriate Scala tools are installed. Probably one for just the language and maybe another one that includes the most common frameworks included - maybe the Play framework.
  • Add templates. Templates are matched to a Stack and provide sample projects + commands that will let a new user get a project with source code that can edit / build / compile it.
  • Language Extension. Once you get to this level, then to add additional capabilities we get into extension development and packaged as plugins. There are two types of extensions that would need to be built. First, a dependency management extension for sbt, similar to what we have for maven out of the box (or perhaps some maven-scala plugin instead). Beyond providing useful utilities for working with the build system, it more importantly is responsible for dependency management, downloading dependencies, and managing dynamic classpaths (all of which are necessary for good intellisense to start working). We are just about to merge a rewrite of the maven plugin - but you can see it in one of the branches. Second, an extension that focuses on the intellisense capabiltiies. This would be on the server-side which would reuse the same utilities that are in the Scala Eclipse IDE plugin and package them into the server-side with JAX-RS wrappers. Once these were there, then it's fairly straight forward to writing editor extensions in the IDE that can interact with the RESTful services. This is what we do for Java.

On this last part, we are starting to document how we do this in tutorials and documentation pages in the CUSTOMIZING.md file. It's incomplete, but we are slowly working through all ofthe pages that need to be developed. And we have examples for how we do everything in the /plugins folder of the repository, along with providing a lot of personalized assistance, if you want it.

Thanks for the detailed response

  • Stack. I'd recommend the Stack should install Java 8 and sbt or activator
  • Templates. I'm not sure this is necessary for Scala because there's already the activator tool for Scala which wraps sbt and provides numerous templates
  • Language Extension. Yeah, this is the part I was thinking of that would be really valuable. There's sbteclipse which creates the .classpath for Eclipse. Would the dependency management extension needed be similar?

Yes that is the sort of extension that is needed to get the project configuration and project type to match up so that dependencies can be evaluated.

I would recommend that a stack get built first and merged into the main stream. I think you'd want the activator installed in the stack and to show that the command line is workable. Then in a second phase the sbt work would be analyzed.

I would love to see at happening and could help with testing and feedback :).

Has any further progress on this been made? I am currently getting the dockerfile built out to create the workspace for Scala. However, just wanted to see if there was any further progress or such so I do not collide with current work on this.

Thanks

Hi @DarkBlaez - there hasn't been anything moved further on the Scala front that I have seen yet. However, we are about 6 weeks away from making our first public release of our language server protocol implementation and it will have Java, C#, JSON, and maybe C/C++. We still have a lot more work to do on our side around making sure that we can accept any language server that uses the right JSON protocol. So once that is there, it should become plug-n-play for other language intellisense providers to drop in rich sets of functionality that is usable from the Che editor.

https://github.com/eclipse/che/issues/1287
https://github.com/eclipse/che/issues/2109

These issues are getting updated later this week. There is about 10 pages of notes that go along with them. There is some super impressive capabilities there.

Tyler thanks for the update. I will hold up on any efforts other than what I am doing on the workspace until the language server protocol build is released. In the mean time i will go review the referenced notes and links to come up to speed with what is being done. Thanks and greatly appreciated

+1

Has there been any progress on this? Thanks.

Unfortunately, we have not had any Scala stacks submitted to be added to
the default stack library that ships within Che, yet. We are awaiting a
pull request on that part.

There is not yet a language server for Scala, but there is a group working
on and once it is finished and open sources, it's rather easy for us to add
it as a language server for Scala projects within Che.

Tyler Jewell | CEO | tyler@​codenvy.​com | 9​78​.8​84​.53​55

On Sat, Mar 25, 2017 at 5:50 PM, kenydub notifications@github.com wrote:

Has there been any progress on this? Thanks.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/eclipse/che/issues/958#issuecomment-289250163, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAX9CgGy9fpIxmkEG_bu_t88DQ0Dfum-ks5rpbZwgaJpZM4H-Z7S
.

Could you possibly leverage ensime for the scala language server?

The is already such an initiative at
https://github.com/dragos/dragos-vscode-scala

Le ven. 21 avr. 2017 à 15:57, Vikas Rangarajan notifications@github.com a
écrit :

Could you possibly leverage ensime for the
scala language server?

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/eclipse/che/issues/958#issuecomment-296197552, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAXGq2JWwTa7QmwFLUW9tWOiKXI4_3KRks5ryLWsgaJpZM4H-Z7S
.

Any update on this? Lack of support for Scala is the thing stops me from migrating to Eclipse che.

Is there a plan to support for scala?

We got a question on StackOverflow on this topic.

We have no plans to support Scala from the Che project but we do have LSP and vscode plugin compatibility and we welcome any extensions that would like to publish on our registry.

Asking Scala extension providers such as https://github.com/scalameta/metals for a Che extension is the better way to proceed.

Was this page helpful?
0 / 5 - 0 ratings