Language Server Protocol

Kommunikationsprotokoll

Das Language Server Protocol (kurz LSP) ist ein JSON-RPC basiertes Kommunikationsprotokoll, um Syntaxvalidierung von Programmiersprachen unabhängig von der eingesetzten integrierten Entwicklungsumgebung zu ermöglichen.[1] Es wurde ursprünglich für das Python-Modul, welches IntelliSense innerhalb von Visual Studio Code ermöglicht, entwickelt und später standardisiert. Entwickler sind Microsoft, Codenvy und Red Hat.

Es existieren Integrationen für Visual Studio Code, Eclipse Che[2] und Atom[3] sowie der Eclipse IDE[4] und mittels Plugin für Sublime Text[5]. In GNU Emacs sind seit Version 29.1 (August 2023) die Parsing-Library Tree-Sitter und das Paket Eglot standardmäßig integriert.[6]

Auch wenn das Protokoll netzwerkfähig ist, läuft der Language Server typischerweise lokal auf demselben Rechner wie der Editor.[3] Das Protokoll selbst ist quelloffen und unter der MIT-Lizenz veröffentlicht.[7]

Einzelnachweise

Bearbeiten
  1. Dominik Mohilo: Polyglott dank Language Server Protocol: Microsoft, Red Hat und Codenvy streben nach der universellen IDE. In: entwickler.de. 28. Juni 2016, abgerufen am 22. Oktober 2021.
  2. Alexander Neumann: Microsoft stellt Python Language Server für Visual Studio Code vor. In: heise Developer. 23. Juli 2018, abgerufen am 22. Oktober 2021.
  3. a b Rainald Menge-Sonnentag: Atom 1.21 integriert das Language Server Protocol. In: heise Developer. 4. Oktober 2017, abgerufen am 22. Oktober 2021.
  4. Jan Köhnlein: YANG-Tools: Ein Language Server für vier IDEs. In: entwickler.de. 17. November 2017, abgerufen am 27. Oktober 2021 (deutsch).
  5. Github.com - Sublime LSP. Abgerufen am 19. August 2022.
  6. Rainald Menge-Sonnentag: Texteditor Emacs 29.1 bindet Tree-Sitter ein und arbeitet direkt mit SQLite. In: heise online. 1. August 2023, abgerufen am 13. September 2023.
  7. Florian Kalenda: Microsoft und Red Hat legen quelloffenes Language Server Protocol vor. In: ZDNet. 28. Juni 2016, abgerufen am 22. Oktober 2021.
  NODES
mac 2
os 4
server 10
text 2
visual 3
web 2