Microsoft, Red Hat und Codenvy haben am 27. Juni 2016 die Unterstützung für das Language Server Protocol (LSP) angekündigt. Die offene Schnittstelle trennt einen Editor oder eine integrierte Entwicklungsumgebung vom Sprachdienst, der Analysefunktionen für den jeweiligen Quelltext bereitstellt.
Das historische Projektarchiv beschreibt LSP als gemeinsame Grundlage für Funktionen wie Autovervollständigung, das Aufrufen einer Definition, die Suche nach Referenzen sowie die Anzeige von Fehlern und Warnungen. Damit muss ein Sprachdienst seine Logik nicht für jede Entwicklungsumgebung separat integrieren.

Ein Protokoll für mehrere Editoren
Die Kommunikation zwischen Werkzeug und Sprachserver läuft über JSON-RPC. Öffnet oder ändert ein Entwickler eine Datei, meldet der Client diesen Zustand an den Server. Dieser verarbeitet die semantischen Informationen und sendet beispielsweise Diagnosen zurück. Eine Anfrage zum Sprung zu einer Definition liefert die Dokumentadresse und die passende Position. Die offizielle Protokollbeschreibung führt die Nachrichten und Fähigkeiten der beteiligten Seiten im Detail auf.
Erfahrungen aus OmniSharp und TypeScript Server
Die erste Fassung entstand aus Erfahrungen mit OmniSharp und dem TypeScript Server, die Microsoft zuvor in Visual Studio Code integriert hatte. Das LSP-Projekt sollte diese Art von Sprachunterstützung auf weitere Editoren und Entwicklungsumgebungen ausdehnen.
Für technische Teams in der Spieleentwicklung ist der Ansatz grundsätzlich interessant, weil Quelltext, Skripte und Werkzeuge häufig über mehrere Editoren und Betriebssysteme hinweg bearbeitet werden. Ein gemeinsames Protokoll kann die Editorintegration vereinheitlichen, ohne die Sprachlogik an eine einzelne Entwicklungsumgebung zu binden.
