Thanks to visit codestin.com
Credit goes to docs.github.com

Skip to main content

LSP サーバーの追加 GitHub Copilot CLI(コマンドラインインターフェース)

LSP サーバーを追加して Copilot CLI (コパイロット CLI) 正確なコード インテリジェンスを提供し、定義内を移動したり、参照を見つけたり、シンボルの名前を変更したりする機能を向上させることができます。

はじめに

この記事では、 Copilot CLI (コパイロット CLI)用の LSP サーバーを追加する方法について説明します。 LSP サーバーの概念については、 LSP サーバーの使用 GitHub Copilot CLI(コマンドラインインターフェース) を参照してください。

          Copilot CLI (コパイロット CLI)用の LSP サーバーの追加は、次の 2 つの手順で行います。
  1. ローカル コンピューターに LSP サーバー ソフトウェアをインストールします。
  2. 構成ファイルでサーバーを構成します。

これらの手順については、この記事で詳しく説明います。

LSP サーバーのインストールと構成

次のいずれかの方法で、特定の言語の LSP サーバーを追加できます。

  • プロセスを自動化する lsp-setup スキルを使用します。
  • サーバー ソフトウェアを手動でインストールし、サーバーを使用するように Copilot CLI (コパイロット CLI) を構成する。

これら 2 つの方法については、以下のセクションで説明します。

          `lsp-setup` スキルを使用して言語サーバーを追加する

"Awesome lsp-setup" リポジトリのGitHub Copilot スキルは、一般的な言語の選択のインストールと構成を自動化します。

  1. "Awesome GitHub Copilot" ダウンロード サイトに移動し、"lsp" を検索します。

           https://awesome-copilot.github.com/skills/?q=lsp。
    
  2.        `lsp-setup` スキルをダウンロードします。
    
  3. ダウンロードした .zip ファイルを解凍して、 lsp-setupという名前のディレクトリを作成します。

  4.        `lsp-setup` ディレクトリを次のいずれかに移動します。
    
    • 個人用スキル ディレクトリ: ~/.copilot/skills/
    • プロジェクト スキル ディレクトリ: Git リポジトリ内の .github/skills/
  5.        Copilot CLI (コパイロット CLI)を開始するか、現在 CLI セッションに参加している場合は、「`/skills reload`」と入力します。
    
  6. プロンプトを入力します。

    Copilot prompt
    setup lsp
    
  7. 画面の指示に従って、設定するサーバーの言語を選択し、追加の手順を完了します。

  8. プロセスが完了したら、「 /lsp reload 」と入力して、新しい LSP サーバーを読み込みます。

  9. サーバーが追加され、正常に動作していることを確認します。 この記事 の後半で LSP サーバーが使用可能であることを確認 するを参照してください。

LSP サーバーの手動インストールと構成

特定の言語の LSP サーバーをインストールするには、通常、 npmgempipなどのパッケージ マネージャーを使用してパッケージをインストールする必要があります。

LSP サーバーを手動でインストールするには、インストールする特定の言語サーバーのドキュメントを参照してください。 一般的な LSP サーバーをインストールするためのコマンドの例を次に示します。

メモ

さまざまな言語の LSP サーバーを見つけるのに役立つリソースを次に示します。 * Implementations は Microsoft の Language Server Protocol の Web サイトにあります。

注意事項

信頼できるソースからの LSP サーバーのみをインストールします。

インストール コマンドの例: TypeScript と JavaScript

Node.js インストールされている場合は、次のコマンドを使用して、 typescript-language-server LSP サーバーをインストールできます。

Bash
npm install -g typescript typescript-language-server
          `typescript-language-server` LSP サーバーでは、TypeScript と JavaScript の両方がサポートされています。

インストール コマンドの例: Ruby

gem がインストールされている場合は、次のコマンドを使用して ruby-lsp LSP サーバーをインストールできます。

Bash
gem install ruby-lsp

または、次のコマンドを使用して、Ruby 用の solargraph LSP サーバーをインストールすることもできます。

Bash
gem install solargraph

インストール コマンドの例: Python

Node.js インストールされている場合は、次のコマンドを使用して、 pyright LSP サーバーをインストールできます。

Bash
npm install -g pyright

または、pip がインストールされている場合は、次のコマンドを使用して python-lsp-server LSP サーバーをインストールできます。

Bash
pip install python-lsp-server

