この設定は一時的なものであり、LSPのインストーラーが対応したらそちらで対応してください。
はじめに
2025年2月10日、GitHubはCopilot Language Server SDKを公開しました。これは、エディタやIDEがLanguage Server Protocol(LSP)を通じてGitHub Copilotと連携できるものです。
このリリースは、開発者がより柔軟にCopilotを利用できるようになる重要な一歩です。今までGitHub CopilotはVS Code、Visual Studio、JetBrains IDEs、Vim/Neovim、そして最近ではXcodeでも利用可能でしたが、これらのエディタすべてがCopilot Language Serverを使用して実装されていました。GitHubは開発者の選択肢を重視し、好みのエディタでCopilotを使用できるようにすることを目指しているみたいです。

Copilotの進化
NeovimでのCopilot利用は、以前はgithub/copilot.vimを通じて行われていました。このVimscriptベースのプラグインは、多くの開発者に利用されてきた公式の実装です。その後、Lua APIを活用したzbirenbaum/copilot.luaが登場しましたが、これも内部的にはcopilot.vimを通じてGitHub Copilotと通信を行っていました。
このアーキテクチャでは、copilot.luaがNeovimのモダンなLua APIを活用した柔軟なインターフェースを提供し、バックエンドではcopilot.vimが実際のCopilotサービスとの通信を担当するという二層構造になっていました。
そして今回のLanguage Server SDKの公開により、エディタとCopilotの連携方法が標準化され、直接Language Server Protocolを介してCopilotと通信できるようになりました。これにより、中間レイヤーが不要になり、より効率的で安定した実装が可能になりました。
前提条件
インストール手順
1. Copilot Language Serverのインストール
まず、Neovimの設定ディレクトリにCopilot用のディレクトリを作成し、Language Serverをインストールします。
# Copilot用ディレクトリの作成 mkdir -p ~/.config/nvim/copilot/ # Language Serverのインストール npm install @github/copilot-language-server -g --prefix ~/.config/nvim/copilot/ # 実行権限の付与 chmod +x ~/.config/nvim/copilot/bin/copilot-language-server
2. Neovimプラグインのインストール
lazy.nvimを使用している場合、以下の設定を~/.config/nvim/lua/plugins/copilot.luaに追加します。
return { "zbirenbaum/copilot.lua", lazy = false, priority = 1000, config = function() require("copilot").setup { suggestion = { enabled = false }, panel = { enabled = false }, server_opts_overrides = { trace = "verbose", cmd = { vim.fn.expand("~/.config/nvim/copilot/bin/copilot-language-server"), "--stdio" }, settings = { advanced = { listCount = 10, inlineSuggestCount = 3, }, }, }, filetypes = { yaml = true, markdown = true, help = false, gitcommit = true, gitrebase = true, hgcommit = false, svn = false, cvs = false, ["."] = false, ["*"] = true, }, } end, }
3. 認証設定
Neovimを起動後、以下のコマンドで認証を行います。
:Copilot auth
ブラウザが開き、GitHubアカウントでの認証が求められます。認証が完了すると、Copilotが使用可能になります。
設定の説明
設定の主要なポイントを解説します。この設定は私の設定ファイルなので自由に設定してください。
suggestionとpanelenabled = false: デフォルトのサジェスト機能を無効化しています
server_opts_overridescmd: インストールしたLanguage Serverのパスと起動オプションを指定vim.fn.expand("~/.config/nvim/copilot/bin/copilot-language-server"): Language Serverの実行ファイルのパスを指定。vim.fn.expand()関数を使用して~をホームディレクトリに展開"--stdio": Language Serverが標準入出力(stdio)を使用してNeovimと通信することを指定するオプション
settings.advanced: -settings.advanced:listCount: 候補の表示数(10個)inlineSuggestCount: インラインサジェストの数(3個)
filetypes- 各ファイルタイプでのCopilotの有効/無効を設定
["*"] = true: デフォルトですべてのファイルタイプで有効
トラブルシューティング
Language Serverが見つからない場合
Error: Language server is not installed or not executable- パスが正しいか確認
- 実行権限が付与されているか確認
chmod +xコマンドで実行権限を付与
認証エラーの場合
まとめ
GitHub Copilot Language Server SDKの公開により、Neovimでより直接的にCopilotを利用できるようになりました。これまでのcopilot.vimを経由する方式から、直接Language Server Protocolを使用する方式への移行により、より効率的で保守性の高い実装が可能になりました。
新しいSDKはnpmjs.comで公開されており、誰でも利用可能です。この変更により、エディタ開発者はより簡単にCopilotを統合でき、ユーザーはより安定した開発体験を得られるようになります。
また、この方法は本来であれば不要でありlspconfigにコントリビューションすればよい()。