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の更新情報をご覧ください。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"
}
}
ツールセットを作成するには、コマンドパレットからツールセットの構成 > 新しいツールセットファイルを作成コマンドを実行します。その後、ツールセットに含めるツールを選択し、説明とアイコンを提供できます。
チャットクエリでツールセットを使用するには、#gh-news
のようにその名前を#-メンションで参照します。また、チャット入力ボックスのツールピッカーから選択することもできます。
ツールセットの詳細については、ドキュメントをご覧ください。
MCPのプロンプトサポート
VS CodeのModel Context Protocolのサポートにプロンプトサポートが含まれるようになりました。プロンプトは、言語モデル用の再利用可能なスニペットやタスクを生成するためにMCPサーバーによって定義できます。プロンプトは、チャットでスラッシュ/
コマンドとして、/mcp.servername.promptname
の形式でアクセスできます。プレーンテキストを入力したり、コマンド出力をプロンプト変数に含めたりできます。サーバーが提供する場合には、補完もサポートしています。
以下の例は、AIを使用してプロンプトを生成し、Gistpad MCPサーバーを使用して保存し、それを使って変更履歴エントリを生成する方法を示しています。
MCPのリソースサポート
VS CodeのModel Context Protocolのサポートには、リソーステンプレートのサポートを含むリソースサポートが含まれるようになりました。これはいくつかの場所で利用できます。
- MCPツール呼び出しから返されるリソースはモデルで利用でき、保存ボタンまたはリソースをエクスプローラービューにドラッグすることで、チャットに保存できます。
- リソースは、チャットのコンテキストの追加...ボタンをクリックし、次にMCPリソース...を選択することで、コンテキストとしてアタッチできます。
- MCP: リソースの参照コマンドを使用するか、MCP: サーバーを一覧表示コマンドでサーバーのエントリを選択することで、サーバー全体のリソースを参照および表示できます。
これは、Gistpad MCPサーバーからチャットにリソースをアタッチする例です。
MCPのサンプリングサポート (実験的)
VS CodeのModel Context Protocolのサポートには、MCPサーバーがモデルにリクエストを返すことを可能にするサンプリングが含まれるようになりました。MCPサーバーがサンプリングリクエストを初めて行う際に確認を求められ、MCP: サーバーを一覧表示でサーバーを選択することで、MCPサーバーがアクセスできるモデルを構成したり、リクエストログを表示したりできます。
サンプリングサポートはまだ初期段階であり、今後のイテレーションで拡張および改善する予定です。
MCPの認証サポート
VS Codeは、認証を必要とするMCPサーバーをサポートするようになり、そのサービスのためにユーザーアカウントに代わって動作するMCPサーバーと対話できるようになりました。
この機能は、クライアント向けのMCP承認仕様を実装しており、両方をサポートしています。
- 2025年3月26日版の仕様: MCPサーバーが承認サーバーとして動作する場合。
- ドラフト仕様: MCPサーバーがリソースサーバーとして動作する場合 (これは近日中に確定する予定です)。
MCPサーバーがドラフト仕様を実装し、GitHubまたはEntraを認証サーバーとして利用している場合、どのMCPサーバーがあなたのアカウントにアクセスできるかを管理できます。
また、そのサーバーがどのアカウントを使用すべきか (前のクイックピックの歯車ボタンから) 管理することもできます。
動的クライアント登録に依存する他のMCPサーバーの場合、Linearのように、他のすべてと同じ場所に認証状態を含めます。
そこからサインアウトすることもできます。これらの場合、コード認証フローだけでなく、認証サーバーがサポートしていればデバイスコードフローもサポートします。
また、これらの動的クライアント登録をクリーンアップできるコマンド認証: 動的認証プロバイダーを削除
を導入しました。これにより、VS Codeに発行されたクライアントIDと、この認証プロバイダーに関連付けられたすべてのデータが破棄されます。
MCPサーバーを追加するには、MCP: サーバーを追加...コマンドを使用できることを覚えておいてください。これは認証を伴うサーバーでも同じ入り口です。
MCP開発モード
サーバー構成にdev
キーを追加することで、MCPサーバーの開発モードを有効にできます。これは2つのプロパティを持つオブジェクトです。
watch
: MCPサーバーを再起動するファイル変更を監視するためのファイルグロブパターン。debug
: MCPサーバーでデバッガーを設定できるようにします。現在、Node.jsおよびPythonサーバーをそれぞれnode
および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は適応し、必要に応じてのみ自動保存と波線を条件付きで無効にします。
保持および元に戻すコマンドのキーバインディングも統一しました。個々の変更の保持と元に戻すは、⌘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で修正アクションを使用して、すばやく効率的に対処してください。
カスタムチャットモード (プレビュー)
デフォルトでは、チャットビューは、Ask、Edit、Agentの3つの組み込みチャットモードをサポートしています。各チャットモードには、LLMがリクエストをどのように処理すべきかを記述する一連の基本指示と、そのモードで使用できるツールのリストが付属しています。
チャットビューで使用できる独自のカスタムチャットモードを定義できるようになりました。カスタムチャットモードを使用すると、チャットの動作を調整し、そのモードでどのツールを利用できるかを指定できます。これは、特定のワークフローや、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ウィンドウにドックに戻す
- フローティングウィンドウで新しいチャットセッションを開始する
フェッチツールの確認
フェッチツールを使用すると、ウェブページから情報を取得できます。プロンプトインジェクションの可能性について警告するメッセージを、確認ダイアログに追加しました。
より多くの組み込みツールをカスタマイズ
エージェントモードまたはカスタムモードで、すべての組み込みツールを有効または無効にできるようになりました。たとえば、editFiles
を無効にしてエージェントモードがファイルを直接編集できないようにしたり、runCommands
を無効にしてターミナルコマンドを実行できないようにしたりできます。
エージェントモードで、ツールの構成ボタンを選択してツールピッカーを開き、目的のツールセットを選択します。
このメニューの一部のエントリは、複数のツールをグループ化するツールセットを表しています。たとえば、モデルにはテキストファイルやノートブックを編集または作成するための複数のツールが提供されており、これらはモデルファミリーによって異なる場合もあります。editFiles
はこれらすべてをグループ化します。
要素をチャットに送信 (実験的)
前回のマイルストーンで、Simple Browserを開き、埋め込みブラウザからチャットに追加するウェブ要素を選択できる新しい実験的機能を追加しました。
この機能の改善を続けるにあたり、Live Preview拡張機能でもウェブ要素の選択をサポートしました。拡張機能をダウンロードし、任意のHTMLファイルからライブサーバーを起動して、この機能をお試しください。
アクセシビリティ
ユーザーアクションが必要なサウンド
チャットでユーザーアクションが必要な場合に、それを通知するアクセシビリティ信号を追加しました。サウンドを微調整中のため、この機能はオプトインです。accessibility.signals.chatUserActionRequiredでこの動作を設定できます。
新しいコードアクションサウンド
以下の際、異なるサウンドを導入しました。
- コードアクションがトリガーされたとき: accessibility.signals.codeActionTriggered
- コードアクションが適用されたとき: accessibility.signals.codeActionApplied
エージェントモードのアクセシビリティ改善
アクセシブルビューに確認ダイアログに関する豊富な情報が含まれるようになり、過去のツール実行、現在のツール実行、および保留中の確認をカバーしています。これには、使用される入力も含まれます。
応答に確認ダイアログが表示される場合、アクションのタイトルが対応するコードブロックのARIAラベル、応答のARIAラベル、およびライブアラートに含まれるようになり、スクリーンリーダーユーザーにより良いコンテキストを提供します。
エディター体験
入力時の検索 (Find as you type)
入力時の検索は、検索コントロールのデフォルトの動作でしたが、この動作を維持するか、無効にしてEnterキーを押した後でのみ検索を実行するかを制御できるようになりました。
ネイティブウィンドウタイトルバーを備えたカスタムメニュー
設定: window.menuStyle
window.menuStyle設定を使用することで、WindowsとLinuxのメニューバーとコンテキストメニュー、およびmacOSのコンテキストメニューに使用されるメニューのスタイルを指定できるようになりました。
native
: OSによってレンダリングされますcustom
: VS Codeによってレンダリングされますinherit
: window.titleBarStyleで設定されたタイトルバーのスタイルと一致します(ネイティブタイトルバーをカスタムメニューバーとコンテキストメニューで使用できます)。
Linuxネイティブウィンドウコンテキストメニュー
カスタムタイトルバーのアプリケーションアイコンを右クリックすると、ネイティブウィンドウコンテキストメニューがサポートされるようになりました。
プロセスエクスプローラーのWebサポート
プロセスエクスプローラーは、エディターウィンドウ用にワークベンチにあるフローティングウィンドウインフラストラクチャを使用するように変換されました。その結果、リモートに接続している場合(たとえば、Codespacesで)、Webでもプロセスエクスプローラーをサポートするようになりました。
Windowsシェル環境の検出
WindowsのPowerShell向けにシェル環境検出を実装しました。これにより、Node.jsがさまざまなバージョンマネージャーを通じて構成するPATHの更新など、PowerShellプロファイルで構成された環境がVS Codeに継承されます。
未公開拡張機能の警告
インストール済みの拡張機能がマーケットプレイスで利用できなくなった場合、警告インジケーターが表示されるようになり、非公開または削除された可能性のある問題のある拡張機能を特定するのに役立ちます。
設定検索候補 (プレビュー)
設定: workbench.settings.showAISearchToggle
今回のマイルストーンで、文字列一致に基づく結果ではなく、意味的に類似した結果を見つけるAI検索を開始するトグルを「設定」エディターに追加しました。たとえば、AI検索では「テキストサイズを大きくする」と検索するとeditor.fontSize
設定が見つかります。
トグルを表示するには、設定を有効にしてVS Codeを再起動してください。また、精度が低い設定検索結果を特定して修正する作業も進めており、自然言語クエリで期待される設定が見つからなかった場合のご意見を歓迎します。
次のマイルストーンでは、トグルを削除し、実験的な設定を、遅いAI検索結果をリストの末尾に直接追加するタイミングを制御する設定に変更することも検討しています。
検索キーワードの提案 (プレビュー)
設定: search.searchView.keywordSuggestions
前回のマイルストーンで、関連性の高い結果をより早く見つけられるように、検索ビューにキーワード候補を導入しました。今回、候補のパフォーマンスを大幅に改善し、以前よりも約5倍速く結果が表示されるようになりました。
また、設定をChat拡張機能からVS Codeコアに移動し、github.copilot.chat.search.keywordSuggestions
からsearch.searchView.keywordSuggestionsに名前を変更しました。
セマンティック検索動作オプション (プレビュー)
設定: search.searchView.semanticSearchBehavior
検索ビューのセマンティック検索を使用すると、単にテキストを一致させるだけでなく、クエリの意味に基づいて結果を得ることができます。これは、検索する正確な用語がわからない場合に特に便利です。
デフォルトでは、セマンティック検索は明示的に要求された場合にのみ実行されます。セマンティック検索をトリガーするタイミングを制御する設定が追加されました。
manual
(デフォルト): UIから手動でトリガーされた場合にのみセマンティック検索を実行します (⌘I (Windows, LinuxではCtrl+I))runOnEmpty
: テキスト検索で結果が返されない場合に自動的にセマンティック検索を実行しますauto
: すべての検索クエリに対して、テキスト検索と並行して常にセマンティック検索を実行します
編集コンテキスト
Stable版で、editor.editContext設定をデフォルトで有効にしました。これは、エディターの入力がEditContext APIによって提供されるようになったことを意味します。これにより、特にIME体験に関連する多数のバグが修正され、今後、エディター内でより汎用性と堅牢性の高い入力体験への道が開かれるでしょう。
EditContext APIの詳細については、MDNドキュメントを参照してください。
コード編集
NESインポートの提案
設定: github.copilot.nextEditSuggestions.fixes
先月、TypeScriptとJavaScriptの欠落しているimportステートメントの追加を自動的に提案する「次の編集候補 (NES)」のサポートを導入しました。今回のリリースでは、これらの候補の精度と信頼性を向上させ、Pythonファイルへのサポートも拡大しました。
NESはすべてのVS Code Insidersユーザー向けに有効になっており、6月中にStableユーザー向けにデフォルトで段階的に有効になります。いつでも設定からNESを有効にすることができます。
NESの承認フロー
次の編集候補の承認は、キーボードナビゲーションの改善により、よりシームレスになりました。一度候補を承認すると、再入力しない限り、単一のTabキーを押すだけで、後続の候補を承認し続けることができます。入力し始めた後は、Tabキーを押すと、まずカーソルが次の候補に移動し、その後承認できます。
ノートブック
エージェントのセル実行におけるフォローモード
設定: github.copilot.chat.notebook.followCellExecution.enabled
フォローモードでは、ノートブックビューがエージェントによって現在実行されているセルに自動的にスクロールします。Jupyter Notebookのセル実行におけるエージェントのフォローモードを有効または無効にするには、github.copilot.chat.notebook.followCellExecution.enabled設定を使用してください。
エージェントがセル実行ツールを使用すると、ノートブックのツールバーがピンアイコンで更新され、フォローモードの状態を示します。エージェント応答の途中で基本設定値を変更せずに動作を切り替えることができ、エージェントの作業をリアルタイムで追跡したり、エージェントが反復を続ける間にコードの特定の部分を確認したい場合にオフにしたりできます。再度フォローしたい場合は、モードを切り替えるだけで、次の実行から参加できます。
エージェントモードのノートブックツール
ノートブックの構成
Jupyter拡張機能は、Jupyter Notebookのカーネルを構成するためのツールを提供します。このツールは、カーネルが選択され、ノートブックで使用する準備ができていることを保証します。これには、必要に応じて仮想環境を作成するプロセス(推奨されるアプローチ)を案内したり、既存のPython環境を選択するように促したりすることが含まれます。
このツールは、LLMがユーザーの操作を最小限に抑えてセルを実行するなど、ノートブック上での操作を実行できるようにし、エージェントモードでの全体的なユーザーエクスペリエンスを向上させます。
長時間の実行エージェントワークフロー
エージェントは、正確なコンテキストで作業を続けるために、内部のNotebook Summaryツールにアクセスできます。コンテキストが大きすぎてエージェントが複雑な操作を続行できない場合、会話履歴を要約する際にもその要約が含まれます。
実行確認時のセルプレビュー
エージェントがノートブックセルの実行確認を要求する際に、そのセルのコードスニペットが表示されます。チャットビューのセルリンクから、ノートブック内のセルに直接移動できるようになりました。
ソース管理
Copilotコーディングエージェントの統合
Copilotコーディングエージェントを使用すると、GitHub Copilotは人間開発者と同じようにバックグラウンドで独立してタスクを完了できます。GitHub Pull Requests拡張機能を拡張し、VS Code内からエージェントのタスクを簡単に割り当てて追跡できるようにしました。
拡張機能に以下の機能を追加しました。
- Copilotに割り当て: VS CodeのIssueまたはPRビューからプルリクエストまたはIssueをCopilotに割り当てます。
- Copilotが私のためにPRクエリ: Copilotがあなたのために作業しているすべてのプルリクエストをすばやく確認できます。
- PRビュー: Copilotコーディングエージェントのステータスを確認し、ブラウザでセッションの詳細を開きます。
ソース管理履歴項目の詳細
多くの方のご要望に応え、ソース管理グラフビューで項目を選択すると、その履歴項目のリソースが表示されるようになりました。...
メニューからツリービューまたはリストビューの表示を選択できます。
複数ファイル差分エディターで履歴項目のすべてのリソースを開くには、ホバー時に変更を開くアクションを使用します。グラフビューから特定のリソースを選択すると、そのリソースのみの差分エディターが開きます。ファイルを開くアクションを選択すると、その特定のバージョンのファイルが開きます。
チャットコンテキストに履歴項目を追加
ソース管理履歴項目をチャットリクエストのコンテキストとして追加できるようになりました。これは、特定のコミットやプルリクエストの内容をチャットプロンプトのコンテキストとして提供したい場合に便利です。
履歴項目をチャットに追加するには、チャットビューからコンテキストを追加 > ソース管理を使用し、特定の履歴項目を選択します。または、ソース管理グラフで履歴項目を右クリックし、コンテキストメニューからCopilot > 履歴項目をチャットに追加を選択します。
タスク
インスタンスポリシー
タスクの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
リモート開発
Remote Development拡張機能を使用すると、開発コンテナー、SSHを介したリモートマシン、リモートトンネル、またはLinux用Windowsサブシステム (WSL) をフル機能の開発環境として使用できます。
主なハイライトは次のとおりです。
- SSH接続前スクリプト
- リモートエクスプローラーの改善
これらの機能の詳細については、Remote Developmentリリースノートを参照してください。
拡張機能への貢献
Python
Pythonチャットツール
Python拡張機能に、「Python環境の情報を取得」、「Python環境の実行可能ファイル情報を取得」、「Pythonパッケージのインストール」、「Python環境の構成」というチャットツールが含まれるようになりました。プロンプトに#getPythonEnvironmentInfo
#installPythonPackage
を追加して直接参照するか、エージェントモードが適用可能な場合にツールを自動的に呼び出します。これらのツールは、ファイルまたはワークスペースのコンテキストに基づいて適切な環境情報をシームレスに検出し、正確な環境解決でパッケージのインストールを処理します。
「Python環境の構成」ツールは、ワークスペース用にPython環境が正しくセットアップされていることを保証します。これには、必要に応じて仮想環境を作成し、それをワークスペースのアクティブなPython環境として選択することが含まれます。
以前Python Environments拡張機能(プレビュー)で導入されたツールは、Python拡張機能に移行され、Python拡張機能がインストールされているすべてのユーザーがこれらのツールを利用できるようになりました。
テンプレートからプロジェクトを作成する
Python Environments拡張機能は、Pythonパッケージと基本的なスクリプトのプロジェクト作成をサポートするようになり、足場組を迂回してより迅速にコーディングを開始できるようになりました。Python環境: テンプレートからプロジェクトを作成コマンドを使用して、パッケージを作成するかスクリプトを作成するかを選択します。
パッケージ作成の場合、パッケージの名前を付け、仮想環境を作成し、テストサブフォルダー、pyproject.toml
、dev-requirements.txt
、および定型的な__main__.py
と__init__.py
ファイルを含む足場組されたプロジェクトを受け取ることができます。
スクリプトの場合、選択した名前で新しいPythonファイルを作成し、定型コードを含めます。
PyEnvとPoetryのサポート
Python Environments拡張機能に、環境管理のためのpyenv
、およびパッケージと環境管理の両方のためのpoetry
のサポートが追加されました。
GitHubプルリクエスト
GitHub Pull Requests拡張機能は、プルリクエストと課題の作業、作成、管理を可能にするもので、さらに進展がありました。新機能は以下の通りです。
- プライベートリポジトリのコメント内の画像が、プルリクエストのファイルコメントに表示されるようになりました。
- 「通知」ビューがデフォルトで折りたたまれた状態で表示されるようになりました。—タイムラインおよびIssue/プルリクエスト本文内のIssueおよびプルリクエストのリンクは、ブラウザではなくVS Code内で開かれるようになりました。
- 「プルリクエスト」ビューの「私に割り当てられた」クエリが削除され、「ローカルプルリクエストブランチ」および「すべてのオープン」クエリは設定
githubPullRequests.queries
を使用して削除できます。Copilotを使用するリポジトリの場合、設定が未構成の場合に「Copilotが私の代わりに」クエリが追加されます。 - Copilotの「作業開始」、「作業停止」、「セッション表示」がタイムラインに表示されるようになりました。
その他のハイライトについては、拡張機能の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
のポリフィルを作成し、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認証プロバイダーを見ると、認証プロバイダーのコントリビューションのauthorizationServerGlobsプロパティに、一般的なGitHub認証URLが含まれています。
{
"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のIssueで皆様からのフィードバックをお待ちしております!
エンジニアリング
Electron 35への更新
今回のマイルストーンでは、Electron 35への更新をStableリリースユーザー向けに提供します。この更新には、Chromium 134.0.6998.205とNode.js 22.15.1が含まれています。Insidersビルドでセルフホストを行い、早期のフィードバックを提供してくださった皆様に感謝いたします。
実世界の拡張機能でのESMの採用
前回のマイルストーンで、JavaScriptモジュール (ESM) のサポートを発表しました。これにより、拡張機能はimport
およびexport
ステートメントを使用できますが、現在、Node.js拡張ホストをターゲットにしている場合に限られます。
今月、GitHub Issue Notebooksで実世界への導入を行いました。この拡張機能は、Node.js拡張ホスト(ESM拡張機能をサポート)と、現在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): fix: DynamicAuthProviderの認証URLにスコープパラメータを条件付きで追加 PR #250084
- @jeanp413 (Jean Pierre)
- エディターの切り替えが速すぎるとタイムラインのgitリクエストがキャンセルされない問題を修正 PR #244335
- webworker拡張機能ホストでvscode.env.onDidChangeShellが発火しない問題を修正 PR #249824
- @joyceerhl (Joyce Er)
- refactor: チャットリストレンダラーでチャット添付ウィジェットを再利用 PR #248163
- fix: チャット添付コンテンツ部分にウィジェットを登録 PR #249054
- fix: 履歴チャット添付ファイルにコンテンツ参照の説明を設定 PR #249112
- fix: MCPツール確認にマークダウン文字列を使用 PR #249497
- fix: 編集セッションIDプロバイダーが編集セッションペイロードを変更した場合でも続行を許可 PR #250057
- @JoyceGu (Joyce Gu): Joycegu/add genai packages 05222025 PR #249589
- @mawosoft (Matthias Wolf): 厳格モードが有効な場合のPowerShellシェル統合を修正。 PR #248625
- @mortalYoung (野迂迂): fix(search): expand allが動作しない問題を修正 PR #248207
- @nojaf (Florian Verdonck): 未使用のポートをすべて閉じるコマンド PR #244245
- @nomike (nomike): 名前変更されたリポジトリを処理するようにGithHub公開ロジックを強化 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 docsのトップへのリンクをしない 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 Debuggerを追加 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 extensionをservers.mdに追加 PR #2136
- @zonuexe (USAMI Kenta): Emacs用のLSPクライアントを追加 PR #2145
lsprotocol
への貢献者
- @debonte (Erik De Bonte)
- @myleshyson (Myles Hyson): プラグインテーブルにgolangを追加 PR #418