コンテキスト
コンテキストメンションは、VJSPにプロジェクトに関する具体的な情報を提供する強力な方法であり、これによりタスクをより正確かつ効率的に実行できるようになります。ファイル、フォルダ、問題(エラー・警告)、Gitコミットなどを参照するためにメンションを使用できます。コンテキストメンションは @ 記号で始まります。
チャットインターフェースにおける @ 記号のドロップダウンメニューを示したコンテキストメンションの概要
メンションの種類
ファイルメンションは実際のコード内容を会話に取り込み、直接参照・分析可能にします。
| メンションの種類 | 書式 | 説明 | 使用例 |
|---|---|---|---|
| ファイル | @/path/to/file.ts | リクエストのコンテキストにファイルの内容を含める | " @/src/utils.ts 内の関数を説明してください" |
| フォルダ | @/path/to/folder/ | ディレクトリ構造をツリー形式で提供 | " @/src/components/ にはどのようなファイルがありますか?" |
| 問題(Problems) | @problems | IDEの「Problems」パネルからの診断情報を含める | " @problems を使ってコード内のすべてのエラーを修正してください" |
| ターミナル | @terminal | 最近のターミナルコマンドとその出力を含める | " @terminal に表示されたエラーを修正してください" |
| Gitコミット | @a1b2c3d | ハッシュ値で特定のコミットを参照 | "コミット @a1b2c3d では何が変更されましたか?" |
| Git変更 | @git-changes | 未コミットの変更内容を表示 | " @git-changes のためにコミットメッセージを提案してください" |
| URL | @https://example.com | Webサイトの内容をインポート | " @https://vjsp.net/ を要約してください" |
ファイルメンション
ファイルメンションは行番号とソースコードを組み合わせて、正確に参照できるようにします。
| 機能 | 詳細 |
|---|---|
| 書式 | @/path/to/file.ts(パスは常にワークスペースのルートから始まり、先頭に / を含む) |
| 内容表示 | 行番号付きのファイル全体の内容を返す |
| サポート形式 | テキストファイル、PDF、DOCX(テキスト抽出可能な形式) |
| 使用ケース | 初期クエリ、コンテキストの補足、フィードバックへの対応、後続のやり取りでのファイル参照 |
| 注意点 | 非常に大きなファイルは切り捨てられる場合がある。画像や実行ファイルなどの純粋なバイナリファイルはサポートされない |
フォルダメンション
フォルダメンションは読みやすいツリー形式でディレクトリ構造を表示します。
| 機能 | 詳細 |
|---|---|
| 書式 | @/path/to/folder/(末尾のスラッシュに注意) |
| 表示スタイル | ├── および └── 接頭辞を使った階層的ツリー形式 |
| 範囲 | 直下の子要素(ファイルおよびサブディレクトリ)のみをリストし、再帰的な展開は行わない |
| 使用ケース | プロジェクトまたはモジュールのレイアウトを素早く把握する |
| 推奨 | より深い理解のために、特定のファイルメンションと組み合わせて内容を確認すること |
問題(Problems)メンション
問題メンションはIDEの「Problems」パネルから診断情報を直接取り込みます。
| 機能 | 詳細 |
|---|---|
| 書式 | @problems |
| 内容 | IDEの「Problems」パネルにあるすべてのエラーおよび警告を自動的に抽出 |
| 含まれる情報 | ファイルパス、行番号、詳細な診断メッセージ |
| 整理方法 | ファイルごとにグループ化され、読みやすさと迅速なナビゲーションを向上 |
| 最適な用途 | エラーメッセージを手動でコピーせずに、コードの問題を素早く修正 |
ターミナルメンション
ターミナルメンションは最近のコマンド出力をキャプチャし、デバッグや分析に役立てます。
| 機能 | 詳細 |
|---|---|
| 書式 | @terminal |
| キャプチャ内容 | 最も最近実行されたコマンドとその全出力 |
| 状態保持 | ターミナルをクリアせず、現在のターミナルの状態を維持 |
| 制限事項 | 表示可能なターミナルバッファ内の内容のみ取得 |
| 最適な用途 | ビルドエラーのデバッグやコマンドライン出力の分析 |
Gitメンション
Gitメンションはコミットの詳細や差分(diff)を提供し、バージョン管理に基づいた分析を可能にします。
| 種類 | 書式 | 提供される内容 | 制限事項 |
|---|---|---|---|
| コミット | @a1b2c3d | コミットメタデータ(メッセージ、作者、日時)および完全な差分 | Gitリポジトリ内でのみ動作 |
| ワークスペースの変更 | @git-changes | git status の出力および未コミット変更の詳細な差分 | Gitリポジトリ内でのみ動作 |
URLメンション
URLメンションは外部Webコンテンツを取り込み、読みやすいMarkdown形式に変換します。
| 機能 | 詳細 |
|---|---|
| 書式 | @https://example.com |
| 処理方法 | ヘッドレスブラウザを使用してコンテンツを取得 |
| クリーニング | スクリプト、スタイル、ナビゲーション要素を削除 |
| 出力形式 | 読みやすさを高めるためMarkdownに変換 |
| 制限事項 | 複雑なページは完全に変換されない場合がある |
メンションの使い方
- チャット入力ボックスに
@を入力して、サジェストドロップダウンメニューを表示 - 入力を続けて候補を絞り込むか、矢印キーでナビゲート
- Enterキーを押すかクリックして選択
- 単一のリクエスト内で複数のメンションを組み合わせ可能:
" @/src/component.ts 内の @problems を修正してください"
ドロップダウンメニューは自動的に以下をサジェストします:
- 最近開いたファイル
- 表示中のフォルダ
- 最近のGitコミット
- 特別キーワード(
problems,terminal,git-changes)
ベストプラクティス
| プラクティス | 説明 |
|---|---|
| 具体的なパスを使用 | 場所を言葉で説明する代わりに、正確なファイルパスを参照 |
| 相対パスを使用 | パスは常にワークスペースルートから始まる(例:@/src/file.ts)。@C:/Projects/src/file.ts のような絶対パスは避ける |
| 参照の正確性を確認 | ファイルパスやコミットハッシュ(例:@a1b2c3d)が正しいかつ有効であることを保証 |
| メンションをクリックしてナビゲート | チャット履歴内のファイルまたはコミットメンションをクリックして、即座にファイルを開いたり関連コンテンツを表示したり可能 |
| 手動でのコピーペーストを避ける | コードスニペットやエラーメッセージを貼り付けるよりも、スマートメンション(例:@/file.ts や @problems)を優先 |
| 複数のメンションを組み合わせる | 必要に応じて自由に組み合わせる。例:「コミット @a1b2c3d の実装を参照して、 @/src/component.ts 内の @problems を修正してください」 |
