LSP 【Language Server Protocol】 言語サーバプロトコル
概要
LSP(Language Server Protocol)とは、プログラミング言語の仕様に基づくコード記述の支援機能を統合開発環境(IDE)などに与えるためのデータ形式や通信手順を定めたプロトコル。コードエディタに新しい言語のコード補完や強調表示などの機能を容易に追加することができる。プログラマがソースコードを記述するためのコードエディタには、対応している言語の仕様に基づいて、コードの色分けや強調表示(シンタックスハイライト)、コード補完、シンボル定義への移動、エラーチェック、データ型チェックなどコード記述を支援する機能が提供されている。
従来、こうした支援機能は各コードエディタがあらかじめ対応している特定の言語にのみ提供され、新しい言語などで支援機能を利用するには、コードエディタの開発側が言語対応を追加するのを待たなければならなかった。
LSPは、支援機能を提供する「言語サーバ」(language server)とコードエディタなどの通信方法を定めた標準で、エディタはサーバへプログラムコードを送信して支援を依頼し、サーバが支援機能(言語サービス)を提供するという仕組みを構築することができる。
これにより、エディタ自体を改変・更新しなくても、ある言語についてのサービスを実装した言語サーバを追加することで、新しい言語の支援機能を追加することができるようになる。LSPの手順およびデータ形式はJSON-RPCに従って定義されており、仕様も公開されている。
LSPおよび言語サーバは、もともと米マイクロソフト(Microsoft)社がコードエディタ製品の「Visual Studio Code」(VSCode)で利用するために考案した仕組みだが、他社の協力を得て仕様の標準化が進められ、VimやEclipseなど他のエディタやIDEでも利用できるようになっている。
(2023.9.22更新)