2025年5月 (バージョン 1.101)
リリース日: 2025年6月12日
セキュリティ更新: 以下の拡張機能にセキュリティ更新が含まれています: ms-python.python。
アップデート 1.101.1: このアップデートでは、これらの問題に対処しています。
アップデート 1.101.2: このアップデートでは、これらの問題に対処しています。
ダウンロード: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Visual Studio Code 2025年5月リリースへようこそ。今回のバージョンには、皆さまに気に入っていただける多くのアップデートが含まれています。主なハイライトは以下の通りです。
-
MCP
-
チャット
- 関連するツールをツールセットにまとめることで、ツールをグループ化・管理できるようになりました (詳細を表示)。
-
ソース管理
これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com の Updates を参照してください。Insiders: 新機能をいち早く試したいですか?ナイトリービルドのInsiders をダウンロードして、最新のアップデートをいち早く試すことができます。
チャット
チャットツールセット
VS Codeでは、提案されたAPIまたはUIを通じてツールセットを定義できるようになりました。ツールセットとは、個別のツールと同様に使用できる、さまざまなツールのコレクションです。ツールセットを使用すると、関連するツールを簡単にグループ化し、エージェントモードで素早く有効または無効にできます。例えば、以下のツールセットはGitHubの通知を管理するためのものです(GitHub MCPサーバーを使用)。
{
"gh-news": {
"tools": ["list_notifications", "dismiss_notification", "get_notification_details"],
"description": "Manage GH notification",
"icon": "github-project"
}
}
ツールセットを作成するには、コマンドパレットから「Configure Tool Sets(ツールセットの構成)」>「Create new tool sets file(新しいツールセットファイルの作成)」コマンドを実行します。その後、ツールセットに含めるツールを選択し、説明とアイコンを提供できます。
チャットクエリでツールセットを使用するには、#gh-newsのように#-mentionで名前を参照します。また、チャット入力ボックスのツールピッカーから選択することもできます。

ツールセットの詳細については、ドキュメントをご覧ください。
MCPのプロンプトサポート
VS CodeのModel Context Protocolサポートにプロンプトサポートが追加されました。プロンプトはMCPサーバーによって定義され、言語モデル用の再利用可能なスニペットやタスクを生成できます。プロンプトは、チャット内のスラッシュ/コマンドとして、/mcp.servername.promptnameという形式でアクセスできます。プレーンテキストの入力や、プロンプト変数にコマンド出力を含めることが可能で、サーバーが提供する場合は補完もサポートしています。
以下の例は、AIを使用してプロンプトを生成し、Gistpad MCPサーバーを使用して保存し、それを使ってチェンジログエントリを生成する方法を示しています。
MCPのリソースサポート
VS CodeのModel Context Protocolサポートにリソースサポート(リソーステンプレートのサポートを含む)が追加されました。これはいくつかの場所で利用可能です。
- MCPツール呼び出しから返されたリソースはモデルが利用可能であり、保存ボタンをクリックするか、リソースをエクスプローラービューにドラッグすることで、チャット内に保存できます。
- リソースは、チャット内のコンテキストの追加...ボタンからMCPリソース...を選択することで、コンテキストとして添付できます。
- MCP: Browse Resourcesコマンドを使用するか、MCP: List Serversコマンドからサーバーを選択することで、サーバー全体のリソースを閲覧・表示できます。
Gistpad MCPサーバーからチャットにリソースを添付する例を以下に示します。
MCPのサンプリングサポート(実験的)
VS CodeのModel Context Protocolサポートにサンプリングが追加されました。これにより、MCPサーバーがモデルに対してリクエストを送信できるようになります。MCPサーバーが初めてサンプリングリクエストを行う際には確認が求められます。また、MCP: List Serversでサーバーを選択することで、MCPサーバーがアクセスできるモデルを設定したり、リクエストログを確認したりできます。
サンプリングサポートはまだ初期段階であり、今後のイテレーションで拡張・改善する予定です。
MCPの認証サポート
VS Codeが認証を必要とするMCPサーバーをサポートするようになりました。これにより、ユーザーアカウントの代わりに動作するMCPサーバーとやり取りが可能になります。
この機能は、クライアント向けのMCP認可仕様を実装しており、以下をサポートしています。
- 2025-3-26仕様: MCPサーバーが認可サーバーとして動作する場合。
- ドラフト仕様: MCPサーバーがリソースサーバーとして動作する場合(近日中に確定予定)。
MCPサーバーがドラフト仕様を実装し、認証サーバーとしてGitHubまたはEntraを活用している場合、どのMCPサーバーがあなたのアカウントにアクセスできるかを管理できます。


