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

2025年4月 (バージョン 1.100)

リリース日: 2025年5月8日

更新: VS Code Stable で「次の編集候補 (NES)」を既定で有効にする (詳細...)。

更新 1.100.1: この更新では、次のセキュリティ問題が対処されています。

更新 1.100.2: この更新では、次の問題が対処されています。

更新 1.100.3: この更新では、次の問題が対処されています。

ダウンロード: Windows: x64 Arm64 | Mac: ユニバーサル Intel シリコン | Linux: deb rpm tarball Arm snap


Visual Studio Code の 2025 年 4 月リリースへようこそ。このバージョンには多くの更新があり、皆様に気に入っていただけることを願っています。主なハイライトをいくつかご紹介します。

  • チャット

    • カスタム命令と再利用可能なプロンプト (詳細...)。
    • GitHub、拡張機能、およびノートブック用のツールでよりスマートな結果 (詳細...)。
    • MCP の画像とストリーマブル HTTP のサポート (詳細...)。
  • チャットのパフォーマンス

    • 繰り返しのチャット要求に対する応答の高速化 (詳細...)。
    • エージェントモードでの編集の高速化 (詳細...)。
  • エディター エクスペリエンス

    • チャットとエディターの複数ウィンドウのサポートが改善されました (詳細...)。
    • ステージされた変更を識別しやすくなりました (詳細...)。

これらのリリースノートをオンラインで読むには、code.visualstudio.com更新にアクセスしてください。Insiders: 新しい機能をできるだけ早く試したいですか? 夜間ビルドのInsidersビルドをダウンロードして、利用可能になり次第最新の更新を試すことができます。

チャット

プロンプトと命令ファイル

Markdown ベースの命令ファイルとプロンプト ファイルを使用することで、VS Code での AI エクスペリエンスを特定のコーディング手法やテクノロジー スタックに合わせて調整できます。これら 2 つの関連する概念の実装と使用方法を調整しましたが、それぞれに異なる目的があります。

命令ファイル

設定: chat.instructionsFilesLocations

命令ファイル (カスタム命令またはルールとも呼ばれます) は、コード スタイル ルールや使用するフレームワークなど、AI モデルの共通のガイドラインとコンテキストを Markdown ファイルで記述する方法を提供します。命令ファイルはスタンドアロンのチャット要求ではなく、チャット要求に適用できるコンテキストを提供します。

命令ファイルは .instructions.md ファイル サフィックスを使用します。ユーザー データ フォルダーまたはワークスペースに配置できます。chat.instructionsFilesLocations 設定は、命令ファイルを含むフォルダーを一覧表示します。

命令は特定のチャット要求に手動で添付することも、自動的に追加することもできます。

  • 手動で追加するには、チャット ビューのコンテキストの追加ボタンを使用し、命令... を選択します。または、コマンド パレットからチャット: 命令を添付... コマンドを使用します。これにより、既存の命令ファイルを選択したり、新しい命令ファイルを作成して添付したりできるピッカーが表示されます。

  • プロンプトに命令を自動的に追加するには、命令ファイルに applyTo フロント マター ヘッダーを追加して、命令を適用するファイルを示します。チャット要求に指定されたグロブ パターンに一致するファイルが含まれている場合、命令ファイルは自動的に添付されます。

    次の例は、TypeScript ファイルの命令 (applyTo: '**/*.ts') を提供します。

    ---
    applyTo: '**/*.ts'
    ---
    Place curly braces on separate lines for multi-line blocks:
    if (condition)
    {
      doSomething();
    }
    else
    {
      doSomethingElse();
    }
    

命令ファイルは、チャット: 新しい命令ファイル... コマンドで作成できます。さらに、ユーザー データ フォルダーに作成されたファイルは、設定同期サービスを通じて複数のユーザー マシン間で自動的に同期できます。バックアップと同期の設定... ダイアログでプロンプトと命令オプションを必ずチェックしてください。

ドキュメントの命令ファイルの詳細については、こちらをご覧ください。

プロンプトファイル

設定: chat.promptFilesLocations

プロンプト ファイルは、プロンプト テキスト、チャット モード、使用するツールなど、スタンドアロンの完全なチャット要求を記述します。プロンプト ファイルは、一般的なタスクの再利用可能なチャット要求を作成するのに役立ちます。たとえば、フロントエンド コンポーネントを作成するためのプロンプト ファイルを追加したり、セキュリティ レビューを実行したりできます。

プロンプト ファイルは .prompt.md ファイル サフィックスを使用します。ユーザー データ フォルダーまたはワークスペースに配置できます。chat.promptFilesLocations 設定は、プロンプト ファイルが検索されるフォルダーを一覧表示します。

