Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "LSP4E"

 
(29 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{DISPLAYTITLE:LSP4E - Language Server Protocol 4 Eclipse}}
+
{{LSP4E}}
  
The project includes the necessary code to integrate any language server in the Eclipse IDE, interacting with the language server: it orchestrates the request to the language servers and presents the response in the usual IDE metaphors so users can manipulate them.  
+
The project includes the necessary code to integrate any language server in the Eclipse IDE, interacting with the language server: it orchestrates the request to the language servers and presents the response in the usual IDE metaphors so users can manipulate them.
  
 
[[File:Language-server-idea.png|800px]]
 
[[File:Language-server-idea.png|800px]]
Line 10: Line 10:
  
 
* [https://projects.eclipse.org/projects/eclipse.jdt.ls Eclispe LSP4E Project Page]
 
* [https://projects.eclipse.org/projects/eclipse.jdt.ls Eclispe LSP4E Project Page]
* [https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=NEW&bug_status=REOPENED&component=General&list_id=17174746&product=LSP4E View open bugs]
+
* [https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=NEW&bug_status=REOPENED&component=General&list_id=17174746&product=LSP4E Open bugs]
 
* [https://bugs.eclipse.org/bugs/enter_bug.cgi?product=LSP4E&component=General Report a bug]
 
* [https://bugs.eclipse.org/bugs/enter_bug.cgi?product=LSP4E&component=General Report a bug]
 
* [https://git.eclipse.org/c/lsp4e/lsp4e.git/tree/README.md README]
 
* [https://git.eclipse.org/c/lsp4e/lsp4e.git/tree/README.md README]
 +
 +
== Usage Example ==
 +
 +
Here is a simple usage example: Build a language server using Xtext, and run the generated LanguageServer on stdi/o as you can see in the MockLanguageSever#main() example. Here are few useful references:
 +
[https://typefox.io/tutorial-building-a-language-server-for-your-dsl building a LS for your DSL], [https://github.com/svenefftinge/xtext-lsp-workshop Xtext LSP workshop], [https://www.google.com/search?q=xtext+generate+language+server search xtext generate LS]
  
 
== How to contribute ==
 
== How to contribute ==
Line 22: Line 27:
 
Two build examples: mvn verify should build a p2 repository.  
 
Two build examples: mvn verify should build a p2 repository.  
  
== Use cases ==
+
== Success Stories ==
  
 
LSP4E is already used in several Eclipse plugin/products, such as:  
 
LSP4E is already used in several Eclipse plugin/products, such as:  
Line 29: Line 34:
 
[https://github.com/eclipselabs/lsp4e-php LSP4E PHP],
 
[https://github.com/eclipselabs/lsp4e-php LSP4E PHP],
 
[https://marketplace.eclipse.org/content/redox-rust-edition-eclipse-ide RedOx],
 
[https://marketplace.eclipse.org/content/redox-rust-edition-eclipse-ide RedOx],
[https://github.com/spring-projects/sts4 Spring Tools 4].
+
[https://github.com/spring-projects/sts4 Spring Tools 4],
 
+
[https://marketplace.eclipse.org/content/apache-camel-language-server Apache Camel]
Simple usage example: Build a language server using Xtext, and run the generated LanguageServer on stdi/o as you can see in the MockLanguageSever#main() example. Here are few useful references:
+
[https://typefox.io/tutorial-building-a-language-server-for-your-dsl building a LS for your DSL], [https://github.com/svenefftinge/xtext-lsp-workshop Xtext LSP workshop], [https://www.google.com/search?q=xtext+generate+language+server search xtext generate LS]
+
  
 
== Related Resources ==
 
== Related Resources ==
Line 38: Line 41:
 
Below you can see some useful references:
 
Below you can see some useful references:
  
* https://www.eclipse.org/community/eclipse_newsletter/2017/may/article3.php
+
* [https://www.eclipse.org/community/eclipse_newsletter/2017/may/article3.php Using Language Servers to Edit Code in the Eclipse IDE (May 2017)]
* https://www.eclipse.org/community/eclipse_newsletter/2017/august/article3.php
+
* [https://www.eclipse.org/community/eclipse_newsletter/2017/august/article3.php Eclipse aCute for C# and .NET Core (August 2017)]
* (upcoming) https://www.eclipse.org/community/eclipse_newsletter/2018/january/article5.php
+
* [https://www.eclipse.org/community/eclipse_newsletter/2018/january/article5.php The Rise of Language Server Plugins (January 2018)]
  
 
Older documentation (could be outdated)
 
Older documentation (could be outdated)
  
 
* https://git.eclipse.org/c/lsp4e/lsp4e.git/tree/doc/index.adoc
 
* https://git.eclipse.org/c/lsp4e/lsp4e.git/tree/doc/index.adoc

Latest revision as of 10:54, 4 June 2018

LSP4E
Website
Download
Community
Mailing ListForumsIRCmattermost
Issues
OpenHelp WantedBug Day
Contribute
Browse Source

The project includes the necessary code to integrate any language server in the Eclipse IDE, interacting with the language server: it orchestrates the request to the language servers and presents the response in the usual IDE metaphors so users can manipulate them.

Language-server-idea.png

A LanguageServer can provide different capabilities. Here is a list of some of the ServerCapabilities managed by LSP4E: CompletionProvider, HoverProvider, DefinitionProvider, ReferencesProvider, DocumentFormattingProvider, CodeActionProvider, CodeLensProvider, DocumentLinkProvider, SignatureHelpProvider, DocumentHighlightProvider.

Quick Links:

Usage Example

Here is a simple usage example: Build a language server using Xtext, and run the generated LanguageServer on stdi/o as you can see in the MockLanguageSever#main() example. Here are few useful references: building a LS for your DSL, Xtext LSP workshop, search xtext generate LS

How to contribute

First, read the contribution page and the contributing readme, then set up the Eclipse project and understand how it works.

A simple setup example: get Eclipse JEE, clone the source from https://git.eclipse.org/r/p/lsp4e/lsp4e and import the existing maven projects into the workspace. Then, open the target platform file, wait for the target is resolved, and set it as target platform.

Two build examples: mvn verify should build a p2 repository.

Success Stories

LSP4E is already used in several Eclipse plugin/products, such as: aCute, Blue Sky, LSP4E PHP, RedOx, Spring Tools 4, Apache Camel

Related Resources

Below you can see some useful references:

Older documentation (could be outdated)

Back to the top