本日はVisualStudioCodeの学習枠です。
VisualStudioCodeのGitHubCopilotのドキュメントを読みながら実際に操作を試してみました。
前回記事
以下の前回記事の続きです。
bluebirdofoz.hatenablog.com
Use ask mode in VS Code
以下のUse ask mode in VS Codeドキュメントを日本語訳しながら実行時のキャプチャをしていきます。
code.visualstudio.com
Askモードを使用する
開始するには次の手順を行います。
1.チャットビューを開き(Ctrl + Alt + I)、チャットモードセレクターから[Ask]を選択します。

2.チャット入力フィールドに質問を入力し、[送信(Enter)]を選択して送信します。
例えば以下の質問例を試してみてください。
・ファクトリーデザインパターンとは何ですか?
・JavaScriptでfetch APIを使うには?
・Reactコンポーネントを新規作成するには?

プロンプトにコンテキストを追加するか、#codebaseを使用してコードベース全体を参照することでコードベースに固有の質問をすることもできます。

bluebirdofoz.hatenablog.com
チャットコンテキストの追加
チャットプロンプトにコンテキストを追加してより関連性の高い応答を得たり、コードベースに固有の質問をしたりできます。
例えばWebアプリでの認証の実装方法を尋ねる代わりに「#codebaseでどのように認証を実装するか」と質問することができます。
チャット入力フィールドの[add context]ボタンを選択してプロンプトにコンテキストを追加するかチャット変数を参照するように入力します。

またファイルをチャットビューにドラッグアンドドロップしてコンテキストとして追加することもできます。
チャットからコードブロックを適用する
チャットの応答にコードブロックが含まれている場合はワークスペース内の対応するファイルに個別に適用できます。
Copilotは適用を実行し、ファイル内の適切な場所に変更を挿入します。
コードブロックをコードベースに適用するにはコードブロックにカーソルを合わせて[Apply in Editor] ボタンを選択します。
Copilotは提案された変更を既存のコードに適用しようとします。

またはコードをコピーするか、現在のカーソル位置に挿入することもできます。コードブロックにカーソルを合わせて対応するアクションを選択します。
言語拡張機能によってはチャット応答のコードブロックがIntelliSenseをサポートする場合があります。
コード・ブロックにシェル・コマンドが含まれている場合は[Insert into Terminal](Ctrl + Alt + Enter) アクションを使用して統合ターミナルで直接実行できます。

クイックチャット
完全なチャットセッションを開始せずに簡単な質問をするにはクイックチャットを開きます。
タイトルバーのCopilotメニューから[Quick Chat]を選択するか[Ctrl + Shift + Alt + L]キーボードショートカットを使用します。

クイックチャットで質問をしたり会話を続けたい場合は[Open in Chat View]ボタンを使用してチャットセッション全体をチャットセッションに昇格させることができます。

特別なキーワード
プロンプトでは特別なキーワードを使用してより関連性の高い応答を取得できます。
Chat participants
Chat participantsは例えばデータベースや特定のAPIとの対話方法など、ドメイン固有の知識を提供することでチャット体験を向上させることができます。
チャット入力フィールドに@を入力すると、利用可能なparticipantsのリストが表示されてそこから選択できます。
@workspace、@vscode、@terminal、@github のようないくつかのビルトインのChat participantsがあります。

拡張機能もチャット参加者を提供することができます。
Marketplaceに行くか統合された拡張機能ビュー(Ctrl+Shift+X)を使い、タグ[chat-participant](tag:chat-participant)で検索してください。
Slash commands(スラッシュコマンド)
Slash commandsは問題の修正を提案する /fix や、選択したコードがどのように動作するかを説明する /explain など、一般的に使用される指示へのショートカットを提供します。
利用可能なスラッシュコマンドのリストを表示するにはチャット入力フィールドに / を入力してください。

Chat variables(チャット変数)
チャット変数を使用するとプロンプトのテキストで特定のコンテキストを参照できます。
例えば、#の後にファイル名を続けて使用してワークスペースファイルを参照したり、#codebaseを使用してCopilotに関連ファイルを検索させてコンテキストとして追加できます。
チャット入力フィールドに # と入力すると使用可能な変数の一覧が表示されます。