プロンプト ファイルを実行するには、いくつかの方法があります。

  • チャット入力フィールドに / を入力し、その後にプロンプト ファイル名を入力します。 スラッシュ コマンドでチャット ビューでプロンプトを実行していることを示すスクリーンショット。

  • エディターでプロンプト ファイルを開き、エディター ツール バーの「再生」ボタンを押します。これにより、チャット ビューに戻ることなく、プロンプトをすばやく反復処理して実行できます。 エディターの再生ボタンを使用してプロンプトを実行していることを示すスクリーンショット。

  • コマンド パレットからチャット: プロンプト ファイルを実行... コマンドを使用します。

プロンプト ファイルには、実行方法を示すために次のフロント マター メタデータ ヘッダーを含めることができます。

  • mode: プロンプト呼び出し時に使用するチャット モード (askedit、または agent モード)。
  • tools: modeagent の場合、プロンプトで利用可能なツールのリスト。

次の例は、エージェント モードで実行され、一連のツールを使用できるリリース ノート生成用のプロンプト ファイルを示しています。

---
mode: 'agent'
tools: ['getCurrentMilestone', 'getReleaseFeatures', 'file_search', 'semantic_search', 'read_file', 'insert_edit_into_file', 'create_file', 'replace_string_in_file', 'fetch_webpage', 'vscode_search_extensions_internal']
---
Generate release notes for the features I worked in the current release and update them in the release notes file. Use [release notes writing instructions file](.github/instructions/release-notes-writing.instructions.md) as a guide.

プロンプト ファイルを作成するには、コマンド パレットからチャット: 新しいプロンプト ファイル... コマンドを使用します。

ドキュメントのプロンプト ファイルの詳細については、こちらをご覧ください。

改善と注記

  • 命令ファイルとプロンプト ファイルには独自の言語 ID が割り当てられ、開いているドキュメントの「言語モード」ダイアログで構成できるようになりました (それぞれ「プロンプト」と「命令」)。これにより、たとえば、保存する前に無題のドキュメントを一時的なプロンプト ファイルとして使用できます。
  • チャット: プロンプトを使用コマンドの名前をチャット: プロンプトを実行に変更しました。さらに、このコマンドは、以前のようにチャット コンテキストとして添付するのではなく、選択したプロンプトをすぐに実行するようになりました。
  • 両方のファイル タイプは、ヘッダーに description メタデータもサポートするようになり、短いユーザーフレンドリーなプロンプトの概要を記述する共通の場所を提供します。将来的には、このヘッダーは applyTo ヘッダーとともに、ファイルがチャット要求に自動的に含まれるべきかどうかを決定するルールとして使用される予定です (例: description: 'TypeScript で記述されたフロントエンド コンポーネントのコード スタイル ルール。')。

エージェント モードでの編集の高速化

OpenAI の適用パッチ編集形式 (GPT 4.1 と o4-mini) と Anthropic の置換文字列ツール (Claude Sonnet 3.7 と 3.5) のエージェント モードでのサポートを実装しました。これにより、特に大規模なファイルでの編集が大幅に高速化されます。

OpenAI モデルの更新は VS Code Insiders で既定で有効になっており、Stable に段階的に展開されています。Anthropic の更新は、Stable と Insiders の両方のすべてのユーザーが利用できます。

チャットのベース モデル

VS Code のチャットで、GPT-4.1 を既定のベース モデルとして段階的に展開しています。チャット ビューのモデル スイッチャーを使用して、いつでも別のモデルに変更できます。

#githubRepo ツールで GitHub リポジトリのコードを検索する

GitHub リポジトリについて質問する必要があるが、エディターで開いていないと想像してください。たとえば、microsoft/vscode リポジトリで特定の関数がどのように実装されているかを知りたいとします。

#githubRepo ツールを使用すると、アクセスできる任意の GitHub リポジトリでコード スニペットを検索できるようになりました。このツールは、追加の入力として user/repo を受け取ります。たとえば、「TS でファクトリー パターンを実装する方法 #githubRepo microsoft/vscode」のように使用します。

次の例に示すように、カスタム命令を使用して、このツールをいつどのように使用するかをヒントとして与えることもできます。

---
applyTo: '**'
---
Use the `#githubRepo` tool with `microsoft/vscode` to find relevant code snippets in the VS Code codebase.
Use the `#githubRepo` tool with `microsoft/typescript` to answer questions about how TypeScript is implemented.

Screenshot showing using the #githubRepo tool in agent mode with hints from instructions files.

