Copilot と対話する

完了

このユニットでは、ご利用の開発環境で GitHub Copilot との対話を最大限に活用する方法について説明します。 サービスの機能を理解することで、サービスを効果的に使用する方法を学習します。

以下のセクションでは、GitHub Copilot をトリガーして使用するさまざまな方法と、それを最大限に活用するうえで助けとなる例とショートカットを次に示します。

インライン サジェスチョン

インライン提案は、Copilot の最も即時的な支援形式です。 入力すると、Copilot によってそのコードとコンテキストが分析され、リアルタイムでコード補完が行われます。 この機能によって、次に何を記述したいのかが予測され、控えめで目立たない方法で提案が表示されます。

Copilot が提供する提案は、カーソルの前に淡色表示のテキストとして表示されます。

  • 提案を受け入れるには、Tab キーまたは > (右方向) キーを選択します。
  • 提案を拒否するには、入力を続けるか Esc キーを選択します。

インライン提案は、反復的なタスクに取り組んでいる場合や、簡単な定型コードが必要な場合に特に役に立ちます。

次に例を示します。

def calculate_average(numbers):
    # Start typing here and watch Copilot suggest the function body

コマンド パレット

コマンド パレットを使用すると、Copilot のさまざまな機能にすばやくアクセスできるため、少ないキーストロークだけで複雑なタスクを実行できます。

  1. Ctrl+Shift+P (Windows または Linux) または Cmd+Shift+P (Mac) を選択して、Visual Studio Code でコマンド パレットを開きます。
  2. 「Copilot」と入力して、使用可能なコマンドを表示します。
  3. [ この説明] や [ 単体テストの生成] などのアクションを選択して支援を受けます。

Copilot チャット

Copilot チャットは、自然言語を使用して Copilot と通信することができる対話型機能です。 質問を行ったり、コード スニペットを要求したりでき、その入力に基づいて、Copilot から応答が返されます。

  1. IDE で Copilot チャット パネルを開きます。
  2. 自然言語で質問や要求を入力し、Copilot の応答を評価します。

たとえば、次のように入力します。「Python でバイナリ検索を実装するにはどうすればよいですか?」新しいコーディングの概念を探索したり、見慣れない構文に関してサポートを受けたりするのに Copilot チャットは最適です。

Copilot には次の応答機能があります。

def binary_search(arr, target):
    left, right = 0, len(arr) - 1
    while left <= right:
        mid = (left + right) // 2
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            left = mid + 1
        else:
            right = mid - 1
    return -1

インライン チャット

インライン チャットを使用すると、コード エディター内でコンテキストに特定の会話を Copilot と直接行うことができます。 この機能を使用すると、コンテキストを切り替えることなく、コードの変更または説明を要求できます。

  1. 支援が必要な場所にカーソルを置きます。
  2. キーボード ショートカット Ctrl+I (Windows または Linux) または Cmd+I (Mac) を使用してインライン チャットを開きます。
  3. そのコードの場所に限定した質問をしたり、変更を要求したりします。

インライン チャットは、コードの特定のセクションに集中し、対象となるアドバイスを受け取るのに役立ちます。 さらに、スラッシュ コマンドを使用して、より効率的な操作を行うことができます。

スラッシュ コマンドは、Copilot ですばやくアクションを実行できるショートカットです。 これらのコマンドは、メニュー間を移動しなくても Copilot と対話するための便利な方法を提供します。

一般的なスラッシュ コマンドとその使用方法を次に示します。

  • /explain - 選択したコードの説明を提供します。
  • /suggest - 現在のコンテキストに基づいてコード提案を提供します。
  • /tests - 選択した関数またはクラスの単体テストを生成します。
  • /comment - コメントをコード スニペットに変換します。

スラッシュ コマンドを使用するには、エディターでコマンドを入力し、 Enterキーを押します。 例えば次が挙げられます。

# Select the function, use the shortcut to open the inline chat, and type: /explain
def calculate_average(numbers):

コメントをコードに変換

Copilot は、自然言語処理を利用してコメントをコードに変換します。 必要な機能をコメントで記述できます。 Enter キーを選択すると、Copilot は記述に基づいてコードを生成します。

次に例を示します。

# Function to reverse a string
def reverse_string(s):
    # Copilot suggests the function body here
## Function to reverse a string
def reverse_string(s):
    return s[::-1]

この方法は、単純なタスクの場合は特に、コードをすばやく下書きするのに役立ちます。

複数の提案

複雑なコード スニペットの場合は、Copilot から複数の代替案を得ることができます。

  1. Copilot から提案が提示されたら、電球アイコンを探します。
  2. アイコンを選択するか、Alt+] (Windows または Linux) または Option+] (Mac) を使用して各提案を順番に表示します。

複数の提案が提示されることで、各種のコーディング方法を検討し、最も適切なものを選択できます。

説明

特に大規模なプロジェクトでは、既存のコードを理解することが重要です。 [この説明] 機能を使用して、コード スニペットの説明を取得できます。

  1. コードのブロックを選択します。
  2. コード ブロックを右クリックし、ショートカット メニューの [Copilot: Explain This ] を選択します。
  3. 選択したコードについて Copilot から提供された説明を読みます。

この機能は、学習目的や、他のユーザーが記述したコードを確認する場合に便利です。

自動化されたテスト生成

単体テストは、コードの品質と信頼性を保証する上で不可欠です。 Copilot では、関数やクラスの単体テストを生成することで、時間と労力を節約できます。

  1. 関数またはクラスを選択します。
  2. コマンド パレットを使用して、[ Copilot: Generate Unit Tests]\(Copilot: 単体テストの生成\) を選択します。
  3. コードに対して Copilot から提案されたテスト ケースを確認します。

次に例を示します。

def add(a, b):
    return a + b

# Copilot might generate a test like this:
def test_add():
    assert add(2, 3) == 5
    assert add(-1, 1) == 0
    assert add(0, 0) == 0

自動化されたテスト生成は、コードの整合性を維持し、開発プロセスの早い段階でバグをキャッチするのに役立ちます。

Copilot はコンテキストから学習することを覚えておいてください。 コードを適切に構造化してコメントしておくと、Copilot がより正確で関連性の高い支援を提供するのに役立ちます。 Copilot と対話を重ねるほど、自分のコーディングのスタイルや好みがより適切に理解されるようになります。