Language Server Protocol

protocole de communication From Wikipedia, the free encyclopedia

Le Language Server Protocol, généralement abrégé en LSP, est un protocole de communication entre les éditeurs de texte ou des environnements de développement et des serveurs qui fournissent des outils pour la programmation, comme l'auto-complétion de code, la coloration syntaxique ou la mise en évidence d'erreurs dans le code. Il est fondé sur le protocole JSON-RPC. Il a pour but de séparer le support de ces fonctionnalités pour différents langages et l'éditeur lui-même : ainsi, un éditeur implémentant le LSP peut tirer partie des nombreux serveurs LSP existants, et inversement[1]. Il fait aujourd'hui office de standard pour le support de ce type de fonctionnalités[2],[3].

Historique

Le LSP a été initialement développé pour Visual Studio Code sous l'égide de Microsoft, lors de l'intégration de fonctionnalités intelligentes pour C# et Typescript au sein de l'éditeur. Ce développement a rapidement inclus Codenvy, développant l'éditeur Eclipse Che, ainsi que Red Hat. Le protocole est officiellement dévoilé en 2016[4],[5].

Implémentation

Le protocole se fonde sur l'échange de messages au format JSON entre un client (typiquement un éditeur de texte) et un serveur (un logiciel dédié, tournant généralement sur la même machine) ; ces échanges suivent le protocole JSON-RPC. Concrètement, le client envoie des requêtes au serveur, par exemple lorsque l'utilisateur édite le code, ou qu'il souhaite effectuer une action spécifique ; le serveur peut ensuite y répondre, par exemple en fournissant une liste d'erreurs dans le code[6].

Les actions possibles pour un serveur LSP donné sont définies par ses « capacités » (capabilities), qui indiquent au client le type de requête qu'il peut traiter. Ces capacités varient selon le langage et le serveur exact. Par exemple, la capacité textDocument/completion indique que le serveur est capable de fournir de l'auto-complétion[6].

Notes et références

Related Articles

Wikiwand AI