GitHub⁠Copilot CLI向け「LSP Setup」スキルを紹介⁠定義ジャンプや型情報でコード理解を支援

GitHubは2026年6月10日、GitHub Copilot CLIでLanguage Server Protocol(LSP)サーバーを設定するエージェントスキル「LSP Setup」をGitHub Blogで紹介した。対象言語やOSに応じて言語サーバーをインストールし、設定ファイルを生成することで、Copilot CLIのエージェントが定義ジャンプ、参照検索、ホバー表示、型情報などをコードの理解に使えるようにする。

LSP Setupは、GitHub Copilot向けのスキルやインストラクションを集めたAwesome GitHub Copilotの一部として提供されている。

テキスト検索に頼るコード理解をLSPで補う

LSPサーバーがない場合、Copilot CLIのエージェントはAPIの呼び出し方やシグネチャなどを把握するために、依存ライブラリをテキスト検索したり、バイナリを展開したりすることがある。JavaではJARファイルを展開して.classファイルを検索し、Pythonではsite-packages、TypeScriptではnode_modulesを探索するといった動きが例として挙げられている。

こうしたテキスト検索やバイナリ展開による方法は単純な例では機能するものの、テキスト上のパターンマッチングに近いため、ジェネリクス、オーバーロード、依存関係をまたぐ型情報、コンパイル済みバイトコードの扱いで限界があるという。

これに対しLSPサーバーを使うと、エージェントはLSPリクエストを通じて、シンボルの正確な場所、解決済みの型、シグネチャといった構造化された情報を取得できる。

LSPサーバーを設定すると、エージェントは依存関係をまたいで型を解決したり、サードパーティライブラリ内の定義へジャンプしたりできる。プロジェクト全体での参照検索や、関数、クラス、型のホバー情報の読み取りも可能になる。GitHubは、これによりツール呼び出しにかける時間が減り、シグネチャの読み違いによる手戻りも減らせるとしている。

デフォルトで14種類の言語に対応

LSP Setupは、現在のところ14種類の言語に対応しており、TypeScript/JavaScript、Java、Python、Go、Rust、C/C++、C#、Ruby、PHP、Kotlin、Swift、Lua、YAML、Bash/Shell向けのサーバー情報が用意されている。

各言語向けのLSPサーバーには、typescript-language-serverpyrightgoplsrust-analyzerclangdなどがある。Java向けのjdtlsについては、Java 21以上がJAVA_HOMEまたは$PATHにあることが前提として示されている。

対応リストにない言語については、エージェントが適切なLSPサーバーを探し、手動設定を案内する。

導入と設定の流れ

利用するには、Awesome CopilotのLSP SetupスキルページからZIPファイルをダウンロードし、たとえばユーザー単位のスキル用ディレクトリである~/.copilot/skills/に展開する。

また、gh skill preview github/awesome-copilot lsp-setupで内容を確認し、gh skill install github/awesome-copilot lsp-setupでインストールする方法もある。その際、対象エージェントにはGitHub Copilotを選ぶ。

すでにCopilot CLIを起動している場合は、いったん再起動して新しいスキルを読み込ませる。その後、⁠set up LSP for Java」「enable code intelligence for Python」といった形で依頼すると、対象言語のLSP設定を進められる。または、/lsp-setupコマンドを使っても同様のワークフローを開始できる。

LSP Setupのワークフローは7段階で構成される。まずエージェントがLSPを設定したいプログラミング言語を確認する。

次に、uname -sやWindowsの環境変数でOSを判定する。そのうえで、エージェントがスキルのreferences/lsp-servers.mdを参照し、対応する言語サーバー、OSごとのインストールコマンド、設定スニペットを選ぶ。

設定時には、ユーザー単位で設定するか、リポジトリ単位で設定するかをエージェントがユーザーに確認する。ユーザー単位では~/.copilot/lsp-config.jsonを使う。リポジトリ単位では、リポジトリルートのlsp.jsonまたは.github/lsp.jsonに設定する。

続いて、エージェントが対象OSに応じたコマンドでLSPサーバーをインストールし、選択した設定ファイルへlspServersオブジェクトを追加またはマージする。設定にはcommandargsfileExtensionsが含まれる。既存の設定ファイルがある場合も、既存の項目を残したまま必要なサーバー設定をマージする。

最後に、which <binary>またはWindowsのwhere.exeでLSPサーバーの実行ファイルを呼び出せるかを確認し、設定ファイルが正しいJSONとして読めるかを検証する。

設定完了後は、Copilot CLIをもう一度再起動し、/lspでサーバーの状態を確認する。さらに、依存ライブラリ内のシンボルに定義ジャンプを試すことで、LSPサーバーが正しく使われているかを確認できるとのこと。

おすすめ記事

記事・ニュース一覧