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
-
チャット
- 関連するツールをツールセットに結合してグループ化し、管理します (詳細を表示)。
-
ソース管理
これらのリリースノートをオンラインで読みたい場合は、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 のように名前を # でメンションして参照します。チャット入力ボックスのツールピッカーから選択することもできます。

ドキュメントでツールセットの詳細をご覧ください。
MCP のプロンプトサポート
VS Code のモデルコンテキストプロトコルサポートにプロンプトサポートが含まれるようになりました。プロンプトは、言語モデル用の再利用可能なスニペットやタスクを生成するために MCP サーバーによって定義できます。プロンプトは、チャットでスラッシュ / コマンドとして、/mcp.servername.promptname の形式でアクセスできます。プレーンテキストを入力するか、コマンド出力をプロンプト変数に含めることができます。また、サーバーが提供する場合は補完もサポートしています。
次の例は、AI を使用してプロンプトを生成し、Gistpad MCP サーバーを使用して保存し、それを使用して変更ログエントリを生成する方法を示しています。
MCP のリソースサポート
VS Code のモデルコンテキストプロトコルサポートにリソースサポートが含まれるようになりました。これにはリソーステンプレートのサポートも含まれます。これはいくつかの場所で利用できます。
- MCP ツール呼び出しから返されたリソースはモデルで利用でき、保存 ボタンまたはリソースをエクスプローラービューにドラッグすることでチャットに保存できます。
- リソースは、チャットの コンテキストを追加... ボタンをクリックし、MCP リソース... を選択することでコンテキストとして添付できます。
- 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 サーバーがアカウントにアクセスできるかを管理できます。


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

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

そこからサインアウトすることもできます。これらについては、コード認証フローだけでなく、認証サーバーがサポートしている場合はデバイスコードフローもサポートしています。
また、Authentication: Remove Dynamic Authentication Providers コマンドを導入しました。これにより、これらの動的クライアント登録をクリーンアップできます。これにより、VS Code に発行されたクライアント ID とこの認証プロバイダーに関連付けられたすべてのデータが破棄されます。
MCP: サーバーを追加... コマンドを使用して MCP サーバーを追加できることを忘れないでください。これは、認証付きサーバーと同じエントリポイントです。
MCP 開発モード
サーバー構成に dev キーを追加することで、MCP サーバーの開発モードを有効にできます。これは、2つのプロパティを持つオブジェクトです。
watch: ファイル変更を監視するためのファイルグロブパターン。MCP サーバーを再起動します。debug: MCP サーバーでデバッガーを設定できます。現在、nodeとpythonでそれぞれ起動された 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 に特定の指示を与えたい場合に特に便利です。たとえば、コードベースへの読み取り専用アクセスのみを持つ、新機能の計画用のカスタムチャットモードを作成できます。
カスタムチャットモードを定義して使用するには、次の手順に従います。
- コマンドパレットから チャット: チャットモードの設定 コマンドを使用して、カスタムモードを定義します。
- 作成された
*.chatprompt.mdファイルに、カスタムチャットモードの指示と利用可能なツールを指定します。 - チャットビューで、チャットモードドロップダウンリストからチャットモードを選択します。
- チャットプロンプトを送信します。

次の例は、カスタムの「計画」チャットモードを示しています。
---
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 ウィンドウにドッキングします。
- フローティングウィンドウで新しいチャットセッションを開始します。

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

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

このメニューの一部のエントリは、複数のツールをグループ化するツールセットを表します。たとえば、テキストファイルやノートブックを編集または作成するための複数のツールをモデルに提供します。これらはモデルファミリーによって異なる場合もあり、editFiles はこれらすべてをグループ化します。
要素をチャットに送信 (試験段階)
前回のマイルストーンで、新しい試験的な機能を追加しました。これは、Simple Browser を開き、埋め込みブラウザから Web 要素を選択してチャットに追加できるものです。

