おはようございます、しんば@shinbazです!
昨日から東京入りしているのですが、急激に寒くなってきました。急ぎ上着を準備しています・笑
本日はGitHub Copilot活用のためのTipsを1つご紹介したいと思います!
みなさん、 #terminalLastCommand
は利用していますか?
#terminalLastCommandとは
GitHub Copilotは、ユーザーが提供するコンテクスト(文脈情報)を利用し、合理的な提案を生成します。
コンテクストというのは、プロジェクトやコードを生成するための背景のことで、あらかじめGitHub Copilotに参照してほしいコードやファイルを提示することで、より理想的な提案を導き出すことができます。
ちなみにユーザーがコンテクストを指定しない場合は開かれているファイル、タブを閲覧します。
#terminalLastCommand
は、ターミナルで実行した最後のコマンドとその結果をコンテクストとして利用する機能です。
これを活用すれば、Copilotに最新の作業状況を理解させ、より的確な提案を受けられるようになります!
利用例1: git -diff -U9999
を使ってコミットメッセージを生成する
こちらはGitHub社Yuki Hattoriさんのポストで紹介されています。
Copilot を使うとコミットメッセージが自動で生成できますが
— Yuki Hattori 『コード×AIーソフトウェア開発者のための生成AI実践入門』重版決定 (@yuhattor) 2024年3月12日
● なんか違う
● 英語/日本語がいい
● チームの規約に沿わせたい
わかります。そんなときは
$ git diff -U9999
のあと、Chat で 「#terminalLastCommand コミットメッセージを作って」
あとは、お好みでプロンプトを足せばOK! pic.twitter.com/CaJ5xX7zH2
git diff -U9999
は、変更箇所を含むファイル全体を表示するコマンドです。通常のgit diff
では変更部分の前後3行しか表示されませんが、-U9999
と指定するとファイル全体が表示されます。
要するに、該当ブランチでの変更履歴をターミナルに表示させ、その変更をGitHub Copilotにコンテクストとして把握させ、変更点をまとめてコミットメッセージを作ってもらう、ということですね!
プロンプトとして、「日本語で」「[update] コミットメッセージ として」など条件やルールを追加することで組織ルールにあった内容で提案させることができます。
利用例2: ls
を使ってディレクトリ構造、ファイル名を認識させる
GitHub Copilotはセキュリティ上、ファイル名などの情報を自ら取得することはできません。
しかし、ls
コマンドの結果を#terminalLastCommand
で渡せば、ディレクトリ内のファイル名を基にした提案が可能です。
例えば、「クラスやメソッドに合った画像ファイルを複数表示させたい」といったシナリオがあるとして、それらの画像名をいちいち手動で入力するのは手間ですよね。
そういったときに、まずターミナルで ls
コマンドを流すことで、フォルダ内の画像ファイル名をターミナルに出力します。
それから #terminalLastCommand
を利用し、そのファイル名をコンテクストとしてコード提案させることができます。
プロンプト例としては、
@workspace #terminalLastCommand 結果をもとに、ファイル名とメソッド名が一致する画像を〇〇に表示させるよう配置してください
GitHub Copilotのコンテクスト指定を駆使して、AIネイティブな開発をお楽しみください!
導入に関するお問い合わせはオルターブースまでお気軽にどうぞ。
(当社では日本円・請求書払いでのご利用に対応しております。)