MRが楽しい

MRやVRについて学習したことを書き残す

VisualStudioCodeのGitHubCopilotのドキュメントを読む その5

本日はVisualStudioCodeの学習枠です。
VisualStudioCodeのGitHubCopilotのドキュメントを読みながら実際に操作を試してみました。

前回記事

以下の前回記事の続きです。
bluebirdofoz.hatenablog.com

Use edit mode in VS Code

以下のUse edit mode in VS Codeドキュメントを日本語訳しながら実行時のキャプチャをしていきます。
code.visualstudio.com

設定

以下はEditモードに関連する設定です。[Settings]から変更できます。

chat.editing.confirmEditRequestRemoval

編集を取り消す前に確認を求める (デフォルト: true)。

chat.editing.confirmEditRequestRetry

最後の編集をやり直す前に確認を求める (デフォルト: true)。

chat.editing.autoAcceptDelay

提案された編集が自動的に受け入れられるまでの遅延時間を設定します。
自動受け入れを無効にするには0を使います(デフォルト: 0)。

github.copilot.chat.codesearch.enabled (preview)

Agentモードと同様に#codebaseをプロンプトに追加したときにCopilotが正しいファイルを見つけるようにします(デフォルト: false)。

chat.implicitContext.enabled (Experimental)

アクティブなエディタをチャットプロンプトのコンテキストとして自動的に追加するかどうかを設定します。

github.copilot.chat.edits.suggestRelatedFilesFromGitHistory (Experimental)

Copilot Editsでgit履歴から関連ファイルを提案します (デフォルト: false)。

キーボード ショートカット

以下はCopilot編集に関連するデフォルトのキーボードショートカットです。
デフォルトのキーボードショートカットは[Keyboard Shortcuts(Ctrl+K、Ctrl+S)]から変更できます。

未割り当て

Copilot Editビューを開きます。

未割り当て

チャットビューからCopilot Editにプロンプトを送信します

Ctrl + /

プロンプトにコンテキストを添付します

未割り当て

編集した全てのファイルをディスクに保存します

Ctrl+Enter

全ての編集を受けggest related files from git history in Copilot Edits (default: false).入れる

Ctrl+Backspace

全ての編集を破棄

Shift+Alt+F5

ファイル内の前の編集に移動します

Alt + F5

ファイル内の次の編集に移動する

制限

複数の同時編集セッションはまだサポートされていません。

Editセッションでは@workspace /new を使用して新しいプロジェクトを足場組みすることはまだサポートされていません。
最初の足場作りにはCopilot Chatを使用してください。

#codebaseはクエリに関連するコンテキストを見つけるのに優れていますが、その後に生成される結果は品質にばらつきがあります。
github.copilot.chat.codesearch.enabled(プレビュー)設定を試したり、プロンプトに明示的にファイルを追加してより良い結果を作成してみてください。

カスタムテキスト形式とバイナリファイル形式のサポートは存在しないかテストされていません。

よくある質問

Q. AgentモードではなくEditモードを使用するのはなぜですか?

EditモードとAgentモードのどちらかを選択するには、以下の基準を考慮してください。

編集スコープ

リクエストにコード編集のみが含まれ、変更の正確なスコープがわかっている場合はEditモードを使用します。

期間

Agentモードではリクエストを処理するために複数の手順が含まれるため、応答を得るのに時間がかかる場合があります。

決定論

Agentモードは生成された編集の結果を評価し、複数回反復する場合があります。
その結果、AgentモードはEditモードよりも非決定論的になる可能性があります。

リクエストクォータ

Agentモードではタスクの複雑さによっては1つのプロンプトがバックエンドに多数のリクエストを送信する場合があります。