に参加して、VS Code の AI 支援開発について学びましょう。

2025年5月 (バージョン 1.101)

リリース日: 2025年6月12日

セキュリティ更新: 以下の拡張機能にはセキュリティ更新プログラムがあります: ms-python.python

アップデート 1.101.1: このアップデートは、これらの問題に対処します。

アップデート 1.101.2: このアップデートは、これらの問題に対処します。

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


Visual Studio Code の2025年5月リリースへようこそ。このバージョンには、気に入っていただけるであろう多くの更新が含まれています。主なハイライトの一部を以下に示します。

  • MCP

    • プロンプト、リソース、サンプリングのサポートにより、エージェントコーディングフローを拡張します (詳細を表示)。
    • 認証を必要とする MCP サーバーにアクセスします (詳細を表示)。
    • 開発モードで MCP サーバーをデバッグします (詳細を表示)。
    • 拡張機能から MCP サーバーを公開します (詳細を表示)。
  • チャット

    • 関連するツールをツールセットに結合してグループ化し、管理します (詳細を表示)。
  • ソース管理

    • ソース管理グラフビューでファイルを表示します (詳細を表示)。
    • VS Code 内から GitHub Copilot コーディングエージェントの作業を割り当てて追跡します (詳細を表示)。

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

チャット

チャットツールセット

VS Code では、提案された API または UI を通じてツールセットを定義できるようになりました。ツールセットは、個々のツールと同じように使用できるさまざまなツールのコレクションです。ツールセットを使用すると、関連するツールをグループ化しやすくなり、エージェントモードでそれらをすばやく有効または無効にできます。たとえば、以下のツールセットは GitHub 通知の管理用です ( GitHub MCP サーバーを使用)。

{
  "gh-news": {
    "tools": ["list_notifications", "dismiss_notification", "get_notification_details"],
    "description": "Manage GH notification",
    "icon": "github-project"
  }
}

ツールセットを作成するには、コマンドパレットから ツールセットの設定 > 新しいツールセットファイルを作成 コマンドを実行します。次に、ツールセットに含めるツールを選択し、説明とアイコンを提供できます。

チャットクエリでツールセットを使用するには、#gh-news のように名前を # でメンションして参照します。チャット入力ボックスのツールピッカーから選択することもできます。

Screenshot of the Chat view showing a query about unread notifications, using the 'gh-news' tool set highlighted in both the chat interface and a JSON configuration file which defines this tool set.

ドキュメントでツールセットの詳細をご覧ください。

MCP のプロンプトサポート

VS Code のモデルコンテキストプロトコルサポートにプロンプトサポートが含まれるようになりました。プロンプトは、言語モデル用の再利用可能なスニペットやタスクを生成するために MCP サーバーによって定義できます。プロンプトは、チャットでスラッシュ / コマンドとして、/mcp.servername.promptname の形式でアクセスできます。プレーンテキストを入力するか、コマンド出力をプロンプト変数に含めることができます。また、サーバーが提供する場合は補完もサポートしています。

次の例は、AI を使用してプロンプトを生成し、Gistpad MCP サーバーを使用して保存し、それを使用して変更ログエントリを生成する方法を示しています。

MCP のリソースサポート

VS Code のモデルコンテキストプロトコルサポートにリソースサポートが含まれるようになりました。これにはリソーステンプレートのサポートも含まれます。これはいくつかの場所で利用できます。

  1. MCP ツール呼び出しから返されたリソースはモデルで利用でき、保存 ボタンまたはリソースをエクスプローラービューにドラッグすることでチャットに保存できます。
  2. リソースは、チャットの コンテキストを追加... ボタンをクリックし、MCP リソース... を選択することでコンテキストとして添付できます。
  3. MCP: リソースの参照 コマンド、または MCP: サーバーを一覧表示 コマンドのエントリを使用してサーバー全体のリソースを参照および表示できます。

これは、Gistpad MCP サーバーからチャットにリソースを添付する例です。

MCP のサンプリングサポート (試験段階)

VS Code のモデルコンテキストプロトコルサポートにサンプリングが含まれるようになりました。これにより、MCP サーバーはモデルに要求を返すことができます。MCP サーバーが初めてサンプリング要求を行う際に確認を求められます。また、MCP: サーバーを一覧表示 でサーバーを選択することで、MCP サーバーがアクセスできるモデルを設定したり、要求ログを表示したりできます。

