VS CodeでCopilot Chatに与えると便利なコンテキストまとめ
はじめに
先日、VS CodeのGitHub Copilot Chatにもエージェントモードが搭載されましたが、質問モードが役立つ場面も引き続きあるかと思います。この質問モードの精度を高めるには、適切な「コンテキスト」をCopilotに伝えることが重要になります。
この記事では、GitHub Copilot Chatに標準で備わっているコンテキスト機能に焦点を当て、質問時に役立つコンテキストの種類と簡単な使い方を紹介します。
ここで紹介するコンテキストの多くはエージェントモードでも利用可能と思いますが、本記事では質問モードでの利用を主眼としています。
動作環境
- Windows 11
- VS Code 1.99.0
- GitHub Copilot 1.296.0
- GitHub Copilot Chat 0.26.0
コンテキストの追加方法
3種類あるコンテキストの追加方法を紹介します。
選択画面
画面上部のCopilotメニュー、もしくはCtrl+Alt+Iでチャットビューを起動します。
チャットビューにクリップボタンがあるので、これをクリックするとコンテキストを選択するモーダルが開きます。
テキスト入力
チャットビューで#
と入力すると、使用可能なコンテキストが表示されます。↑↓キーや、入力を続けて絞り込むことができます。
ドラッグアンドドロップ
ファイルやディレクトリを、チャットビューにドラッグアンドドロップすることができます。画面左のエクスプローラーや、現在開いているファイルのタブからドラッグすることができ、便利です。CtrlやShiftで複数選択してドラッグすることも可能です。
後述のように、画像などのドラッグアンドドロップにも対応しています。
コンテキストの種類
同じコンテキストで選択画面とテキスト入力の表現が異なる場合は(例:フォルダーと#folder
)、#folder
のような変数の表記に統一して記載します。
コード
下記のようなコンテキストを指定すると、特定のコードをコンテキストとして与えることが可能です。
-
#file
ファイル -
#folder
フォルダ -
#sym
シンボル -
#codebase
ワークスペース全体
現在開いているファイルのうち表示している範囲、もしくは選択している範囲については、デフォルトでコンテキストとして追加されます。追加したくない場合は、目のアイコンをクリックする必要があります。
「[#file
で指定したファイル]を参考に、XXXするように修正して」のように、ファイル名を指示の中に組み込むこともできます。
画像
クリップボードの画像をペーストして、コンテキストに追加することができます。
また、WebブラウザやOSのエクスプローラーで表示されている画像をドラッグアンドドロップすることもできます。
残念ながら対応しているモデルはGPT-4oのみですが、2025年2月のリリースノートによれば、他のモデルで利用できるようにする予定はあるとのことです。
The only supported model at the moment will be GPT 4o, but support for image attachments with Claude 3.5 Sonnet and Gemini 2.0 Flash will be rolling out soon as well.
【2025/4/17追記】
Claude Sonnet 3.5、Claude Sonnet 3.7、Gemini 2.0 Flash、Gemini 2.5 Proでの利用がパブリックプレビューに追加されました。詳しくはこちらの発表をご確認ください。
Webページ
#fetch
を使うと、特定のURLの内容を取得して、コンテキストに含めることができます。
2025年3月のリリースノートに利用イメージの動画が掲載されています。
なおエージェントモードでは、この機能は自動的に選択されるとのことです。
問題
#problems
は、VSCodeで検出された問題をコンテキストとして追加する場合に使用します。
画面下部の問題タブで表示されている問題を、チャットビューにドラッグアンドドロップすることもできます。
プロンプトなしでコンテキストだけ渡して実行しても、解決のための方法を提案してくれます。
ターミナル
ターミナルに関するコンテキストを追加することもできます。
-
#terminalLastCommand
ターミナルで最後に実行したコマンドの出力 -
#terminalSelection
ターミナルで選択している範囲
特に#terminalLastCommand
は、エラー解消にも役立ちます。
おわりに
GitHub Copilot Chatのコンテキスト機能を活用することで、質問の意図がより明確に伝わり、精度の高い回答が期待できます。
今回紹介した以外にもコンテキストが用意されていますので、興味のある方は公式ドキュメントを参照ください。
Discussion