Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 499117

Summary: Investigate Language Server API
Product: [ECD] Orion Reporter: Silenio Quarti <Silenio_Quarti>
Component: EditorAssignee: Michael Rennie <Michael_Rennie>
Status: RESOLVED FIXED QA Contact:
Severity: enhancement    
Priority: P3 CC: anton, cdtdoug, christian.dietrich.opensource, gorkem.ercan, Michael_Rennie, nchen, rafael, steve_northover
Version: 13.0   
Target Milestone: 15.0   
Hardware: PC   
OS: Mac OS X   
Whiteboard:
Bug Depends on: 502584    
Bug Blocks:    

Description Silenio Quarti CLA 2016-08-03 11:44:26 EDT
As part of Orion 13, we want to investigate modifying the Orion language tooling to use/implement the Microsoft Language Server Protocol. https://github.com/Microsoft/vscode-languageserver-protocol
Comment 1 Silenio Quarti CLA 2016-08-03 11:50:55 EDT
- proof of concept was written for a single-tenant Orion node server. See

http://git.eclipse.org/c/orion/org.eclipse.orion.client.git/log/?h=mrennie/languageServer

- implemented features: basic protocol handling, document life-cycle, document highlights, completion, go to definition, hover, document symbols 
- missing features:  proper language server life-cycle, references, go to definition outside of current file, code actions, rename, watched files, signature help, notification messages, document symbols, code lens
- the initial prototype was written as a Orion plugin so it is limited to the extension points available in Orion
- the language server protocol API is line/column based while Orion API is start/end document offset based.  Plugin approach requires many asynchronous round trips to convert ranges. We need to add an Orion language server service (extension point) and move the implementation in the core Orion for better integration.
- language server protocol requires direct access to the workspace files (i.e. orion server and language server processes have to run on the same machine)
Comment 2 Anton Kosyakov CLA 2016-10-20 06:02:35 EDT
It would be nice if one can just take Orion Editor and connect it an arbitrary language server without consuming other parts of Orion, e.g. Orion node server.
Comment 3 Steve Northover CLA 2017-03-29 17:17:07 EDT
We investigated the Language Server and are continuing to work on it.  Having the Language Server be part of the Orion Editor (ie. the stand alone editor) is hard/impossible because Language Servers must run on the same place as the file system and can be written in any language (ie. won't run in the browser)