VSCode1.101のリリースノート(日本語訳)

JavaScriptを有効にしてください

まえがき

VSCode1.101のリリースノートをChatGPTで日本語に翻訳しました。
VSCode 1.101 Release Notes

最新のVSCode1.102のリリースノートの日本語訳は下記をお読みください。
VSCode1.102のリリースノート(日本語訳)

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

リリース日: 2025年6月12日
セキュリティ更新: 以下の拡張機能にセキュリティ更新があります: ms-python.python
更新 1.101.1: この更新はこれらの問題 に対処しています。
更新 1.101.2: この更新はこれらの問題 に対処しています。

Visual Studio Codeの2025年5月リリースへようこそ。このバージョンには多くの更新があり、いくつかの主要なハイライトを以下に示します。

MCP

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

Chat

関連するツールをツールセットにまとめてグループ化および管理します(詳細… )。

Source Control

ソースコントロールグラフビューでファイルを表示します(詳細… )。
GitHub Copilot Coding Agentの作業をVS Code内から割り当てて追跡します(詳細… )。

Chat

チャットツールセット

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

1
2
3
4
5
6
7
{
  "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コマンドを実行します。その後、ツールセットに含めたいツールを選択し、説明とアイコンを提供します。
チャットクエリでツールセットを使用するには、その名前を#で参照します。チャット入力ボックスのツールピッカーからも選択できます。

ツールセットについての詳細は、ドキュメント をご覧ください。

プロンプトのためのMCPサポート

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

リソースのためのMCPサポート

VS CodeのModel Context Protocolサポートには、リソーステンプレートのサポートを含むリソースサポートが含まれるようになりました。これはいくつかの場所で利用可能です。

MCPツール呼び出しから返されたリソースはモデルに利用可能で、保存ボタンを介して、またはリソースをエクスプローラービューにドラッグすることでチャットに保存できます。
リソースは、チャット内のAdd Context...ボタンを介してコンテキストとして添付でき、その後MCP Resources...を選択します。
MCP: Browse Resourcesコマンドを使用してサーバー全体のリソースを閲覧および表示するか、MCP: List Serversコマンドのエントリでサーバーごとに表示できます。

サンプリングのためのMCPサポート(実験的)

VS CodeのModel Context Protocolサポートには、サンプリングが含まれるようになりました。これにより、MCPサーバーがモデルにリクエストを戻すことができます。MCPサーバーがサンプリングリクエストを初めて行うときに確認を求められ、MCPサーバーがアクセスできるモデルを設定したり、MCP: List Serversでサーバーを選択してリクエストログを表示したりできます。

サンプリングサポートはまだ初期段階であり、将来的な反復で拡張および改善する予定です。

認証のためのMCPサポート

VS Codeは、認証が必要なMCPサーバーをサポートするようになり、そのサービスのユーザーアカウントに代わって動作するMCPサーバーと対話できます。
この機能は、クライアント用のMCP認証仕様を実装し、以下の両方をサポートします。

2025-3-26 spec 、MCPサーバーが認証サーバーとして動作する場合。
Draft spec 、MCPサーバーがリソースサーバーとして動作する場合(これは近日中に最終化される予定です)。

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

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

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

そこではサインアウトもできます。これらには、コード認証フローだけでなく、認証サーバーがサポートしている場合はデバイスコードフローもサポートしています。
また、Authentication: Remove Dynamic Authentication Providersコマンドを導入し、これらの動的クライアント登録をクリーンアップできるようにしました。これにより、VS Codeに発行されたクライアントIDとこの認証プロバイダーに関連するすべてのデータが破棄されます。
MCPサーバーを追加するには、MCP: Add Server...コマンドを使用できます。これは、認証が必要なサーバーのエントリポイントと同じです。

MCP開発モード

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

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
{
  "servers": {
    "gistpad": {
      "command": "node",
      "args": ["build/index.js"],
      "dev": {
        "watch": "build/**/*.js",
        "debug": { "type": "node" }
      }
    }
  }
}

チャットUXの改善

VS Codeでのチャットユーザーエクスペリエンスを改善するために、継続的に取り組んでいます。ユーザーからのフィードバックの1つは、チャット内でユーザーメッセージとAI応答を区別するのが難しいというものでした。これに対処するために、ユーザーメッセージの外観をより明確にしました。
以前のリクエストを元に戻すことも、より目立つようになりました。リクエストにカーソルを合わせてXボタンを選択すると、そのリクエストとそれに続くリクエストを元に戻すことができます。さらに迅速に行うには、Deleteキーボードショートカットを使用してください!
最後に、チャット入力ボックスからの添付ファイルがよりナビゲートしやすくなりました。

VS Codeでのチャットの使用 についての詳細は、ドキュメントをご覧ください。

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

ファイルを編集する際、VS Codeは2つの異なるアプローチを取ることができます: ファイル全体を上から下まで書き換えるか、複数の小さな編集を行うかです。両方のアプローチは異なります。たとえば、前者は大きなファイルに対して遅くなることがあり、中間状態が正常にコンパイルされないことがよくあります。そのため、UIは適応し、必要に応じて自動保存と波線を条件付きで無効にします。
また、KeepUndoコマンドのキーバインディングを整列させました。個々の変更を保持および元に戻すことは、Ctrl+YCtrl+Nで行われるようになりました。同様に、ファイル内のすべての変更を保持および元に戻すためのキーバインディングも整列させ、Ctrl+Shift+YCtrl+Shift+Nになりました。これは単なる整列のためだけでなく、人気のある編集コマンド(Delete All Leftなど)との以前の競合を解消するためでもあります。

暗黙のコンテキスト

チャットで現在のファイルをコンテキストとして追加する方法を簡素化しました。以前の「目玉トグル」は少し不格好だと感じる人が多かったです。現在、現在のファイルは提案されたコンテキストアイテムとして提供されます。アイテムを選択するだけで、チャットコンテキストに追加または削除できます。プロンプト入力フィールドから、Shift+TabEnterを押して、キーボードでこれを迅速に行うことができます。
さらに、エージェントモードでは、現在のエディタに関するヒントを含めています。これにはファイルの内容は含まれず、ファイル名とカーソル位置のみが含まれます。エージェントは、クエリに関連があると考えた場合に、ファイルの内容を自分で読み取るためのツールを使用できます。

チャットでのコンテキストの追加 についての詳細は、ドキュメントをご覧ください。

タスク構成エラーの修正

タスクと問題マッチャーの構成は難しいことがあります。タスク構成にエラーがある場合に提供されるFix with Github Copilotアクションを使用して、それらを迅速かつ効率的に解決します。

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

デフォルトでは、チャットビューは3つの組み込みチャットモードをサポートしています: AskEditAgent。各チャットモードには、LLMがリクエストをどのように処理するかを説明する一連の基本指示と、そのために使用できるツールのリストが付属しています。
現在、チャットビューで使用できる独自のカスタムチャットモードを定義できます。カスタムチャットモードを使用すると、チャットの動作を調整し、そのモードで利用可能なツールを指定できます。これは、特定のワークフローに特に役立ちます。また、LLMに特定の指示を提供したい場合にも役立ちます。たとえば、新機能の計画を立てるためのカスタムチャットモードを作成し、コードベースへの読み取り専用アクセスのみを持たせることができます。
カスタムチャットモードを定義して使用するには、次の手順に従います。

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

以下の例は、カスタム「Planning」チャットモードを示しています:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
---
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を無効にしたりできます。
エージェントモードでは、Configure Toolsボタンを選択してツールピッカーを開き、希望するツールセットを選択します。

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

チャットへの要素の送信(実験的)

前回のマイルストーンでは、新しい実験的機能 を追加し、埋め込みブラウザからチャットにウェブ要素を追加するためにSimple Browserを開くことができました。

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

アクセシビリティ

ユーザーアクションが必要な音

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

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

以下のために異なる音を導入しました:

コードアクションがトリガーされたとき: accessibility.signals.codeActionTriggered
コードアクションが適用されたとき: accessibility.signals.codeActionApplied

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

確認ダイアログに関する豊富な情報をアクセシブルビューに含めるようになりました。これには、過去のツール実行、現在のツール実行、および保留中の確認が含まれます。使用される入力も含まれます。
確認ダイアログが応答に表示されると、アクションのタイトルが対応するコードブロックのARIAラベル、応答のARIAラベル、およびスクリーンリーダーユーザーにより良いコンテキストを提供するためのライブアラートに含まれるようになりました。

エディターエクスペリエンス

タイプしながら検索

設定: editor.find.findOnType
タイプしながら検索は、検索コントロールのデフォルトの動作でしたが、これを維持するか、Enterキーを押した後にのみ検索を実行するように無効にするかを制御できるようになりました。

ネイティブウィンドウタイトルバーを使用したカスタムメニュー

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

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

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

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

プロセスエクスプローラーのウェブサポート

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

Windowsシェル環境の検出

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

未公開の拡張機能の警告

インストールされた拡張機能は、マーケットプレイスで利用できなくなったときに警告インジケーターを表示し、未公開または削除された可能性のある問題のある拡張機能を特定するのに役立ちます。

設定検索の提案(プレビュー)

設定: 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から手動でトリガーされた場合にのみセマンティック検索を実行
runOnEmpty: テキスト検索が結果を返さない場合に自動的にセマンティック検索を実行
auto: すべての検索クエリに対してテキスト検索と並行して常にセマンティック検索を実行

編集コンテキスト

設定: editor.experimentalEditContextEnabled
※将来的には editor.editContext に変更予定

editor.experimentalEditContextEnabled 設定を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
フォローモードを使用すると、ノートブックビューがエージェントによって現在実行されているセルに自動的にスクロールします。 github.copilot.chat.notebook.followCellExecution.enabled 設定を使用して、Jupyterノートブックでのエージェントセル実行のフォローモードを有効または無効にします。
エージェントがセル実行ツールを使用すると、ノートブックツールバーがピンアイコンで更新され、フォローモードの状態を示します。基本設定値を変更せずに、エージェントの作業をリアルタイムでフォローし、エージェントが反復を続ける間に特定のコード部分を確認したいときにオフに切り替えることができます。再度フォローしたい場合は、モードを切り替えて次の実行に参加してください。

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

ノートブックの構成

Jupyter拡張機能 は、Jupyterノートブックのカーネルを構成するためのツールを提供します。このツールは、カーネルが選択され、ノートブックで使用する準備が整っていることを確認します。
必要に応じて仮想環境を作成するプロセスを案内する(推奨アプローチ)、または既存のPython環境を選択するように促します。
このツールは、LLMが最小限のユーザー操作でセルを実行するなどの操作をノートブックで実行できるようにし、エージェントモードでの全体的なユーザーエクスペリエンスを向上させます。

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

エージェントは、正確なコンテキストで軌道を維持するために内部ノートブックサマリーツールにアクセスできます。そのサマリーは、コンテキストが大きすぎてエージェントが複雑な操作を続けることができない場合に、会話履歴を要約する際にも含まれます。

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

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

ソースコントロール

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

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

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

ソースコントロール履歴アイテムの詳細

人気の要望に応じて、ソースコントロールグラフビューでアイテムを選択すると、その履歴アイテムのリソースが表示されるようになりました。…メニューからツリービューまたはリストビューの表現を選択できます。

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

チャットコンテキストへの履歴アイテムの追加

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

履歴アイテムをチャットに追加するには、チャットビューからAdd Context > Source Controlを使用し、特定の履歴アイテムを選択します。あるいは、ソースコントロールグラフで履歴アイテムを右クリックし、コンテキストメニューからCopilot > Add History Item to Chatを選択します。

タスク

インスタンスポリシー

Task runOptionsにはinstancePolicyプロパティが追加され、タスクがinstanceLimitに達したときに何が起こるかを決定します。
オプションには、prompt(デフォルト)、silentterminateNewestterminateOldestwarnがあります。

ターミナル

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

言語サーバー補完がインタラクティブなPython REPLセッションのためにターミナルで利用可能になりました。
これにより、エディタで受け取るのと同じ言語補完がターミナル内で利用できるようになります。
PythonをPylanceを介してサポートすることから始め、将来的には他の言語にも拡張する予定です。

試してみるには、以下の設定が有効になっていることを確認してください:

terminal.integrated.shellIntegration.enabled
python.terminal.shellIntegration.enabled
terminal.integrated.suggest.enabled
python.analysis.supportAllPythonDocuments

リモート開発

リモート開発拡張機能 を使用すると、Dev Container 、SSH経由のリモートマシンまたはRemote Tunnels 、またはWindows Subsystem for Linux (WSL)をフル機能の開発環境として使用できます。
ハイライトには以下が含まれます:

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

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

拡張機能への貢献

Python

Pythonチャットツール

Python拡張機能 には、次のチャットツールが含まれるようになりました: 「Python環境の情報を取得」、「Python環境の実行可能情報を取得」、「Pythonパッケージをインストール」、「Python環境を構成」。プロンプトで#getPythonEnvironmentInfo#installPythonPackageを追加して直接参照するか、エージェントモードが適用されるツールを自動的に呼び出します。これらのツールは、ファイルまたはワークスペースコンテキストに基づいて適切な環境情報をシームレスに検出し、正確な環境解決でパッケージのインストールを処理します。
「Python環境を構成」ツールは、ワークスペースのPython環境が正しく設定されていることを確認します。必要に応じて仮想環境を作成し、それをワークスペースのアクティブなPython環境として選択します。
以前にPython Environments 拡張機能(プレビュー)で導入されたツールは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 Pull Requests

GitHub Pull Requests 拡張機能の進展があり、プルリクエストや問題の作成、管理が可能になりました。新機能には以下が含まれます:

プライベートリポジトリからのコメント内の画像がプルリクエストファイルコメントに表示されるようになりました。
「通知」ビューがデフォルトで表示され、折りたたまれています。
タイムライン内の問題およびプルリクエストリンクがブラウザに移動するのではなく、VS Codeで開かれるようになりました。
「Pull Requests」ビューの「Assigned to Me」クエリが削除され、「Local Pull Request Branches」と「All Open」クエリはgithubPullRequests.queries設定を使用して削除できます。Copilotを持つリポジトリでは、設定が未構成の場合に「Copilot on My Behalf」クエリが追加されます。
Copilotの「作業開始」、「作業停止」、および「セッション表示」がタイムラインに表示されるようになりました。

拡張機能の0.112.0リリースの変更ログ を確認して、他のハイライトを学んでください。

拡張機能の作成

MCP拡張API

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

拡張機能のパッケージング時の秘密のスキャン

VSCEは、拡張機能をパッケージングする際に秘密をスキャンするようになりました。ソースファイルに潜在的な秘密(たとえば、APIキー、トークン、資格情報、または.envのような環境変数ファイル)が検出された場合、VSCEはパッケージングプロセス中にエラーを表示します。これにより、マーケットプレイスに機密情報を誤って公開するのを防ぐことができます。公開する前にエラーを確認し、対処してください。
特定のチェックをバイパスする必要がある場合は、VSCEを実行する際に--allow-package-secretsまたは--allow-package-env-fileフラグを使用できます。これらのフラグを使用すると、パッケージング中にスキップする秘密または環境ファイルチェックを設定できます。

ウェブ環境の検出

⚠️ 破壊的変更 ⚠️
設定: extensions.supportNodeGlobalNavigator
Node.js拡張ホストは、Electron 35ランタイムの更新の一環として、v20からv22に更新されました。この更新により、デスクトップおよびリモート拡張ホストでのnavigatorグローバルオブジェクト のサポートが追加されました。
この変更は、ウェブ環境を検出するためにnavigatorオブジェクトの存在に依存する拡張機能に破壊的変更をもたらす可能性があります。
拡張機能の作成者が移行するのを支援するために、globalThis.navigatorのポリフィルを作成し、未定義に初期化しました。これにより、拡張機能が正しく動作し続けます。ポリフィルは 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が含まれています:

1
2
3
4
5
{
  "label": "GitHub",
  "id": "github",
  "authorizationServerGlobs": ["https://github.com/login/oauth"]
}

このプロパティは、拡張機能のアクティベーションに使用されます。要求された認証サーバーが一致する場合、拡張機能がアクティブ化されます。
さらに、認証プロバイダーを登録する際には、最終化された認証サーバーURLグロブを含める必要があります。GitHub認証がここで行っているように:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
vscode.authentication.registerAuthenticationProvider(
  type,
  this._githubServer.friendlyName,
  this,
  {
    supportsMultipleAccounts: true,
    supportedAuthorizationServers: [
      ghesUri ?? vscode.Uri.parse('https://github.com/login/oauth')
    ]
  }
);

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

1
2
3
4
5
6
7
{
  "label": "Microsoft",
  "id": "microsoft",
  "authorizationServerGlobs": [
    "https://login.microsoftonline.com/*/v2.0"
  ]
}

そして登録 で:

1
2
3
4
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拡張をサポートしていません。これにはより複雑なバンドラー構成が必要であり、その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からlog 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
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/add genai packages 05222025 PR #249589
@mawosoft (Matthias Wolf) : 厳密モードが有効な場合のPowerShellシェル統合を修正 PR #248625
@mortalYoung (野迂迂) : 修正(検索): すべて展開が機能しない問題を修正 PR #248207
@nojaf (Florian Verdonck) : すべての未使用ポートを閉じるコマンド PR #244245
@nomike (nomike) : リポジトリの名前変更を処理するためのGitHub公開ロジックを強化 PR #245024
@Parasaran-Python (Parasaran) : 修正 #248222 | 相対パスで複数の先行ドットを許可するための正規表現の変更 PR #248340
@pelmers-db (Peter Elmers) : ピッカーの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) : 修正(devcontainer): コンテナビルドを修正するためにrust機能をバンプ PR #250430
@y0sh1ne (y0sh1ne) : 複数選択でのメッセージのコピーを修正 (#_247927) PR #248172

vscode-copilot-releaseへの貢献:

@joyceerhl (Joyce Er) : chore: update bug report template PR #9702

vscode-css-languageserviceへの貢献:

@Legend-Master (Tony) : 基本的なメディアクエリの自動補完サポートを追加 PR #443
@rgant (J Rob Gant)

機能:(#_305) oklabおよびoklchカラー関数のサポートを追加 PR #436
余分な文字を削除 PR #437
リファクタ: ベースtsconfig.jsonを拡張 PR #438

vscode-custom-dataへの貢献:

@Legend-Master (Tony) : メディアクエリサポートを追加 PR #118

vscode-eslintへの貢献:

@MariaSolOs (Maria José Solano)

eslint.codeActionsOnSave.optionsを追加 PR #1999
すべての可能なフラット構成拡張を追加 PR #2017

vscode-generator-codeへの貢献:

@SamB (Samuel Bronson) : vscodeドキュメントのトップへのリンクを削除 PR #518

vscode-js-debugへの貢献:

@kdy1 (Donny/강동윤) : chore: Fix default url for turbopack PR #2223
@mikaelwaltersson (Mikael Waltersson) : WasmWorkerインスタンスが破棄されるがページリロード時に再生成されないバグを修正 + SharedArrayBufferwriteMemory PR #2211

vscode-jupyterへの貢献:

@WillHirsch : パッケージインストールにbangの代わりにpercentを使用することの診断の重大度をダウングレード PR #16601

vscode-languageserver-nodeへの貢献:

@martijnwalraven (Martijn Walraven) : workspace/textDocumentContent/refreshリクエストを修正 PR #1637

vscode-markdown-tm-grammarへの貢献:

@Barros1902 (Tomás Barros ) : マークダウン構文でのアンダースコアを使用した取り消し線を修正(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)

caddyを追加 PR #2131
kdlを追加 PR #2139

@brynne8 (Brynne Taylor) : グロブパターン仕様のタイプミスを修正 PR #2132
@leon-bckl (Leon) : c++20 lsp-frameworkを追加 PR #2144
@nieomylnieja (Mateusz Hawrus) : chore: Add Nobl9 VSCode extension to servers.md PR #2136
@zonuexe (USAMI Kenta) : Emacs用のLSPクライアントを追加 PR #2145

lsprotocolへの貢献:

@debonte (Erik De Bonte)

最新のLSP仕様に更新 PR #420
リリースパイプラインをMicroBuildを使用するように書き換え、vscodeのテンプレートを使用しない PR #421
pyproject.tomlのバージョンを2025.0.0rc1に変更 PR #422

@myleshyson (Myles Hyson) : プラグインテーブルにgolangを追加 PR #418


スポンサーリンク

共有

もふもふ

プロフィール

著者
もふもふ
プログラマ。汎用系→ゲームエンジニア→Webエンジニア→QAエンジニア