GitHub Copilot のコード補完機能を調べる

完了

GitHub Copilot では、コードを入力するときにオートコンプリート スタイルの提案が提供されます。 次のアクションを実行すると、オートコンプリート スタイルの候補が表示されます。

  • エディターで部分的または完全なコード行を入力します。
  • エディターで部分的または完全なコード コメントを入力します。
  • エディターに空白のコード行を入力します。

オートコンプリート候補を生成する

GitHub Copilot は、作成しているコードに基づいてコード補完を提案することで、アプリ開発を加速します。

たとえば、2 つの整数の合計を返す addInt という名前の C# メソッドを作成するとします。 メソッドシグネチャの入力を開始すると、GitHub Copilot は、作成すると思われるコードを提案します。

2 つの数値を追加するためのオートコンプリートを示すスクリーンショット。

推奨されるオートコンプリートは、色付きの構文の強調表示なしで表示されます。 これは、オートコンプリートと既存のコードを区別するのに役立ちます。 Tab キーを押すと、推奨されるコードをそのまま使用できます。

受け入れられたオートコンプリート候補を示すスクリーンショット。

Esc キーを押すと、提案を閉じます。

addInt の例は少し単純なので、GitHub Copilot がもっと複雑なことを行う方法を疑問に思うかもしれません。

数値のリストを受け取り、リストに含まれる素数の合計を返すメソッドを作成するとします。 メソッドに addPrimeNumbersInNumericList名前を付けることができ. メソッドシグネチャの入力を開始すると、GitHub Copilot によって提案が生成されます。 例えば次が挙げられます。

リストに素数を追加するメソッドのオートコンプリートを示すスクリーンショット。

提案を受け入れる前に確認することが重要です。 このオートコンプリートは適切に見えるので、Tab キーを押して提案を受け入れることができました。

もう少し先にシナリオを続けてみましょう。

提案がコードにマージされると、isPrime メソッドに赤い下線が引かれます。 これは、isPrime メソッドがまだコードに存在しないためです。

コードにマージされた addPrimeNumbersInNumericList メソッドを示すスクリーンショット。isPrime は赤で下線が引かれています。

GitHub Copilot は、複雑な問題をより小さく、より管理しやすい部分に分割するなどのベスト プラクティスに従ってトレーニングされています。 この場合、GitHub Copilot では、数値が素数であるかどうかを確認する別の isPrime メソッドを作成することをお勧めします。

GitHub Copilot の準備ができたら、isPrime メソッドのコード スニペットを提案します。 addPrimeNumbersInNumericList メソッドの下に空白行を入力すると、GitHub Copilot は使用できる isPrime メソッドを提案します。

isPrime メソッドを追加するためのオートコンプリートを示すスクリーンショット。

オートコンプリートの提案は、コード スニペットを提供することで開発プロセスを加速します。 しかし、提案が必要なものでない場合はどうでしょうか? GitHub Copilot には、オートコンプリートの提案を管理するためのインターフェイスが用意されています。

オートコンプリート候補を管理する

GitHub Copilot がオートコンプリートを提案すると、提案を管理するためのインターフェイスも提供されます。 提案を受け入れるか、他の提案を確認するか、提案を無視することができます。

提案されたオートコンプリートの上にマウス ポインターを置くと、候補を管理するためのいくつかのオプションが表示されます。

オートコンプリート候補の [承諾] オプションを示すスクリーンショット。

