はじめに
GitHub Copilotのライセンスを購入してもらっているのに、あまり使いこなせていなかったため主な機能についてまとめました。
この記事が参考になる方
🙆 会社などでGithub Copilotを導入しているが、 Tab補完(インラインコード補完) しか使えていない方
🙅 既にCopilot Chat,Inline Chatなどを駆使している方
主な機能
目的別おすすめ機能
🔍 コードを理解したいとき
- 複雑なコードやレガシーコードの解析 → Copilot Chat
/explain
コマンド - 特定箇所の動作確認 → インラインチャット
🐛 バグ修正・改善したいとき
- エラー修正、パフォーマンス改善 →Copilot Chat
/fix
コマンド - リファクタリング、モダンな書き方への移行 →Copilot Edits
✅ テストを書きたいとき
- ユニットテスト自動生成 →Copilot Chat
/tests
コマンド
⚡ 効率的にコーディングしたいとき
- 新機能追加、コードの最適化 → Copilot Edits
✏️ 固定の制約やルールをコンテクストとして渡したいとき
- 予めCopilot ChatやEditsの挙動をコントロールしたい → カスタム指示機能
Copilot Edits
Githubのように変更前と変更後を比較して、変更を適用することができる機能
それに加え、Github Copilotが機能提案や機能追加をしてくれます。
(現状1番hotなCursorのような機能🔥)
使用方法:cmd
+ shift
+ l
or copilotのメニューのCopilot Editsを開く
を選択
Copilot Chat
対話形式でコードの質問や説明・改善をもらうことができる機能です。
使用方法:cmd
+ ctrl
+ i
or メニューのチャットを開く
を選択
chat内で/help
と入力するとヘルプが表示されます。
その中で使用頻度が多そうなコマンドは下記の3つです。
-
/explain
(コード説明)
ユースケース:新規参画したプロジェクトのコード理解、レガシーコードのリファクタリング前の分析 -
/fix
(問題修正)
ユースケース:コンパイルエラーの修正、パフォーマンス最適化 -
/tests
(テスト生成)
ユースケース:新機能実装時のユニットテスト作成、既存コードのテストカバレッジ向上
[!TIP]
求めている回答によってEditsとChatを使い分けるのが良さそうです。
- Copilot Editsは「どう変更すべきか」
- Copilot Chatは「何をすべきか」「なぜそうなのか」
インラインチャット
特定の箇所を指定して、ファイル画面内でチャットできる機能
使用方法:copilotに聞きたい箇所を選択して、cmd
+ i
or copilotのメニューのエディタ内でのインラインチャット
を選択
インラインコード補完
コードを書いている最中にリアルタイムで提案が表示される機能です。
灰色の文字で提案されるのを受ければ入れる場合は、Tab
キーを押します。
アクティブなユーザーかつ管理者のみを抽出
使い所
- mapやfilterなどの定型的なコードを書くとき
- コメントベースでコードを自動生成したい時
- コンストラクターやメソッドの引数を生成したい時
カスタム指示機能
予め、プロジェクトのルールや方針を事前に設定しておくことでCopilot Chatの挙動をコントロールする機能です。
使用方法
- リポジトリのルートに
.github/copilot-instructions.md
という名前のファイルを作成します。
.github
ディレクトリがまだ存在しない場合は作成します。 - Markdown 形式で自然言語の指示をファイルに追加します。
公式docsによると、記述内容は短く、 その文章だけで意味が通じる(外部情報を参照させない) ことが重要だそうです。
GitHub Copilot のリポジトリ カスタム命令を追加する
Copilot Editsで使用したい場合は、コンテキストに該当ファイルを含めることで毎回プロジェクトのルールや制約を書く手間が省略できます。
Edits画面を開いて、ファイルの追加
からcopilot-instructions.mdを選択してください。
今後試したいこと
- Github CopilotとCursorの比較
- modelを変更して他のmodelとの出力結果(量・質)の比較