Einheitliches Programmiersprachen-Protokoll für verschiedene IDEs angekündigt

Codenvy, Microsoft und Red Hat wollen mit dem Language Server Protocol eine einheitliche Schnittstelle für Syntaxanalyse, Autovervollständigung und Refactoring über diverse Editoren erstellen.

In Pocket speichern vorlesen Druckansicht 33 Kommentare lesen
Schnittstelle für Code-Editoren geplant
Lesezeit: 2 Min.
Von
  • Rainald Menge-Sonnentag

Auf der DevNation-Konferenz, die derzeit in San Francisco stattfindet, haben Red Hat, Codenvy und Microsoft gemeinsam ein Projekt namens Language Server Protocol angekündigt. Die Idee dahinter ist, zahlreiche Unterstützungsfunktionen aus dem Editor in Sprachserver auszulagern und so ein einheitliches Verhalten über diverse Werkzeuge zu erreichen. Microsoft hat das Protokoll ursprünglich für Visual Studio Code entwickelt und auf GitHub veröffentlicht.

Das gemeinsame Engagement soll Entwicklern das Programmieren mit unterschiedlichen Werkzeugen auf verschiedenen Plattformen erleichtern. Beispielsweise soll das Refactoring unabhängig vom jeweiligen Tool bleiben. Gleichzeitig muss nicht jeder Werkzeuganbieter die einzelnen Funktionen für jede Sprache in die jeweilige IDE integrieren, sondern kann auf die vorhandenen Dienste zurückgreifen.

Das Protokoll dient der Kommunikation zwischen dem Werkzeug und sogenannten Language-Servern, die Logik für unterschiedliche Programmiersprachen bereitstellen. Das Werkzeug schickt Ereignisse wie das Öffnen einer Datei oder Änderungen im Sourcecode an den Server. Dieser reagiert darauf, indem er beispielsweise nach einer Änderung im Code gefundene Fehler oder Warnungen an das Werkzeug zurückschickt, das sie entsprechend hervorheben kann. Auch Prozesse wie die Suche nach einer Klassen- oder Methodendefinitioon über Go to Definition laufen über den Server, der die URI der passenden Datei mit dem Bereich zurückliefert, in dem die Klasse beziehungsweise Methode definiert ist.

Ein beispielhafter Kommunikationsablauf zwischen Tool und Language Server vom Öffnen eines Dokuments bis zum Schließen.

(Bild: Microsoft)

Das Protokoll setzt auf JSON-RPC (Remote Procedure Call) auf. Die Definition der aktuellen Version 2.x des Language Server Protocol findet sich auf GitHub innerhalb des Repositorys. Neben Microsofts Visual Studio Code wird die ursprünglich von Codenvy stammende Web-basierte IDE Eclipse Che das Protokoll unterstützen. Erste Language-Server sind ebenfalls bereits auf GitHub unter anderem für C++, JSON, Xtext und CSS verfügbar. Auf derselben Seite finden sich SDKs, die das Protokoll in unterschiedlichen Sprachen wie Node.js, C#, Java und Haxe implementieren. Auch wenn die Anfänge des Projekts in der Webentwicklung liegen, ist die Integration in Desktop-Werkzeuge ebenso möglich. Dort laufen die entsprechenden Dienste für die spezifischen Sprachen losgelöst vom eigentlichen Werkzeug im Hintergrund.

(rme)