提案を管理するための既定のインターフェイスには、次のオプションが含まれています。

  • 承諾を選択して提案を完全に承諾します。 Tab キーを押して提案を受け入れることもできます。
  • 提案を部分的に受け入れるには、[Wordを受け入れる]を選択します。 Ctrl + > キーを押して、提案を部分的に受け入れることもできます。
  • > または <を選択して、代替候補を表示します。 Alt + ] キーまたは Alt + [ キーを押して、代替候補を表示することもできます。

[Word を受け入れる] オプションを選択すると、候補の次の単語が受け入れられます。 これは、提案の一部を受け入れてから、独自のコードを入力し続ける場合に便利です。 たとえば、isPrime メソッドの候補の最初の単語を受け入れることもできます。

オートコンプリート候補の進行中の [Accept Word]\(Word を承諾する\) オプションを示すスクリーンショット。

望むだけ提案を受け入れるまで、[Word を受け入れる] を選択し続けます。

[Word を受け入れる] ボタンの右側にある省略記号 (...) アイコンを選択すると、行の を受け入れる、ツール バー を常に表示する、および [完了パネルを開く] オプションが表示されます。

オートコンプリート提案のための追加オプションとして「行を受け入れる」と「ツールバーを常に表示する」を示すスクリーンショット。

[行 を受け入れる] オプションを選択すると、提案の行全体が受け入れられます。 [ツール バー を常に表示] オプションを選択すると、ホット キーを使用してオートコンプリート候補を管理するときに、ツール バーが表示されたままになります。 [Open Completions Panel]\(完了パネルを開く\) オプションを選択すると、GitHub Copilot Completions タブが開きます。このユニットの最後では、GitHub の [Copilot Completions]\(完了\) タブを使用して複数の提案を表示する方法について説明します。

コメントからコード候補を生成する

GitHub Copilot は、コードに基づいてオートコンプリートを提案するだけでなく、コード コメントを使用してコード スニペットを提案することもできます。 自然言語のフレーズを使用して、作成するコードを記述します。 これにより、Copilot は特定の要件を満たすオートコンプリート候補を提案できます。 たとえば、計算で使用するアルゴリズムの種類や、クラスに追加するメソッドとプロパティを指定できます。

素数の例に戻りましょう。 この時点で、次のコードがあります。

素数の例の現在のコードを示すスクリーンショット。

addPrimeNumbersInNumericList メソッドと isPrime メソッドは完了しているように見えます。 ただし、addPrimeNumbersInNumericList メソッドを呼び出すときに引数として使用できる数値のリストが必要です。 必要な数値の一覧を説明するコメントを記述できます。 たとえば、1 から 1000 の範囲の 100 個の乱数のリストです。

コメントの入力を開始すると、GitHub Copilot はコメントを完了するオートコンプリートを提案します。 GitHub Copilot は、周囲のコードを使用してその提案を改善します。 たとえば、コメント // createの入力を開始すると、GitHub Copilot は周囲のコードを使用して、作成する内容を予測します。 この場合、GitHub Copilot は addPrimeNumbersInNumericList メソッドを使用して、a list of numbersを作成することを予測します。

コメント行に

コメントを書き続けるにつれて、GitHub Copilot はオートコンプリートの提案を更新します。 提案を受け入れる準備ができたら、承諾 を選択するか、タブキーを押します。

コメント行に追加されている

コメントの後に新しいコード行を作成すると、GitHub Copilot はコメントと既存のコードに基づいてコード スニペットの生成を開始します。

最初のコード行を追加する GitHub Copilot を示すスクリーンショット。

表示される各候補を受け入れます。

コード行の追加を続ける GitHub Copilot を示すスクリーンショット。

GitHub Copilot が完了していない場合は、受け入れる別の提案が生成されます。

番号の一覧を完了している GitHub Copilot を示すスクリーンショット。

コード スニペットの完了後に新しいコード行を入力すると、GitHub Copilot は、コード プロジェクトの要件に基づいて、別のオートコンプリート候補を生成します。 この場合、GitHub Copilot は、addPrimeNumbersInNumericList メソッドを呼び出すコード行を提案し、numbersという名前のリストを渡します。

メソッド呼び出しを提案する GitHub Copilot を示すスクリーンショット。

GitHub の [Copilot Suggestions]\(提案\) タブを使用して複数の提案を表示する

最初のオートコンプリートの提案に満足できない場合は、GitHub Copilot でエディターで新しいタブを開き、さらに多くのオプションを表示できます。 より大きな候補の一覧を確認して、より適切な一致を見つけて選択できます。

この機能を示すために、素数の例の前の段階に戻りましょう。

仮に、まだ isPrime メソッドを作成する必要があるとします。 addPrimeNumbersInNumericList メソッドの下に空白行を入力すると、GitHub Copilot によって isPrime メソッドが提案されます。 これは、前に使用したのと同じプロセスです。 ただし、GitHub Copilot が提供する提案に満足せず、その他のオプションを表示したいとします。

GitHub Copilot の [提案] タブを開き、その他の提案を表示するには、Ctrl + Enter キーを押します。 [その他の操作] メニューを開き、[完了パネルを開く] 選択することもできます。

GitHub の [Copilot Suggestions] タブを示すスクリーンショット。

GitHub の [Copilot Suggestions]\(提案\) タブには、最大 10 個のその他の提案が表示されます。 提案を確認して、ニーズに最も適したものを見つけます。

提案を受け入れるには、提案の下にある Accept selection ラベルを選択します。 たとえば、最初の候補の下にある Accept suggestion 1 ラベルを選択します。

すべての提案を却下するには、タブを閉じます。

概要

オートコンプリートの提案は、コードをより効率的かつ正確に記述するのに役立ちます。 GitHub Copilot では、コードを入力するときにオートコンプリートの候補が提供されます。 オートコンプリート候補を生成するには、部分的または完全なコード行、部分的または完全なコード コメント、または空白のコード行を入力します。 Tab キーを押して提案を受け入れるか、Esc キーを押して提案を閉じます。 提案にカーソルを合わせると表示されるツール バーを使用して、提案を管理できます。 ツール バーを使用すると、代替候補の確認、提案の受け入れ、提案の 1 つの単語の受け入れ、GitHub Copilot の [完了] タブを開いて、その他の提案を表示できます。