(前述のクイックピックのギアボタンから)サーバーが使用すべきアカウントを管理することもできます。

動的なクライアント登録に依存する他のMCPサーバーの場合、Linearの例のように、認証状態を他の設定と同じ場所に含めています。

そこからサインアウトも可能です。これらについては、コード認可フローだけでなく、認証サーバーがサポートしていればデバイスコードフローもサポートしています。
また、Authentication: Remove Dynamic Authentication Providersコマンドを導入しました。これにより、これらの動的なクライアント登録をクリーンアップできます。これは、VS Codeに発行されたクライアントIDと、この認証プロバイダーに関連するすべてのデータを破棄します。
MCP: Add Server...コマンドを使用して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のチャットユーザー体験を継続的に改善しています。そのフィードバックの一つに、チャット内でユーザーメッセージとAIの回答を区別するのが難しいという声がありました。これに対処するため、ユーザーメッセージの外観をより明確にしました。
以前のリクエストの取り消しもより分かりやすくなりました。リクエストにカーソルを合わせてXボタンを選択するだけで、そのリクエストと後続のリクエストを取り消せます。さらに素早く、キーボードショートカット⌘Backspace (Windows, Linux Delete)を使用することも可能です!
最後に、チャット入力ボックスからの添付ファイルがよりナビゲートしやすくなりました。
VS Codeでのチャットの使用については、ドキュメントをご覧ください。
より効率的な編集の適用
ファイルを編集する際、VS Codeはファイルを先頭から末尾まで書き換えるか、複数の小さな変更を加えるという2つのアプローチをとることがあります。これらにはそれぞれ違いがあり、例えば前者は大きなファイルでは遅くなる可能性があり、中間状態では正しくコンパイルできないことがよくあります。そのため、UIは自動保存や波線を条件付きで無効にするように調整されています。
また、Keep(保持)およびUndo(取り消し)コマンドのキーバインドも調整しました。個別の変更を保持・取り消しするには、⌘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を押してください。
さらに、エージェントモードでは、現在のエディターに関するヒントが含まれます。これにはファイルの内容は含まれず、ファイル名とカーソル位置のみです。エージェントはその後、クエリに関連があると思われる場合に、自身のツールを使用してファイルの内容を読み取ることができます。
チャットへのコンテキスト追加の詳細については、ドキュメントをご覧ください。
タスク構成エラーの修正
タスクと問題マッチャーの構成は難しい場合があります。タスク構成にエラーがある場合に提供されるFix with Github Copilotアクションを使用して、素早く効率的に対処してください。
カスタムチャットモード(プレビュー)
デフォルトでは、チャットビューはAsk、Edit、Agentという3つの組み込みチャットモードをサポートしています。各チャットモードには、LLMがリクエストをどのように処理すべきかについての基本指示と、使用可能なツールリストが含まれています。
独自のカスタムチャットモードを定義し、チャットビューで使用できるようになりました。カスタムチャットモードを使用すると、チャットの動作を調整し、そのモードでどのツールが使用可能かを指定できます。これは、専門的なワークフローやLLMに具体的な指示を出したい場合に特に便利です。例えば、新しい機能を計画するためのカスタムチャットモードを作成し、コードベースへの読み取り専用アクセスのみを許可することが可能です。
カスタムチャットモードを定義・使用するには、以下の手順に従ってください。
- コマンドパレットからChat: Configure Chat Modesコマンドを使用してカスタムモードを定義します。
- 作成された
*.chatprompt.mdファイルで、カスタムチャットモードの指示と使用可能なツールを提供します。 - チャットビューで、チャットモードのドロップダウンリストからチャットモードを選択します。
- チャットプロンプトを送信します。