サンプリングサポートはまだ初期段階であり、今後のイテレーションで拡張および改善する予定です。

MCP の認証サポート

VS Code は、認証を必要とする MCP サーバーをサポートするようになり、そのサービスに対してユーザーアカウントに代わって動作する MCP サーバーと対話できるようになりました。

この機能は、クライアント向けの MCP 認証仕様を実装しており、両方をサポートします。

  • 2025-3-26 仕様。MCP サーバーが認証サーバーとして動作します。
  • ドラフト仕様。MCP サーバーがリソースサーバーとして動作します (これは間もなく最終化される予定です)。

MCP サーバーがドラフト仕様を実装し、GitHub または Entra を認証サーバーとして利用している場合、ど​​の MCP サーバーがアカウントにアクセスできるかを管理できます。

Screenshot of the "Manage Trusted MCP Servers" option in the account menu.

Screenshot of the "Manage Trusted MCP Servers" Quick Pick.

また、そのサーバーがどの COM アカウントを使用すべきかを管理することもできます (前のクイックピックの歯車ボタンを使用)。

Screenshot of the "Account Preference" Quick Pick.

動的クライアント登録に依存する他の MCP サーバーの場合、認証状態は他のすべてと同じ場所に含められます (たとえば Linear の場合)。

Screenshot of Linear appearing in the account menu.

そこからサインアウトすることもできます。これらについては、コード認証フローだけでなく、認証サーバーがサポートしている場合はデバイスコードフローもサポートしています。

また、Authentication: Remove Dynamic Authentication Providers コマンドを導入しました。これにより、これらの動的クライアント登録をクリーンアップできます。これにより、VS Code に発行されたクライアント ID とこの認証プロバイダーに関連付けられたすべてのデータが破棄されます。

MCP: サーバーを追加... コマンドを使用して MCP サーバーを追加できることを忘れないでください。これは、認証付きサーバーと同じエントリポイントです。

MCP 開発モード

サーバー構成に dev キーを追加することで、MCP サーバーの開発モードを有効にできます。これは、2つのプロパティを持つオブジェクトです。

  • watch: ファイル変更を監視するためのファイルグロブパターン。MCP サーバーを再起動します。
  • debug: MCP サーバーでデバッガーを設定できます。現在、nodepython でそれぞれ起動された Node.js および Python サーバーのデバッグのみをサポートしています。

.vscode/mcp.json