この機能の改善を続けるにあたり、Live Preview 拡張機能でも Web 要素の選択をサポートしました。この拡張機能をダウンロードし、任意の HTML ファイルからライブサーバーを起動して試してみてください。
アクセシビリティ
ユーザーアクション要求音
チャットがユーザーアクションを必要とするときを示すためのアクセシビリティ信号を追加しました。これは、サウンドを微調整するにつれてオプトインされます。この動作は accessibility.signals.chatUserActionRequired で設定できます。
新しいコードアクション音
以下の操作に対して異なるサウンドを導入しました。
- コードアクションがトリガーされたとき: accessibility.signals.codeActionTriggered
- コードアクションが適用されたとき: accessibility.signals.codeActionApplied
エージェントモードのアクセシビリティ改善
アクセシブルビューに確認ダイアログに関する豊富な情報が含まれるようになりました。これには、過去のツール実行、現在のツール実行、および保留中の確認が含まれます。これには、使用される入力も含まれます。
応答に確認ダイアログが表示される場合、アクションのタイトルが、対応するコードブロックの ARIA ラベル、応答の ARIA ラベル、およびライブアラートに含まれるようになり、スクリーンリーダーユーザーにとってより良いコンテキストが提供されます。
エディター体験
入力しながら検索
入力しながら検索は検索コントロールのデフォルトの動作でしたが、今回、その動作を維持するか、無効にして Enter キーを押した後にのみ検索を実行するかを制御できるようになりました。
ネイティブウィンドウタイトルバー付きカスタムメニュー
設定: window.menuStyle
window.menuStyle 設定を使用して、Windows および Linux のメニューバーとコンテキストメニュー、macOS のコンテキストメニューで使用されるメニュースタイルを指定できるようになりました。
native: OS によってレンダリングされます。custom: VS Code によってレンダリングされます。inherit: window.titleBarStyle で設定されたタイトルバーのスタイルと一致します (カスタムメニューバーとコンテキストメニューでネイティブタイトルバーを使用できます)。
Linux ネイティブウィンドウコンテキストメニュー
カスタムタイトルバーのアプリケーションアイコンを右クリックすると、ネイティブウィンドウコンテキストメニューがサポートされるようになりました。

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

Windows シェル環境検出
Windows の PowerShell でシェル環境検出を実装しました。これにより、VS Code は、Node.js がさまざまなバージョンマネージャーを通じて構成する PATH 更新など、PowerShell プロファイルで構成された環境を継承します。
未公開拡張機能の警告
インストールされている拡張機能が 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 設定が Stable 版でデフォルトで有効になりました。これにより、エディターの入力は EditContext API によって提供されるようになりました。これは、特に IME エクスペリエンスに関連する多数のバグを修正し、今後はエディター内でのより汎用性のある堅牢な入力エクスペリエンスへの道を開きます。
EditContext API の詳細については、MDN ドキュメントを参照してください。
コード編集
NES インポート候補
設定: github.copilot.nextEditSuggestions.fixes
先月、TypeScript と JavaScript の不足しているインポートステートメントの追加を自動的に提案する次期編集候補のサポートを導入しました。このリリースでは、これらの候補の精度と信頼性を向上させ、Python ファイルにもサポートを拡大しました。

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 コーディングエージェントのステータスを確認し、ブラウザでセッションの詳細を開きます。

ソース管理履歴項目の詳細
多くの要望により、ソース管理グラフビューで項目を選択すると、その履歴項目のリソースが表示されるようになりました。... メニューからツリービューまたはリストビューの表示を選択できます。
履歴項目のすべてのリソースを複数ファイル差分エディターで開くには、ホバー時に 変更を開く アクションを使用します。グラフビューから特定のリソースを選択すると、そのリソースのみの差分エディターが開きます。特定のバージョンのファイルを開くには、ファイルを開く アクションを選択します。
履歴項目をチャットコンテキストに追加
ソース管理履歴項目をチャットリクエストのコンテキストとして追加できるようになりました。これは、特定のコミットやプルリクエストの内容をチャットプロンプトのコンテキストとして提供したい場合に便利です。

チャットに履歴項目を追加するには、チャットビューから コンテキストを追加 > ソース管理 を使用し、特定の履歴項目を選択します。または、ソース管理グラフで履歴項目を右クリックし、コンテキストメニューから Copilot > 履歴項目をチャットに追加 を選択します。
タスク
インスタンスポリシー
タスクの runOptions に instancePolicy プロパティが追加されました。これにより、タスクが instanceLimit に達したときに何が起こるかを決定します。
オプションには、prompt (デフォルト)、silent、terminateNewest、terminateOldest、および warn があります。