言語サーバーの構成

  1. LSP サーバーを構成するには、次の 2 つの構成ファイルのいずれかにサーバー定義を追加します。

    • ユーザー構成: ~/.copilot/lsp-config.json はすべてのプロジェクトに適用されます。
    • Project構成: リポジトリ内の .github/lsp.json は、そのprojectで作業しているすべてのユーザーに適用されます。

    どちらのファイルも同じ JSON 構文を使用します。

    {
      "lspServers": {
        "SERVER-NAME": {
          "command": "COMMAND",
          "args": ["ARG1", "ARG2"],
          "fileExtensions": {
            ".EXT": "LANGUAGE-ID"
          }
        },
        "ANOTHER-SERVER": {
          ...
        }
      }
    }
    

    特定の LSP サーバーのサーバー定義の例については、この記事の後半で説明します。

  2. サーバーをインストールして構成した後、 Copilot CLI (コパイロット CLI) がサーバーを使用できることを確認します。 以下を参照し、LSPサーバーが使用可能であることを確認してください。

構成フィールド

構成ファイル内の各サーバー定義には一意の名前を付け、英数字、アンダースコア、ハイフンのみを含める必要があります。

各サーバー定義内では、次のフィールドを使用できます。必須です。

フィールド 必須 説明
command はい LSP サーバーの起動に使用するコマンド。
args いいえ コマンドに渡す引数。
fileExtensions はい ファイル拡張子とそれに対応する言語 ID (たとえば、 { ".rs": "rust" }) の JSON マップ。
env いいえ サーバーの起動時に設定する環境変数。 ${VAR}および${VAR:-default}展開構文をサポートします。
rootUri いいえ Git ルートを基準とした LSP サーバーのルート ディレクトリ。 既定値は "." です。 monorepos に便利です。 プロジェクトがリポジトリ ルートではなく Git リポジトリのサブディレクトリに存在する場合は、 rootUri そのサブディレクトリ パスに設定します。
initializationOptions いいえ 起動時にサーバーに送信されるカスタム オプション。
requestTimeoutMs いいえ サーバー要求のタイムアウトはミリ秒単位です (既定: 90 秒)。

サーバー定義の例: LSP サーバーtypescript-language-server

JSON
{
  "lspServers": {
    "typescript": {
      "command": "typescript-language-server",
      "args": ["--stdio"],
      "fileExtensions": {
        ".ts": "typescript",
        ".tsx": "typescriptreact",
        ".js": "javascript",
        ".jsx": "javascriptreact",
        ".mjs": "javascript",
        ".cjs": "javascript",
        ".mts": "typescript",
        ".cts": "typescript"
      }
    }
  }
}

サーバー定義の例: LSP サーバーruby-lsp

JSON
{
  "lspServers": {
    "ruby": {
      "command": "ruby-lsp",
      "args": [],
      "fileExtensions": {
        ".rb": "ruby",
        ".rbw": "ruby",
        ".rake": "ruby",
        ".gemspec": "ruby"
      }
    }
  }
}

サーバー定義の例: Pythonの pyright LSP サーバー

JSON
{
  "lspServers": {
    "python": {
      "command": "pyright-langserver",
      "args": ["--stdio"],
      "fileExtensions": {
        ".py": "python",
        ".pyw": "python",
        ".pyi": "python"
      }
    }
  }
}

          `/lsp` コマンドを使用した言語サーバーの管理

          `/lsp`スラッシュ コマンドを使用して、対話型 CLI セッションで LSP サーバーを一覧表示および管理できます。
スラッシュ コマンド説明
/lsp または /lsp show構成されているすべての LSP サーバーの状態を表示します。
/lsp test SERVER-NAMEサーバーが正しく起動するかどうかをテストします。
/lsp reloadディスクから LSP 構成を再読み込みします。
/lsp help
          `/lsp` コマンド情報を表示します。 |

使用可能な LSP サーバーの一覧表示

  1.        Copilot CLI (コパイロット CLI)で、`/lsp`スラッシュ コマンドを使用して、選択した LSP サーバーが使用可能であることを確認します。 次のような出力が表示されます。
    
    ● LSP Server Status:
    
      User-configured servers:
        • ruby: ruby-lsp (.rb, .rbw, .rake, .gemspec)
        • omnisharp: omnisharp (.cs)
    
      User config: /Users/username/.copilot/lsp-config.json
    

LSP サーバーが使用可能であることを確認する

  1. LSP サーバーを追加して構成した後、 Copilot CLI (コパイロット CLI)を開始 (または再起動) します。

  2. スラッシュ コマンド /lsp test SERVER-NAME 使用して、LSP サーバーが正常に動作していることを確認します。

           Copilot CLI (コパイロット CLI) は、サーバーの一時的なスタンドアロン インスタンスの起動を試み、成功したかどうか、またはエラーが発生したかどうかを報告します。 その後、一時サーバー プロセスが強制終了されます。
    

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