| Summary: | Investigate Language Server API | ||
|---|---|---|---|
| Product: | [ECD] Orion | Reporter: | Silenio Quarti <Silenio_Quarti> |
| Component: | Editor | Assignee: | 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
- 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) 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. 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) |