以下の例は、カスタムの「Planning(計画)」チャットモードを示しています。
---
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を無効にするとターミナルコマンドの実行を禁止したりできます。
エージェントモードで、Configure Tools(ツールの構成)ボタンを選択してツールピッカーを開き、目的のツールセットを選択します。

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

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

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

Windowsのシェル環境検出
Windows上のPowerShellのシェル環境検出を実装しました。これにより、VS CodeはNode.jsなどがバージョンマネージャーを通じて構成するPATHの更新など、PowerShellプロファイルで設定された環境を継承します。
未公開の拡張機能に関する警告
インストール済みの拡張機能がマーケットプレイスで利用できなくなった場合、警告インジケーターが表示されるようになり、非公開化または削除された、問題のある可能性のある拡張機能を特定しやすくなりました。

設定検索の提案(プレビュー)
設定: workbench.settings.showAISearchToggle
今回のマイルストーンで、文字列一致に基づく結果ではなく、意味的に類似した結果を見つけるAI検索を開始するトグルを設定エディターに追加しました。例えば、AI検索では「increase text size(テキストサイズを大きくする)」と検索すると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: すべての検索クエリに対して、常にテキスト検索と並行してセマンティック検索を実行します。
Edit Context
設定: editor.editContext
Stable版で editor.editContext 設定をデフォルトで有効にしました。つまり、エディターの入力がEditContext APIによって動作するようになりました。これにより、特にIME関連の多数のバグが修正され、今後、エディター内のより汎用的で堅牢な入力体験への道が開かれます。
EditContext APIの詳細については、MDNドキュメントをご覧ください。
コード編集
NES インポートの提案
設定: github.copilot.nextEditSuggestions.fixes
先月、TypeScriptとJavaScriptで不足しているインポートステートメントを自動的に提案する「Next Edit Suggestions(NES)」のサポートを導入しました。今回のリリースでは、これらの提案の精度と信頼性を向上させ、Pythonファイルへのサポートも拡大しました。

NESはすべてのVS Code Insidersユーザーで有効になっており、6月中にStableユーザーに対しても段階的にデフォルトで有効になります。設定を通じていつでもご自身でNESを有効にできます。
NESの承認フロー
キーボードナビゲーションの改善により、Next Edit Suggestionsの承認がよりスムーズになりました。提案を承認した後は、再び入力を開始しない限り、Tabキーを1回押すだけで後続の提案を継続して承認できます。入力を開始した場合は、Tabキーを押すと、最初にカーソルを次の提案に移動させてから承認できるようになります。
ノートブック
エージェントセル実行のフォローモード
設定: github.copilot.chat.notebook.followCellExecution.enabled
フォローモードでは、Notebookビューが現在エージェントによって実行されているセルに自動的にスクロールします。 github.copilot.chat.notebook.followCellExecution.enabled 設定を使用して、Jupyter Notebookでのエージェントセル実行のフォローモードを有効または無効にできます。
エージェントがセルの実行ツールを使用すると、Notebookツールバーが更新され、フォローモードの状態を示すピンアイコンが表示されます。ベースの設定値を変更せずに、エージェントの応答の途中でこの動作を切り替えることができます。これにより、エージェントが反復処理を続ける間、リアルタイムで作業をフォローしたり、コードの特定の箇所をレビューしたい時にオフにしたりできます。再びフォローしたい場合は、モードを切り替えて次の実行から参加してください。
エージェントモード用のノートブックツール
ノートブックの構成
Jupyter拡張機能は、Jupyter Notebookのカーネルを構成するためのツールを提供します。このツールは、カーネルが選択され、ノートブックで使用できる状態であることを保証します。これには、必要に応じて仮想環境を作成するプロセスを案内したり(推奨されるアプローチ)、既存のPython環境を選択するように促したりする操作が含まれます。
このツールは、LLMが最小限のユーザー操作でセルの実行などのノートブック操作を実行できるようにし、エージェントモードにおける全体的なユーザー体験を向上させます。
長時間実行されるエージェントワークフロー
エージェントは、正確なコンテキストを維持するのに役立つ内部ノートブック要約ツールにアクセスできます。コンテキストが大きくなりすぎてエージェントが複雑な操作を継続できなくなった場合、会話履歴を要約する際にもその要約が含まれます。
実行確認におけるセルプレビュー
エージェントがノートブックセルの実行確認をリクエストすると、そのコードのスニペットが表示されます。チャットビュー内のセルリンクから、ノートブック内のセルに直接移動することも可能になりました。
ソース管理
Copilotコーディングエージェントの統合
Copilotコーディングエージェントを使用すると、GitHub Copilotは人間の開発者のように、バックグラウンドで独立してタスクを完了できます。GitHub Pull Requests拡張機能を拡張し、VS Code内からエージェントのタスクを割り当て・追跡しやすくしました。
拡張機能に以下の機能を追加しました。
- Assign to Copilot(Copilotに割り当て): VS CodeのissueまたはPRビューからプルリクエストやissueをCopilotに割り当てます。
- Copilot on My Behalf(自分の代わりにCopilot)PRクエリ: Copilotがあなたのために取り組んでいるすべてのプルリクエストを素早く確認できます。
- PR view(PRビュー): Copilotコーディングエージェントの状態を確認し、ブラウザーでセッションの詳細を開くことができます。

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

