はじめに
言語サーバー プロトコル (LSP) は、コード エディターと言語サーバー間の通信に使用されるオープン標準です。 言語サーバーは、定義元に移動やコードベース全体にわたるコードシンボルのリネームなど、プログラミング言語固有の機能を提供するプロセスです。 "LSP サーバー" は、言語サーバー プロトコルをサポートする任意の言語サーバーです。
GitHub Copilot CLI では、LSP サーバーを使用して、コードの構造をより正確に理解できます。 プロジェクト内の各プログラミング言語に LSP サーバーを追加して構成することで、 Copilot CLI コードをより深く理解できるようになります。
LSP サーバーの利点
-
**精度**: 結果は言語独自のコンパイラ/アナライザーから取得され、コードの構造を理解できます。 これにより、Copilotがコードと協働する際の精度が向上します。 たとえば、Copilotが「定義に移動」を使用できる場合、実際の定義を見つけることができ、単に似たようなテキストを一致させるだけではありません。 -
**トークンの効率**: "すべてのシンボルの一覧表示" や "参照の検索" などの操作は、エージェントがメッセージ交換にファイル全体を読み取る必要なく、コンパクトな構造化された結果を返します。 -
**安全なリファクタリング**: シンボルの名前を変更すると、LSP サーバーはプロジェクト全体のすべての参照を確実に更新します。 -
**速度**: 言語サーバーはバックグラウンドでプロジェクトのインデックスを作成し、ほぼ瞬時に応答できるようにします。
LSP サーバーが Copilot CLI に許可する操作
LSP サーバーが使用可能な場合、 Copilot CLI はそれらを自動的に使用します。 明示的に要求する必要はありません。 Copilot CLI は、使用しているプログラミング言語の LSP サーバーにアクセスできる場合は常に、テキストベースの検索ではなく LSP サーバーを使用します。
次の言語サーバー操作がサポートされています。
| Operation | 動作内容 |
|---|---|
| 定義へ移動 | シンボル (関数、クラス、変数) が定義されている場所にジャンプします。 |
| 参照の検索 | シンボルが使用されているすべての場所を検索します。 |
| Hover | シンボルの型情報とドキュメントを取得します。 |
| 名前の変更 | プロジェクト全体でシンボルの名前を変更し、すべての参照を更新します。 |
| ドキュメント シンボル | ファイルで定義されているすべてのシンボルを一覧表示します。 |
| ワークスペース シンボルの検索 | プロジェクト全体で名前でシンボルを検索します。 |
| 実装に移動する | インターフェイスまたは抽象メソッドの実装を検索します。 |
| 着信呼び出し | 特定の関数を呼び出す関数を示します。 |
| 発信通話 | 特定の関数が呼び出す関数を示します。 |
Copilot は、プロンプトに基づいて最も適切な LSP 操作を選択します。 たとえば、"`handlePayment` はどこで定義されているのですか?" と尋ねる場合、Copilot は go-to-definition 操作を使用します。
LSP サーバーを追加する方法
Copilot CLI LSP サーバーを使用できるようにするには、まずローカル コンピューターにサーバー ソフトウェアをインストールしてから、起動時に読み取Copilot CLI構成ファイルのいずれかで構成する必要があります。 「[AUTOTITLE](/copilot/how-tos/copilot-cli/set-up-copilot-cli/add-lsp-servers)」を参照してください。
LSP サーバーは、インストールする CLI プラグインの一部として追加することもできます。 たとえば、一般的でないプログラミング言語やフレームワーク固有のファイルの種類で動作するように設計されている場合、プラグインには LSP サーバーが含まれる場合があります。 プラグインの一部として含まれる LSP サーバーは、プラグインのインストール時に自動的に使用できます。追加の構成は必要ありません。 プラグインをアンインストールすると、LSP サーバーが削除されます。 詳細については、「GitHub Copilot CLI のプラグインについて」を参照してください。
LSP サーバーの読み込み方法
GitHub Copilot CLIが開始されると、次の優先順位 (最高から最も低い) を持つ複数のソースから LSP サーバー構成が読み込まれます。
1.
Project config: .github/lsp.jsonは現在のリポジトリにあります。
1.
プラグインの構成: インストールされているプラグインによって提供される言語サーバー。
1.
ユーザー構成: ~/.copilot/lsp-config.json。
優先順位の高い構成は、同じサーバー名を持つ優先順位の低い構成よりも優先されます。 つまり、プロジェクトは、すべての共同作成者の言語サーバーをカスタマイズまたは無効化できます。
作業ディレクトリが信頼されると、 Copilot CLI はプロジェクトに関連するすべての LSP サーバーをバックグラウンドで自動的に起動するため、必要に応じてすぐに対応できます。
次のステップ
-
[AUTOTITLE](/copilot/how-tos/copilot-cli/set-up-copilot-cli/add-lsp-servers)
詳細については、次を参照してください。
- MicrosoftのウェブサイトでのLanguage Server Protocol
-
[AUTOTITLE](/copilot/reference/cli-command-reference)