OWN NEWS GATHER
← 戻る
GitHub Copilot Changelog

GitHub Copilot CLI、C++コードインテリジェンスを高速化する「コードベース全体のインデックス機能」を標準提供

要点

  • GitHub Copilot CLIにおいて、プロジェクト全体を事前解析する「コードベース全体のインデックス機能(Whole Codebase Indexing)」の提供が開始された。

  • 開いていないファイルを含むプロジェクト全体のシンボル情報を永続化して再利用し、定義ジャンプや参照先検索の待ち時間を短縮する。

  • 本機能はデフォルトで有効化されており、初回構築時に負荷がかかるものの、完了後は動的な更新により効率的に処理される。

  • インデックス作成の進捗は専用コマンドで確認でき、必要に応じて設定からの無効化にも対応している。

  • GitHubは2026年9月22日、同社が提供する開発支援ツール「GitHub Copilot CLI」において、C++言語のコードインテリジェンス機能を高速化する「Whole Codebase Indexing(コードベース全体のインデックス作成)」のサポートを開始したと発表した。

  • Microsoftが提供するC++言語サーバーの解析基盤を活用し、大規模なC++リポジトリにおける定義の参照やシンボル検索にかかる待ち時間を削減する。

大規模C++開発における課題とインデックス導入の背景

C++言語を用いたソフトウェア開発では、深く関連し合ったソースファイルやヘッダーファイルが複雑に連なっており、リポジトリ全体で数百万行に達する大規模なコードベースになることが珍しくない。

これまでのGitHub Copilot CLI環境では、プロジェクト全体をカバーする再利用可能なインデックスが存在しなかった。そのため、開発者がコード内を移動して調査や編集を行うたびに、コードインテリジェンス(関数の定義場所へのジャンプや参照検索などを実現する機能)のリクエストがプロジェクトの構造や情報を一から再探索する必要があった。

この再探索処理により、関数の定義場所を探す、参照先を特定する、あるいは見慣れない実装コードの構造を理解するといった日常的な操作において応答が遅くなり、開発者が待たされる要因となっていたという。

「Whole Codebase Indexing(WCI)」の仕組みと効果

今回導入された「Whole Codebase Indexing(以下、WCI)」は、現在エディタ上で開かれていないファイルも含め、C++プロジェクト全体に存在するシンボル(関数名や変数名、型名などの識別子)の永続的なインデックスを作成する機能だ。

本機能では、解析エンジンである「Microsoft C++ Language Server」がプロジェクトのコンパイル情報を読み取り、型定義、シンボル、includeの依存関係、ファイル同士の関連性を解決する。WCIによってこれらの解析結果が永続インデックスとして保持されるため、リクエストのたびに情報を再探索することなく、既存のシンボル情報をそのまま再利用できるようになる。

GitHubはこの機能強化により、定義の検索、参照先の特定、実装の確認、シンボル検索の各結果を待つ時間が短縮されると説明している。その結果、開発者は検索の待機時間から解放され、コードのレビュー、理解、修正といった実作業により多くの時間を充てられるようになるとしている。

動作仕様とリソース消費に関する注意点

WCIは、Microsoft C++ Language Serverがプロジェクト全体の関連性を効率的に把握できるよう、デフォルトで有効化されている。C++プロジェクトを初めて開いたタイミングで、言語サーバーによってインデックスの読み込みと構築が自動的に開始される。

インデックス作成の進行状況については、開発者が任意のタイミングで「/lsp logs」コマンドを実行することにより、ログを通じて確認することが可能だ。

一方で、初回インデックス構築時のリソース消費に関する注意点も案内されている。インデックスを初めて構築する際は相応の追加時間がかかり、特に大規模または複雑な構造を持つリポジトリでは一時的にメモリ使用量が増加する場合があるという。ただし、初期インデックスの作成が完了した後はデータが再利用され、変更に応じて動的に更新されるため、このような負荷やオーバーヘッドは主に初期セットアップ時に限定されるとしている。

設定の変更方法とフィードバックの受付

システムのメモリリソースに制約がある場合や検証目的など、WCIを無効化したいユーザーに向けては、公式ドキュメントに記載された手順に従って機能を一時的に無効化する手段が提供されている。なお、設定を変更した後は、変更内容を反映させるためにCopilotのセッションを再起動する必要がある。

あわせてGitHubは、Copilot CLI向けのMicrosoft C++ Language Serverのさらなる品質向上を目指し、ユーザーからのフィードバックを募集している。専用のオンラインアンケート(aka.ms/cpp-lsp-survey)への回答を呼びかけているほか、不具合の報告や改善提案についてはGitHub上の「microsoft/cpp-language-server」リポジトリのIssueにて受け付けている。

元URL