インライン チャット、スマート アクション、クイック チャットGitHub Copilot確認する

完了

チャット ビューに加えて、GitHub Copilot Chat には、AI ペア プログラマと対話するための他のいくつかの方法が用意されています。 これには、インライン チャットとスマート アクションが含まれます。

インライン チャット

GitHub Copilotチャットの主な機能の 1 つは、コーディング中に質問にインラインで回答することです。 これにより、開発ワークフローの中断を最小限に抑えながら、コード エディター内で AI の機能を直接活用できます。

インライン チャット機能は、エディターでファイルが開かれている場合にのみアクセスできます。 インライン チャット セッションを開くにはいくつかの方法があります。

  • GitHub Copilot チャット メニューから Editor Inline Chat を選択します。
  • キーボード ショートカット ( Ctrl + I) を使用します。
  • コード エディター内を右クリックし、コンテキスト メニューから Copilot を選択し、Editor インライン チャット を選択します。

Visual Studio CodeでGitHub Copilotメニューからインラインチャットにアクセスする方法を示すスクリーンショット

インライン チャット セッションを使用して、コードの記述や反復処理を行う際にGitHub Copilot質問することができます。

インライン チャット セッションを開くと、エディターに次のインターフェイスが表示されます。

Visual Studio Codeでホットキーを使用してインラインチャットにアクセスする方法を示すスクリーンショット

次のシナリオを考えてみましょう。

  • 数値リストを処理する C# アプリケーションを開発しています。 データは 100 のバッチで処理されます。
  • 次のコード スニペットを使用して、テストに使用できる 1 から 1000 までの 100 個のランダムな整数の一覧を作成します。
// create a list of 100 random number between 1 and 1000
List<int> numbers = new List<int>();
Random random = new Random();
for (int i = 0; i < 100; i++)
{
    numbers.Add(random.Next(1, 1000));
}

コードは正常に動作しています。 ただし、要件が変更された場合はどうなるでしょうか。 重複する数値がリストに含まれていないことを確認する必要がある場合はどうすればよいでしょうか。

GitHub Copilotオートコンプリートを使用してコードを更新するには、次の操作を行う必要があります。

  1. 既存のコードを削除します。
  2. 更新された要件を反映する新しいコメントを作成します。
  3. GitHub Copilotを使用して、更新されたコメントから新しいコード スニペットを生成します。
  4. 候補を確認し、最適な選択肢を選択します。

幸いなことに、これは必要ありません。 より良い解決策は、GitHub Copilotチャットを使用して、必要なコードの更新を提案することです。

インライン チャット セッションを使用して、次のようにコードの更新を提案できます。

  1. 更新するコード スニペットを強調表示します。
  2. Ctrl + Iを押してインライン チャットを開きます。
  3. 更新を完了する方法GitHub Copilotチャットに問い合わせ。
  4. 候補を確認し、最適な選択肢を選択します。

この場合は、次の質問を行うことができます。 Update this code to ensure that numbers doesn't include any duplicates

提案されたコードの更新が必要な場合は、[ 承諾 ] を選択してコーディングを続行できます。

Visual Studio Code のインラインチャットでの更新提案を示すスクリーンショット。

提案された更新プログラムが気に入らない場合は、Rerun... を選択して、GitHub Copilot チャットに別の提案を生成するように依頼できます。 アイコン。 [再実行] アイコンは、プロンプト テキスト ボックスの下に表示される円形の矢印として表示されます。

プロンプトを再実行しても必要な結果が得られない場合は、追加のコンテキストでプロンプトを更新してみてください。 GitHub Copilotチャットは、プロンプトが明確で簡潔で正確な場合に、より優れた提案を生成します。 [ 破棄 ] を選択すると、変更を加えずにインライン チャットを閉じます。

スマート アクション

いくつかのタスクは非常によく使用されるため自動化できます。 GitHub Copilot チャットには、プロンプトを記述しなくても特定のタスクを完了できるスマート アクションが含まれています。 スマート アクションは定義済みのアクションであり、Visual Studio Code エディターから直接実行して、一般的なコーディング タスクをすばやく簡単に実行できます。

次のスマート アクションが使用可能です。

  • 説明: Explain アクションは、選択したコードの自然言語の説明を生成します。 これは、コード スニペットの目的と機能を理解するのに役立ちます。 Explainアクションは、慣れないコードを操作している場合や、コードを他のユーザーに説明する必要がある場合に特に便利です。
  • 修正: Fix アクションは、選択したコードの修正を提案します。 これが役立つのは、コードでエラーや問題が発生し、その解決方法に関するガイダンスが必要な場合です。 GitHub Copilotチャットでは、問題を解決する可能性がある変数、制御構造、または関数呼び出しに対する変更を提案できます。
  • レビューとコメント: Review and Comment アクションは、選択したコードのコード レビューを提供します。 これは、潜在的な問題を特定し、コードの品質を向上させ、ベスト プラクティスに従うのに役立ちます。 Review and Commentアクションは、コードのバグ、パフォーマンスのボトルネック、セキュリティの脆弱性を特定するのに役立ちます。
  • ドキュメントの生成: Generate Docs アクションによって、選択したコードのドキュメントが作成されます。 これは、コードベースを文書化する場合に役立ちます。特に、複数の共同作成者がいるプロジェクトに取り組んでいる場合や、コードを他のユーザーと共有する必要がある場合に便利です。
  • テストの生成: Generate Tests アクションは、選択したコードの単体テストを作成します。 特に、取り組んでいるプロジェクトに複雑なロジックや重要な機能が含まれる場合に、コードの正確性と信頼性を確保するのに役立ちます。