履歴アイテムをチャットに追加するには、チャットビューからAdd Context(コンテキストの追加)> Source Control(ソース管理)を選択し、特定の履歴アイテムを選択します。または、ソース管理グラフの履歴アイテムを右クリックし、コンテキストメニューからCopilot > Add History Item to Chat(履歴アイテムをチャットに追加)を選択します。
タスク
インスタンスポリシー
タスクのrunOptionsにinstancePolicyプロパティが追加され、タスクがinstanceLimitに達した時の動作を決定できるようになりました。
オプションには、prompt(デフォルト)、silent、terminateNewest、terminateOldest、warnがあります。

ターミナル
言語サーバーベースのターミナル提案
対話型Python REPLセッションのターミナルで、言語サーバーの補完が利用可能になりました。これにより、エディターで受け取るのと同じ言語補完がターミナル内でも利用できます。まずはPylanceを通じてPythonのサポートを開始し、今後は他の言語にも拡大する予定です。
試してみるには、以下の設定が有効になっていることを確認してください。
- terminal.integrated.shellIntegration.enabled
- python.terminal.shellIntegration.enabled
- terminal.integrated.suggest.enabled
- python.analysis.supportAllPythonDocuments
リモート開発
リモート開発拡張機能を使用すると、Dev Container、SSH 経由のリモートマシン、またはリモートトンネル、あるいはWindows Subsystem for Linux (WSL) をフル機能の開発環境として使用できます。
ハイライト
- SSH接続前スクリプト
- Remote Explorerの改善
これらの機能の詳細については、Remote Developmentリリースノートをご覧ください。
拡張機能への貢献
Python
Pythonチャットツール
Python拡張機能に以下のチャットツールが追加されました:「Get information for a Python Environment(Python環境情報の取得)」、「Get executable information for a Python Environment(Python環境の実行可能ファイル情報の取得)」、「Install Python Package(Pythonパッケージのインストール)」、「Configure Python Environment(Python環境の構成)」。プロンプトで#getPythonEnvironmentInfo #installPythonPackageを追加して直接参照することも、エージェントモードで適宜ツールが自動的に呼び出されることもあります。これらのツールは、ファイルやワークスペースのコンテキストに基づいて適切な環境情報を検出し、正確な環境解決でパッケージインストールを処理します。
「Configure Python Environment」ツールは、ワークスペースに対してPython環境が正しくセットアップされることを保証します。これには、必要に応じて仮想環境を作成し、それをワークスペースのアクティブなPython環境として選択することが含まれます。
Python Environments拡張機能(プレビュー)で以前導入されたツールが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 Pull Requests
プルリクエストと課題の操作、作成、管理を可能にする GitHub Pull Requests 拡張機能にさらなる進歩がありました。新機能には次のようなものがあります。
- プライベートリポジトリのコメント内の画像が、プルリクエストのファイルコメントに表示されるようになりました。
- 「Notifications(通知)」ビューがデフォルトで折りたたまれた状態で表示されるようになりました。-- タイムライン内およびissue/プルリクエスト本文内のissueおよびプルリクエストへのリンクが、ブラウザーへ移動するのではなく、VS Codeで開かれるようになりました。
- 「Pull Requests(プルリクエスト)」ビューの「Assigned to Me(自分に割り当て済み)」クエリが削除されました。「Local Pull Request Branches(ローカルプルリクエストブランチ)」および「All Open(すべてのオープン)」クエリは、設定
githubPullRequests.queriesを使用して削除できます。Copilotを使用しているリポジトリの場合、設定が未構成の時は「Copilot on My Behalf(自分の代わりにCopilot)」クエリが追加されます。 - Copilotの「start working(作業開始)」、「stop working(作業停止)」、「View Session(セッション表示)」がタイムラインに表示されるようになりました。
その他のハイライトについては、拡張機能の0.112.0リリースの変更ログを確認してください。
拡張機能の作成
MCP拡張機能API
拡張機能でMCPサーバーのコレクションを公開できるようになりました。これにより、MCPサーバーを拡張機能にバンドルしたり、他のソースからMCPサーバーを動的に検出する拡張機能を構築したりできます。詳細については、MCP拡張機能開発ガイドをご覧いただくか、MCP拡張機能サンプルをご確認ください。
拡張機能パッケージ化時のシークレットスキャン
VSCEが拡張機能のパッケージ化時にシークレットをスキャンするようになりました。ソースファイル内に潜在的なシークレット(APIキー、トークン、資格情報、または.envのような環境変数ファイルなど)が検出されると、VSCEはパッケージ化プロセス中にエラーを表示します。これにより、誤って機密情報をマーケットプレイスに公開することを防げます。拡張機能を公開する前に、必ずエラーを確認し対処してください。
特定のチェックをバイパスする必要がある場合は、VSCE実行時に--allow-package-secrets <secret_type>または--allow-package-env-fileフラグを使用できます。これらのフラグにより、パッケージ化中にスキップすべきシークレットや環境ファイルのチェックを構成できます。
Web環境検出
⚠️ 破壊的変更 ⚠️
設定: extensions.supportNodeGlobalNavigator
Node.js拡張機能ホストが、Electron 35ランタイム更新の一環として、v20からv22に更新されました。この更新により、デスクトップおよびリモート拡張機能ホストでのnavigatorグローバルオブジェクトのサポートが追加されます。
この変更は、Web環境を検出するためにnavigatorオブジェクトの存在に依存している拡張機能に対して破壊的変更をもたらす可能性があります。
拡張機能作成者の移行を支援するため、globalThis.navigatorのpolyfillを作成し、undefinedに初期化することで、拡張機能が正しく動作し続けるようにしました。このpolyfillは extensions.supportNodeGlobalNavigator VS Code設定の裏にあります。デフォルトでは、この設定は無効で、polyfillが適用されています。拡張機能がこの方法でnavigatorにアクセスしようとした場合、テレメトリを収集し、(拡張機能開発モードで)エラーをログに記録します。
将来的には、この設定がデフォルトで有効になる可能性があるため、拡張機能作成者はコードを新しいnavigatorグローバルオブジェクトと互換性があるように移行することを強くお勧めします。以下の手順でコードを移行してください。
- 拡張機能ホストのログで、拡張機能に起因するスタックトレースを持つ
PendingMigrationErrorを確認します。 typeof navigator === 'object'のようなチェックが、必要に応じてtypeof process === 'object' && process.versions.nodeに移行されていることを確認します。- extensions.supportNodeGlobalNavigator を有効にします。
- 拡張機能の動作が変更されていないことを確認します。
提案API
認証プロバイダー: MCP用サポート済み認可サーバー
現在、MCP認証でのみ活用されているこのAPI提案により、AuthenticationProviderはそれに関連付けられた認可サーバーを宣言できるようになります。
例えば、GitHub認証プロバイダーを見ると、認証プロバイダーのコントリビューションのauthorizationServerGlobsプロパティに、典型的なGitHub認可URLが含まれています。
{
"label": "GitHub",
"id": "github",
"authorizationServerGlobs": ["https://github.com/login/oauth"]
}
このプロパティは拡張機能の起動に使用されます。リクエストされた認可サーバーが一致する場合、拡張機能が起動されます。
さらに、認証プロバイダーを登録する際、GitHub認証が行っているように、確定した認可サーバーURLのglobを含める必要があります。
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 issueでフィードバックをお待ちしています!
エンジニアリング
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で実際に採用を行いました。これは容易ではありません。なぜなら、この拡張機能は(ESM拡張機能をサポートする)NodeJS拡張機能ホストと、現在ESM拡張機能をサポートしていないWebワーカー拡張機能ホストの両方で実行される可能性があるためです。これにはより複雑なバンドラー構成が必要であり、そのesbuild-configからインスピレーションを得られるかもしれません。
注目すべき修正
- 250077 - Tree-Sitterベースの構文ハイライトはモデルサービスに依存
ありがとうございます
最後になりましたが、VS Code への貢献者の方々に心から感謝いたします。
イシュートラッキング
イシュートラッキングへの貢献
- @gjsjohnmurray (John Murray)
- @albertosantini (Alberto Santini)
- @RedCMD (RedCMD)
- @IllusionMH (Andrii Dieiev)
プルリクエスト
vscodeへの貢献
- @alpalla (Alessio Palladino): タスクのrunOptionsにinstancePolicyを追加 PR #117129
- @0xEbrahim (Ebrahim El-Sayed): タイプミスと文法を修正 PR #248814
- @a-stewart (Anthony Stewart): エディターのフォント選択で、OSが検出されない場合はLinuxと見なす PR #248133
- @adnval (kevin): インストール済みフィルターを追加 PR #248055
- @bhack: 新しいソース形式と必須のsigned-byを追加 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): 修正: DynamicAuthProviderの認可URLでスコープパラメーターを条件付きで追加 PR #250084
- @jeanp413 (Jean Pierre)
- エディターの切り替えが速すぎる場合にタイムラインのgitリクエストがキャンセルされない問題を修正 PR #244335
- Webワーカー拡張機能ホストでvscode.env.onDidChangeShellが起動しない問題を修正 PR #249824
- @joyceerhl (Joyce Er)
- リファクタリング: チャットリストレンダラーでチャット添付ウィジェットを再利用 PR #248163
- 修正: チャット添付コンテンツパートでウィジェットを登録 PR #249054
- 修正: 過去のチャット添付ファイルにコンテンツリファレンスの説明を設定 PR #249112
- 修正: MCPツール確認にマークダウン文字列を使用 PR #249497
- 修正: 編集セッションIDプロバイダーが編集セッションのペイロードを変化させる場合、「Continue On」を許可 PR #250057
- @JoyceGu (Joyce Gu): Joycegu/genaiパッケージを追加 05222025 PR #249589
- @mawosoft (Matthias Wolf): 厳密モードが有効な場合のPowerShellシェル統合を修正 PR #248625
- @mortalYoung (野迂迂): fix(search): 「すべて展開」が機能しない問題を修正 PR #248207
- @nojaf (Florian Verdonck): 「すべての未使用ポートを閉じる」コマンドを追加 PR #244245
- @nomike (nomike): GitHubの公開ロジックを強化し、名前が変更されたリポジトリを処理 PR #245024
- @Parasaran-Python (Parasaran): #248222を修正 | 相対パスで先頭の複数のドットを許可するように正規表現を変更 PR #248340
- @pelmers-db (Peter Elmers): Picker onDidChangeValueハンドラーのキャンセルロジックを修正(#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機能をバンプしてコンテナビルドを修正 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メールがない場合に検証済みメールを許可 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: servers.md に Nobl9 VSCode 拡張機能を追加 PR #2136
- @zonuexe (USAMI Kenta): Emacs 用の LSP クライアントを追加 PR #2145
lsprotocol への貢献
- @debonte (Erik De Bonte)
- @myleshyson (Myles Hyson): プラグインテーブルに golang を追加 PR #418