GitHub Copilot でのコード補完
GitHub Copilot コード補完機能は、コードを記述してレビューする IDE 内で直接機能します。 GitHub Copilot は、Visual Studio Code や JetBrains などのエディターとシームレスに統合され、自動提案、複数提案ペイン、さまざまなコーディング スタイルのサポートなどの機能を提供します。 GitHub Copilot とのやり取りは主にこれらの IDE ツールを通して行うため、それらをどのようにどこで使用するのかの理解は、強力なコード生成機能を最適化する上で役立ちます。
このユニットでは、以下の内容について説明します。
- GitHub Copilot でサポートされている言語
- 自動提案
- 複数提案ペイン
- 提案内でのさまざまなコーディング スタイルのサポート
- GitHub Copilot がどのようにコーディング コメントを提案に取り込むか
GitHub Copilot でサポートされている言語
GitHub Copilot は、以下に示す幅広いプログラミング言語とフレームワークに対する堅牢なサポートと強力な機能を提供します。
- Python
- JavaScript
- Java
- TypeScript
- Ruby
- Go
- C#
- C++
これらの言語には特に優れたサポートが提供されますが、GitHub Copilot は他の多くの言語やフレームワークでの支援も提供することができます。
ヒント
GitHub Copilot には、 1 か月あたり 2,000 個のコード オートコンプリートと 50 個のチャット メッセージを含む Free レベルが用意されています。 使用を開始するには、Visual Studio Code を開き、GitHub Copilot アイコンをクリックし、[Sign in to Use GitHub Copilot for Free] をクリックします。 ブラウザーで開いたウィンドウで GitHub アカウントにログインします。 詳細については、こちらを参照してください。 教師、学生、選択したオープンソースの保守担当者は、Copilot Pro を無料で受け取ることができます。方法については、「 https://aka.ms/Copilot4Students。」をご覧ください。
自動提案
Copilot は、ユーザーが入力を行っている間のコード提案を行います。現在の行を補完する場合もあれば、まったく新しいコード ブロックを提案する場合もあります。 提案をすべて、または一部受け入れたり、提案を無視することができます。 コンテキストを把握したリアルタイムの提案を提供するこの機能によって、構文の検索、ロジックのトラブルシューティング、一般的なパターンの繰り返しの記述の必要性が減り、貴重な開発時間が節約されます。
複数提案ペイン
ユーザーがコード ブロックで作業している際に、GitHub Copilot が提案を行うと、グレー表示のコード スニペットが表示されます。 その他のオプションを調べて開発ワークフローを高速化するには、提案にカーソルを合わせて GitHub Copilot コントロール パネルを表示します。 この機能を使用すると、同じ問題に対する複数のアプローチをすばやく評価でき、特定のコンテキストに最適なソリューションを選択できます。
コントロール パネルの前方または後方矢印ボタンをクリックして、次または前の提案を表示します。 キーボード ショートカットを使用して、オプションをすばやく切り抜けることもできます。
- macOS: Option (⌥) または Alt + ] (次)、Option (⌥) または Alt + [ (前)
- Windows または Linux:Alt + ] (次)、Alt + [ (前)
複数のコード提案によるこの迅速な反復は、コーディング フローを中断することなくアプローチをすばやく比較できるようにすることで、開発のモメンタムを維持するのに役立ちます。 ゼロから始めたり、例をオンラインで検索したりする代わりに、数秒以内にさまざまな実装を評価し、ニーズとコーディング スタイルに最も適したものを選択できます。
GitHub Copilot は優れたコード提案をユーザーに提供するだけなく、以下のような適応機能も備えています。
- メソッドの実装: メソッド名の入力を開始すると、Copilot がユーザーの確立したコーディング スタイルに従って、実装全体を提案できます。
- 名前付け規則: ユーザーが好む変数、関数、クラスに対する名前付け規則を選択します。
- 書式設定: Copilot は、ユーザーのインデント スタイル、ブラケットの配置、その他の書式設定の好みに適応します。
- コメント スタイル: ユーザーがインライン コメント、ブロック コメント、ドキュメント文字列のいずれを好んでいても、そのコメント スタイルを模倣できます。
- 設計パターン: プロジェクトで一貫して特定の設計パターンが使用されている場合、Copilot は、それらのパターンに合ったコードを提案します。
提案のためにコーディング コメントを使用する
この機能の重要な側面は、コーディング コメントをどのように取り込むことで提案の質を高めるのかです。 このセクションでは、GitHub Copilot がコメントを利用してコード補完と生成機能を強化するさまざまな方法について確認します。
コメント コンテキストの理解
GitHub Copilot は、既存のコードベースに統合されることで、コードのさまざまな側面を使用して、コード コメントを含む、より適切な提案を提供します。 開発者は多くの場合、コメントを使用してコードの意図を明確にし、コラボレーションを推進します。そして Copilot は、AI コーディング アシスタントとして、これらのコメントをさまざまな方法で使用します。 Copilot は、コメントの背後にある意図を理解することで、以下の 2 つの重要なプロセスを通じて、より正確でコンテキストを把握したコード提案を提供できます。
- 自然言語処理: Copilot は、高度な自然言語処理 (NLP) 手法を使用して、コード内のコメントの背後にある意味と意図を解釈します。
- コンテキスト分析: コメントを周囲のコードとの関連性の中で分析し、ファイルまたはプロジェクトのより広範なコンテキスト内での関連性と目的を理解します。
利用されるコメントの種類
Copilot は、提案の参考にするために、以下のようなさまざまな種類のコメントを扱うことができます。
- インライン コメント: 特定のコード行の横にある簡単な説明。
- ブロック コメント: 関数またはクラスを記述するより長い説明。
- Docstring: Python などの言語の正式なドキュメント文字列。
- TODO コメント: 今後の実装または改善に関するメモ。
- API ドキュメント: 関数またはメソッドの使用方法とパラメーターを記述するコメント。
コメントドリブン コード生成
Copilot は、以下に示すいくつかの方法でコメントを使用し、コードの生成と提案を行います。
関数の実装: コメント内に関数の説明がある場合、Copilot はその説明に基づいて実装全体を提案できます。
コード補完: Copilot はコメントを使用して、開発者の意図を理解して、より正確なコード補完を提供します。
この例では、文字列を反転させる関数を説明するコメントがあります。 このコメントに基づいて、Copilot はおそらく、文字列を効率的に反転させる -1 というステップを使用した Python のスライス表記を使用する実装を提案します。
変数の名前付け: コメントは、変数名に対する Copilot の提案に影響を与え、より説明的でコンテキストに適した名前にすることができます。
ここでは、ユーザーのお気に入りの書籍のリストについて説明しているコメントがあります。 Copilot はおそらく、コンテキストに適したわかりやすい変数名を提案するでしょう。 この場合、変数名として "favorite_books" を提案しました。これはリストの内容を明確に説明しています。
アルゴリズムの選択: コメントで特定のアルゴリズムや手法を説明すると、Copilot はその方法に沿ったコードを提案できます。
上記の例では、バブル ソート アルゴリズムの手順を記述したコメントを提供しています。 これらのコメントに基づいて、Copilot はおそらく、説明されている手順に正確に従う実装を提案するでしょう。