{
  "servers": {
    "gistpad": {
      "command": "node",
      "args": ["build/index.js"],
+     "dev": {
+       "watch": "build/**/*.js",
+       "debug": { "type": "node" }
+     },

チャット UX の改善

お客様からのフィードバックに基づいて、VS Code のチャットユーザーエクスペリエンスを継続的に改善しています。そのようなフィードバックの1つは、チャットでユーザーメッセージと AI 応答を区別するのが難しいというものでした。これに対処するため、ユーザーメッセージの外観をより明確にしました。

以前のリクエストを取り消すことも、より明確になりました。リクエストにカーソルを合わせ、X ボタンを選択して、そのリクエストと後続のリクエストを取り消します。または、より迅速に、⌘Backspace (Windows、Linux Delete) キーボードショートカットを使用してください。

最後に、チャット入力ボックスからの添付ファイルがよりナビゲートしやすくなりました。

ドキュメントでVS Code でのチャットの使用について詳しく学びましょう。

より効率的に編集を適用する

ファイルを編集する場合、VS Code は2つの異なるアプローチを取ることができます。ファイルを上から下まで書き直すか、複数の小さな編集を行うかです。両方のアプローチは異なります。たとえば、前者は大きなファイルでは遅く、中間状態は正常にコンパイルされないことがよくあります。そのため、UI は適応し、必要に応じてのみ自動保存と波線を条件付きで無効にします。

保持 および 元に戻す コマンドのキーバインディングも揃えました。個々の変更の保持および元に戻すは、⌘Y (Windows、Linux Ctrl+Y) および ⌘N (Windows、Linux Ctrl+N) で行われるようになりました。同様に、ファイル内のすべての変更を保持および元に戻すキーバインディングも揃えられ、現在は ⇧⌘Y (Windows、Linux Ctrl+Shift+Y) および ⇧⌘N (Windows、Linux Ctrl+Shift+N) となっています。これは単なる配置のためだけでなく、以前の人気のある編集コマンド (すべて左を削除 など) との競合も解消します。

暗黙のコンテキスト

現在のファイルをコンテキストとしてチャットに追加する仕組みを合理化し、簡素化しました。多くの人が、以前あった「目玉トグル」を少し扱いにくいと感じていました。現在、現在のファイルは提案されたコンテキスト項目として提供されます。項目を選択するだけで、チャットコンテキストに追加または削除できます。プロンプト入力フィールドから、Shift+Tab, Enter を押すと、キーボードで素早くこれを行うことができます。

さらに、エージェントモードでは、現在のエディターに関するヒントが含まれています。これにはファイルの内容は含まれず、ファイル名とカーソル位置のみが含まれます。その後、エージェントは、クエリに関連すると判断した場合、持っているツールを使用してファイルの内容を自分で読み取ることができます。

ドキュメントでチャットにコンテキストを追加する方法について詳しく学びましょう。

タスク構成エラーを修正

タスクと問題マッチャーの構成は難しい場合があります。タスク構成にエラーがある場合に提供される Github Copilot で修正 アクションを使用して、すばやく効率的に対処します。

カスタムチャットモード (プレビュー)

デフォルトでは、チャットビューは「質問」、「編集」、「エージェント」の3つの組み込みチャットモードをサポートしています。各チャットモードには、LLM がリクエストをどのように処理すべきかを記述する一連の基本指示と、そのモードで使用できるツールのリストが付属しています。

VS Code で独自のカスタムチャットモードを定義できるようになりました。カスタムチャットモードでは、チャットの動作を調整し、そのモードでどのツールが利用可能かを指定できます。これは、特定のワークフローや、LLM に特定の指示を与えたい場合に特に便利です。たとえば、コードベースへの読み取り専用アクセスのみを持つ、新機能の計画用のカスタムチャットモードを作成できます。

カスタムチャットモードを定義して使用するには、次の手順に従います。

  1. コマンドパレットから チャット: チャットモードの設定 コマンドを使用して、カスタムモードを定義します。
  2. 作成された *.chatprompt.md ファイルに、カスタムチャットモードの指示と利用可能なツールを指定します。
  3. チャットビューで、チャットモードドロップダウンリストからチャットモードを選択します。
  4. チャットプロンプトを送信します。

Screenshot of the custom chat mode selected in the Chat view.

次の例は、カスタムの「計画」チャットモードを示しています。

---
description: Generate an implementation plan for new features or refactoring existing code.
tools: ['codebase', 'fetch', 'findTestFiles', 'githubRepo', 'search', 'usages']
---
# Planning mode instructions
You are in planning mode. Your task is to generate an implementation plan for a new feature or for refactoring existing code.
Don't make any code edits, just generate a plan.

The plan consists of a Markdown document that describes the implementation plan, including the following sections:

* Overview: A brief description of the feature or refactoring task.
* Requirements: A list of requirements for the feature or refactoring task.
* Implementation Steps: A detailed list of steps to implement the feature or refactoring task.
* Testing: A list of tests that need to be implemented to verify the feature or refactoring task.

: この機能は開発中ですが、ぜひ試してみてください。VS Code Insiders で最新の進捗を追跡し、動作しない点や不足している点をお知らせください。

タスク診断認識

チャットエージェントがタスクを実行する際に、問題マッチャーによって識別されたエラーや警告を認識するようになりました。この診断コンテキストにより、チャットエージェントは問題が発生したときに、よりインテリジェントに対応できます。

ターミナル cwd コンテキスト

エージェントモードでターミナルが開かれ、シェル統合がアクティブな場合、チャットエージェントは現在の作業ディレクトリ (cwd) を認識します。これにより、より正確でコンテキストを認識したコマンドサポートが可能になります。

フローティングウィンドウの改善

チャットセッションをフローティングウィンドウに移動すると、タイトルバーに2つの新しいアクションが利用可能になりました。

  • チャットを元の VS Code ウィンドウにドッキングします。
  • フローティングウィンドウで新しいチャットセッションを開始します。

Screenshot of the Chat view in a floating window, highlighting the Dock and New Chat buttons in the title bar.

ツール取得の確認

フェッチツールを使用すると、Web ページから情報を取得できます。プロンプトインジェクションの可能性について通知する警告メッセージを確定に追加しました。

Screenshot of the fetch tool with a warning about prompt injection.

組み込みツールのさらなるカスタマイズ

エージェントモードまたはカスタムモードで、すべての組み込みツールを有効または無効にできるようになりました。たとえば、エージェントモードがファイルを直接編集することを許可しないように editFiles を無効にしたり、ターミナルコマンドを実行しないように runCommands を無効にしたりできます。

エージェントモードで ツールを構成 ボタンを選択してツールピッカーを開き、目的のツールのセットを選択します。

Screenshot of the tool picker, showing the "editFiles" tool set item cleared.

このメニューの一部のエントリは、複数のツールをグループ化するツールセットを表します。たとえば、テキストファイルやノートブックを編集または作成するための複数のツールをモデルに提供します。これらはモデルファミリーによって異なる場合もあり、editFiles はこれらすべてをグループ化します。

要素をチャットに送信 (試験段階)

前回のマイルストーンで、新しい試験的な機能を追加しました。これは、Simple Browser を開き、埋め込みブラウザから Web 要素を選択してチャットに追加できるものです。

Screenshot showing the Live Preview extension, highlighting the overlay controls to select web elements from the web page.

この機能の改善を続けるにあたり、Live Preview 拡張機能でも Web 要素の選択をサポートしました。この拡張機能をダウンロードし、任意の HTML ファイルからライブサーバーを起動して試してみてください。

アクセシビリティ

ユーザーアクション要求音

チャットがユーザーアクションを必要とするときを示すためのアクセシビリティ信号を追加しました。これは、サウンドを微調整するにつれてオプトインされます。この動作は accessibility.signals.chatUserActionRequired で設定できます。

新しいコードアクション音

以下の操作に対して異なるサウンドを導入しました。

エージェントモードのアクセシビリティ改善

アクセシブルビューに確認ダイアログに関する豊富な情報が含まれるようになりました。これには、過去のツール実行、現在のツール実行、および保留中の確認が含まれます。これには、使用される入力も含まれます。

応答に確認ダイアログが表示される場合、アクションのタイトルが、対応するコードブロックの ARIA ラベル、応答の ARIA ラベル、およびライブアラートに含まれるようになり、スクリーンリーダーユーザーにとってより良いコンテキストが提供されます。

エディター体験

入力しながら検索

設定: editor.find.findOnType

入力しながら検索は検索コントロールのデフォルトの動作でしたが、今回、その動作を維持するか、無効にして Enter キーを押した後にのみ検索を実行するかを制御できるようになりました。

ネイティブウィンドウタイトルバー付きカスタムメニュー

設定: window.menuStyle

window.menuStyle 設定を使用して、Windows および Linux のメニューバーとコンテキストメニュー、macOS のコンテキストメニューで使用されるメニュースタイルを指定できるようになりました。

  • native: OS によってレンダリングされます。
  • custom: VS Code によってレンダリングされます。
  • inherit: window.titleBarStyle で設定されたタイトルバーのスタイルと一致します (カスタムメニューバーとコンテキストメニューでネイティブタイトルバーを使用できます)。

Linux ネイティブウィンドウコンテキストメニュー

カスタムタイトルバーのアプリケーションアイコンを右クリックすると、ネイティブウィンドウコンテキストメニューがサポートされるようになりました。

Screenshot of the native window context menu over the custom title bar.

プロセスエクスプローラーの Web サポート

プロセスエクスプローラーは、エディターウィンドウ用のワークベンチにあるフローティングウィンドウインフラストラクチャを使用するように変換されました。その結果、リモートに接続されている場合 (たとえば Codespaces など) にも Web でプロセスエクスプローラーをサポートするようになりました。

Screenshot of the VS Code process explorer in a floating window.

Windows シェル環境検出

Windows の PowerShell でシェル環境検出を実装しました。これにより、VS Code は、Node.js がさまざまなバージョンマネージャーを通じて構成する PATH 更新など、PowerShell プロファイルで構成された環境を継承します。

未公開拡張機能の警告

インストールされている拡張機能が Marketplace で利用できなくなった場合に警告インジケーターが表示されるようになり、非公開または削除された可能性のある問題のある拡張機能を特定するのに役立ちます。

Screenshot of an extension with a warning indicator and a message indicating it's no longer available in the Marketplace.

設定検索候補 (プレビュー)

設定: workbench.settings.showAISearchToggle

このマイルストーンでは、設定エディターにトグルを追加しました。これにより、文字列照合に基づく結果ではなく、意味的に類似した結果を見つける AI 検索が開始されます。たとえば、AI 検索は「テキストサイズを増やす」と検索した場合に editor.fontSize 設定を見つけます。

トグルを表示するには、設定を有効にして VS Code を再ロードします。また、精度が低い設定検索結果の一部を特定して修正する作業も行っています。自然言語クエリが期待される設定を見つけられなかった場合は、フィードバックをお待ちしております。

次のマイルストーンでは、トグルを削除し、試験段階の設定を、より遅い AI 検索結果をリストの最後に直接追加するタイミングを制御する設定に変更することも検討しています。

キーワード候補の検索 (プレビュー)

設定: search.searchView.keywordSuggestions

前回のマイルストーンで、関連する結果をより迅速に見つけるのに役立つ、検索ビューにキーワード候補を導入しました。今回、候補のパフォーマンスを大幅に改善し、以前よりも約5倍速く結果が表示されるようになりました。

また、設定をチャット拡張機能から VS Code コアに移動し、名前を github.copilot.chat.search.keywordSuggestions から search.searchView.keywordSuggestions に変更しました。

意味検索の動作オプション (プレビュー)

設定: search.searchView.semanticSearchBehavior

検索ビューの意味検索では、テキストの一致だけでなく、クエリの意味に基づいて結果を取得できます。これは、検索する正確な用語がわからない場合に特に便利です。

デフォルトでは、意味検索は明示的に要求した場合にのみ実行されます。意味検索がトリガーされるタイミングを制御する設定が追加されました。

  • manual (デフォルト): UI から手動でトリガーされた場合にのみ意味検索を実行します (⌘I (Windows、Linux Ctrl+I))。
  • runOnEmpty: テキスト検索が結果を返さない場合に、自動的に意味検索を実行します。
  • auto: すべての検索クエリに対して、テキスト検索と並行して常に意味検索を実行します。

編集コンテキスト

設定: editor.editContext

editor.editContext 設定が Stable 版でデフォルトで有効になりました。これにより、エディターの入力は EditContext API によって提供されるようになりました。これは、特に IME エクスペリエンスに関連する多数のバグを修正し、今後はエディター内でのより汎用性のある堅牢な入力エクスペリエンスへの道を開きます。

EditContext API の詳細については、MDN ドキュメントを参照してください。

コード編集

NES インポート候補

設定: github.copilot.nextEditSuggestions.fixes

先月、TypeScript と JavaScript の不足しているインポートステートメントの追加を自動的に提案する次期編集候補のサポートを導入しました。このリリースでは、これらの候補の精度と信頼性を向上させ、Python ファイルにもサポートを拡大しました。

Screenshot showing NES suggesting an import statement.

NES はすべての VS Code Insiders ユーザーに対して有効になっており、6月中に Stable ユーザーに対してデフォルトで徐々に有効になります。いつでも設定から NES を有効にすることができます。

NES 承認フロー

キーボードナビゲーションの改善により、次の編集候補の承認がよりスムーズになりました。候補を承認すると、入力を再開しない限り、Tab キーを1回押すだけで後続の候補を引き続き承認できます。入力を開始すると、Tab キーを押してまずカーソルを次の候補に移動してから承認できます。

ノートブック

エージェントセル実行のフォローモード

設定: github.copilot.chat.notebook.followCellExecution.enabled

フォローモードでは、ノートブックビューがエージェントによって現在実行されているセルに自動的にスクロールします。Jupyter Notebook のエージェントセル実行のフォローモードを有効または無効にするには、github.copilot.chat.notebook.followCellExecution.enabled 設定を使用します。

エージェントがセル実行ツールを使用すると、ノートブックツールバーにピンアイコンが更新され、フォローモードの状態が示されます。基本設定値を変更せずにエージェント応答の途中で動作を切り替えることができ、エージェントの作業をリアルタイムで追跡し、エージェントが反復を続ける間にコードの特定の部分を確認したいときにオフにすることができます。再度フォローしたい場合は、モードを切り替えるだけで、次の実行に参加できます。

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

ノートブックを構成

Jupyter 拡張機能は、Jupyter Notebook のカーネルを構成するためのツールを提供します。このツールは、カーネルが選択され、ノートブックで使用できるようになっていることを保証します。これには、必要に応じて仮想環境を作成するプロセス (推奨されるアプローチ) や、既存の Python 環境を選択するように促すプロセスが含まれます。

このツールは、LLM がユーザーの操作を最小限に抑えてセルを実行するなどのノートブック操作を実行できるようにし、それによってエージェントモードでの全体的なユーザーエクスペリエンスを向上させます。

長時間実行されるエージェントワークフロー

エージェントは、正確なコンテキストで軌道に乗るのに役立つ内部ノートブック要約ツールにアクセスできます。コンテキストが大きすぎて複雑な操作をエージェントが実行し続けられない場合、会話履歴を要約する際にもその要約が含まれます。

実行確認時のセルプレビュー

エージェントがセルの実行を確認する際に、ノートブックセルからコードのスニペットが表示されます。チャットビューのセルリンクから、ノートブックのセルに直接移動することもできるようになりました。

ソース管理

Copilot コーディングエージェントの統合

Copilot コーディングエージェントを使用すると、GitHub Copilot は人間の開発者と同じように、バックグラウンドで独立してタスクを完了できます。VS Code 内からエージェントのタスクを割り当てたり追跡したりしやすくするために、GitHub Pull Requests 拡張機能を拡張しました。

拡張機能に次の機能を追加しました。

  • Copilot に割り当てる: VS Code の課題ビューまたは PR ビューから、プルリクエストまたは課題を Copilot に割り当てます。
  • Copilot on My Behalf PR クエリ: Copilot があなたのために作業しているすべてのプルリクエストをすばやく表示します。
  • PR ビュー: Copilot コーディングエージェントのステータスを確認し、ブラウザでセッションの詳細を開きます。

Screenshot showing the GitHub Pull Requests view, highlighting the assign to Copilot action, and the PR query for work assigned to Copilot.

ソース管理履歴項目の詳細

多くの要望により、ソース管理グラフビューで項目を選択すると、その履歴項目のリソースが表示されるようになりました。... メニューからツリービューまたはリストビューの表示を選択できます。

履歴項目のすべてのリソースを複数ファイル差分エディターで開くには、ホバー時に 変更を開く アクションを使用します。グラフビューから特定のリソースを選択すると、そのリソースのみの差分エディターが開きます。特定のバージョンのファイルを開くには、ファイルを開く アクションを選択します。

履歴項目をチャットコンテキストに追加

ソース管理履歴項目をチャットリクエストのコンテキストとして追加できるようになりました。これは、特定のコミットやプルリクエストの内容をチャットプロンプトのコンテキストとして提供したい場合に便利です。

Screenshot of the Chat view input box that has a history item added as context.

チャットに履歴項目を追加するには、チャットビューから コンテキストを追加 > ソース管理 を使用し、特定の履歴項目を選択します。または、ソース管理グラフで履歴項目を右クリックし、コンテキストメニューから Copilot > 履歴項目をチャットに追加 を選択します。

タスク

インスタンスポリシー

タスクの runOptionsinstancePolicy プロパティが追加されました。これにより、タスクが instanceLimit に達したときに何が起こるかを決定します。

オプションには、prompt (デフォルト)、silentterminateNewestterminateOldest、および warn があります。

Screenshot showing an  being configured in a  file and displays the options with prompt as the default value.

ターミナル

言語サーバーベースのターミナル提案

インタラクティブな Python REPL セッションで、言語サーバーの補完がターミナルで利用できるようになりました。これにより、エディターで受け取る言語補完と同じものがターミナル内でも提供されます。Python (Pylance 経由) からのサポートを開始し、将来的にはより多くの言語に拡大する予定です。

試すには、次の設定が有効になっていることを確認してください。

リモート開発

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

主なハイライトは次のとおりです。

  • SSH 接続前スクリプト
  • リモートエクスプローラーの改善

これらの機能の詳細については、リモート開発リリースノートをご覧ください。

拡張機能への貢献

Python

Python チャットツール

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

「Python 環境を構成」ツールは、Python 環境がワークスペースに対して正しく設定されていることを保証します。これには、必要に応じて仮想環境を作成し、それをワークスペースのアクティブな Python 環境として選択することが含まれます。

以前にPython 環境拡張機能 (プレビュー) で導入されたツールは、Python 拡張機能に移行され、Python 拡張機能がインストールされているすべてのユーザーがこれらのツールを利用できるようになりました。

テンプレートからプロジェクトを作成

Python Environments 拡張機能が Python パッケージと基本的なスクリプトのプロジェクト作成をサポートするようになり、スキャフォールディングをスキップしてより迅速にコーディングを開始できるようになりました。Python Envs: Create Project from Template コマンドを使用して、パッケージを作成するかスクリプトを作成するかを選択します。

パッケージ作成の場合、パッケージに名前を付け、仮想環境を作成し、テストサブフォルダー、pyproject.tomldev-requirements.txt、およびボイラープレートの __main__.py__init__.py ファイルを含むスキャフォールドされたプロジェクトを受け取ることができます。

スクリプトの場合、選択した名前で新しい Python ファイルを作成し、ボイラープレートコードを含めます。

PyEnv および Poetry のサポート

Python Environments 拡張機能で、環境管理用の pyenv、パッケージおよび環境管理用の poetry の両方のサポートを追加しました。

GitHubプルリクエスト

GitHub Pull Requests 拡張機能は、プルリクエストや課題の作業、作成、管理を可能にし、さらなる進歩を遂げました。新しい機能には以下が含まれます。

  • プライベートリポジトリからのコメント内の画像が、プルリクエストファイルコメントに表示されるようになりました。
  • 「通知」ビューがデフォルトで折りたたまれた状態で表示されるようになりました。タイムラインおよび課題/プルリクエスト本文内の課題およびプルリクエストリンクは、ブラウザではなく VS Code で開かれるようになりました。
  • 「プルリクエスト」ビューの「私に割り当てられたもの」クエリが削除され、「ローカルプルリクエストブランチ」および「すべてのオープン」クエリは githubPullRequests.queries 設定を使用して削除できます。Copilot を持つリポジトリの場合、設定が未構成の場合に「Copilot on My Behalf」クエリが追加されます。
  • Copilot の「作業開始」、「作業停止」、「セッションの表示」がタイムラインに表示されるようになりました。

拡張機能の 0.112.0 リリースに関する変更ログを確認して、その他のハイライトについて学びましょう。

拡張機能の作成

MCP 拡張機能 API

拡張機能は、MCP サーバーのコレクションを公開できるようになりました。これにより、MCP サーバーを拡張機能とバンドルしたり、他のソースから MCP サーバーを動的に検出する拡張機能を構築したりできます。MCP 拡張機能開発ガイドまたはMCP 拡張機能サンプルをチェックして、詳細を学びましょう。

拡張機能パッケージ化時のシークレットスキャン

VSCE は、拡張機能のパッケージ化時にシークレットをスキャンするようになりました。ソースファイル内に潜在的なシークレット (例: API キー、トークン、資格情報、または .env のような環境変数ファイル) が検出された場合、VSCE はパッケージ化プロセス中にエラーを表示します。これにより、機密情報が誤って Marketplace に公開されるのを防ぐことができます。拡張機能を公開する前に、必ずエラーを確認して対処してください。

特定のチェックをバイパスする必要がある場合は、VSCE の実行時に --allow-package-secrets または --allow-package-env-file フラグを使用できます。これらのフラグを使用すると、パッケージ化中にスキップするシークレットまたは環境ファイルのチェックを設定できます。

ウェブ環境検出

⚠️ 破壊的変更 ⚠️

設定: extensions.supportNodeGlobalNavigator

当社のElectron 35 ランタイムアップデートの一部として、Node.js 拡張ホストが v20 から v22 にアップデートされました。このアップデートにより、デスクトップおよびリモート拡張ホストでnavigator グローバルオブジェクトのサポートが追加されます。

この変更は、Web 環境を検出するために navigator オブジェクトの存在に依存する拡張機能にとって破壊的な変更となる可能性があります。

拡張機能作成者の移行を支援するため、globalThis.navigator のポリフィルを作成しました。これは undefined に初期化されるため、拡張機能は引き続き正しく動作します。このポリフィルは extensions.supportNodeGlobalNavigator VS Code 設定の背後にあります。デフォルトでは、この設定は無効でポリフィルが有効になっています。拡張機能がこのように navigator にアクセスしようとすると、テレメトリーをキャプチャし、エラーをログに記録します (拡張機能開発モードの場合)。

将来的には、この設定がデフォルトで有効になる可能性があるため、拡張機能作者は新しい navigator グローバルオブジェクトと互換性があるようにコードを移行することを強くお勧めします。コードを移行するには、次の手順に従ってください。

  • 拡張機能から発生するエラーコールスタックを持つ PendingMigrationError が拡張ホストログにないか確認してください。
  • typeof navigator === 'object' のようなチェックを、必要に応じて typeof process === 'object' && process.versions.node に移行するようにしてください。
  • extensions.supportNodeGlobalNavigator を有効にします。
  • 拡張機能の動作が変わらないことを確認します。

提案されたAPI

認証プロバイダー: MCP 用のサポートされている認証サーバー

現在、MCP 認証でのみ利用されていますが、この API 提案により、AuthenticationProvider がそれに関連付けられている認証サーバーを宣言できるようになります。

たとえば、GitHub 認証プロバイダーを見ると、典型的な GitHub 認証 URL が認証プロバイダーの貢献authorizationServerGlobs プロパティに含まれています。

{
  "label": "GitHub",
  "id": "github",
  "authorizationServerGlobs": ["https://github.com/login/oauth"]
}

このプロパティは拡張機能のアクティベーションに使用されます。要求された認証サーバーが一致する場合、拡張機能がアクティブ化されます。

さらに、認証プロバイダーを登録するときは、最終的な認証サーバー URL グロブを含める必要があります。GitHub 認証がここで行うことと同様です。

vscode.authentication.registerAuthenticationProvider(
  type,
  this._githubServer.friendlyName,
  this,
  {
    supportsMultipleAccounts: true,
    supportedAuthorizationServers: [
      ghesUri ?? vscode.Uri.parse('https://github.com/login/oauth')
    ]
  }
);

より複雑な例として、Microsoft 認証を見てみましょう。認証サーバーは、テナントがパスに配置されるかどうかに依存します。そのため、これには貢献でワイルドカードを使用します。

{
  "label": "Microsoft",
  "id": "microsoft",
  "authorizationServerGlobs": [
    "https://login.microsoftonline.com/*/v2.0"
  ]
},

そして登録

authentication.registerAuthenticationProvider('microsoft', 'Microsoft', authProvider, {
  supportsMultipleAccounts: true,
  supportedAuthorizationServers: [Uri.parse('https://login.microsoftonline.com/*/v2.0')]
});

その後、呼び出し元が認証を要求する際に認証サーバー URL を渡すと、既に存在する AuthenticationProviderSessionOptions を介して getSessions 関数と createSession 関数の両方に渡されます。

前述のとおり、この機能は現在 MCP サポートで利用されており、MCP サーバーから認証する認証サーバー URL を受け取ります。その URL は認証プロバイダーにマップされ、存在しない場合は、その認証サーバーの認証プロバイダーが動的に作成されます。

完全な API 提案はvscode リポジトリで見つけることができ、GitHub の課題でフィードバックをお待ちしております!

エンジニアリング

Electron 35 アップデート

このマイルストーンでは、Electron 35 アップデートを Stable リリースユーザーに提供しています。このアップデートには Chromium 134.0.6998.205 と Node.js 22.15.1 が含まれています。Insiders ビルドで自己ホストし、早期フィードバックを提供してくださったすべての方々に感謝いたします。

実世界の拡張機能における ESM の採用

前回のマイルストーンで、JavaScript モジュール (ESM) のサポートを発表しました。これにより、拡張機能で importexport ステートメントを使用できますが、現在、NodeJS 拡張ホストをターゲットとする場合に限られます。

今月、GitHub Issue Notebooks で実際に採用しました。この拡張機能は NodeJS 拡張ホスト (ESM 拡張機能をサポート) と、現在 ESM 拡張機能をサポートしていない Web Worker 拡張ホストの両方で実行できるため、これは簡単ではありませんでした。これにはより複雑なバンドラー構成が必要であり、そのesbuild-configからヒントを得ることができるかもしれません。

注目すべき修正点

  • 250077 - Tree-Sitter ベースのシンタックスハイライトはモデルサービスに依存

ありがとうございます

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

問題追跡

問題追跡への貢献者

プルリクエスト

vscodeへの貢献者

vscode-copilot-release への貢献

vscode-css-languageserviceへの貢献者

vscode-custom-data への貢献

vscode-eslintへの貢献者

vscode-generator-codeへの貢献者

vscode-js-debugへの貢献者

vscode-jupyterへの貢献者

  • @WillHirsch: パッケージインストールでパーセントではなくバンを使用した場合の診断の深刻度をダウングレード PR #16601

vscode-languageserver-nodeへの貢献者

vscode-markdown-tm-grammar への貢献

vscode-prompt-tsxへの貢献者

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

  • @kabel (Kevin Abel): プライベートな GitHub メールアドレスがない場合、確認済みの GitHub メールアドレスを許可 PR #6921

vscode-python-debuggerへの貢献者

debug-adapter-protocolへの貢献者

language-server-protocolへの貢献者

lsprotocol への貢献

© . This site is unofficial and not affiliated with Microsoft.