コンテンツにスキップ

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

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


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

  • チャット
    • カスタム指示と再利用可能なプロンプト (詳細...)。
    • GitHub、拡張機能、ノートブック用のツールによるよりスマートな結果 (詳細...)。
    • MCP の画像およびストリーマブル HTTP サポート (詳細...)。
  • チャットパフォーマンス
    • チャット要求の繰り返しに対する応答の高速化 (詳細...)。
    • エージェントモードでの編集の高速化 (詳細...)。
  • エディターエクスペリエンス
    • チャットとエディターのマルチウィンドウサポートの改善 (詳細...)。
    • ステージされた変更の識別が容易に (詳細...)。

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

チャット

プロンプトファイルと指示ファイル

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

指示ファイル

設定: setting(chat.instructionsFilesLocations)

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

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

特定のチャット要求に手動で指示を添付することも、自動的に追加することもできます:

  • 手動で追加するには、チャットビューの コンテキストの追加 ボタンを使用し、指示... を選択します。 または、コマンドパレットから チャット: 指示の添付... コマンドを使用します。これにより、既存の指示ファイルを選択したり、添付する新しい指示ファイルを作成したりできるピッカーが表示されます。
  • プロンプトに指示を自動的に追加するには、指示ファイルに applyTo フロントマターヘッダーを追加して、指示が適用されるファイルを示します。チャット要求に指定された glob パターンに一致するファイルが含まれている場合、指示ファイルは自動的に添付されます。

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

    ---
    applyTo: '**/*.ts'
    ---
    複数行ブロックの場合、波括弧を別々の行に配置します:
    if (condition)
    {
      doSomething();
    }
    else
    {
      doSomethingElse();
    }
    

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

ドキュメントの 指示ファイル の詳細をご覧ください。

プロンプトファイル

設定: setting(chat.promptFilesLocations)

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

