Skip to content
fork of git://git.eclipse.org/gitroot/lsp4e/lsp4e.git
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc
org.eclipse.lsp4e.debug Bug 543281: Support more source lookup/director options Jan 24, 2019
org.eclipse.lsp4e.test
org.eclipse.lsp4e.tests.mock
org.eclipse.lsp4e Bug 508488 - Support documentLink and declaration for non-IFiles Feb 3, 2019
repository Bug 540723 - Add support for ResourceOperation Nov 6, 2018
svg/org.eclipse.languageserver/icons/full
target-platforms Update target platform Dec 20, 2018
.gitignore Ignore AnyEditTools settings May 19, 2017
.project Make lsp4e a project May 3, 2017
CONTRIBUTING.md
README.md Update README May 28, 2018
pom.xml Use Tycho 1.3.0 Jan 7, 2019

README.md

Eclipse LSP4E

Eclipse LSP4E makes Eclipse IDE able to consume the Language Server protocol and the Debug Adapter protocol.

Target audience are Eclipse plugin developers or Language developers willing to integrate a language which ships a Language Server or Debug Adapter into Eclipse IDE. End-users can also take advantage of this as LSP4E also define a way to bind Eclipse IDE to existing language servers from UI.

Install it into Eclipse IDE, or add it to your target-platform using one of this p2 repository:

Preview

Language Server in Eclipse in the Eclipse IDE

Video demo

Debug Adapter in action in the Eclipse IDE

Video demo

Features

Edition

LSP4E mostly ships extensions to the Generic Editor proposal for Eclipse Platform Text are provided. But those classes can be reused in any editor or other extensions.

At the moment, it provides regular JFace/Platform Text classes for:

  • detection of language server for given file
  • synchronization of files with Language Server
  • diagnostics as problem markers
  • completion
  • hover
  • jump to declaration
  • Find References
  • File symbols (as Outline or Quick Outline)
  • Workspace symbols
  • Language Server messages as notifications

Debug

Support for the Debug Adapter Protocol includes usual debug operations (breakpoints, step forward, step into, view variable value, evaluate expression, change variable value...) in the Platform Debug framework and its related UI components.

Examples

Examples of integration contain:

  • Eclipse Corrosion Rust support plugin for Eclipse IDE, edition is powered by LSP4E and RLS.
  • Eclipse aCute C# edition in Eclipse IDE using LSP4E and OmniSharp LSP implementation
  • End-user using Language Server from Docker image, providing edition feature in the IDE without creating specific Eclipse IDE plugin: http://www.screencast.com/t/vksX3uZm1aj
  • BlueSky HTML (with embedded JS and CSS), CSS, JSON (with schema), JavaScript and TypeScript edition, using LSP4E and various language servers from SourceGraph and VSCode.
  • lsp4e-php Binds a PHP language server to the Eclipse IDE.
  • lsp4e-python Binds a Python language server to the Eclipse IDE.

All those examples are already good for usage as they provide advanced edition features, and great for showcase of the LSP4E project.

Community

Contributions are highly welcome. See how

Related projects

The Language Server protocol specification is an open-source project.

As the Language Server Protocol doesn't include support for syntax highlighting, most adopters of LSP4E usually pair it with the Eclipse TM4E project to provide Syntax Highlighting according to TextMate grammars.

Possible integration with Docker images as language-server are made possible thanks to Eclipse Docker Tools, which are part of the Eclipse LinuxTools project.

Eclipse LSPHub project is aimed at setting up a registry of language servers for automatic discovery and provisioning.

History

This has been initiated during the EclipseCon France 2016 Unconference. Some initial documentation is still available (although it may not be up to date).

You can’t perform that action at this time.