Skip to main content

LSP サーバーの使用 GitHub Copilot CLI

LSP サーバーは Copilot CLI 正確なコード インテリジェンスを提供し、プロジェクト全体で定義間の移動、参照の検索、シンボルの名前変更を正確に行うことができます。

はじめに

言語サーバー プロトコル (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)
    

詳細については、次を参照してください。