Language Server Protocol
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
- ↑ Federico Bruzzone, Walter Cazzola et Luca Favalli, « Code Less to Code More: Streamlining Language Server Protocol and type system development for language families », Journal of Systems and Software, vol. 231, , p. 112554 (ISSN 0164-1212, DOI 10.1016/j.jss.2025.112554, lire en ligne, consulté le )
- ↑ (en) Dominik Bork et Philip Langer, « Language Server Protocol: An Introduction to the Protocol, its Use, and Adoption for Web Modeling Tools », Enterprise Modelling and Information Systems Architectures (EMISAJ) - International Journal of Conceptual Modeling, vol. 18, , p. 9:1–16 (ISSN 1866-3621, DOI 10.18417/emisa.18.9, lire en ligne, consulté le )
- ↑ Nadeeshaan Gunasinghe et Nipuna Marcus, Language server protocol and implementation: supporting language-smart editing and programming tools, Apress, coll. « Springer eBook Collection », (ISBN 978-1-4842-7791-1 et 978-1-4842-7792-8)
- ↑ (en-US) Alex Handy, « Codenvy, Microsoft and Red Hat collaborate on Language Server Protocol », sur SD Times, (consulté le )
- ↑ « Red Hat, Codenvy and Microsoft Collaborate on Language Server Protocol », sur www.redhat.com, (consulté le )
- « Overview », sur microsoft.github.io (consulté le )
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.