著者は、Microsoft 西ヨーロッパで開発者生産性 GTM をリードしています。GitHub Copilot はこのビジネス領域の一部です。
GitHub Copilot Chat は、コードについてチャットしたり、コードとチャットしたりできる、非常に強力で便利な機能です。100% 自然言語に対応している (つまり、特定の構文を使用せずにメッセージを送信できる) にもかかわらず、特別なチャット機能を活用することで、AI 支援による新しい開発シナリオが実現し、生産性が大幅に向上します。
特別な構文を適用することで使用できるこれらの強力な機能には、チャット参加者、スラッシュ コマンド、コンテキスト変数などがあります。ここで説明する機能は VS Code で使用できますが、GitHub Copilot Chat が使用できる他の IDE では完全にサポートされない可能性があることに注意してください。
GitHub Copilot Chat では、参加者名の前に @ を付けるという従来のチャット構文を使用して、AI を活用した「ドメイン エキスパート」の 1 人を参照できます。現在利用可能なチャット参加者は次のとおりです。
@workspace
: 現在開いているワークスペース内のコードについてすべて知っています。これは、おそらく頻繁にコミュニケーションを取ることになるチャット参加者です。
@terminal
: 統合ターミナル シェル、その内容、およびそのバッファーに関するすべての情報を認識します。
@vscode
: VS Code エディター、そのコマンド、および機能について知っています。例: VS Code でプロジェクト フォルダーを開いた直後に、 @workspace
チャットの参加者に質問して、割り当てられたプロジェクトのバックエンド部分に関する情報を取得してみましょう。
この特定のケースでは、エディターでファイルを開く必要さえありません。これを、 @workspace
タグ付けせずに取得する応答と比較してください。
@workspace
チャット参加者は、すべてのコードをチャット応答に考慮する必要があるソリューション全体のすべてのクエリに役立ちます。ただし、これはすべてのコードがプロンプトの一部として使用され、送信されることを意味するわけではありません。VS Code の GitHub Copilot Chat 拡張機能は、まずローカルの知識とインテリジェンスを使用して、関連するファイルとこれらのファイルの一部を決定するために最善を尽くします。「使用された参照」行を展開すると、プロンプトに使用されたファイルとコード行を確認できます。
生産性のヒント: メッセージを入力した後、Enter キーだけではなく Ctrl + Enter キー (Cmd + Enter キー) を使用すると、送信前に@workspace
文字列がメッセージに自動的に挿入されます。
多くの場合、質問やリクエストのコンテキストとして完全なソリューションを考慮するのはやりすぎです ( @workspace
を使用)。メッセージで特定のファイルやファイルの一部を指定したい場合があります。チャット変数が役立ちます。# を使用して、このリストから 1 つを呼び出します。
#file
: ワークスペース内の特定のファイルを指します。
#codebase
: 開いているワークスペースのすべてのコンテンツ。これは@workspace
を使用するのと似ており、別のエージェント ( @terminal
など) とチャットしながら完全なソリューションを参照したい場合に便利です。
#editor
: エディターのビューポート内のソースコード (表示部分)。
#git
: 現在の git リポジトリ: ブランチ、リモート、パスなど。
#selection
: 現在選択されているコード。
#terminalLastCommand
: エディターのターミナルで最後に実行されたコマンド。
#terminalSelection
: エディターのターミナルでの選択。例: 特定のファイル内のメソッド名の改善についてサポートを受けましょう (ファイルの内容全体が考慮されるようにします)。
生産性のヒント: # を入力した後、キーボードの上下矢印を使用して必要なチャット変数を選択します。 #file
の場合は、キーボード ナビゲーションを再度使用して、提案されたファイルの 1 つを選択します。
自然言語を使用してコードとチャットするのは楽しいですが、便利なショートカットを使用してよく使用するアクションを呼び出すオプションがあるとさらに便利です。「選択したコードの動作を説明します」というメッセージ全体を入力する場合と、「/」と入力してからキーボードの矢印を使用してポップアップ オーバーレイから/explain
選択する場合を比較してください。
コマンドに定義済みの構文を使用するもう 1 つの利点は、GitHub Copilot が意図を 100% 正しく理解するという自信です (自然言語には多少の曖昧さがある可能性があります)。
利用できるスラッシュ コマンドは多数あります。チャット参加者の参照と組み合わせて使用することで、必要な範囲を指定できます。コマンドの一部を以下に示します。
/help
: 利用可能なスラッシュ コマンド、チャット参加者、チャット変数などに関するヘルプ。
/doc
: コードのドキュメントを生成します。
/explain
: コードの動作を説明します (または、先頭に @terminal を追加すると、ターミナル コマンドのヘルプが表示されます)。
/fix
: コードを最適化したり、問題を修正したりします。
/tests
: コードの単体テストを作成します。
/new
: 新しいワークスペースを構築します。例: コード内の正規表現の 1 つについて説明を取得してみましょう。コード行を選択し、スラッシュ コマンド「 /explain
を使用します。
生産性のヒント: サイド ペインで常にチャットを開くのではなく、GitHub Copilot Chat をインライン モードで試してください。Ctrl + I (Cmd + I) を押して、コード ウィンドウ内のカーソルがある行のすぐ上に表示される小さなオーバーレイ ダイアログにメッセージを入力します。
チャット参加者、チャット変数、スラッシュ コマンドを使用して、会話のコンテキストを完全に制御し、意図を正しく一貫して理解できるようにすることで、チャットとコードのスピードを速めることができます。無料の GitHub Copilot トライアルはこちらから開始できます: https://aka.ms/try-github-copilot
https://github.blog/changelog/2023-11-30-github-copilot-november-30th-update/
https://code.visualstudio.com/docs/copilot/copilot-chat#_chat-participants
https://devblogs.microsoft.com/visualstudio/copilot-chat-slash-commands-and-context-variables/
https://code.visualstudio.com/updates/v1_85#_terminal-agent-and-command-suggestion-improvements
https://code.visualstudio.com/updates/v1_84#_chat-agents