予め与えられたプロンプトを使ってコードを生成します。
| キー操作 | 内容 |
|---|---|
Tab |
候補の受け入れ |
Esc |
候補の拒否 |
Ctrl + → |
候補を単語レベルで受け入れ |
Alt + ] |
次の候補の表示 |
Alt + [ |
前の候補の表示 |
Ctrl + Enter |
全ての候補の表示 |
チャットウインドウでコード内容を説明し、コードを生成します。
コードの内容説明のサンプルは以下です。
org.example.challenge2 パッケージに YourIdea.java というクラスを作ります。 このクラスで実施する内容は、現在の日時を日本のローカル時間、アメリカ西海岸時間、そしてイギリス時間を表示します。それぞれの日時の表示フォーマットは、日本式、アメリカ式、ヨーロッパ式とします。
Copilot チャットでコードが生成されたら、コードにカーソルを合わせて表示されるアイコンメニューから 新しいファイルに挿入する を選択します。
| キー操作 | 内容 |
|---|---|
Ctrl + Alt + i |
チャットビューの表示 |
Ctrl + Shift + i |
クイックチャットの表示 |
既存のコードはフィールドのみ定義されています。このコードに Setter, Getter, それと toStoring メソッドを追加します。
コードを追加する場所にカーソルを合わせ、インラインチャットの表示を行い、次のプロンプトを参考に入力します。
Setter, Getter 及び toString メソッドを追加してください。
| キー操作 | 内容 |
|---|---|
Ctrl + i |
インラインチャットの表示 |
Challenge 4 でロジックを補完し作成したコードからテストコードを作成します。
コードを右クリックし、Copilot -> Generate Tests を選択します。
GitHub Copilot にはハッシュ(#)を使用したコンテキスト変数があります。これは、Copilot との会話の中で意図的に伝えたい情報を変数として渡すものです。
これを利用して複数のファイルの情報をもとにコード生成に活かすことができます。
これまで作成している次のファイルをコンテキスト変数 #file を用いて会話にアタッチし、Challenge 3 で作成したエンティティクラスに対して操作を行うサービスクラスを作成します。
以下のようなプロンプトを作成して Copilot と会話をしてみてください。
@workspace #file:Book.java #file:build.gradle.kts #file:BookService.java 軽量の Java インメモリデータベース、例えば Apache Derby を使用して Book エンティティの内容をデータベースを使って操作するサービスクラスを BookService に実装したい。
| コンテキスト変数 | 内容 |
|---|---|
#file |
選択したファイル |
#editor |
エディタの表示領域 |
#selection |
エディタの選択箇所 |
#terminalLastCommand |
ターミナルで最後に実行したコマンドと結果 |
#terminalSelection |
ターミナルの選択箇所 |
Challenge 5 で作成したコードの説明を スラッシュコマンドを使用してコード内容の説明を取得します。
コードを右クリックし、Copilot -> Explain This を選択します。
| スラッシュコマンド | 内容 |
|---|---|
/explain |
コードの説明を取得 |
/tests |
選んだコードの単体テストを作成 |
/fix |
選んだコードの問題の修正プログラムを提案 |
/new |
指定した質問に回答するコードを生成 |
/newNotebook |
新しいJupyter Notebookを作成 |
search |
VS Code の検索ビューのクエリパラメータを生成コマンドを検索して実行 |
runCommand |
VS Code のコマンドを検索して実行 |
/clear |
新しいチャットを開始 |
/help |
ヘルプ |
- feature:1
- feature:2
このリポジトリの challenge1 ブランチをクローンします。
git clone -b challenge1 git@github.com:shinyay/ghcp-handson-java.gitReleased under the MIT license
- github: https://github.com/shinyay
- twitter: https://twitter.com/yanashin18618
- mastodon: https://mastodon.social/@yanashin