現在作業中のリポジトリについて質問したい場合は、#codebase ツールを使用するだけで済みます。

また、#githubRepo ツールは関連するコード スニペットの検索のみに使用されます。GitHub MCP サーバーは、GitHub のイシューやプル リクエストを操作するためのツールを提供します。VS Code で MCP サーバーを追加する方法の詳細については、こちらをご覧ください。

拡張機能ツールで Marketplace の拡張機能を見つける

チャットで拡張機能ツール (#extensions) を使用して、Marketplace から拡張機能を見つけます。チャット プロンプトに基づいてツールが自動的に呼び出されるか、プロンプトで明示的に #extensions を参照できます。このツールは、クエリに一致する拡張機能のリストを返します。結果から直接拡張機能をインストールできます。

Web ページ取得ツールの改善

先月、チャットから直接 Web ページの内容を取得し、プロンプトのコンテキストとして含めるための取得ツール (#fetch) を導入しました。このリリース ノートを読み逃した場合は、取得ツールの初回リリースのリリース ノートと例をご覧ください。

このイテレーションでは、ツールにいくつかの大きな変更を加えました。

  • ページ全体をコンテキストとして: これまでの一部ではなく、ページ全体をコンテキストとして追加するようになりました。コンテキスト ウィンドウが大きくなったことで、モデルにページ全体を与えることができるようになりました。たとえば、ページ全体を必要とする要約の質問をすることも可能になりました。コンテキスト ウィンドウをいっぱいにする場合でも、取得ツールはページの関連性の低いセクションを賢く除外します。これにより、コンテキスト ウィンドウの制限を超えずに、重要な部分を保持できます。
  • 標準化されたページ形式 (Markdown): 以前は、取得した Web ページをカスタムの階層形式でフォーマットしていましたが、これは機能はしましたが、カスタムの性質上、推論が難しい場合がありました。今回、取得した Web ページを標準化された言語である Markdown に変換するようになりました。これにより、関連性検出の信頼性が向上し、ほとんどの言語モデルが深く知っている形式であるため、より簡単に推論できるようになります。

取得ツールの使用方法や、そこからどのような機能を期待するかをぜひお聞かせください!

チャット入力の改善

チャット入力ボックスにいくつかの改善を加えました。

  • 添付ファイル: プロンプト テキストで # を使用してコンテキストを参照すると、添付ファイルのピルとしても表示されるようになりました。これにより、言語モデルに送信される内容をより簡単に理解できます。
  • コンテキスト ピッカー: ファイル、フォルダー、その他の添付ファイルの種類を選択しやすくするために、コンテキスト ピッカーを合理化しました。
  • 完了ボタン: 「完了」ボタンに関するフィードバックを受け取り、削除しました! 予期せぬセッション終了に関する混乱はもうありません。新しいチャットを作成した場合にのみ、新しいセッションが開始されます (⌘N (Windows, Linux Ctrl+N))。

チャット モードのキーボード ショートカット

キーボード ショートカット ⌃⌘I (Windows, Linux Ctrl+Alt+I) はチャット ビューを開くだけですが、⇧⌘I (Windows Ctrl+Shift+I, Linux Ctrl+Shift+Alt+I) ショートカットはチャット ビューを開き、エージェント モードに切り替えるようになりました。他のチャット モードのキーボード ショートカットを設定したい場合は、各モードにコマンドがあります。

  • workbench.action.chat.openAgent
  • workbench.action.chat.openEdit
  • workbench.action.chat.openAsk

エージェント モードでの編集からの診断の自動修正

設定: github.copilot.chat.agent.autoFix

エージェント モードでのファイル編集で新しいエラーが発生した場合、エージェント モードはそれらを検出し、自動的にフォローアップ編集を提案できるようになりました。これにより、エージェント モードにエラーの修正を依頼するためにフォローアップ プロンプトを送信する必要がなくなります。この動作は github.copilot.chat.agent.autoFix で無効にできます。

エージェント モードでの元に戻す操作と手動編集の処理

以前は、エージェント モード セッション中に手動で編集すると、モデルが混乱する可能性がありました。現在は、エージェントにユーザーの変更が通知され、変更された可能性のあるファイルを編集する前に必要に応じてファイルを再読み込みする必要があります。

会話の要約とプロンプトのキャッシュ

プロンプトのキャッシュを最適化するために、エージェント モードのプロンプトの構築方法にいくつか変更を加えました。プロンプトのキャッシュは、プロンプトの安定したプレフィックスを維持することで、モデルの応答を高速化する方法です。次の要求はそのプレフィックスから再開でき、その結果、各要求は少し高速になります。これは、エージェント モードで通常行うように、大規模なコンテキストを持つ一連の繰り返し要求で特に効果的です。

会話が長くなったり、コンテキストが非常に大きくなったりすると、エージェント モード セッションに「要約された会話履歴」メッセージが表示されることがあります。

Screenshot showing a summarized conversation message in the Chat view.

会話全体を FIFO として保持し、キャッシュを壊すのではなく、これまでの会話を最も重要な情報とタスクの現在の状態の要約に圧縮します。これにより、プロンプトのプレフィックスが安定し、応答が高速になります。

MCP のストリーマブル HTTP サポート

このリリースでは、モデル コンテキスト プロトコル サーバー用の新しいストリーマブル HTTP トランスポートのサポートが追加されました。ストリーマブル HTTP サーバーは既存の SSE サーバーと同じように構成され、当社の実装は SSE サーバーと下位互換性があります。

{
  "servers": {
    "my-mcp-server": {
      "url": "https://:3000/mcp"
    }
  }
}

VS Code での MCP のサポートの詳細については、こちらをご覧ください。

画像出力の MCP サポート

ツール出力の一部として画像を生成する MCP サーバーをサポートするようになりました。

すべての言語モデルがツール出力から画像を読み取ることをサポートしているわけではないことに注意してください。たとえば、GPT-4.1 はビジョン機能を備えていますが、現在はツールから画像を読み取ることをサポートしていません。

MCP サーバーからの入力、出力、および進行状況の強化

MCP サーバーのツール入力と出力を表示する UI を強化し、MCP の新しい進行状況メッセージのサポートも追加しました。

テーマ: Codesong (vscode.dev でプレビュー)

MCP 構成生成は入力を使用します

機密情報を安全に保つために、MCP: サーバーを追加コマンドで生成される AI アシスト構成は、結果の構成にシークレットをインライン化するのではなく、すべてのシークレットに対して inputs を生成するようになりました。

インライン チャット V2 (プレビュー)

設定: inlineChat.enableV2

インライン チャット ⌘I (Windows, Linux Ctrl+I) の刷新版の開発に取り組んできました。そのテーマは引き続き「チャットをコードに統合する」ですが、舞台裏ではチャット編集と同じロジックを使用しています。これにより、利用可能なコンテキストのより良い使用と、より良いコード編集戦略が可能になります。インライン チャット v2 は inlineChat.enableV2 を介して有効にできます。

さらに、より軽量な UX がオプションで有効にできるようになりました。inlineChat.hideOnRequest 設定を使用すると、要求が行われるとすぐにインライン チャットが非表示になります。その後、チャット編集オーバーレイに最小化され、変更の承認または破棄、またはインライン チャット コントロールの復元が可能になります。

UI 要素を選択してチャットに添付 (実験的)

設定: chat.sendElementsToChat.enabled

Web アプリケーションを開発中に、Web ページの特定の UI 要素についてチャットに質問したい場合があります。組み込みの簡易ブラウザを使用して、UI 要素をコンテキストとしてチャットに添付できるようになりました。

組み込みの簡易ブラウザを介してローカルにホストされているサイトを開いた後 (簡易ブラウザ: 表示コマンドで起動)、新しいツールバーが表示され、開始を選択して、必要なサイトの任意の要素を選択できます。これにより、選択した要素のスクリーンショット、およびその要素の HTML と CSS が添付されます。

チャットに添付するものを構成するには、次を使用します。

この実験的な機能は、すべての簡易ブラウザで既定で有効になっていますが、chat.sendElementsToChat.enabled で無効にできます。

エージェント モードでのタスクの作成と起動 (実験的)

設定: github.copilot.chat.newWorkspaceCreation.enabled

前回のリリースで、エージェント モードでのワークスペース作成を有効にする github.copilot.chat.newWorkspaceCreation.enabled (実験的) 設定を導入しました。

今回、この作成フローの最後に、アプリまたはプロジェクトを起動するためのタスクを作成して実行するように求められます。これにより、プロジェクトの起動プロセスが合理化され、タスクの再利用が容易になります。

アクセシビリティ

マージエディターの改善

マージエディターのアクセシビリティが向上しました。利用可能なアクションについては、マージエディター内でアクセシビリティヘルプダイアログを開きます (⌥F1 (Windows Alt+F1, Linux Shift+Alt+F1))。主なアクションには、マージエディター: マージを完了 (⌘Enter (Windows, Linux Ctrl+Enter)) と マージエディター入力を切り替え (⇧⌘T (Windows, Linux Ctrl+Shift+T)) が含まれます。現在フォーカスされている入力も、支援技術にアナウンスされるようになりました。

次の編集候補の機能強化

新しい設定 accessibility.signals.nextEditSuggestion は、予測された候補が利用可能になったときに通知します。アクセス可能なビュー (⌥F2 (Windows Alt+F2, Linux Shift+Alt+F2)) を通じて候補を確認し、承認します。さらに、accessibility.signals.diffLineAddedaccessibility.signals.diffLineRemoved は、ナビゲーション中に音声キューを提供し、差分レビューをアクセシブルにします。

アクセス可能なビューから Copilot ユーザー要求を確認する

エージェント モードでは、ツール呼び出しやターミナル コマンドを実行するには、ユーザーの許可が必要な場合があります。これらのアクションは、アクセス可能なビュー (⌥F2 (Windows Alt+F2, Linux Shift+Alt+F2)) で確認できます。

独自のアクセシビリティサウンド

accessibility.signals.save.sound は独自の明確なサウンドを持つようになり、accessibility.signals.terminalCommandSucceeded.sound と音声を共有しなくなりました。

エディター体験

フローティング ウィンドウ モード

VS Code のフローティング ウィンドウを使用すると、エディターと特定のビューをメイン ウィンドウから小型ウィンドウに移動して、軽量なマルチウィンドウ設定が可能になります。フローティング ウィンドウには 2 つの新しいモードがあります。

  • コンパクト: 実際のコンテンツにより多くのスペースを確保するために、特定の UI 要素を非表示にします。
  • 常に前面表示: このモードを終了するまで、ウィンドウは他のすべてのウィンドウの前面に留まります。

フローティング エディター ウィンドウをコンパクト モードにする方法の例を次に示します。

新しいウィンドウでチャットを作成する場合、既定でコンパクト モードを使用します。ウィンドウを常に前面に表示するオプションと組み合わせることで、質問するために常にチャット ビューを表示しておくことができます。

これらのアクションにキーボード ショートカットを使用したい場合は、新しいコマンドを導入しました。

  • workbench.action.toggleWindowAlwaysOnTop: 常に前面表示モードを切り替える
  • workbench.action.enableWindowAlwaysOnTop: フローティング ウィンドウを常に前面表示に設定する
  • workbench.action.disableWindowAlwaysOnTop: フローティング ウィンドウを通常に設定する
  • workbench.action.toggleCompactAuxiliaryWindow: コンパクト モードを切り替える
  • workbench.action.enableCompactAuxiliaryWindow: コンパクト モードを有効にする
  • workbench.action.disableCompactAuxiliaryWindow: コンパクト モードを無効にする

注: コンパクト モードでも、複雑なエディター レイアウトを作成し、他のエディターを開くことができます。

セカンダリサイドバーのデフォルトの可視性

設定: workbench.secondarySideBar.defaultVisibility

既定では、新しいワークスペースまたはウィンドウを開くと、セカンダリサイドバーは非表示になります。新しい設定 workbench.secondarySideBar.defaultVisibility を使用すると、新しいワークスペースまたはウィンドウでセカンダリサイドバーを自動的に開くかどうかを制御できます。以下から選択できます。

  • hidden: これがデフォルトで、セカンダリサイドバーを非表示にします。
  • visibleInWorkspace: フォルダーまたはマルチルートワークスペースを開いた場合、セカンダリサイドバーを開きます。
  • visible: これにより、常にセカンダリサイドバーが開きます。

ワークスペースまたはウィンドウを開いた後、可視性はワークスペースの状態となり、設定値を上書きすることに注意してください。セカンダリサイドバーを閉じると、そのワークスペースまたはウィンドウでは閉じられたままになります。

拡張機能署名検証の必須化

拡張機能の署名検証がすべてのプラットフォーム (Windows、macOS、Linux) で必須になりました。以前は、この検証は Windows と macOS でのみ必須でした。このリリースでは、Linux でも拡張機能の署名検証が強制され、すべての拡張機能がインストール前に適切に検証されるようになりました。

この変更により、潜在的に悪意のある拡張機能のインストールが防止され、セキュリティがさらに強化されます。詳細については、「拡張機能の署名」を参照してください。

注: Linux ARM32 ビルドでは、イシュー #248308 のため、必須の拡張機能署名検証は無効のままです。これは次回のリリースで解決される予定です。

拡張機能が悪意のあるものとして識別された場合、VS Code は、その拡張機能がなぜフラグ付けされたのかを説明する追加情報へのリンクを提供するようになりました。これらの「詳細を見る」リンクは、ユーザーを GitHub の問題やセキュリティ上の懸念に関する詳細情報を含むドキュメントに接続し、潜在的なリスクをよりよく理解するのに役立ちます。

VS Code Stable での Copilot Chat プレリリース版のインストール防止

VS Code は、VS Code Stable での Copilot Chat 拡張機能のプレリリース版のインストールを防止するようになりました。これにより、誤って Copilot Chat プレリリース版をインストールして壊れた状態に陥る状況を回避できます。つまり、Copilot Chat 拡張機能のプレリリース版は、VS Code の Insiders ビルドでのみインストールできます。

フォーカスせずにビューを開くコマンド

ビュー (ツリービューとウェブビュービュー) を、フォーカスせずに開くことができるようになりました。これは、ビューを開きたいが、現在のエディターからフォーカスを奪いたくない拡張機能やキーボードショートカットに役立ちます。コマンドは your-view-id.open であり、プロパティバッグ引数 { preserveFocus: boolean} を取ります。

キーワード候補付きのセマンティックテキスト検索 (実験的)

設定: github.copilot.chat.search.keywordSuggestions

セマンティック テキスト検索が、AI を活用したキーワード候補をサポートするようになりました。この機能を有効にすると、探しているコードを見つけるのに役立つ可能性のある関連する参照や定義が表示されるようになります。

コード編集

新しい次の編集候補 (NES) モデル

設定: github.copilot.nextEditSuggestions.enabled

より高速で文脈に即したコード推奨を提供するように設計された、NES を強化する新しいモデルを導入できることを嬉しく思います。この更新されたモデルは、パフォーマンスが向上し、遅延が低減された提案を提供し、邪魔にならず、最近の編集により密接に合致する提案を提供します。この更新は、Visual Studio Code 内の AI 支援開発ツールを改善するための継続的な取り組みの一部です。

インポートの候補

設定: github.copilot.nextEditSuggestions.fixes

「次の編集候補 (NES)」は、JavaScript および TypeScript ファイルで不足している import 文を自動的に追加するよう提案できるようになりました。この機能を有効にするには、github.copilot.nextEditSuggestions.fixes を設定します。今後のアップデートでは、追加の言語からの import もサポートすることで、この機能をさらに強化する予定です。

Screenshot showing NES suggesting an import statement.

次の編集候補 (NES) は既定で有効

次の編集候補は、VS Code Insiders で既定で有効になり、Stable に段階的に展開されています。

HTML または Markdown で代替テキストを生成する

HTML および Markdown ファイルで、既存の代替テキストを生成または更新できるようになりました。埋め込み画像を含む任意の行に移動し、⌘. (Windows, Linux Ctrl+.) または電球アイコンを選択して、クイック フィックスをトリガーします。

Screenshot that shows generating alt text for an image html element.

ノートブック

検索と置換の履歴永続化

ノートブック検索コントロールは、検索入力フィールドと置換入力フィールドの両方で永続的な履歴をサポートするようになりました。これは再読み込み後も永続化され、editor.find.history および editor.find.replaceHistory の設定で制御されます。

セルの出力をチャットにドラッグアンドドロップ

チャットでのセル出力の使用に関する既存のサポートを強化するために、出力がチャット ビューにドラッグできるようになり、シームレスな添付体験が可能になりました。現在、画像とテキスト出力のみがサポートされています。画像 MIME タイプを持つ出力は直接ドラッグ可能ですが、テキスト選択と競合しないように、テキスト出力は alt 修飾キーを押しながらドラッグする必要があります。今後のリリースで UX の改善を検討しています。

エージェントモード用のノートブックツール

セルを実行

チャットにノートブック セルを実行するための LLM ツールが追加されました。これにより、エージェントはセルの実行結果に基づいて更新を実行したり、ノートブックを構築しながら独自のデータ探索を実行したりできます。

カーネル状態を取得

エージェントは、カーネル状態ツールを使用して、現在のカーネル セッションでどのセルが実行されたかを確認し、アクティブな変数を読み取ることができます。

パッケージのリスト/インストール

Jupyter 拡張機能は、ノートブックのカーネルとして使用されている環境にパッケージをリストおよびインストールするためのツールを提供します。操作は、利用可能な場合は Python Environments 拡張機能に委任されます。それ以外の場合は、pip パッケージ マネージャーを使用しようとします。

ソース管理

ステージされた変更のクイック差分装飾

長年の機能要求に応えるため、このマイルストーンでステージされた変更のクイック差分エディター装飾を追加しました。これにより、ソース管理ビューを開くことなく、ステージされた変更をエディターから直接表示できるようになりました。

ステージされた変更のクイック差分装飾の色は、editorGutter.addedSecondaryBackgroundeditorGutter.modifiedSecondaryBackgroundeditorGutter.deletedSecondaryBackground のテーマトークンを使用してカスタマイズできます。

ステージされた変更のクイック差分装飾を表示したくない場合は、エディターのガターコンテキストメニューにある差分装飾サブメニューを使用して非表示にできます。

デバッグ

逆アセンブリビューのコンテキストメニュー

コミュニティからの貢献により、逆アセンブリビューにコンテキストメニューが追加されました。

Screenshot that shows the context menu in the Disassembly view.

JavaScript デバッガーのネットワークビュー

最近の Node.js のバージョンでは、ネットワーク デバッグ機能が強化されています。実験的なネットワーク ビューは、それを適切にサポートする最近の Node.js のバージョン (v22.14.0 以降) で既定で有効になります。

言語

CSS および HTML のブラウザサポートを表示

CSS プロパティ、HTML 要素、または HTML 属性にカーソルを合わせると、Baseline を使用して、そのプロパティまたは要素がブラウザ全体でどれだけサポートされているかの概要が表示されるようになりました。

Screenshot that shows baseline browser support in the CSS hover.

.*.env ファイルの既定のシンタックス ハイライト

.*.env 形式のファイルは、.ini ファイルとしてシンタックス ハイライトされるようになりました。

JavaScript および TypeScript 用の展開可能なホバー (実験的)

設定: typescript.experimental.expandableHover

JavaScript および TypeScript の展開可能なホバー機能の反復を継続しました。この機能により、ホバーコントロールで + および - を使用して、より多くの、またはより少ない型情報を表示できます。

この機能はまだ実験段階ですが、typescript.experimental.expandableHover を有効にすることで今すぐ試すことができます。TypeScript バージョン 5.9 以上を使用する必要があります。たとえば、TypeScript nightly extension をインストールすることで可能です。

リモート開発

リモート開発拡張機能を使用すると、開発コンテナー、SSH 経由のリモート マシン、リモート トンネル、またはLinux 用 Windows サブシステム (WSL) をフル機能の開発環境として使用できます。

開発コンテナの命令ファイル

Dev Container の機能とイメージには、そのツールと構成を説明する命令ファイルが含まれるようになりました。VS Code チャットは、このコンテキストを自動的に使用でき、開発中の提案の関連性と精度を向上させます。

拡張機能への貢献

Python

ブランチカバレッジのサポート

Python の Testing Explorer でブランチカバレッジがサポートされるようになりました! この機能には coveragepy のバージョンが 7.7 以上である必要があります。pip install coverage==7.7 を実行して coverage をアップグレードできます。

Python 環境のクイック作成コマンド

Python Environments 拡張機能は Quick Create のサポートを追加し、環境作成プロセスをよりシームレスにしました。Quick Create は、マシン上の最新の Python バージョンを検出して仮想環境を作成し、すべてのワークスペース依存関係をワンクリックでインストールすることで、新しい仮想環境を作成するために必要な入力を最小限に抑えます。これにより、venv ベースの環境の場合はワークスペースに .venv が作成され、conda ベースの環境の場合は .conda が作成されます。Quick Create は、コマンドパレットのPython: 環境を作成コマンドからアクセスできます。

Screenshot showing Quick Create in the Python: Create Environment quick pick.

Python 環境のチャットツール

Python Environments 拡張機能 (プレビュー) に、2 つのチャットツール「Python 環境情報の取得」と「Python パッケージのインストール」が追加されました。これらのツールを使用するには、プロンプトに #pythonGetEnvironmentInfo #pythonInstallPackage を追加して直接参照するか、エージェントモードが適用可能な場合に自動的にツールを呼び出します。これらのツールは、ファイルまたはワークスペースのコンテキストに基づいて適切な環境情報をシームレスに検出し、正確な環境解決でパッケージのインストールを処理します。

Pylance を使用する際のカラーピッカー

Pylance は、Python ファイルで認識された色の値に対して、エディターにインタラクティブなカラー スウォッチを直接表示できるようになり、色を視覚化してその場で選択するのが容易になりました。試すには、python.analysis.enableColorPicker を有効にしてください。サポートされている形式には、#RGB (例: "#001122") と #RGBA (例: "#001122FF") が含まれます。

Screenshot showing the color swatch displayed in the editor next to #RGB color format.

AI コード アクション: 形式文字列の変換 (実験的)

Pylance を使用する際、文字列連結を f-string または format() に変換するための新しい実験的な AI コード アクションがあります。試すには、変換したい文字列内のシンボルを選択したときに電球アイコンまたは Ctrl + ./Cmd + . から、Copilot で f-string に変換またはCopilot で format() 呼び出しに変換コード アクションを選択します。

Screenshot showing the convert strings Code Actions, powered by AI.

このエクスペリエンスは、次の設定で有効になります。

"python.analysis.aiCodeActions": {"convertFormatString": true}

GitHub プルリクエストとイシュー

GitHub Pull Requests 拡張機能は、プルリクエストやイシューの作業、作成、管理を可能にします。この拡張機能には、さらなる進歩がありました。新機能には以下が含まれます。

  • アクティブなプルリクエストに関する質問をチャットで行うことができます。たとえば、「#activePullRequest のすべてのコメントに対応する」など。
  • プルリクエストと同じように、ウェブビューでイシューを表示できます。
  • 「プルリクエスト」、「イシュー」、および「通知」ビューの調整と統一。
  • GitHub の Project Padawan のリリースに備え、イシューを Copilot に割り当てたり、Copilot を @-メンションしたり、UI に適切に表示されるようにしました。

その他のハイライトについては、拡張機能の0.110.0 リリース の変更履歴を確認してください。

拡張機能の作成

テキストエンコーディング

VS Code でテキスト エンコーディングを扱うための API が完成しました。

具体的には、この新しい API を使用すると、次のことができます。

  • TextDocument の現在の encoding を取得する
  • 特定の encodingTextDocument を開く
  • 特定の encodingstringUint8Array にエンコードする
  • 特定の encoding を使用して Uint8Arraystring にデコードする

拡張機能の ESM サポート

NodeJS 拡張機能ホストは、JavaScript モジュール (ESM) を使用する拡張機能をサポートするようになりました。必要なのは、拡張機能の package.json ファイルに "type": "module" エントリを追加することだけです。これにより、JavaScript コードは import および export ステートメント (特別なモジュール import('vscode') を含む) を使用できます。サンプルはこちらで見つけることができます: https://github.com/jrieken/vscode-esm-sample-extension

ESM のサポートは、まだ Web ワーカー拡張機能ホストには対応していません。まず克服する必要のある技術的な課題がいくつかあります。https://github.com/microsoft/vscode/issues/130367 で最新情報をお知らせします。ご期待ください!

提案されたAPI

画像のツール呼び出し

前回、拡張機能が画像を添付し、ビジョン要求を言語モデルに送信できるようにする提案された API を追加しました。今回、この API を拡張し、ツール呼び出しの結果にも画像を含めることができるようにしました。

使用例を確認し、この API のステータスを最新の状態に保つには、この API 提案の問題を確認してください。

拡張機能によって提供される MCP サーバー

拡張機能は、新しい提案された API を使用して、エディターにプログラムで拡張機能を提供できるようになりました。これは、ユーザーが設定や mcp.json で各サーバーの構成をハードコーディングする代替手段となります。

この API に興味がある場合は、そのサンプルAPI 提案の問題を参照して、この API のステータスを最新の状態に保ってください。

MCP ツール注釈

VS Code は、適切なツール注釈で構成されたツールを持つ MCP サーバーの人間が読める名前を表示するようになりました。さらに、注釈で readOnlyHint: true とマークされたツールは、ユーザー確認なしで実行できるようになります。

可変行の高さ

Monaco エディターで可変行の高さを定義できるようになりました。これは、IModelDecorationOptions 型で line height 値を設定することで行います。1 つの行に 2 つの行の高さが設定されている場合、2 つのうちの最大値がその行で使用されます。

現時点ではシンプルにするため、行の高さは対応するデコレーション範囲の最初の行にのみ設定されます。次の画面記録では、24 行目と 32 行目は、既定の行の高さよりも大きい行の高さでレンダリングされています。

この作業はまだ拡張機能では利用できませんが、さらなるテストの後で展開されます。

注目すべき修正点

  • 244939 - 個人用 Microsoft アカウントが非常に早くログアウトする (数分から数時間)

ありがとうございます

最後に、VS Codeの貢献者の皆様に心からの感謝を申し上げます。

問題追跡

問題追跡への貢献者

プルリクエスト

vscodeへの貢献者

vscode-css-languageserviceへの貢献者

vscode-js-debugへの貢献者

vscode-json-languageserviceへの貢献

vscode-jupyterへの貢献者

vscode-mypyへの貢献

vscode-notebook-renderers への貢献

vscode-pull-request-githubへの貢献者

vscode-python-debuggerへの貢献者

vscode-python-environments への貢献

language-server-protocolへの貢献者

monaco-editorへのコントリビューション