mcpField
L
lsp-setup

lsp-setup

github.com/github開発40.5k1.1k 回インストール今日更新
リポジトリ

lsp-setup について

GitHub Copilot CLI 向けに Language Server Protocol サーバーをインストール、設定するユーティリティスキルです。言語と設定範囲の選択から、設定の統合と検証までを案内し、一般的な IDE 設定は対象外です。

主な機能

  1. 01言語と設定範囲の選択
  2. 02サーバー設定手順の確認
  3. 03言語サーバーのインストール
  4. 04ユーザーまたはリポジトリ設定の統合
  5. 05バイナリと JSON 設定の検証

活用シーン

  1. 01Copilot CLI でコードインテリジェンスを有効化
  2. 02Java のコードナビゲーション設定
  3. 03リポジトリ設定への言語サーバー追加
  4. 04既存 LSP 設定の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/github/awesome-copilot --skill lsp-setup

インストール後、Claude Code で/lsp-setupを入力して読み込まれたか確認します。

同梱ファイルreferences/java-jdtls.mdreferences/lsp-servers.md

詳細

GitHub Copilot CLI の LSP セットアップ

ユーティリティスキル — Copilot CLI 用の Language Server Protocol サーバーをインストールして設定します。 使用する場合:「LSP をセットアップ」「言語サーバーをインストール」「Java 用に LSP を設定」「TypeScript LSP を追加」「コードインテリジェンスを有効化」「定義へ移動したい」「参照の検索が機能しない」「コードをより深く理解したい」 使用しない場合:一般的なコーディングタスク、IDE/エディターの LSP 設定、Copilot CLI 以外のセットアップ

ワークフロー

  1. 言語を尋ねる — ask_user を使って、LSP サポートが必要なプログラミング言語を尋ねます
  2. OS を検出する — uname -s を実行するか、$env:OS/%OS% を確認して、macOS、Linux、Windows のいずれかを特定します
  3. LSP サーバーを調べる — 既知のサーバー、インストールコマンド、設定例について references/lsp-servers.md を読みます(Java の場合は references/java-jdtls.md も読みます)
  4. 設定の適用範囲を尋ねる — ask_user を使って、ユーザーレベル(~/.copilot/lsp-config.json)とリポジトリレベル(.github/lsp.json)のどちらに設定するかを尋ねます
  5. サーバーをインストールする — 検出した OS に適したインストールコマンドを実行します
  6. 設定を書き込む — 新しいサーバーエントリを選択した設定ファイルにマージします(ユーザーレベルの場合は ~/.copilot/lsp-config.json、リポジトリレベルの場合は .github/lsp.json)。ファイルが存在しない場合は作成し、既存のエントリは保持します。
  7. 検証する — LSP バイナリが $PATH 上にあることと、設定ファイルが有効な JSON であることを確認します

設定形式

Copilot CLI はユーザーレベルまたはリポジトリレベルの場所から LSP 設定を読み込みます。リポジトリレベルの設定はユーザーレベルの設定より優先されます。

  • ユーザーレベル:~/.copilot/lsp-config.json
  • リポジトリレベル:.github/lsp.json(リポジトリのルートにある lsp.json は読み込まれません。Copilot CLI 1.0.95 では、copilot lsp list は .github/lsp.json のサーバーを一覧表示しましたが、ルートの lsp.json のサーバーは表示しませんでした)

JSON の構造:

{
  "lspServers": {
    "<server-key>": {
      "command": "<binary>",
      "args": ["--stdio"],
      "fileExtensions": {
        ".<ext>": "<languageId>",
        ".<ext2>": "<languageId>"
      }
    }
  }
}
主なルール
  • command はバイナリ名($PATH 上にある必要があります)または絶対パスです。
  • 標準 I/O トランスポートを使用するため、args にはほとんどの場合 "--stdio" を指定します。
  • fileExtensions は、各ファイル拡張子(先頭にドットを付けます)を 言語 ID に対応付けます。
  • lspServers では複数のサーバーを共存させることができます。
  • 既存のファイルにマージする際は、他のサーバーエントリを決して上書きしないでください。対象言語のキーのみを追加または更新します。

動作

  • 言語または適用範囲を選ぶようユーザーに尋ねるときは、必ず choices を指定して ask_user を使用します。
  • 言語が references/lsp-servers.md に記載されていない場合は、ウェブで「 LSP server」を検索し、手動設定を案内します。
  • パッケージマネージャーを利用できない場合(例:macOS に Homebrew がない場合)は、参照ファイルに記載されている代替インストール方法を提案します。
  • インストール後、which <binary>(Windows の場合は where.exe)を実行して、バイナリにアクセスできることを確認します。
  • 書き込む前に、最終的な設定 JSON をユーザーに提示します。
  • 設定ファイルがすでに存在する場合は、まず読み込んでからマージし、既存の内容を上書きしないでください。

検証

セットアップ後、次の手順をユーザーに伝えます。

  1. Copilot CLI を終了するには /exit と入力します。次回起動時に新しい LSP 設定を読み込むため、必須の手順です
  2. 設定した言語のファイルがあるプロジェクトで copilot を再起動します
  3. /lsp を実行してサーバーの状態を確認します
  4. 定義へ移動やホバーなどのコードインテリジェンス機能を試します

Java

Java のセマンティックナビゲーションでは、サーバーの設定後は grep/view よりも lsp ツール(goToDefinition、findReferences、hover、incomingCalls)を優先してください。Java では LSP は任意であり、ビルドや実行時の診断に必須ではありません。セットアップの詳細とトラブルシューティングについては references/java-jdtls.md を参照してください。

コメント