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

完了

GitHub Copilotは、コードを入力するときにオートコンプリート スタイルの候補を提供します。 GitHub Copilotは、標準のオートコンプリート候補に加えて、次に編集する可能性が高い場所を予測し、そのための入力候補を提案する次の編集サジェスト(NES)も提供します。

次のアクションを実行すると、オートコンプリート スタイルの候補が表示されます。

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

次の編集候補は、コードの編集時に自動的に表示されます。 最近の編集内容に基づいて次に行う可能性のある変更が予測され、推奨される編集場所を示す特別なインジケーターが表示されます。

オートコンプリート提案を生成する

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 キーを押して提案を受け入れることもできます。
  • Accept Word を選択して、提案を部分的に受け入れます。 Ctrl + (右矢印) キーを押して、提案を部分的に受け入れることもできます。
  • >または<を選択して、代替候補を表示します。 Alt + ]キーまたはAlt + [キーを押して、代替候補を表示することもできます。

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

オートコンプリートの候補に対して進行中の [Wordを受け入れる] オプションを示すスクリーンショット。

提案を必要なだけ承認するまで、Accept Word を選択し続けてください。

[Accept Word] ボタンの右側にある省略記号 (...) アイコンを選択すると、Always Show ToolbarOpen Completions Panel

オートコンプリート候補の追加ツール バー オプションを示すスクリーンショット。

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

提案の行全体を受け入れるには、 editor.action.inlineSuggest.acceptNextLine コマンドのカスタム キーボード ショートカットを構成する必要があります。 このオプションは、ツール バーでは既定では使用できません。

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

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

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

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

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

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

コメント行に

コメントを書き続けると、GitHub Copilotがオートコンプリート候補を更新します。 提案を受け入れる準備ができたら、[ 同意 する] を選択するか、Tab キーを押します。

コメント行に

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

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

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

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

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

GitHub Copilot が数の一覧を完成させる様子を示したスクリーンショット

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

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

GitHub Copilot補完パネルで複数の提案を表示する

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

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

isPrime メソッドを作成する必要があるとします。 addPrimeNumbersInNumericList メソッドの下に空白行を入力すると、GitHub Copilot がisPrime メソッドを提案します。 これは、前に使用したのと同じプロセスです。 以下のように仮定してみましょう。GitHub Copilotの提案に満足しておらず、別のオプションも確認したいとします。

GitHub Copilotの入力候補パネルを開いて他の候補を表示するには、Ctrl + Enterキーを押してください。 [その他のアクション] メニューを開き、[ 完了パネルを開く] を選択することもできます。

GitHub Copilot候補タブを示すスクリーンショット.

GitHub Copilotの補完パネルには、最大10件の提案が表示されます。 提案を確認して、ニーズに最も適したものを見つけます。

提案を承諾するには、提案の下にある [ 提案番号を受け入れる ] ラベルを選択します。 たとえば、最初の提案の下にある [ 提案 1 を受け入れる ] ラベルを選択します。

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

概要

オートコンプリート候補と次の編集候補は、コードをより効率的かつ正確に記述するのに役立ちます。 GitHub Copilotでは、コードを入力するときにオートコンプリートの候補が提供され、次に行う可能性の高い編集を予測した編集候補も提示されます。 オートコンプリート候補を生成するには、部分的または完全なコード行、部分的または完全なコード コメント、または空白のコード行を入力します。 Tab キーを押して提案を受け入れるか、Esc キーを押して提案を閉じます。 提案にカーソルを合わせると表示されるツール バーを使用して、提案を管理できます。 ツールバーを使用すると、代替候補を確認したり、提案を承諾したり、提案の一部を承諾したり、GitHub Copilotの補完パネルを開いて、より多くの候補を確認できます。