-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Comments
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. |
Hi @German-Development . We are going to add documentation on how to author a Language Server. Until the docs are authored, I recommend you to give a look on how current language servers have been integrated into Che.
|
@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? |
@Jonast Since 5.2 release we have |
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:
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. |
@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. |
@German-Development do you want this issue to hang here for a while or most of your questions have been answered? |
closing as this is addressed in the documentation |
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.
The text was updated successfully, but these errors were encountered: