要点
マイクロソフトが Copilot プラグイン市場に C++ ランゲージサーバーを公開し、プロジェクト設定の自動化や compile_commands.json 生成を支援する新スキルを追加した。
Microsoft C++ Language Server が Copilot Plugins マーケットプレイスでプラグインとして利用可能になりました。この機能には、プロジェクト設定を自動化し、言語サーバーがコードを理解するために必要な compile_commands.json ファイルの生成と維持を容易にする新しいビルトインセットアップスキルが含まれています。
なぜこれが重要なのか
C++ 言語サーバーは、正確なセマンティックインテリジェンス(つまり、コンパイラが実際にコードをどのように認識しているかを反映したシンボルナビゲーション、診断、およびコード変更)を提供するために compile_commands.json ファイルに依存しています。従来、このファイルの作成にはビルドシステムごとに異なる手動手順が必要でした。新しいセットアップスキルは、CMake および MSBuild プロジェクトに対してこれを自動的に処理し、カスタムビルドシステム向けの反復可能なパターンも提供します。
新機能
Copilot Plugins マーケットプレイス経由で利用可能
C++ 言語サーバーは、Copilot CLI プラグインとして直接インストールできるようになりました:
/plugin install cpp-language-server@copilot-plugins
これは以前の npm ベースのインストールを置き換え、Windows、Linux、macOS において最新リリースへの対応と更新を簡素化します。
compile commands の生成スキル
新しい「compile commands の生成」スキルを使用すると、Copilot CLI から直接 compile_commands.json を生成または更新できます。単に「regenerate compile commands」または「load project」と発言するだけで、プロジェクトタイプとプラットフォームに基づいてコンパイルデータベースが設定されます。
言語サーバーは compile_commands.json の変更を自動的に監視するため、再起動せずに更新が即座に反映されます。
プロジェクトタイプ別の推奨設定
CMake プロジェクト
すでに CMake ビルドから生成された compile_commands.json が存在しない場合、このスキルを使用してファイルを生成することが推奨されます。あるいは、CMake を構成する際に -DCMAKE_EXPORT_COMPILE_COMMANDS=TRUE パラメータを指定して、ビルドプロセスから直接ファイルを作成することも可能です。
CMake にはネイティブでコマンド生成のサポートが備わっており、本スキルは言語サーバーが必要とするコンパイルデータベースを取得できるようプロジェクトを設定します。
MSBuild プロジェクト
MSBuild ベースのプロジェクトでは、以下の 2 つの方法があります:
ガイド付きセットアップ: 「compile commands を再生成」または「プロジェクトを読み込み」と指示してスキルを使用し、プロジェクトを登録します。これにより言語サーバーに必要な設定が生成されます。
手動生成: サンプルのエクストラクターアプリケーションを使用して、MSBuild プロジェクトから compile_commands.json を生成します。多くのプロジェクトではそのまま動作しますが、複雑な構成の場合は適応が必要になる場合があります。
カスタムビルドシステム
カスタムビルドでは、標準的な検出機能では必ずしも検出できない、隔離された(hermetic)環境やベンダー提供のツールチェーン、あるいはラッパーベースのツールチェーンを使用することがよくあります。これらのプロジェクトの場合:
一度だけビルド設定をキャプチャし、それを再利用可能にするプロジェクト固有のスキルを作成してください。
チームは、手動で独自の compile_commands.json ファイルを提供し続けることも可能です。
このリポジトリ内の詳細なガイダンスでは、どの設定を固定すべきか、Copilot が信頼してコンパイルコマンドを再生成できるようにスキルをどのように構成すべきかが解説されています。
はじめに
プラグインをインストールし、EULA に同意するためにクイックスタートガイドに従ってください:
/plugin install cpp-language-server@copilot-plugins
次に、「regenerate compile commands」または「load project」と入力してプロジェクトを設定します。ビルド設定が変更された際は、言語サーバーとの同期を保つためにいつでもスキルを再実行してください。
アクティブな GitHub Copilot のサブスクリプションが必要です。
フィードバック
Microsoft C++ 言語サーバーの改善にご協力ください。Copilot CLI 向けの短いアンケートにご記入いただくか、問題の報告や改善提案を行う場合は、GitHub リポジトリでイシューを開いてください。