Skip to main content

Editor's Note

In this month's newsletter we will be re-thinking how advanced editor support for all kinds of languages is built. The current state of the art is implementing support for each language like Java, PHP or C++ independently for every IDE. This labor-intensive and error-prone approach is about to change with the introduction of the Language Server Protocol (LSP).

The more advanced the tooling you are developing, the closer you are to writing a full-blown compiler/interpreter for the language. This is a huge waste of time, as the developers of the language have already written these tools, but often not with IDE requirements in mind. They are usually designed to only handle complete, valid source files, while an IDE usually has to handle source files that are currently being edited and thus by definition incomplete.

Another caveat about the traditional approach is attracting contributors. Let's say your IDE is written in Java and provides PHP support and some PHP developers are pointing out bugs. Many of them would probably love to fix those bugs themselves, but the completely different language creates a high barrier for contribution.

Last but not least, language tooling developers not only have to support a broad range of IDEs, but they also need to chase after new languages features/versions. What about Java 10 features? PHP 8? Swift 4?...

The LSP developed by Microsoft for Visual Studio Code, aims at fixing these shortcomings. It is a language and IDE agnostic protocol which clearly separates language semantics from UI presentation. Language developers can implement the protocol and benefit from immediate support in all IDEs, while IDE developers who implement the protocol get automatic support for all these languages without having to write any language-specific code. This way both parties can focus on what they do best; language developers can ensure that auto completion proposals and error markers match the language specification perfectly, while IDE developers can focus on providing a great user experience. Even better, both parties can implement the protocol using the technology of their choice. The Eclipse IDE can consume the protocol with a Java API, while a PHP language server might be implemented in PHP. Did we just find the Holy Grail?

Not quite yet. The Language Server Protocol is still limited. You do not yet get all the wonderful Java tooling that Eclipse JDT provides. But it's a paradigm shift. As I see it, IDEs will become a set of UI clients for several tooling services, all communicating via standard protocols. Microservices are everywhere, and they are coming to your IDE very soon.

Read the 8 great articles below to learn more!

Mikaël Barbero (@mikbarbero)

Language Server Protocol

What is the Language Server Protocol? How was it created? All your questions are answered by the Microsoft team in this article.

Implementing a JSON-RPC Protocol with Eclipse LSP4J

Get a introduction to the core concepts of Eclipse LSP4J and learn how to implement a JSON-RPC protocol.

Using Language Servers to Edit Code in the Eclipse IDE

Learn how the Eclipse IDE is able to consume language servers to provide rich editor features and interact with them without having to learn anything new.

Eclipse JDT Language Server Project

What is Eclipse JDT Language Server (jdt.ls)? It's an open source Java language specific implementation of the Language Server Protocol. Find out more!

Building & Running a Language Server with Eclipse Xtext & Theia

Learn how to implement a Language Server for an arbitrary domain-specific language (DSL) using Eclipse Xtext and then run it in an IDE.

LSP Support in Eclipse Che

Eclipse Che, a developer workspace server and cloud IDE, now offers support for the Language Server Protocol. Read this article to find out more.

Getting Started with LSP in Eclipse Orion

Read this article to discover how to get started with the Language Server Protocol in Eclipse Orion.

Sourcegraph, Code Intelligence, and the Language Server Protocol

How is the Language Server Protocol being used by companies like Sourcegraph?

Eclipse Announcements

Eclipse Community News

Virtual Eclipse Meetup

Last week, the first Virtual Eclipse Community Meetup aired LIVE. Sopot Cela, Senior Software Engineer at Red Hat, joined us to share Productive Coding with the Eclipse Java IDE. Watch the video now (simply click on the left) and join the Meetup!

Eclipse Java IDE Tips & Tricks

This new section will feature monthly Tips & Tricks for Eclipse Java IDE developers.

This month's tip in action ➡

 Edit -> Toggle Block Selection tool
                            (or just hit Shift+Alt+A)

For more tips and tricks follow @EclipseJavaIDE, a Twitter account run by Eclipse developers! Their tweets will help you improve your Java coding skills. Share your very own Eclipse Java IDE tips and tricks via Twitter #EclipseTips.

New Project Proposals

  • Eclipse Ceylon: a modern statically-typed programming language for the Java, Android, and JavaScript virtual machines.
  • Eclipse eLogbook@openK: provides a digital logbook for Distribution System Operators (DSO).

Interested in more project activity? Read on

New Project Releases

Interested in more project release/review activity? Read on

Upcoming Eclipse Events

Eclipse events are being hosted all over the world! Get involved by attending or organizing an event. View all events.

It's time to organize Eclipse Oxygen DemoCamps for the summer. You might be asking yourself, what is a DemoCamp and why should I care? Find out!

Eclipse DemoCamp Zurich
May 29, 2017 | Zurich, Switzerland

Eclipse DemoCamp Hamburg
Jun 19, 2017 | Hamburg, Germany

EclipseCon France 2017
Jun 21-22, 2017 | Toulouse, France

Eclipse DemoCamp Paderborn
Jun 27, 2017 | Paderborn, Germany

Eclipse DemoCamp Munich
Jun 28, 2017 | Munich, Germany

Eclipse DemoCamp Shenzhen
Jun 29, 2017 | Shenzhen, China

Eclipse Summit India 2017
Jul 27-29, 2017 | Bangalore, India

Eclipse DemoCamp Braunschweig
Aug 8, 2017 | Braunschweig, Germany

Eclipse DemoCamp Trondheim
Aug 24, 2017 | Trondheim, Norway

Eclipse IoT Day @ Thingmonk
Sep 11, 2017 | London, UK

EclipseCon Europe 2017
Oct 24-26, 2017 | Ludwigsburg, Germany

Are you hosting an Eclipse event? Do you know about an Eclipse event happening in your community? Email us the details events@eclipse.org!

Contact Us

newsletter@eclipse.org

Follow Us

Eclipse Newsletter

A fresh new issue delivered monthly

All Eclipse Newsletters available here

Back to the top