Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to add support for a new language in Che 5.0 #3772

Closed
Gl1TcH-1n-Th3-M4tR1x opened this issue Jan 17, 2017 · 9 comments
Closed

How to add support for a new language in Che 5.0 #3772

Gl1TcH-1n-Th3-M4tR1x opened this issue Jan 17, 2017 · 9 comments
Assignees
Labels
area/doc Issues related to documentation

Comments

@Gl1TcH-1n-Th3-M4tR1x
Copy link

According to Che 5.0 Release Notes, Language servers provide distributed intellisense for a language and can include syntax highlighting, code analysis, error checking and auto-completion.

Please let me know how to add support for a custom language.

@TylerJewell
Copy link

While the end user docs aroudn how to use language servers has been updated, the development workflow in the Wiki has not been updated with instructions on how to package new language servers as a ZIP for deployment as a module, and then how to register file types to trigger that language server. Engineers in the ecosystem will want clear instructions on how to package this either for their custom assemblies, or as a PR to be included in the default assembly.

@TylerJewell TylerJewell added kind/docs kind/question Questions that haven't been identified as being feature requests or bugs. labels Jan 17, 2017
@slemeur
Copy link
Contributor

slemeur commented Jan 18, 2017

Hi @German-Development .

We are going to add documentation on how to author a Language Server.
You can follow this issue: https://github.com/codenvy/che-docs/issues/70

Until the docs are authored, I recommend you to give a look on how current language servers have been integrated into Che.
You can for example study the following PRs:

@ghost
Copy link

ghost commented Jan 28, 2017

@slemeur I checked out the #3693 pull request. Sadly it just seems to add to an existing python plugin in some of the commits, and in overall it is very hard to find out from what you've linked what exactly needs to be added from the ground up (no language plugin present yet at all) to make both syntax highlighting and language server integration work for a new language.

While we are waiting for the docs, is there at least some sort of .ZIP, repository link, .. which contains a complete plugin one can look at which would provide those features for a language?

@vinokurig
Copy link
Contributor

@Jonast Since 5.2 release we have Language Server Protocol documentation. May be this will help you.

@ghost
Copy link

ghost commented Feb 7, 2017

The language server protocol guide with the direct associated "Adding an Agent" guide is definitely already easier to follow.

What do you think about adding an info box at the beginning of the plugins guide:

  1. here https://www.eclipse.org/che/docs/plugins/introduction/index.html
  2. and here https://www.eclipse.org/che/docs/plugins/create-and-build-extensions/index.html

which states that for pure language plugins, people should consider jumping right to https://www.eclipse.org/che/docs/workspace/agents/index.html#creating-new-agents for adding new language agents and https://www.eclipse.org/che/docs/plugins/languageserver/index.html for how the language server protocol works (if they don't have a finished language server yet) instead?

Reading those two seems very reasonable - and the basic plugin architecture description is just so complex and seems so irrelevant for a language server that it's a bit frustrating to read for people who just want to add a language server.

Also, have you ever considered adding a UI button to a workspace to pick and run a language server binary for a given file extension automatically? This would allow for far quicker testing and people could just plug in language server binaries without official eclipse che agent plugins directly, which would make them directly usable even if nobody has bothered to make such a plugin yet.

@TylerJewell
Copy link

@Jonast - I am going to refactor the plugins guide over the next month. We are working on a series of maven archetypes to generate custom assemblies, which are ready-to-go packages that have customizations within them. In this case, it will be easier for us to get people to start with working with custom assemblies of different flavors, and they will then no longer need to know about many of the nuances around authoring (& linking) custom extensions.

I think given the outline that we are thinking about, addressing these items about communicating how to get started with agents and language server development will become fairly obvious.

On the UI button to add / remove language servers - yes, we think about it frequently. We want an open source language server repository where we can discover, load, auto-package, auto-start language servers for a given file extension. We totally understand that this is what users want. We are mostly stable with our agent infrastructure now, so we can start to think about this sort of lifecycle more now.

@ghost
Copy link

ghost commented Feb 20, 2017

@German-Development do you want this issue to hang here for a while or most of your questions have been answered?

@ghost ghost removed the kind/question Questions that haven't been identified as being feature requests or bugs. label Feb 20, 2017
@skabashnyuk
Copy link
Contributor

@slemeur @tsmaeder are we interested in this issue in general?

@slemeur
Copy link
Contributor

slemeur commented Jun 27, 2018

closing as this is addressed in the documentation

@slemeur slemeur closed this as completed Jun 27, 2018
@benoitf benoitf added area/doc Issues related to documentation and removed area/doc Issues related to documentation kind/docs labels Jul 9, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/doc Issues related to documentation
Projects
None yet
Development

No branches or pull requests

7 participants