ターミナル
言語サーバーベースのターミナル提案
インタラクティブな Python REPL セッションで、言語サーバーの補完がターミナルで利用できるようになりました。これにより、エディターで受け取る言語補完と同じものがターミナル内でも提供されます。Python (Pylance 経由) からのサポートを開始し、将来的にはより多くの言語に拡大する予定です。
試すには、次の設定が有効になっていることを確認してください。
- terminal.integrated.shellIntegration.enabled
- python.terminal.shellIntegration.enabled
- terminal.integrated.suggest.enabled
- python.analysis.supportAllPythonDocuments
リモート開発
リモート開発拡張機能を使用すると、開発コンテナー、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.toml、dev-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) のサポートを発表しました。これにより、拡張機能で import と export ステートメントを使用できますが、現在、NodeJS 拡張ホストをターゲットとする場合に限られます。
今月、GitHub Issue Notebooks で実際に採用しました。この拡張機能は NodeJS 拡張ホスト (ESM 拡張機能をサポート) と、現在 ESM 拡張機能をサポートしていない Web Worker 拡張ホストの両方で実行できるため、これは簡単ではありませんでした。これにはより複雑なバンドラー構成が必要であり、そのesbuild-configからヒントを得ることができるかもしれません。
注目すべき修正点
- 250077 - Tree-Sitter ベースのシンタックスハイライトはモデルサービスに依存
ありがとうございます
最後に、VS Codeの貢献者の皆様に心からの感謝を申し上げます。
問題追跡
問題追跡への貢献者
- @gjsjohnmurray (John Murray)
- @albertosantini (Alberto Santini)
- @RedCMD (RedCMD)
- @IllusionMH (Andrii Dieiev)
プルリクエスト
vscodeへの貢献者
- @alpalla (Alessio Palladino): タスクの runOptions にタスクインスタンスポリシーを追加 PR ##117129
- @0xEbrahim (Ebrahim El-Sayed): タイプミスと文法を修正 PR #248814
- @a-stewart (Anthony Stewart): エディタフォントの選択で、OS が検出されない場合は Linux と仮定 PR #248133
- @adnval (kevin): インストール済みフィルターを追加 PR #248055
- @bhack: 新しいソース形式と必須の署名を追加 PR #239390
- @dylanchu: TerminalTaskSystem: nushell のサポートを追加 PR #238440
- @eronnen (Ely Ronnen)
- デバッグコンソールの最大行数を構成可能にする PR #245915
- vscode-logfile-highlighter 3.4.1 からログの tmLanguage を更新 PR #249046
- 逆アセンブリビュー: 無効なメモリ命令を表示しない PR #249779
- 逆アセンブリビュー: デバッグアダプターから返される負の行の高さを処理 PR #250081
- @gabritto (Gabriela Araujo Britto): [typescript-language-features] 最大ホバー長の設定を追加 PR #248181
- @hickford (M Hickford): 行の折り返しに関わらずアクティブな行番号を正しくハイライト PR #240029
- @imfing (Xin): fix: DynamicAuthProvider の認証 URL にスコープパラメータを条件付きで追加 PR #250084
- @jeanp413 (Jean Pierre)
- エディターを素早く切り替えたときにタイムラインの git リクエストがキャンセルされない問題を修正 PR #244335
- ウェブワーカー拡張ホストで vscode.env.onDidChangeShell が発火しない問題を修正 PR #249824
- @joyceerhl (ジョイス・アー)
- リファクタリング: チャットリストレンダラーでチャットアタッチメントウィジェットを再利用 PR #248163
- 修正: チャット添付ファイルのコンテンツパーツにウィジェットを登録 PR #249054
- 修正: 履歴チャット添付ファイルにコンテンツ参照の説明を設定 PR #249112
- 修正: MCP ツールの確認にマークダウン文字列を使用 PR #249497
- 修正: 編集セッション ID プロバイダーが編集セッションペイロードを変更した場合でも続行を許可 PR #250057
- @JoyceGu (Joyce Gu): Joycegu/add genai packages 05222025 PR #249589
- @mawosoft (Matthias Wolf): 厳格モードが有効になっている場合の PowerShell シェル統合を修正。 PR #248625
- @mortalYoung (野迂迂): fix(search): fix expand all not working PR #248207
- @nojaf (Florian Verdonck): 未使用のポートをすべて閉じるコマンド PR #244245
- @nomike (nomike): 名前変更されたリポジトリを処理するように GitHub 公開ロジックを強化 PR #245024
- @Parasaran-Python (Parasaran): Fix #248222 | 相対パス内の複数の先頭ドットを許可するための正規表現変更 PR #248340
- @pelmers-db (Peter Elmers): Picker の onDidChangeValue ハンドラのキャンセルロジックを修正 (fixes #247945) PR #247946
- @randy3k (Randy Lai): R 構文の上流リポジトリを更新 PR #248880
- @rbuckton (Ron Buckton): 更新された DOM 型によるブレークを抑制するためにキャストを追加 PR #248346
- @RedCMD (RedCMD):
@builtin @disabledをサポート PR #235885 - @xzakharov (Oleksandr Zakharov): fix(devcontainer): rust feature をバンプしてコンテナビルドを修正 PR #250430
- @y0sh1ne (y0sh1ne): 複数選択時のメッセージコピーを修正 (#_247927) PR #248172
vscode-copilot-release への貢献
- @joyceerhl (Joyce Er): chore: バグレポートテンプレートを更新 PR #9702
vscode-css-languageserviceへの貢献者
- @Legend-Master (Tony): 基本的なメディアクエリの自動補完サポートを追加 PR #443
- @rgant (J Rob Gant)
vscode-custom-data への貢献
- @Legend-Master (Tony): メディアクエリサポートを追加 PR #118
vscode-eslintへの貢献者
vscode-generator-codeへの貢献者
- @SamB (Samuel Bronson): vscode ドキュメントのトップにリンクしない PR #518
vscode-js-debugへの貢献者
- @kdy1 (Donny/강동윤): chore: Turbopack のデフォルト URL を修正 PR #2223
- @mikaelwaltersson (Mikael Waltersson): WasmWorker インスタンスが破棄されてもページ再読み込み時に再生成されないバグを修正 + WASM メモリが SharedArrayBuffer の場合に writeMemory を修正 PR #2211
vscode-jupyterへの貢献者
- @WillHirsch: パッケージインストールでパーセントではなくバンを使用した場合の診断の深刻度をダウングレード PR #16601
vscode-languageserver-nodeへの貢献者
- @martijnwalraven (Martijn Walraven):
workspace/textDocumentContent/refreshリクエストを修正 PR #1637
vscode-markdown-tm-grammar への貢献
- @Barros1902 (Tomás Barros ): Markdown 構文でのアンダースコアを含む打ち消し線を修正 (microsoft#173 を修正) PR #174
vscode-prompt-tsxへの貢献者
- @joyceerhl (Joyce Er): chore: npm audit fix PR #175
vscode-pull-request-githubへの貢献者
- @kabel (Kevin Abel): プライベートな GitHub メールアドレスがない場合、確認済みの GitHub メールアドレスを許可 PR #6921
vscode-python-debuggerへの貢献者
- @kycutler (Kyle Cutler): ディレクトリを読み取ろうとすることによる
TypeErrorを修正 PR #692
debug-adapter-protocolへの貢献者
- @DrSergei: いくつかのタイプミスを修正 PR #543
- @robertoaloi (Roberto Aloi): Erlang EDB デバッガーを追加 PR #544
language-server-protocolへの貢献者
- @asukaminato0721 (Asuka Minato)
- @brynne8 (Brynne Taylor): glob パターンの仕様のタイプミスを修正 PR #2132
- @leon-bckl (Leon): c++20 lsp-framework を追加 PR #2144
- @nieomylnieja (Mateusz Hawrus): chore: Nobl9 VSCode 拡張機能を servers.md に追加 PR #2136
- @zonuexe (USAMI Kenta): Emacs 用 LSP クライアントを追加 PR #2145
lsprotocol への貢献
- @debonte (Erik De Bonte)
- @myleshyson (Myles Hyson): golang をプラグインテーブルに追加 PR #418