メインコンテンツまでスキップ

コンテキスト変数

VS Codeで開いているコードやターミナルコマンドについて会話したい場合はコンテキスト変数を使います。
#で始まるコンテキスト変数を用いてGitHub Copilot Chatに以下のようなコンテキストを与えることができます。
エージェントコマンド、スラッシュコマンドと併用することも可能です。

コンテキスト変数コンテキストに追加される情報
#file指定したファイル(#file:sample.javaのように使います)
#editorエディタで選択中のファイル
#selectionエディタで範囲選択したコードやテキスト
#terminalLastCommandターミナルの最後のコマンドの入出力
#terminalSelectionターミナルで範囲選択した箇所

以下にコンテキスト変数ごとの具体例を示します。

備考

エディタで選択中のファイルや選択箇所についての会話の場合、#editor#selectionの代わりにインラインチャットも利用できます。 詳細はインラインチャットを参照してください。

#file:指定したファイルをコンテキストに含める

#file:index.tsx のように指定することで特定のファイルの情報をコンテキストに含めることができます。

以下のように特定ファイルに関してGitHub Copilot Chatの力を借りたい時などに便利です。

#file利用例

#editor:エディタで選択しているファイルをコンテキストに含める

#editorを指定することで、エディタで選択しているファイル情報をコンテキストに含めることができます。

#fileでファイルを指定しなくても、エディタでファイルを選択している場合は#editorで代用できます。

以下例では選択中のファイル(ClientSearchForm.java)をコンテキストに含めてindustryCodeについて質問しています。 応答ではindustryCodeの一般的な事柄だけでなく、ClientSearchForm.javaのクラスの定義についても言及しています。

#editor利用例

#selection:エディタの選択している箇所をコンテキストに含める

#file#selectionから更にコンテキストを絞りたい場合は、エディタでファイルの特定箇所を選択し#selectionを指定することで、コンテキストを選択箇所に限定できます。

以下例では特定ファイルのメソッドを選択して質問しています。

#selection利用例

#terminalLastCommand:ターミナルの最後のコマンド情報をコンテキストに含める

#terminalLastCommandを指定することで、ターミナルで最後に実行したコマンド情報をコンテキストに含めることができます。

以下例では静的コード解析の結果について概要をまとめてもらっています。

#terminalLastCommand利用例

#terminalSelection:ターミナルで選択している箇所をコンテキストに含める

#terminalLastCommandから更にコンテキストを絞りたい場合は#terminalSelectionを使います。

ターミナル上で特定箇所を選択し、#terminalSelectionを指定することで、コンテキストを選択箇所に限定できます。

参考

以下資料でもコンテキスト変数の説明が記載されているので参考にしてください。