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をご覧ください。インサイダー: 新しい機能をできるだけ早く試したいですか?夜間ビルドのインサイダーをダウンロードして、最新の更新が利用可能になり次第お試しいただけます。
チャット
チャットツールセット
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の場合
そこからサインアウトすることもできます。これらの場合、コード認証フローだけでなく、認証サーバーがサポートしていればデバイスコードフローもサポートしています。
また、Authentication: 動的認証プロバイダーを削除
コマンドを導入しました。これにより、これらの動的なクライアント登録をすべてクリーンアップできます。これにより、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で修正アクションを使用して、それらを迅速かつ効率的に解決してください。
カスタムチャットモード (プレビュー)
デフォルトでは、チャットビューは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ウィンドウに戻す
- フローティングウィンドウで新しいチャットセッションを開始する
フェッチツールの確認
フェッチツールを使用すると、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でシェル環境の検出を実装しました。これにより、Node.jsがさまざまなバージョンマネージャーを介して構成するPATHの更新など、PowerShellプロファイルで構成された環境がVS Codeに継承されます。
未公開拡張機能の警告
インストールされている拡張機能は、マーケットプレイスで利用できなくなった場合に警告インジケーターを表示するようになり、公開停止または削除された可能性のある問題のある拡張機能を特定するのに役立ちます。
設定検索の提案 (プレビュー)
設定: 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キーを押すだけで後続の提案を承認し続けることができます。入力し始めると、Tabキーを押してカーソルを次の提案に移動してから承認できます。
ノートブック
エージェントセル実行のフォローモード
設定: github.copilot.chat.notebook.followCellExecution.enabled
フォローモードでは、ノートブックビューはエージェントによって現在実行されているセルに自動的にスクロールします。github.copilot.chat.notebook.followCellExecution.enabled設定を使用して、Jupyter Notebooksでのエージェントセル実行のフォローモードを有効または無効にします。
エージェントがセル実行ツールを使用すると、ノートブックのツールバーがピンアイコンで更新され、フォローモードの状態が示されます。エージェント応答の途中で基本設定値を変更せずに動作を切り替えることができ、エージェントの作業をリアルタイムで追跡し、エージェントが反復を続ける間に特定のコード部分を確認したいときにオフにすることができます。再度フォローしたい場合は、モードを切り替えるだけで、次の実行に参加できます。
エージェントモードのノートブックツール
ノートブックを構成
Jupyter拡張機能は、Jupyter Notebookのカーネルを構成するためのツールを提供します。このツールは、カーネルが選択され、ノートブックで使用できる状態であることを保証します。これには、必要に応じて仮想環境を作成するプロセス (推奨されるアプローチ) や、既存のPython環境を選択するよう促すプロセスが含まれます。
このツールにより、LLMはユーザーの操作を最小限に抑えてセルを実行するなど、ノートブックに対する操作を実行でき、エージェントモードでの全体的なユーザーエクスペリエンスが向上します。
長時間実行されるエージェントワークフロー
エージェントは内部のノートブックサマリーツールにアクセスでき、正確なコンテキストを維持して作業を継続するのに役立ちます。このサマリーは、コンテキストが大きすぎてエージェントが複雑な操作を継続できない場合に、会話履歴を要約する際にも含まれます。
実行確認時のセルプレビュー
エージェントがセルの実行確認を要求すると、ノートブックセルからのコードスニペットが表示されます。チャットビューのセルリンクから、ノートブック内のセルに直接移動できるようになりました。
ソース管理
Copilotコーディングエージェント統合
Copilotコーディングエージェントを使用すると、GitHub Copilotは人間開発者と同じように、バックグラウンドで独立してタスクを完了できます。VS Code内からエージェントのタスクを割り当てて追跡しやすくするために、GitHub Pull Requests拡張機能を拡張しました。
拡張機能に次の機能を追加しました。
- Copilotに割り当てる: VS Codeの課題ビューまたはPRビューからプルリクエストまたは課題を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 Envs: テンプレートからプロジェクトを作成コマンドを使用して、パッケージを作成するかスクリプトを作成するかを選択します。
パッケージ作成の場合、パッケージに名前を付け、仮想環境を作成し、テストサブフォルダ、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が私に代わって」クエリが追加されます。 - Copilotの「作業開始」、「作業停止」、「セッション表示」がタイムラインに表示されるようになりました。
その他のハイライトについては、拡張機能の0.112.0リリース変更履歴をご覧ください。
拡張機能の作成
MCP拡張機能API
拡張機能はMCPサーバーのコレクションを公開できるようになりました。これにより、MCPサーバーを拡張機能にバンドルしたり、他のソースからMCPサーバーを動的に検出する拡張機能を作成したりできます。詳細については、MCP拡張機能開発ガイドまたはMCP拡張機能サンプルをご覧ください。
拡張機能のパッケージ化時のシークレットスキャン
VSCEが拡張機能をパッケージ化する際に、シークレットをスキャンするようになりました。ソースファイル内に潜在的なシークレット (例: APIキー、トークン、資格情報、または.env
などの環境変数ファイル) が検出された場合、VSCEはパッケージ化プロセス中にエラーを表示します。これにより、機密情報が誤ってマーケットプレイスに公開されるのを防ぎます。拡張機能を公開する前に、必ずエラーを確認して対処してください。
特定のチェックをバイパスする必要がある場合は、VSCEを実行する際に--allow-package-secrets
または--allow-package-env-file
フラグを使用できます。これらのフラグを使用すると、パッケージ化中にスキップすべきシークレットまたは環境ファイルチェックを設定できます。
Web環境検出
⚠️ 破壊的変更 ⚠️
設定: extensions.supportNodeGlobalNavigator
Electron 35ランタイム更新の一環として、Node.js拡張ホストがv20からv22に更新されました。この更新により、デスクトップおよびリモート拡張ホストでnavigator
グローバルオブジェクトのサポートが追加されました。
この変更は、navigator
オブジェクトの存在に依存してWeb環境を検出する拡張機能に破壊的変更をもたらす可能性があります。
拡張機能作成者が移行を支援するために、globalThis.navigator
のポリフィルを作成し、undefined
に初期化しました。これにより、拡張機能は引き続き正しく動作します。このポリフィルは、extensions.supportNodeGlobalNavigatorVS 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 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で実際に採用しました。この拡張機能は、NodeJS拡張ホスト (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: 新しいソース形式と必須の署名者を追加 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 (Joyce Er)
- リファクタリング: チャットリストレンダラーでチャット添付ウィジェットを再利用 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): 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機能をバンプ 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 Debuggerを追加 PR #544
language-server-protocol
への貢献者
- @asukaminato0721 (Asuka Minato)
- @brynne8 (Brynne Taylor): グロブパターン仕様のタイプミスを修正 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