プロンプトファイルは .prompt.md ファイルサフィックスを使用します。ユーザーデータフォルダーまたはワークスペースに配置できます。setting(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']
---
現在のリリースで作業した機能のリリースノートを生成し、リリースノートファイルで更新します。[リリースノート作成指示ファイル](.github/instructions/release-notes-writing.instructions.md) をガイドとして使用してください。

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

ドキュメントの プロンプトファイル の詳細をご覧ください。

改善点と注意点

  • 指示ファイルとプロンプトファイルには、開いているドキュメントの 言語モード ダイアログで構成可能な独自の言語 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: '**'
---
VS Code コードベースで関連するコードスニペットを見つけるには、`microsoft/vscode` で `#githubRepo` ツールを使用します。
TypeScript がどのように実装されているかについての質問に答えるには、`microsoft/typescript` で `#githubRepo` ツールを使用します。

指示ファイルからのヒントを使用してエージェントモードで #githubRepo ツールを使用しているスクリーンショット。

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

また、#githubRepo ツールは関連するコードスニペットの検索専用です。GitHub MCP サーバー は、GitHub の issue とプルリクエストを操作するためのツールを提供します。VS Code での MCP サーバーの追加 の詳細をご覧ください。

拡張機能ツールを使用した Marketplace 拡張機能の検索

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

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

先月、チャットから Web ページのコンテンツを取得し、プロンプトのコンテキストとして含めるための取得ツール (#fetch) を導入しました。そのリリースノートを見逃した場合は、取得ツールの初期リリース のリリースノートと例を確認してください。

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

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

取得ツールの使用方法や、そこから見たい機能があれば、ぜひお聞かせください。

チャット入力の改善

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

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

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

キーボードショートカット kb(workbench.action.chat.open) は引き続きチャットビューを開くだけですが、kb(workbench.action.chat.openAgent) ショートカットはチャットビューを開き、エージェントモード に切り替えるようになりました。他のチャットモードのキーボードショートカットを設定したい場合は、各モードにコマンドがあります:

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

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

設定: setting(github.copilot.chat.agent.autoFix)

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

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

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

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

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

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

チャットビューに要約された会話メッセージが表示されているスクリーンショット。

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

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

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

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

VS Code での MCP サポート の詳細をご覧ください。

画像出力の MCP サポート

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

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

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

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

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

MCP 設定生成で入力を使用

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

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

設定: setting(inlineChat.enableV2:true)

インラインチャット kb(inlineChat.start) の改良版に取り組んできました。そのテーマは依然として「チャットをコードに取り込む」ですが、内部的にはチャット編集と同じロジックを使用しています。これは、利用可能なコンテキストのより良い使用と、より良いコード編集戦略を意味します。setting(inlineChat.enableV2:true) を介してインラインチャット v2 を有効にできます。

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

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

設定: setting(chat.sendElementsToChat.enabled)

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

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

チャットに添付するものを次のように構成します:

  • setting(chat.sendElementsToChat.attachCSS): 関連する CSS の添付を有効または無効にします
  • setting(chat.sendElementsToChat.attachImages): 選択した要素のスクリーンショットの添付を有効または無効にします

この実験的な機能は、すべての簡易ブラウザーでデフォルトで有効になっていますが、setting(chat.sendElementsToChat.enabled) で無効にできます。

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

設定: setting(github.copilot.chat.newWorkspaceCreation.enabled)

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

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

アクセシビリティ

マージエディターの改善

マージエディターがよりアクセシブルになりました。利用可能なアクションについては、マージエディター内でアクセシビリティヘルプダイアログ (kb(editor.action.accessibilityHelp)) を開いてください。主なアクションには、マージエディター: マージの完了 (kb(mergeEditor.acceptMerge)) と マージエディター入力間の切り替え (kb(mergeEditor.toggleBetweenInputs)) があります。現在フォーカスされている入力も、支援技術に通知されるようになりました。

次の編集候補の機能強化

新しい設定 setting(accessibility.signals.nextEditSuggestion) は、予測された候補が利用可能になったときに通知します。アクセシブルビュー (kb(editor.action.accessibleView)) を介して候補を確認し、受け入れます。さらに、setting(accessibility.signals.diffLineAdded)setting(accessibility.signals.diffLineRemoved) は、ナビゲーション中に音声キューを提供し、差分レビューをアクセシブルにします。

アクセシブルビューから Copilot ユーザーリクエストを確認

エージェントモード では、ツールの呼び出しやターミナルコマンドの実行にユーザーの許可が必要になる場合があります。これらのアクションをアクセシブルビュー (kb(editor.action.accessibleView)) 内で確認します。

ユニークなアクセシビリティサウンド

setting(accessibility.signals.save.sound) は独自の明確なサウンドを持つようになり、setting(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: コンパクトモードを無効にします

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

セカンダリサイドバーのデフォルト表示

設定: setting(workbench.secondarySideBar.defaultVisibility)

デフォルトでは、新しいワークスペースまたはウィンドウを開くと、セカンダリサイドバーは非表示になります。新しい設定 setting(workbench.secondarySideBar.defaultVisibility) を使用すると、新しいワークスペースまたはウィンドウでセカンダリサイドバーを自動的に開くかどうかを制御できます。次の中から選択できます:

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

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

必須の拡張機能署名検証

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

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

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

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

VS Code 安定版への Copilot Chat プレリリースバージョンのインストール防止

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

フォーカスなしでビューを開くコマンド

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

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

設定: setting(github.copilot.chat.search.keywordSuggestions:true)

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

コード編集

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

設定: setting(github.copilot.nextEditSuggestions.enabled)

より高速で文脈に関連性の高いコード推奨を提供するように設計された、NES を強化する新しいモデルをご紹介します。この更新されたモデルはパフォーマンスが向上し、遅延が短縮された候補を提供し、侵入性が低く、最近の編集内容とより密接に連携する候補を提供します。この更新は、Visual Studio Code 内の AI 支援開発ツールを改良するための継続的な取り組みの一環です。

インポート候補

設定: setting(github.copilot.nextEditSuggestions.fixes:true)

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

NES がインポートステートメントを提案しているスクリーンショット。

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

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

画像 html 要素の代替テキストを生成しているスクリーンショット。

可変行の高さ

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

今のところ簡単にするために、行の高さは対応する装飾範囲の最初の行にのみ設定されることに注意してください。次のスクリーンレコーディングでは、24 行目と 32 行目はデフォルトよりも大きな行の高さでレンダリングされています。

この作業はまだ拡張機能では利用できませんが、さらにテストを行った後に展開される予定です。

ノートブック

検索と置換の履歴の永続化

ノートブック検索コントロールで、検索入力フィールドと置換入力フィールドの両方で永続的な履歴がサポートされるようになりました。これはリロード後も永続し、設定 setting(editor.find.history)setting(editor.find.replaceHistory) によって制御されます。

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

チャット内でのセル出力の使用に関する既存のサポートを強化するために、出力をチャットビューにドラッグしてシームレスな添付エクスペリエンスを実現できるようになりました。現在、画像とテキスト出力のみがサポートされています。画像 MIME タイプを持つ出力は直接ドラッグできますが、テキスト選択との衝突を避けるために、テキスト出力は kbstyle(alt) 修飾キーを押したままにしてドラッグを有効にする必要があります。今後のリリースで UX の改善を検討しています。

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

セルの実行

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

カーネル状態の取得

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

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

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

ソース管理

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

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

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

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

デバッグ

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

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

逆アセンブリビューのコンテキストメニューを示すスクリーンショット。

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

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

言語

CSS と HTML のブラウザーサポートの表示

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

CSS ホバーでのベースラインブラウザーサポートを示すスクリーンショット。

.*.env ファイルのデフォルト構文ハイライト

名前形式 .*.env のファイルは、.ini ファイルとして構文ハイライトされるようになりました。

JavaScript と TypeScript の展開可能なホバー (実験的)

設定: setting(typescript.experimental.expandableHover)

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

この機能はまだ実験的ですが、setting(typescript.experimental.expandableHover) を有効にすることで今すぐ試すことができます。たとえば、TypeScript nightly 拡張機能 をインストールするなどして、TypeScript バージョン 5.9 以降を使用している必要があります。

リモート開発

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

開発コンテナー指示ファイル

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

拡張機能への貢献

Python

分岐カバレッジのサポート

Python のテストエクスプローラーで分岐カバレッジがサポートされるようになりました!この機能には coveragepy バージョンが >= 7.7 である必要があることに注意してください。pip install coverage==7.7 を実行してカバレッジをアップグレードできます。

Python Environments クイック作成コマンド

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

Python: 環境の作成クイックピックでのクイック作成を示すスクリーンショット。

Python Environments チャットツール

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

Pylance 使用時のカラーピッカー

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

#RGB カラー形式の横のエディターに表示されるカラースウォッチを示すスクリーンショット。

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

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

AI を活用した文字列変換コードアクションを示すスクリーンショット。

このエクスペリエンスは、次の設定によって有効になります:

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

次に、クラスや関数などの新しいシンボルを定義すると、Copilot でシンボルを生成 コードアクションを選択して、AI に実装を処理させることができます。必要に応じて、Pylance の シンボルの移動 コードアクションを使用して、別のファイルに移動できます。

GitHub Pull Requests and Issues

プルリクエストと issue の作業、作成、管理を可能にする GitHub Pull Requests 拡張機能でさらに進捗がありました。新機能は次のとおりです:

  • 「#activePullRequest のすべてのコメントに対応する」など、アクティブなプルリクエストに関するチャットでの質問。
  • プルリクエストを表示できるのと同じように、Webview で issue を表示します。
  • 「プルリクエスト」、「Issue」、「通知」ビューの洗練と調整。
  • Copilot への issue の割り当て、Copilot の @メンションを有効にし、UI に適切に表示されるようにすることで、GitHub の Project Padawan のリリースに備えました。

拡張機能の 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') を含む) を使用できます。サンプルはこちらにあります: jrieken/vscode-esm-sample-extension

ESM サポートは、まだ Web ワーカー拡張機能ホスト用ではないことに注意してください。最初に克服する必要のある技術的な課題がいくつかあります。vscode#130367 で最新情報を投稿します。ご期待ください!

提案された API

画像のツール呼び出し

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

使用例とこの API のステータスの最新情報を確認するには、この API 提案の issue を確認してください。

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

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

この API に興味がある場合は、そのサンプルAPI 提案の issue を確認して、この API のステータスの最新情報を確認してください。

MCP ツールアノテーション

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

注目すべき修正

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

謝辞

最後になりましたが、VS Code の貢献者の皆様に心より感謝申し上げます。

Issue トラッキング

Issue トラッキングへの貢献:

プルリクエスト

vscode への貢献:

vscode-css-languageservice への貢献:

vscode-js-debug への貢献:

vscode-json-languageservice への貢献:

vscode-jupyter への貢献:

vscode-mypy への貢献:

  • @tdscheper (Tommy Scheper): cwd 設定オプションが ${nearestConfig} の場合、mypy.ini、.mypy.ini、pyproject.toml、setup.cfg のすべてを検索 PR #357

vscode-notebook-renderers への貢献:

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

vscode-python-debugger への貢献:

vscode-python-environments への貢献:

language-server-protocol への貢献:

monaco-editor への貢献: