VS Codeのエージェントモードを拡張するには、を試してください!

VS Code でアスクモードを使用する

Visual Studio Code のチャットでは、自然言語を使用して大規模言語モデル (LLM) と対話し、コードに関するヘルプを得ることができます。アスクモードは、コードベース、コーディング、および一般的なテクノロジーの概念に関する質問に最適化されています。アスクモードは、コードベースの理解を深めたり、アイデアをブレインストーミングしたり、コーディング作業でヘルプを得たりするのに特に役立ちます。

前提条件

アスクモードを使用する理由

アスクモードは、コードベース、コーディング、および一般的なテクノロジーの概念に関する質問に答えるのに最適化されています。これを使用して、次のことができます。

  • 「データベース接続文字列はどこで定義されていますか?」や「ソート関数を説明してください」のように、コードベースに関する質問をします。
  • 「アプリケーションのパフォーマンスを向上させるにはどうすればよいですか?」や「検索機能を実装する3つの異なる方法を教えてください」のように、アイデアをブレインストーミングします。
  • 「新しいReactコンポーネントを作成するにはどうすればよいですか?」や「ファクトリパターンを実装するにはどうすればよいですか?」のように、コーディング作業でヘルプを得ます。

アスクモードでは、応答にコードブロックが含まれることがあり、それをコードベースに適用できます。これは、単一ファイル内の小さな編集にうまく機能します。ただし、複数のファイルにわたる大規模な変更や、より複雑なコーディング作業には、編集モードエージェントモードの方が適しています。

アスクモードの使用

VS Code でアスクモードの使用を開始するには、次の手順に従います。

  1. チャットビュー (⌃⌘I (Windows、Linux Ctrl+Alt+I)) を開き、チャットモードセレクターからアスクを選択します。

    Screenshot showing the Chat view, showing the mode dropdown with "Ask" selected.

    VS Code Stable版 または Insiders版 でアスクモードを直接開きます。

  2. チャット入力フィールドに質問を入力し、送信 (Enter) を選択して送信します。

    開始するために、これらの質問例を試してみてください。

    • 「ファクトリデザインパターンとは何ですか?」
    • 「JavaScript で fetch API を使用するにはどうすればよいですか?」
    • 「新しい React コンポーネントを作成するにはどうすればよいですか?」
  3. コンテキストの追加を使用するか、特定のワークスペースファイルまたは `codebase` のような事前定義されたコンテキスト項目を #-メンションすることで、チャットプロンプトにコンテキストを追加できます。

    コンテキストを追加することで、より関連性の高い応答を得ることができます。たとえば、現在のプロジェクトに特化した質問をするには、`#codebase` コンテキスト項目を使用できます。チャット入力フィールドに `#` を入力すると、利用可能なコンテキスト項目の一覧が表示されます。

    コンテキストを使用するプロンプトの例を次に示します。

    • 「#codebase でデータベース接続文字列はどこに定義されていますか?」
    • 「#calculator.test.js にはどのテストフレームワークが使用されていますか?」
    • 「#changes の変更点を要約してください」

    チャットプロンプトにコンテキストを追加することについて詳しく学びます。

  4. 質問に基づいて、応答にはコードブロック、ターミナルコマンド、リンク、コード内のシンボルへの参照など、さまざまな種類のリッチコンテンツが含まれる場合があることに注意してください。

    コードブロックをコードベースに適用する方法、または統合ターミナルでターミナルコマンドを直接実行する方法を学びます。

チャットからコードブロックを適用する

チャットの応答にコードブロックが含まれている場合、それらをワークスペース内の対応するファイルに個別に適用できます。VS Code はスマート適用を実行し、ファイル内の適切な場所に変更を挿入します。

コードブロックをコードベースに適用するには、コードブロックにカーソルを合わせ、エディターに適用ボタンを選択します。VS Code は、提案された変更を既存のコードに適用しようとします。

Screenshot of a chat code block response, highlighting the actions to apply changes.

または、コードをコピーするか、現在のカーソル位置に挿入することもできます。コードブロックにカーソルを合わせ、対応するアクションを選択します。

言語拡張機能によっては、チャット応答のコードブロックが、エディターでの体験と同様に IntelliSense をサポートする場合があります。

コードブロックにシェルコマンドが含まれている場合、ターミナルに挿入 (⌃⌥Enter (Windows、Linux Ctrl+Alt+Enter)) アクションで統合ターミナルで直接実行できます。

Chat code block to list files with Insert into Terminal option visible

ヒント

チャット: 次のコードブロック (⌥⌘PageDown (Windows、Linux Ctrl+Alt+PageDown)) および チャット: 前のコードブロック (⌥⌘PageUp (Windows、Linux Ctrl+Alt+PageUp)) コマンドで、コードブロック間を移動します。

クイックチャット

クイックチャットを使用して、サイドで完全なチャットセッションを開始することなく、素早く質問できます。クイックチャットは、クイックピックを開いて質問できる軽量なチャット体験です。

クイックチャットを開くには、タイトルバーの Copilot メニューからクイックチャットを選択するか、⇧⌥⌘L (Windows、Linux Ctrl+Shift+Alt+L) キーボードショートカットを使用します。

クイックチャットで質問でき、会話を続けたい場合は、チャットビューで開くボタンで完全なチャットセッションに昇格させることができます。

特別なキーワード

プロンプトでは、特別なキーワードを使用して、より関連性の高い応答を得ることができます。

  • #-メンション: チャットプロンプトにコンテキストを追加するために使用されます。たとえば、`#codebase` はコードベース全体を参照し、`#<ファイル | フォルダー | シンボル>` はワークスペース内の特定のファイル、フォルダー、またはシンボルを参照します。チャット入力フィールドに `#` を入力すると、コンテキスト項目の一覧が表示されます。チャットプロンプトにコンテキストを追加することについて詳しく学びます。

  • @-メンション: *チャット参加者*を参照するために使用され、データベースとの対話のような特定のトピックに関する質問に答えるのに役立ちます。チャット入力フィールドに `@` を入力すると、利用可能な参加者の一覧が表示されます。`@terminal` のような組み込みの参加者、または拡張機能が提供する参加者から選択できます。

  • *スラッシュコマンド*: 一般的に使用される指示へのショートカットを提供します。たとえば、問題の修正を提案する `/fix` や、選択したコードの動作を説明する `/explain` などです。チャット入力フィールドに `/` を入力すると、利用可能なスラッシュコマンドの一覧が表示されます。