blob: 890745010c0f30491e13557144b13790216e41e2 [file] [log] [blame]
= Eclipse Language Services =
Start point for documentation related to https://github.com/eclipselabs/eclipse-language-service[eclipse language services]
The idea is to have a proof of concept of Language Services on Eclipse by:
* implementing a subclass of SSE Structured Editor that sends data to a language service
As protocol we refer to the https://github.com/Microsoft/vscode-languageserver-protocol[vscode languageserver protocol], implemented under MIT license by the team of https://github.com/egamma[E.Gamma, (MicroSoft)] .
== Server Side ==
Protocol: https://github.com/Microsoft/vscode-languageserver-protocol
The easiest way to have a language server running is to install VSCode: http://code.visualstudio.com/
. How to run the JavaScript language server
. Start VSCode
. Clone a git repo with JS code: https://github.com/josdejong/mathjs
. Open the cloned folder in VSCode
== Eclipse IDE Side ==
We choose to start implementing a JavaScript Editor as VSCode already provides a Language Server Service for a JavaScript editor.
You can extend this by adding any other editor, as example XML, Java, Xtext, PHP, HTML, XSLT, SASS, etc.
* We created a plugin `org.eclipse.lsp4e`, which implements an extension to `org.eclipse.wst.jsdt.ui.javaCompletionProposalComputer`.
* The LanguageCompletionProposalComputer#computeCompletionProposals(..) is the method that actually provides content assist.
* To run, you need to setup for JSDT, explained here: https://www.youtube.com/watch?v=gOz1hk-ohMA
== Important Notes and References ==
* Sven put an interesting comment to ensime-server
see: https://github.com/ensime/ensime-server/issues/1498
* Initial prototype of language server protocol extension for Che using the TypeFox API:
https://github.com/eclipse/che/pull/1323/commits/e250864c89228875723649268a72a87d91057033