スマート アクションにアクセスするには、エディターでコード スニペットを右クリックし、GitHub Copilotコンテキスト メニューから目的のアクションを選択します。

Visual Studio Code でスマートアクションにアクセスする方法を示すスクリーンショット

もう一度、素数アプリについて考えてみましょう。

前のセクションでは、インライン チャットで次のコードを提案し、 numbers に重複が含まれていないことを確認しました。

// create a list of 100 random numbers between 1 and 1000
List<int> numbers = new List<int>();
Random random = new Random();
while (numbers.Count < 100)
{
    int randomNumber = random.Next(1, 1000);
    if (!numbers.Contains(randomNumber))
    {
        numbers.Add(randomNumber);
    }
}

このコードを使用すると一意の要素のコレクションになりますが、改良の余地がある可能性があります。

Review Thisスマートアクションを使用して、コード選択をチェックできます。 「これをレビュー」スマートアクションを使用するには:

  1. レビューが必要なコード スニペットを選びます。 この場合、乱数のリストを生成するコードです。

  2. GitHub Copilotコンテキスト メニューから Review This を選択します。

  3. 推奨される更新プログラムを確認し、[ 承諾 ] を選択して変更を適用します。

乱数を生成するコード スニペットの場合、このスマート アクションを 確認 すると、次のことが提案されます。

  • List<int> numbers100の容量で初期化し、作成中に複数回のサイズ変更を回避します。
  • 重複をチェックするときに、HashSet<int>ではなくList<int>を使用して検索を高速化します。

この場合、このスマート アクションを確認すると、HashSet<int>ではなくList<int>を使用してパフォーマンスを向上させることができます。

// create a list of 100 random numbers between 1 and 1000
HashSet<int> numbers = new HashSet<int>();
Random random = new Random();
while (numbers.Count < 100)
{
    int randomNumber = random.Next(1, 1000);
    if (!numbers.Contains(randomNumber))
    {
        numbers.Add(randomNumber);
    }
}

int sum = addPrimeNumbersInNumericList(numbers);
Console.WriteLine(sum);

HashSetを使用すると、一意の要素のコレクションを確保するために効率的に機能しますが、更新によって新しい問題が発生します。 addPrimeNumbersInNumericList メソッドは入力としてList<int>を受け取りますが、更新されたコードによってHashSet<int>が作成されます。 これにより、次のコンパイル エラーが発生します。

Visual Studio Code で発生したコンパイル エラーを示すスクリーンショット

幸い、スマート修正 アクションを使用 してエラーを修正できます。 スマート修正アクションを使用するには:

  1. 修正する必要があるコード スニペットを右クリックします。 このケースでは、赤色の下線があるコードです。

  2. GitHub Copilotコンテキスト メニューから Fix を選択します。

  3. 修正候補を確認し、[ 承諾 ] を選択して変更を適用します。

Fixスマート アクションでは、エラーを修正するための提案が 1 つ以上生成されます。 この場合、提案の 1 つは、ToList() メソッドを使用して、HashSetList の呼び出し内のaddPrimeNumbersInNumericListに変換します。 結果のコードは次のコード スニペットのようになります。

// create a list of 100 random numbers between 1 and 1000
HashSet<int> numbers = new HashSet<int>();
Random random = new Random();
while (numbers.Count < 100)
{
    int randomNumber = random.Next(1, 1000);
    if (!numbers.Contains(randomNumber))
    {
        numbers.Add(randomNumber);
    }
}

int sum = addPrimeNumbersInNumericList(numbers.ToList());
Console.WriteLine(sum);

常に、GitHub Copilot チャットによって提供される提案を確認します。 より良い解決策があるかもしれません。 [ 承諾 ] を選択すると、提案された修正プログラムでコードを更新できます。

概要

GitHub Copilot チャットには、インライン チャットやスマート アクションなど、AI ペア プログラマとやり取りするいくつかの方法が用意されています。 これらの機能を使用すると、質問をしたり、コードの提案を取得したり、一般的なコーディング タスクをすばやく簡単に実行したりできます。 インライン チャットを使用すると、コンテキストを切り替えることなく、エディターで直接GitHub Copilotの質問を行うことができます。 スマート アクションは、コードの説明、エラーの修正、テストの生成、コンテキスト メニューから 1 回のクリックで実行できるコードの確認などの定義済みの操作を提供します。