GithubHelp home page GithubHelp logo

lsp4e's Introduction

Eclipse LSP4E

Eclipse LSP4E makes Eclipse IDE able to consume the Language Server protocol (LSP) and the Debug Adapter protocol (DAP).

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 defines 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. 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
  • formatting
  • rename refactoring
  • 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
  • Eclipse WildWebDeveloper HTML, CSS, JavaScript, TypeScript, Node.js, Angular, JSON, YAML (+Kubernetes) and XMLL edition, using LSP4E and various language servers from SourceGraph and VSCode.
  • language-servers-for-eclipse Binds various language servers to the Eclipse IDE.
  • Solargraph Binds a Ruby language server to the Eclipse IDE.
  • Quarkus Tools Based on the Eclipse LSP4MP language server, extended for Quarkus specifics and binds to application.properties and Java files.

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

Community

Contributions are highly welcome. See how

Changelog - New and Noteworthy

Please review the Changelog for changes and new and noteworthy items.

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.

History

This has been initiated during the EclipseCon France 2016 Unconference with the first official release in February 2017.

lsp4e's People

Contributors

mickaelistria avatar martinlippert avatar akurtakov avatar jonahgraham avatar angelozerr avatar mofterdinger avatar vrubezhny avatar sebthom avatar boykoalex avatar pyvesb avatar markz3 avatar briandealwis avatar kdvolder avatar rubenporras avatar jankoehnlein avatar guw avatar boereck avatar apupier avatar jeffmaury avatar rcjsuen avatar elharo avatar xcariba avatar gayanper avatar rgrunber avatar rawagner avatar norru avatar bananeweizen avatar lak-proddev avatar jcompagner avatar mundacho avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.