Neues für DSL-Entwickler

Xtext 2.11 erschienen: Überall verfügbar dank Language Server Protocol

Hartmut Schlosser

Das DSL-Framework Eclipse Xtext ist in Version 2.11 erschienen. Wer Domänen-spezifische Sprachen entwirft, kann diese nun dank der Unterstützung des Language Server Protocols in allen gängigen IDEs nutzen.

Die größte Neuerung in Xtext 2.11 ist die Integration des Language Server Protocols. Das maßgeblich von Microsoft initiierte Protokoll regelt die Kommunikation zwischen einem Language Server, auf dem Programmiersprachen-spezifische Informationen für Syntax-Vervollständigungen, Fehlerwarnungen, Refaktorisierungen u.Ä. abgelegt sind, und einem Client-Werkzeug, das diese Informationen in seinen Code-Editor einbindet.

Die Xtext-Integration des Protokolls bedeutet nun, dass jede mit Xtext erstellte domänenspezifische Sprache auf einem Language Server abgelegt werden kann. Die DSL wird somit in allen Tools verfügbar, die das Language Server Protocol unterstützen – derzeit sind das neben VS Code der Eclipse Generic Editor, Eclipse Che, Sublime und Eclipse Orion. Weitere Tool-Hersteller dürften im Laufe des Jahres 2017 folgen.

Lesen Sie auch: DSLs mit Xtext für IntelliJ IDEA

Eine weitere Neuerung in Xtext 2.11 betrifft die interne Struktur des Projektes. Diese wurde komplett überarbeitet und das einstige monolithische Repository in mehrere kleinere Teile geschnitten. Dadurch soll die Mitarbeit am Projekt durch die Community einfacher werden, da Forks bzw. Builds sich nun nur auf die Teile des Frameworks beziehen können, an denen ein Committer auch arbeiten möchte.

Folgende Xtext-Repositories stehen zur Verfügung:

Xtext 2.11 hat noch mehr zu bieten, neben etlichen Bugfixes etwa ein verbesserter Xbase Compiler, ein überarbeiteter Projekt-Wizard und aktualisierte Beispielprojekte. Eine Übersicht der Neuerungen sind den Release Notes zu entnehmen.

Lesen Sie auch: Browser-IDEs im Vergleich: Eclipse Che vs. Orion vs. VS Code

Alle Xtext-2.11-Plug-ins benötigen Java 8, empfohlen sind Eclipse-Versionen ab Eclipse Luna. Eine Anleitung, wie man Xtext mit dem Language Server Protocol verwenden kann, gibt es auf dem Blog von TypeFox.

 

Erich-Gamma-300x209VS-Code-Chefentwickler Erich Gamma über das LSP:
Die intelligente Unterstützung einer Programmiersprache ist typischerweise komplex und speicherintensiv, da ein Programm als abstrakter Syntax-Baum repräsentiert wird. Darauf aufbauend können dann mächtige Funktionen wie zum Beispiel Intellisense angeboten werden. Um VS Code von solchen potentiell Ressourcen-hungrigen Programmiersprachen-Services zu entkoppeln, ist es aber sinnvoll, sie als separate Prozesse zu betreiben. So wird der Programmiersprachen-Service zu einem Programmiersprachen-Server, der auf dem lokalen Rechner läuft.Hat man erst einmal einen separaten Prozess, dann öffnet das die Tür, diesen Prozess von verschiedenen Editor/Werkzeugen zu nutzen. Dies kann man noch weiter vereinfachen, wenn man das Protokoll, mit dem die IDE mit dem Programmiersprachen-Server kommuniziert, standardisiert. Eine IDE muss so nur eine Integration mit dem Protokoll implementieren und kann dann alle Programmiersprachen-Server “gratis” nutzen, die das gleiche Protokoll verwenden.Das vollständige Interview mit Erich Gamma zum Language Server Protocol ist auf JAXenter zu lesen.
Geschrieben von
Hartmut Schlosser
Hartmut Schlosser
Hartmut Schlosser ist Redakteur und Online-Koordinator bei Software & Support Media. Seine Spezialgebiete liegen bei Java-Enterprise-Technologien, JavaFX, Eclipse und DevOps. Vor seiner Tätigkeit bei S & S Media studierte er Musik, Informatik, französische Philologie und Ethnologie.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.