前回の記事ではGithub Copilotの基本的な使い方を見ていきましたが、今回はCopilotの機能を拡張する便利なプラグインGithub Copilot Labsを紹介していきます。
Github Copilot Labs
Copilot Labsは便利なプロンプトをラップし、ボタン一つで実行できるようにしたプラグインです。対象のコードを選択した上で、サイドバーに表示される機能をボタンひとつで実行し、対象コードに変更を加えることができます。
導入方法
Gihtub Copilot Labsのプラグインをインストールするだけで簡単に導入することができます。
提供されている機能
インストール後、アクティビティバーからGithub CopilotアイコンをタップするとGithub Copilot Labsの様々な機能をギュッと詰めたサイドバーが表示されます。
Labsでは大きく分けて以下の4つの機能が提供されています
- コード解説機能
- プログラミング言語変換機能
- テストコード作成機能
- コード改善機能
1. コードを解説させる
前述のようにコメントアウト内で説明させることも出来ますが、サイドバー内で解説してくれる分、見やすいです。
2. 他プログラミング言語に変換する
筆者はまだ使えるシーンにあまり出会していませんが、複数の言語で開発している方もしくは違う言語を学ぶ際にも使えるかもしれません。変換可能な言語の種類がかなりあり、言語だけでなく、yaml, xml, terraformなど別ファイル形式への変換も可能です。
abap, bat, bibtex, blade, c, clojure, cobol, coffeescript, c++, csharp, css, dart, dockerfile, elixir, erb, fortran, fsharp, go, groovy, haml, handlebars, html, ini, java, javascript, javascriptreact, jsonc, jsx, julia, kotlin, latex, less, lua, makefile, markdown, mdx, objective-c, objective-cpp, perl, php, pug, python, powershell, r, razor, ruby, rust, sass, scss, shaderlab, shellscript, slim, solidity, sql, stylus, svelte, swift, terraform, tex, typescript, vb, vue-html, vue, xml, xsl, yaml, zig
対応言語・フォーマット
3. テストを提案する
こちらはまだJavascript, Typescriptなどに限った機能ですが、テストを提案してくれます。
4. コードを改善する(Brushes)
ボタンひとつで特定の用途のコード改変を行える機能です。以下の10の改変オプションが用意されています。使い方はシンプルに対象とするコードをハイライトし、ボタンを押すだけです。クラスや関数を対象にした機能になります。
1. 可読性の高いコードに書き換える
主に命名を分かりやすくしてくれたり、コメントを追加したり読みやすいコードに変換してくれます
2.型を追加する
TypeScriptやDartなど型定義を必要とする言語にて省略した型を追記してくれます
3.バグを見つける
関数にバグがあるかを判断してくれます。下の例では地味ですが、存在しないインデックスにアクセスするコードを訂正してくれています。lintエラーにはなっていない気が付きにくいエラーも改善する事ができます。
4.デバッグ用コードを追加する
console.logやprintなどデバッグ用の出力処理を追加してくれます
5.コードをクリーンアップする
こちらは逆にデバッグコードなど処理の実行に直接関係ないコードを綺麗にしてくれます
6.ステップごとのコメントを追加する
関数やクラスのコードにステップ・バイ・ステップのコメントを追加してくれます。
7.コードを堅牢にする
関数に対して、必要な例外処理やエラーハンドリングを追加します
8.コードを分割する
処理をより小さな処理に分割してくれます。
9.コードをドキュメント化する
関数やクラスの先頭にそのコードのドキュメントを追加してくれます。
10.カスタムプロンプトを実行する
選択したコードにLabsが用意したBrush以外の変更を適用したい場合に使います。プロンプトウィンドウが表示されるので、そこに適用したい変更のプロンプトを入力します。
以下の例ではfizzbuzzを返す関数を代わりにbishibashiを返す関数に変えて欲しいとプロンプトを与えています。見事に関数名も返り値もbisibashiに変わっています。
おまけ:ベータ版Copilot
GithubではCopilotの他に以下のサービスをベータ版としてリリースしています。この内、Copilot ChatとCopilot Voiceはエディタ上で使える機能となります。
Copilot Chat Copilot Voice Copilot for CLI Copilot for Docs Copilot for Pull Requests
ただこれらは現在wait listに登録し、招待されたテストユーザーだけが使えるサービスとなっています。筆者は運良くCopilot Chatの招待が来たので参考までに触れておきます。
またこれらの機能はベータ版を経て最終的にはGithub Copilot Xというサービスに統合されていく予定のようです。
Copilot Chat
導入
Copilot Chatはベータ版の為、通常のvscodeとgithub copilotでは使うことが出来ません。導入には以下のツールのインストールが必要になります。
- Visual Studio Code Insiders
- Github Copilot Nightly
- Copilot Chat
Visual Studio Code Insidersはvscodeのベータ版機能をいち早く使う事が出来るvscodeです。ベータテスター向けのvscodeのような位置付けです。Copilotのベータ版機能はこのvscode insidersからでなければインストールする事ができません。
Github Copilot Nightlyもvscode insiders同様、Github Copilotのベータ版機能をいち早く使う事が出来るプラグインです。Copilot Chatをインラインで使いたい場合はGithub Copilotではなく、こちらのGithub Copilot Nightlyをvscode insidersにインストールする必要があります。
Nightlyに加え、Copilot ChatプラグインをインストールすることでサイドバーでCopilot Chatを呼び出す事が出来る様になります。
まとめ
以上、Github Copilotの機能を拡張するプラグインをご紹介しました。インラインの提案も十分強力ではありますが、よく使う操作をボタン1つで実行できるのはとても便利かと思います。
精度がまだ高くないと感じる事もありますが、今後Copilotがベースとしている言語モデルもアップデートされていくので、ゆくゆくは十分な精度を発揮していく事が予想されます。成長を期待して待っていましょう🚀