Verloren im Labyrinth der IT-Begriffe? Hier finden Sie Definitionen und Basiswissen zu Rechenzentrums-IT und -Infrastruktur.

Das Sprachserverprotokoll Was ist das LSP – Language Server Protocol?

Von Manuel Masiero 2 min Lesedauer

Anbieter zum Thema

Das Language Server Protocol (LSP) oder Sprachserverprotokoll macht Entwicklungsumgebungen (IDEs) polyglott. Das LSP sorgt dafür, dass Sprachinformationen und -Features nicht mehr auf die jeweilige IDE beschränkt bleiben, sondern stattdessen von einem zentralen Server kommen.

Keine Sprachverwirrung mehr: Das quelloffene Language Server Protocol (LSP) erlaubt die Verwendung intelligenter Programmiersprachen-Tools, zu denen beispielsweise die Autovervollständigung gehört, und zwar unabhängig vom verwendeten Entwicklungs-Tool. (Bild:  frei lizenziert: Gerd Altmann /  Pixabay)
Keine Sprachverwirrung mehr: Das quelloffene Language Server Protocol (LSP) erlaubt die Verwendung intelligenter Programmiersprachen-Tools, zu denen beispielsweise die Autovervollständigung gehört, und zwar unabhängig vom verwendeten Entwicklungs-Tool.
(Bild: frei lizenziert: Gerd Altmann / Pixabay)

Das Language Server Protocol (LSP) beziehungsweise Sprachserverprotokoll ist ein offenes Kommunikationsprotokoll, das im Jahr 2016 von Microsoft entwickelt wurde. Das LSP zielt darauf ab, die „Rich Editing“-Sprachunterstützung für verschiedene, in integrierten Entwicklungsumgebungen (IDEs) verwendete Programmiersprachen durchgängig und effizient zu gestalten.

Dazu stellt das Sprachserverprotokoll über einen Server spezifische Sprachdienste für die IDE bereit, zum Beispiel die automatische Vervollständigung von Quellcode oder die Hervorhebung von Syntaxelementen.

Sprachverarbeitung auf dem Server

Durch die Trennung von Sprachserver und Entwicklungsumgebung macht die LSP die Sprachunterstützung unabhängig von einer bestimmten Editor- oder IDE-Umgebung. Dafür definiert das LSP ein standardisiertes Kommunikationsprotokoll auf JSON-RTC-Basis, das dem Informationsaustausch zwischen Entwicklungsumgebung und Sprachserver dient.

Klartext: Läuft die Kommunikation zwischen Entwicklungstool und Sprachserver über das JSON-RTC-basierte LSP-Protokoll, lässt sich theoretisch auch jede IDE  fit für jede Programmiersprache machen.(Bild:  Microsoft)
Klartext: Läuft die Kommunikation zwischen Entwicklungstool und Sprachserver über das JSON-RTC-basierte LSP-Protokoll, lässt sich theoretisch auch jede IDE fit für jede Programmiersprache machen.
(Bild: Microsoft)

Wichtige spezifische Sprachdienste für Entwicklungsumgebungen sind unter anderem:

  • Code-Vervollständigung: Vorschläge für die Fortsetzung von Code auf Basis der aktuellen Eingabe.
  • Syntax-Highlighting: Hervorhebung von Syntaxelementen, um die Lesbarkeit und von Code zu verbessern.
  • Fehler- und Warnmarkierungen: Hinweise auf potenzielle Fehler oder Probleme im Code während der Eingabe.
  • Refactoring: Unterstützung beim Umstrukturieren und Optimieren von Code, ohne dabei das Verhalten des Programms zu ändern.
  • Code-Navigation: Funktionen wie „Gehe zu Definition“ oder „Suche Verwendungsstellen“, die Programmierern dabei helfen, sich im Code besser zurechtzufinden.

Um solche intelligenten Programmiersprachen-Features in das jeweilige Entwicklungs-Tool wie „Visual Studio Code“, „Sublime Text“ oder „Atom“ zu implementieren, mussten vor Einführung des LSPs für jede neue Programmiersprache spezifische IDE-Plug-ins oder -Erweiterungen entwickelt werden. Damit stellte sich grundsätzlich auch die Frage, welche IDE für welche Sprache die richtige ist.

Vorteile der LSP-Architektur

Integriert in eine LSP-Architektur fungiert das jeweils verwendete Coding-Tool als Client, während der Sprachserver die eigentlichen Sprachdienste ausführt. Auf Anfragen des Clients wie zum Beispiel das Formatieren einer Codestelle liefert der Server dann die entsprechende Antwort.

Durch die Trennung von IDE/Quelltext-Editor und Sprachserver ergeben sich eine Reihe von Vorteilen, die Entwickler in die Lage versetzen, schneller und effektiver arbeiten zu können.

  • Wiederverwendbarkeit: Ein einzelner Sprachserver lässt sich in mehreren IDEs verwenden, womit die Notwendigkeit entfällt, für jeden einzelne Entwicklungsumgebung individuelle Plug-ins zu entwickeln.
  • Konsistenz: Arbeitet ein Sprachserver verschiedenen Entwicklungsumgebungen zu, verlangt das von den Programmierern auch keine Umstellung, unabhängig vom verwendeten Tool.
  • Effizienz: Updates und Verbesserungen am Sprachserver kommen allen unterstützten Entwicklungsumgebungen zugute, wodurch die Entwicklungs- und Wartungskosten sinken.

(ID:50362716)

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu RZ- und Server-Technik

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung