Das Language Server Protocol (LSP) definiert das Protokoll, das zwischen einem Editor oder einer IDE und einem Language Server verwendet wird, der Sprachfunktionen wie Autovervollständigung, Go to Definition, Find All References usw. bereitstellt. Das Ziel des Language Server Index Format (LSIF, ausgesprochen wie "else if") ist die Unterstützung einer reichhaltigen Code-Navigation in Entwicklungswerkzeugen oder einer Web-UI, ohne dass eine lokale Kopie des Quellcodes erforderlich ist.
Was ist das Language Server Protocol?
Das Hinzufügen von Funktionen wie Autovervollständigung, Go to Definition oder Dokumentation beim Überfahren mit der Maus für eine Programmiersprache erfordert erheblichen Aufwand. Traditionell musste diese Arbeit für jedes Entwicklungswerkzeug wiederholt werden, da jedes Werkzeug unterschiedliche APIs für die Implementierung derselben Funktion bereitstellt.
Ein Language Server soll die sprachspezifischen intelligenten Funktionen bereitstellen und über ein Protokoll mit Entwicklungswerkzeugen kommunizieren, das die Interprozesskommunikation ermöglicht.
Die Idee hinter dem Language Server Protocol (LSP) ist die Standardisierung des Protokolls, über das solche Server und Entwicklungswerkzeuge kommunizieren. Auf diese Weise kann ein einzelner Language Server in mehreren Entwicklungswerkzeugen wiederverwendet werden, die wiederum mehrere Sprachen mit minimalem Aufwand unterstützen können.
LSP ist ein Gewinn für Sprach- und Tooling-Anbieter!
Übersicht
Das Protokoll definiert das Format der Nachrichten, die über JSON-RPC zwischen dem Entwicklungswerkzeug und dem Language Server gesendet werden. LSIF definiert ein Graphenformat zum Speichern von Informationen über Programmierartefakte.
Spezifikation
Die neueste Version der LSP-Spezifikation ist Version 3.17. Es gibt jetzt auch eine Spezifikation für das kommende Language Server Index Format (LSIF).
Implementierungen
Das LSP wurde für viele Sprachen implementiert und viele Entwicklungswerkzeuge integrieren diese Language Server.