2025年7月 (バージョン 1.103)
リリース日: 2025年8月7日
ダウンロード: Windows: x64 Arm64 | Mac: Universal Intel シリコン | Linux: deb rpm tarball Arm snap
Visual Studio Code 2025年7月版へようこそ。このバージョンには、皆さんに気に入っていただけることを願う多くの更新が含まれています。主なハイライトの一部は以下のとおりです。
-
MCP
-
チャット
-
生産性
これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com の 更新 にアクセスしてください。
Insiders: 新機能をいち早く試したいですか?
毎日のInsidersビルドをダウンロードして、最新の更新が利用可能になり次第すぐに試すことができます。
Insidersをダウンロード
チャット
GPT 5の利用可能性
本日より、GPT-5がすべての有料GitHub Copilotプランに展開されます。GPT-5はOpenAIのこれまでのモデルで最も高性能なモデルであり、推論、コーディング、チャットにおける新たな進歩をもたらします。GPT-5モデルの利用可能性については、GitHub Changelogで詳細をご覧ください。
チャットビューを開き、モデルピッカーからGPT-5を選択すると、VS Codeでチャットの会話にGPT-5を使用できます。
VS Codeでの言語モデルの使用について詳しく学ぶ。
チャットチェックポイント
チャットの会話の異なる状態を復元できるようにするチェックポイントを導入しました。編集を簡単に元に戻したり、チャットの会話の特定の時点に戻ったりすることができます。これは、チャットセッションで複数のファイルが変更された場合に特に便利です。
チェックポイントを選択すると、VS Codeはワークスペースの変更とチャット履歴をその時点に戻します。チェックポイントを復元した後も、そのアクションをやり直すことができます!
チェックポイントはデフォルトで有効になっており、chat.checkpoints.enabledで制御できます。
ツールピッカーの改善
今回のイテレーションでは、ツールピッカーを完全に刷新し、すべてのツールを表示するためにQuick Treeという新しいコンポーネントを採用しました。
注目すべき機能
- 展開または折りたたみ
- 設定オプションをタイトルバーに移動
- スティッキースクロール
- アイコンレンダリング
ご意見をお聞かせください!
ツールグループ化 (実験的)
設定: github.copilot.chat.virtualTools.threshold
単一のチャットリクエストで使用できるツールの最大数は現在128です。以前は、多数のツールを含むMCPサーバーをインストールすることでこの制限にすぐに達し、続行するためには一部のツールを選択解除する必要がありました。
このVS Codeリリースでは、ツールの数が最大制限を超えた場合に実験的なツール呼び出しモードを有効にしました。ツールは自動的にグループ化され、モデルはツールのグループをアクティブ化して呼び出すことができるようになります。
この動作(しきい値を含む)は、設定github.copilot.chat.virtualTools.thresholdで設定可能です。
ターミナル自動承認の改善
設定: chat.tools.terminal.autoApprove
先月、初期のターミナル自動承認設定が導入されました。今回のリリースでは、この機能に多くの改善が加えられました。ターミナル自動承認について、ドキュメントで詳しくご覧ください。
-
allowList
とdenyList
の設定をchat.tools.terminal.autoApprove設定に統合しました。以前の古い設定を使用していた場合は、新しい設定に移行するよう促す警告が表示されるはずです。 -
正規表現マッチャーがフラグをサポートするようになりました。これにより、PowerShellなど、大文字小文字が問題にならないことが多い環境で、大文字小文字を区別しない検索が可能になります。
"chat.tools.terminal.autoApprove": { // Deny any `Remove-Item` command, regardless of case "/^Remove-Item\\b/i": false }
-
サブコマンドのマッチングがどのように機能するかについて、一部に混乱があったため、設定の説明で詳細に説明されるようになりましたが、コマンドライン全体とのマッチングもサポートしています。
"chat.tools.terminal.autoApprove": { // Deny any _command line_ containing a reference to what is likely a PowerShell script "/\\.ps1\\b/i": { approve: false, matchCommandLine: true } }
-
自動承認の理由は、ターミナル出力チャンネルにログされるようになりました。これについては、近いうちにUIに表示する予定です。
-
当面の間、自動承認はユーザー設定またはリモート設定でのみ許可されます。今後のリリースでは、ワークスペース設定での使用を再度許可する予定です。
タスクリストで進捗を追跡 (実験的)
エージェントモードの素晴らしい点は、高レベルのタスクを与えて、それを実装させることができることです。作業を計画し、より小さなタスクに分解する際、これら個々のタスクすべての進捗を追跡するのは大変な場合があります。
このマイルストーンでは、チャットにタスク/ToDoリスト機能を導入し、どのタスクが完了し、どのタスクがまだ保留中であるかをよりよく確認できるようにしました。チャットビューの上部にタスクリストを表示できるため、進捗状況を常に把握できます。エージェントが作業を進めるにつれて、タスクリストを更新します。
エージェントに高レベルのタスクを与え、ToDoリストでその作業を追跡するように依頼することから始めましょう!
この機能はまだ実験的であり、chat.todoListTool.enabled設定で有効にできます。
モデル管理エクスペリエンスの改善
今回のイテレーションでは、言語モデルへのアクセスを担うチャットプロバイダーAPIを刷新しました。ユーザーはモデルピッカーに表示されるモデルを選択できるようになり、よりパーソナライズされ、焦点を絞ったエクスペリエンスが実現します。
この新しいAPIを数ヶ月以内に最終化する予定であり、皆様からのフィードバックを歓迎いたします。このAPIの最終化により、拡張機能エコシステムが独自のモデルプロバイダーを実装し、既存のキー持ち込みサービスをさらに拡大できるようになります。
Azure DevOpsリポジトリのリモートインデックスサポート
#codebase
ツールは、Azure DevOpsリポジトリにリンクされたワークスペースのリモートインデックスをサポートするようになりました。これにより、#codebase
は初期化なしでほぼ瞬時に関連するスニペットを検索できます。これは、数万のインデックス可能なファイルを持つ大規模なリポジトリでも機能します。以前は、この機能はGitHubにリンクされたリポジトリでのみ機能していました。
Gitを介してAzure DevOpsにリンクされたワークスペースで作業している場合、リモートインデックスは自動的に使用されます。Azure DevOpsリポジトリにアクセスするために使用するMicrosoftアカウントでVS Codeにもログインしていることを確認してください。
この機能のサポートはサービス側で段階的に展開されているため、最初はすべての組織が使用できるわけではありません。展開の成功に基づいて、可能な限り多くの組織でAzure DevOpsのリモートインデックスを有効にしたいと考えています。
ターミナルおよびタスクツールでの実行の信頼性とパフォーマンスの向上
ターミナル内でタスクとコマンドを実行するためのツールを、Copilot拡張機能からコアのmicrosoft/vscodeリポジトリに移行しました。これにより、ツールはより低レベルで豊富なAPIにアクセスできるようになり、多くのターミナルハング問題を修正できます。この更新には、拡張機能APIの機能、特にチャットビュー内のカスタムUIを必要とする変更に制限されなくなったため、今後機能をより簡単に実装できるという利点もあります。
チャット使用時のシェル統合なしの警告
シェル統合なしでエージェントモードがターミナルでコマンドを実行できるように努めていますが、その時点ではターミナルが基本的にブラックボックスであるため、エクスペリエンスは常に劣ります。シェル統合がない場合に発生する可能性のある問題の例としては、終了コードのレポートがないこと、コマンドのアイドル状態とプロンプトのアイドル状態を区別できないことなどが挙げられ、結果として出力がエージェントにレポートされない可能性があります。
run in terminal
ツールが使用され、シェル統合が検出されない場合、この点を指摘し、ドキュメントを指し示すメッセージが表示されます。
タスクとターミナルの出力ポーリング
エージェントは、出力ポーリングを使用して、タスクとバックグラウンドターミナルが完了するまで待機してから続行するようになりました。プロセスが20秒以上かかる場合は、待機を続けるか、次に進むかを確認するプロンプトが表示されます。エージェントは最大2分間プロセスを監視し、現在の状態を要約したり、プロセスがまだ実行中であるかどうかを報告したりします。これにより、チャットで長いコマンドやエラーが発生しやすいコマンドを実行する際の信頼性が向上します。
タスク認識の改善
以前は、エージェントはアクティブなタスクしか監視できませんでした。現在、アクティブなタスクと完了したタスクの両方の出力を追跡および分析できるようになり、失敗したタスクや実行が終了したタスクも含まれます。この機能強化により、トラブルシューティングが改善され、タスク実行履歴に関するより包括的な洞察が得られます。
ユーザーが作成したターミナルのエージェント認識
エージェントは、ワークスペース内のすべてのユーザーが作成したターミナルを認識し続けるようになりました。これにより、最近のコマンドを追跡し、ターミナル出力にアクセスできるようになり、ターミナルに関する支援やトラブルシューティングのためのより良いコンテキストが提供されます。
ターミナルインラインチャットの改善
ターミナルインラインチャットは、サブシェル内で作業している場合でも (例: PowerShellやzshからPythonやNodeを起動する場合)、アクティブなシェルをより正確に検出するようになりました。この動的なシェル検出により、現在のシェルタイプに合わせたより適切なコマンド候補が提供され、インラインチャットの応答の精度が向上します。
テストランナーツールの改善
テストランナーツールが再設計されました。チャット内でインラインで進捗が表示されるようになり、ツール内の多数のバグが修正されました。
以前のリクエストを編集
前回のイテレーションで、ユーザーが以前のリクエストを編集できるようにし、いくつかの異なるアクセスポイントを展開しました。今回のイテレーションでは、インライン編集をデフォルトの動作にしました。リクエストの吹き出しをクリックして、そのリクエストの編集を開始します。添付ファイルを変更したり、モードやモデルを変更したり、修正したテキストでリクエストを再送信したりできます。
各リクエストの上に表示されるツールバーのホバーを介して編集することを好む場合は、chat.editRequests設定でチャット編集の動作を制御できます。
チャットを最大化して開く
設定: workbench.secondarySideBar.defaultVisibility
セカンダリサイドバーのデフォルトの表示を最大化して開くように構成するための2つの追加オプションを追加しました。
maximizedInWorkspace
: 新しいワークスペースを開くときにチャットビューを最大化して開くmaximized
: 空のウィンドウを含む常にチャットビューを最大化して開く
チャット確認の保留
エージェントセッションがファイルをアクティブに変更したり、リクエストに応答したりしているワークスペースを誤って閉じるのを防ぐため、チャット応答が進行中にVS Codeを終了したり、ウィンドウを閉じたりしようとすると、ダイアログが表示されるようになりました。
ユーザーアクション時のOS通知
設定: chat.notifyWindowOnConfirmation
チャットセッション内でユーザー確認が必要な場合に、OSネイティブ通知システムを活用してトーストを表示するようになりました。chat.notifyWindowOnConfirmationを有効にすることで、この動作を有効にできます。
将来的に、このエクスペリエンスを改善し、より多くの情報を表示したり、トーストから直接承認できるようにしたりする予定です。現在のところ、トーストを選択すると、確認が開始されたウィンドウにフォーカスが当たります。
チャットでの数式サポート (プレビュー)
チャットは、応答で数式をレンダリングする初期サポートを開始しました。
この機能はKaTeXによって提供され、インラインとブロックの両方の数式をサポートしています。インライン数式は単一のドル記号 ($...$
) でマークアップを囲んで記述でき、ブロック数式は二重のドル記号 ($$...$$
) を使用します。
数式レンダリングはchat.math.enabledを使用して有効にできます。現在、デフォルトではオフになっていますが、さらなるテストの後、今後のリリースで有効にする予定です。
Context7によるプロジェクト足場生成との統合 (実験的)
設定: github.copilot.chat.newWorkspace.useContext7
チャットで#new
を使って新しいプロジェクトの足場を生成する際、Context7 MCPサーバーをすでにインストールしている場合、Context7の最新のドキュメントとAPIを使用していることを確認できるようになりました。
MCP
サーバーの自動起動と信頼
以前は、MCPサーバー構成を追加または更新すると、VS Codeはチャットビューに青い「更新」アイコンを表示し、ツールのリストを手動で更新できました。今回のマイルストーンでは、MCPサーバーの自動起動動作を構成できるようになったため、MCPサーバーを手動で再起動する必要がなくなりました。
chat.mcp.autostart設定を使用してこの動作を制御します。アイコンのツールチップ内でこの設定を変更したり、起動されるサーバーを確認したりすることもできます。
MCPサーバーが更新または変更された後、初めて起動される際に、サーバーを信頼するかどうかを尋ねるダイアログが表示されるようになりました。自動起動がオンになっている場合、意図しないコマンドが実行されるのを防ぐために、これらのサーバーを信頼することが特に重要です。
VS CodeでMCPサーバーを使用する方法の詳細については、ドキュメントを参照してください。
リモートMCPサーバーのクライアントクレデンシャルフロー
認証をサポートするリモートMCPサーバーの理想的なフローは、動的クライアント登録 (DCR) をサポートする認証プロバイダーを使用することです。これにより、クライアント (VS Code) がその認証プロバイダーに自身を登録できるため、認証フローがシームレスになります。
しかし、すべての認証プロバイダーがDCRをサポートしているわけではないため、独自のクライアントIDと(オプションで)クライアントシークレットを提供できるクライアントクレデンシャルフローを導入しました。これらは、認証プロバイダーの認証フローを実行する際に使用されます。以下にその様子を示します。
-
ステップ1: VS CodeはDCRが使用できないことを検出し、クライアントクレデンシャルフローを実行するかどうかを尋ねます。
重要: この時点で、認証プロバイダーのWebサイトにアクセスし、手動でアプリケーション登録を作成します。そこに、モーダルダイアログに記載されているリダイレクトURIを入力します。
-
ステップ2: 認証プロバイダーのポータルから、クライアントIDと場合によってはクライアントシークレットを取得します。表示される入力ボックスにクライアントIDを入力し、Enterキーを押します。
-
ステップ3: 次に、クライアントシークレットがある場合は入力し、Enterキーを押します(ない場合は空白のままにします)。
この時点で、作業中のMCPサーバーを認証するための典型的な認証フローが実行されます。
アカウントメニューからの動的認証プロバイダーの削除
リモートMCP認証の追加以来、コマンドパレットには認証: 動的認証プロバイダーを削除というコマンドがあり、これによりクライアントクレデンシャル(クライアントIDと、利用可能な場合はクライアントシークレット)およびそのプロバイダーに関連付けられたすべてのアカウント情報を削除できます。
このコマンドをアカウントメニューに公開しました。MCPサーバーアカウント内で見つけることができます。
または、まだMCPサーバーアカウントがない場合は、メニューのルートに表示されます。
resource_link
と構造化出力のサポート
VS Codeは、ツール結果でのresource_link
と構造化出力のサポートを含む、最新のMCP仕様バージョン2025-06-18
を完全にサポートするようになりました。
アクセシビリティ
アクセス可能なチャットエージェントの呼び出し
エージェントがユーザー入力(プロセスを待機し続けるかどうかなど)を促す場合、チャットエージェントの呼び出しがスクリーンリーダーで利用可能になりました。プロンプトが表示されると通知され、キーボードでそれに移動し、アクセス可能なビューでメッセージを確認できます。
チャット編集のためのファイル開示の制御
新しい設定、accessibility.openChatEditedFilesを使用すると、エージェントがチャットでファイルを編集する際に、ファイルを自動的に開くかどうかを選択できます。この設定を有効にすることで、エディターに表示されるファイルをより細かく制御できます。
すべての編集と以前の編集コマンドの表示
すべての編集を表示と以前の編集を表示コマンドがエディター全体で利用可能になり、エージェントによる変更を簡単に確認できるようになりました。これらのコマンドは、accessibility.openChatEditedFilesが無効になっている場合に特に役立ち、各ファイルを開かずに編集を追跡できます。
サイドバー表示の通知
プライマリまたはセカンダリサイドバーが表示または非表示になったとき、ARIAアナウンスがこの変更を通知するようになりました。これにより、スクリーンリーダーユーザーがサイドバーの表示更新を認識できるようになり、アクセシビリティが向上します。
Playwrightによるアクセシビリティテスト
Playwrightを使用して、エディターのアクセシビリティ自動テストを追加しました。これらのテストにより、Visual Studio Codeがアクセシビリティ標準とベストプラクティスを満たしていることを継続的に検証し、すべてのユーザーにとってより良いエクスペリエンスを保証します。
エディター体験
設定検索の候補
設定エディターの検索ボックスにある、きらめきで示されるAI検索結果の切り替えが、すべてのユーザーに利用可能になりました。この切り替えは、AI検索結果が読み込まれ、利用可能になったときに有効になります。切り替えを押すと、AIと非AIの検索結果が切り替わります。
AI設定の検索結果は、文字列一致ではなく意味的類似性に基づいています。例えば、「テキストサイズを大きくする」と検索すると、editor.fontSize
がAI設定の検索結果として表示されます。
エディタータブのコンテキストメニュー
エディタータブのコンテキストメニューを整理し、分割と移動に関連するオプションをサブメニューにグループ化しました。
AI統計 (プレビュー)
基本的なAI統計を表示するための実験的な機能を追加しました。editor.aiStats.enabledを使用してこの機能を有効にしてください。デフォルトでは無効になっています。
この機能は、プロジェクトごとに、AIによって挿入された文字の割合と入力によって挿入された文字の割合を表示します。また、現在の日に受け入れたインラインおよび次の編集候補の数を追跡します。
ノートブック
エージェントツールを使用したノートブックインラインチャット
ノートブックインラインチャットコントロールは、セルを実行したり、パッケージをカーネルにインストールしたりするなどの追加機能を実現するために、ノートブックエージェントツールの全スイートを使用できるようになりました。
ノートブックでエージェントツールを有効にするには、新しい実験的設定inlineChat.notebookAgentを有効にします。これは現在、インラインチャットv2の設定inlineChat.enableV2を有効にすることも必要とします。
uvで作成された仮想環境への依存関係のインストール
uvを使用して作成された仮想環境に対してJupyter Notebookを実行する際に、必要な依存関係のインストールをサポートするようになりました。
ソース管理
Gitワークツリーのサポート
長らく求められていた機能リクエストに応えるため、今回のマイルストーンでGitワークツリーのサポートを追加しました。ワークツリーを使用すると、複数のブランチを一度にチェックアウトできるため、コンテキストを切り替えることなく変更をテストしたり、並行して作業したりするのが容易になります。
Gitリポジトリを含むフォルダまたはワークスペースを開くと、ワークツリーが自動的に検出され、ソース管理リポジトリビューに表示されるようになりました。コマンドパレットまたはソース管理リポジトリビューから利用できるコマンドを使用して、ワークツリーを新しいウィンドウまたは現在のウィンドウで表示、作成、削除、開くことができます。git.detectWorktrees設定を切り替えることで、この機能を無効にできます。
リポジトリビュー
ソース管理リポジトリビューには、現在のフォルダー/ワークスペースで検出されたすべてのソース管理プロバイダーが表示されます。今回のマイルストーンでは、リポジトリ、サブモジュール、ワークツリーを視覚的に区別するために、ビューのレンダリングを更新しました。また、リポジトリ、サブモジュール、ワークツリー間の親子関係も表示します。
ターミナル
ターミナル提案におけるドキュメントサポート
言語サーバー (LSP) を利用したターミナル提案に、エディターで表示されるのと同様のインラインドキュメントが含まれるようになりました。Python REPLから始めると、入力中にコマンドの役立つ説明と使用詳細が表示されます。
ターミナルでLSP提案を有効にするには、現在以下の設定が必要です
音声ディクテーション
GeminiおよびClaude拡張機能によって有効にされたターミナルを含むターミナルでの自然言語入力がサポートされるようになったため、ターミナルでの音声ディクテーションを再導入しました。ターミナル: ターミナルでディクテーションを開始およびターミナル: ターミナルでディクテーションを停止コマンドを使用して、ディクテーションを開始または停止できます。
シェル統合診断の改善
シェル統合は、統合ターミナルの多くの機能(スティッキースクロール、クイックフィックス、エージェントモードがターミナル内で何が起こっているかを理解する機能など)の基盤となっています。
今回のリリースでは、ターミナルをホバーして詳細を表示を選択すると、診断が改善されました。検出されたシェルタイプと現在の作業ディレクトリが表示されるはずです。
これらの豊富な機能のいずれかが期待どおりに機能しない場合は、まずここに注目してください。
言語
Python
Python 3.13以降のシェル統合サポート
Pythonバージョン3.13以降を使用する場合、Pythonのシェル統合をサポートするようになりました。有効にすると、互換性を確保するためにPyREPLは自動的に無効になります。PyREPLを引き続き使用したい場合は、シェル統合を無効にすることができます。
Python Environments拡張機能の改善
Python Environments拡張機能は、安定版ユーザーへの制御された展開の一環として、バグ修正と改善を引き続き受け取りました。展開中にPython Environments拡張機能を使用するには、拡張機能がインストールされていることを確認し、VS Codeのsettings.json
ファイルに"python.useEnvironmentsExtension": true
を追加してください。
TypeScript 5.9
VS CodeにはTypeScript 5.9.2が含まれるようになりました。このメジャーアップデートには、import deferのサポートを含むいくつかの新しい言語の改善と、多くのDOM APIのドキュメントの改善などのツール機能の改善がもたらされます。
このアップデートの詳細については、TypeScript 5.9リリースブログをご覧ください。
JavaScriptとTypeScriptの展開可能なホバー
JavaScriptまたはTypeScriptでシンボルにホバーすると、VS Codeはそのシンボルに関する最も有用なIntelliSense型情報を表示しようとします。型は非常に複雑であるため、私たちにとっての課題の1つは、有用な詳細を十分に表示しながら、圧倒されるほどの情報を表示しないという適切なバランスを見つけることでした。すべてに合う良いアプローチを考案するのは難しく、また、作業内容によっては、必要な型の詳細レベルが変わる可能性があります。
そのため、今回のイテレーションでは、ホバーで型がどのように表示されるかをより細かく制御できる新しいUIを追加しました。シンボルにホバーすると、ホバーコントロールの左側にある小さな+
アイコンを選択して、ホバー内のインターフェースと複雑な型をコンポーネントに展開できるようになりました。例えば、これを使用して、インターフェースのプロパティをホバーで直接確認できます。
ホバーは複数回展開でき、以前の展開から型を再帰的に展開します。展開しすぎた場合は、-
アイコンを選択して前のレベルに戻ってください。また、すべての型が展開できるわけではなく、サポートできる展開の量にはまだ制限があることに留意してください。展開可能なホバーが意図したとおりに機能しない場合は、お知らせください。
拡張機能への貢献
GitHubプルリクエスト
プルリクエストや課題の作業、作成、管理を可能にするGitHub Pull Requests拡張機能に、さらなる進展がありました。
リリースされたすべての内容については、拡張機能の0.116.0版の変更履歴をご確認ください。
プルリクエストヘッダーの整理
プルリクエストのDescriptionヘッダーにあるボタンバーを簡素化しました。コピーアクションは、PRリンクの右クリックコンテキストメニューに移動されました。
チャットにコーディングエージェントのプルリクエストを表示
設定: githubPullRequests.codingAgent.uiIntegration
コーディングエージェントセッション(#copilotCodingAgent
またはコーディングエージェントに委任アクション経由)を開始すると、プルリクエストがチャットビューにカードとしてレンダリングされます。
エージェントが有効になっているリポジトリの場合、チャットビューに新しいコーディングエージェントに委任ボタンを有効にするには、githubPullRequests.codingAgent.uiIntegration設定を有効にします。
チャットセッション (実験的)
コーディングエージェントチャット
前回のイテレーションのCopilotコーディングエージェント統合を基盤として、専用のチャットエディターからコーディングエージェントセッションを管理できるようになりました。これにより、コーディングエージェントの進捗状況を追跡し、追加の指示を提供し、専用のチャットエディターでエージェントの応答を確認できます。
-
VS Codeから
#copilotCodingAgent
ツールまたはUIコントロールを介してコーディングエージェントセッションを開始します。 -
アタッチされたチャットエディターでコーディングエージェントの進捗状況を追跡します。
-
チャットから直接、追加の指示を提供します。
チャットセッションビュー
設定: chat.agentSessionsViewLocation
この実験的機能を試すには、chat.agentSessionsViewLocation設定を有効にしてください。
-
view
に設定すると、VS Codeのサイドバーに新しいチャットセッションビューが表示されます。このビューでは、ローカルのチャットセッションとコーディングエージェントセッションを管理および操作できます。 -
showChatsMenu
に設定すると、コーディングエージェントチャットセッションがローカルチャット履歴とともに表示されます。
この統合には、最新のGitHub Pull Request拡張機能と、Copilotコーディングエージェントをサポートするリポジトリが開いている必要があります。詳細については、VS Codeでコーディングエージェントを使用する方法に関する新しいドキュメントを参照してください。
テーマ: Sharp Solarized (vscode.devでプレビュー)
拡張機能の作成
ターミナルアクティベーションイベント
拡張機能で2つの新しいアクティベーションイベントが利用可能です
onTerminal
: いずれかのターミナルが開かれたときにトリガーされます。onTerminalShellIntegration
: ターミナルでリッチシェル統合がアクティブ化されたときにトリガーされます。
特定のシェルを対象とするには、shellType
を指定できます。たとえば、onTerminalShellIntegration:bash
は、Bashターミナルでシェル統合が有効になっているときにアクティブになります。
提案されたAPI
チャット応答でのカスタムWebビューのレンダリング
チャット出力レンダラーAPIを使用すると、拡張機能はチャット応答をテキストや画像を超えたものにすることができます。これにより、拡張機能はWebビューを使用して、チャット出力に任意のHTMLコンテンツをレンダリングできます。使用例としては、カスタムの視覚化、インラインプレビュー、さらにはインタラクティブなコントロールなどが挙げられます。
チャット出力レンダラー拡張機能のサンプルは、このAPIを使用してMermaidダイアグラムをチャット応答でレンダリングする方法を示しています。以下は、この拡張機能サンプルの動作例です。
素晴らしいのは、VS CodeがMermaidダイアグラムをレンダリングできるだけでなく、このレンダリングを拡張機能が完全に提供できることです。これにより、チャットでのカスタム出力の繰り返しが可能になります。
APIの仕組みを簡単に説明します。
- 応答の一部としてカスタムデータを返すことができる言語モデルツールを登録します。このデータを識別するためにMIMEタイプを使用します。
- このMIMEタイプのチャット出力レンダラーを登録します。
- 言語モデルがツールを呼び出すと、チャット出力レンダラーを呼び出して、応答のWebビューにレンダリングします。
このAPIの動作を示す完全なエンドツーエンドの例については、拡張機能のサンプルを参照してください。
このAPIは非常に強力であり、いくつかの素晴らしい新しいチャットエクスペリエンスを可能にする可能性があるため、ぜひ試してご意見をお聞かせください!
チャットセッションプロバイダーAPI
新しいチャットセッションプロバイダーAPIの提案により、拡張機能は独自のチャットバックエンドをVS CodeのネイティブチャットUIに統合できるようになります。これを使用することで、拡張機能は新しいチャットセッションを開き、そのセッションの履歴を格納し、新しいユーザープロンプトに応答できます。
このAPIはまだ初期段階であり、変更される可能性があります。しかし、すでにこれを使用して新しいGitHubコーディングエージェントセッションフローを強化しており、これはGitHubからチャットをロードし、GitHubによって完全に制御されるエージェントとチャットすることを可能にします。
タスク実行ターミナル
拡張機能の作成者は、新しいtaskExecution.terminal
プロパティを介して、実行中のタスクに関連付けられたターミナルにアクセスできるようになりました。これにより、特定のタスクにリンクされているターミナルを特定し、プログラムで操作することが容易になります。
SecretStorage keys()
API
拡張機能がSecretStorage
に保存したキーのリストを取得したい場合は、新しい提案されているkeys()
APIでそれが可能になりました。
export async function activate(context: ExtensionContext) {
await context.secrets.store('mySecret', 'superSecretValue');
await context.secrets.store('mySecret2', 'superSecretValue2');
const keys = await context.secrets.keys();
console.log('All secret keys:', keys); // returns ['mySecret', 'mySecret2']
}
注: この変更は、Secret Storageの代替実装を提供するもの(特に、新しいAPIを採用しているhttps://vscode.dev、およびまもなく新しいAPIを採用するhttps://github.dev)の変更に依存します。サポートされていない環境では、このAPIは例外をスローします。
エンジニアリング
packages.microsoft.comのキー更新
packages.microsoft.com
が署名キーを更新したため、新しいディストリビューションを使用しているLinuxユーザーは、VS Codeのインストール中にキー関連の警告やエラーが表示されなくなるはずです。Debianベースのディストリビューションは自動的に新しいキーを受け取りますが、他のディストリビューションのユーザーは、新しいキーをインポートする前に古いキーを手動で削除する必要がある場合があります。
Electron 37の更新
今回のマイルストーンでは、Electron 37の更新を安定版リリースでユーザーに提供します。この更新には、Chromium 138.0.7204.100とNode.js 22.17.0が含まれます。Insidersビルドで自己ホストし、早期のフィードバックを提供してくださった皆様に感謝いたします。
注目すべき修正点
- vscode#252384 - VS Codeがフォーカスを失うとエージェントモードが一時停止する
ありがとうございます
最後に、VS Codeの貢献者の皆様に心からの感謝を申し上げます。
問題追跡
問題追跡への貢献者
- @gjsjohnmurray (John Murray)
- @RedCMD (RedCMD)
- @albertosantini (Alberto Santini)
- @IllusionMH (Andrii Dieiev)
プルリクエスト
vscode
への貢献者
- @adityavc (Aditya Chittari): #134898 - 改行文字を削除するときに空白をトリミング PR #210870
- @adrianstephens: debug/watch/contextを有効なメニュー拡張ポイントのリストに追加 PR #237751
- @andy0130tw (Andy Pan): Web版でのTypeScript言語サーバーのロケール引数をサポート (#_256252) PR #256256
- @Benimautner: スクロール可能な要素に慣性スクロールを追加 PR #244034
- @BlackHole1 (Kevin Cui): fix: minimapでMAKR下線が表示されない PR #226116
- @bytemain (Jiacheng): refactor(terminal): ITerminalLaunchResultインターフェースを導入 PR #256284
- @c-claeys (Cristopher Claeys): エディターコマンドでServicesAccessorの型付けをより一貫させる PR #218369
- @CookieeQuinn (Quinn): Issue #212484の修正: user-select: noneを使用しているテキスト上でcaretRangeFromPointが機能しない問題。 PR #219819
- @CrazySteve0605 (Wang Chong): fix(gettingStarted): ホバー説明の重複した"can be"を削除 PR #254412
- @dbreen (Dan Breen): Explorerのスクロールバー幅により賢明なデフォルト値を使用 PR #199784
- @devlinjunker: モデルAPIにundo/redoおよびcanUndo/canRedoメソッドを公開 PR #213954
- @dibarbet (David Barbet): C#でアングルブラケットのカラーリングを有効にする PR #247665
- @duncpro (Duncan): 垂直パイプ文字はURLを終了させるべき PR #232460
- @dylanchu: TerminalTaskSystem: 文字列コマンドの追加引数を修正 PR #251201
- @estrizhok (Eugene Strizhok): 設定UIでの'JetBrains'と'ReSharper'の正しい大文字小文字の区別 PR #254472
- @firelizzard18 (Ethan Reesor): 差分エディターのコンテキストキー
availableEditorIds
PR #250198 - @futurist (James Yang): fix(terminal): scrollback limit到達後のgetBufferReverseIteratorバグ PR #257311
- @g0t4 (Wes Higbee): マルチライン選択の選択ハイライトを許可するエディターオプションと最大長を制御する別のオプションを追加 PR #228982
- @gabrielcsapo (Gabriel Csapo): feat: tsserverオプションに一致する(requestTime) logLevelを追加 PR #250778
- @gjsjohnmurray (John Murray)
- 提案APIとして
SecretStorage.keys()
を追加 PR #252804 @param
のタイプミスを修正 PR #257219
- 提案APIとして
- @hickford (M Hickford): エディターアクション「行を反転」を追加 PR #242926
- @HolgerJeromin (Holger Jeromin): vscode api: webviewコンテンツの互換性を向上 PR #253635
- @iann0036 (Ian Mckay): fix: lm invokeToolの説明のタイプミス PR #257975
- @jiahaoxiang2000 (isomo): git.diff.stageHunkコマンドがキーボードショートカットで動作するように修正 PR #254145
- @Jiogo18 (Jérôme Lécuyer): Git - l10n 変更破棄ダイアログ PR #254366
- @joelverhagen (Joel Verhagen)
- [WIP] NuGetをMCPパッケージソースとしてサポートを追加 (VS Code) PR #254678
- NuGet MCP支援設定に実験フラグを追加 PR #257463
- @Jose-AE: window.zoomLevel = 1に設定したときのエディターマウスホイールズームのガタつきを修正 PR #227916
- @joyceerhl (Joyce Er): fix: チャット入力プレースホルダーをわかりやすくする PR #255601
- @justin39 (Justin Wang)
- 特定のクライアントバージョン用のServeWebArgsにcommit_idオプションを追加 PR #255494
- code serve-webの--commit-idフラグを修正 PR #258904
- @jwangxx (James Wang): プロンプトをレンダリングするときに、プロンプトフィルタリングのためにエラーが発生した履歴からのターンを除外する PR #257271
- @Kaidesuyoo (Kaidesuyo): fix: vscodeデスクトップでのwebWorkerExtensionHost起動プロセスの誤り PR #234505
- @madskristensen (Mads Kristensen): schemastore.orgへの参照を更新 PR #254690
- @martijnwalraven (Martijn Walraven): 言語プロバイダー使用時のノートブックインライン値を修正 PR #254264
- @mortalYoung (野迂迂): feat: editor.minimap.autohideがスクロールをサポート PR #253868
- @neorth (Joakim Berglund): 頭文字ではない場合、最初の単語をCamelCaseにする PR #229797
- @Ninglo (Ninglo):
editor.wordSegmenterLocales
設定がsimpleWidgetエディター (チャットやSCM入力エディターなど) で効かない問題を修正 PR #223921 - @OfekShilon (Ofek): #4775を修正: 正規表現に組み込む前にユーザーコードをエスケープする PR #236809
- @omar-cs (Omar Carrizales): Issue #168531: カーソルの高さ PR #211473
- @Q1CHENL (Qichen Liu 劉啓辰): 修正: スクロールバーを右クリックしてミニマップを有効にしたときにビューがずれるのを防ぐ PR #210510
- @qirong77: monaco-editorでシャドウDOM選択を更新する際に発生する予期せぬコンソールエラーを修正 PR #215780
- @raffaeu (Raffaele Garofalo): Feature/move editor menu PR #247818
- @RedCMD (RedCMD): 空の終了括弧エラーを修正 PR #240609
- @remcohaszing (レムコ・ハズイング)
- *.tsbuildinfoを.gitignoreに追加 PR #254225
- 装飾に基づくRTLサポートを追加 PR #255455
- @rfon6ngy (Griffon Langyer): \nでソフトラップをトリガーできるようにする PR #231120
- @Rishi-infy47 (Saptarshi Chakraborty): fix: devcontainerのnode jsバージョンを変更 PR #257400
- @sahin52 (Sahin Kasap): fix: クイック検索が検索語を保持しない PR #234368
- @Schpoone (Jason Kuo)
- スタックフレームにフォーカスするときにpreserveFocusを使用する PR #251964
- 命令ブレークポイントにホバーしたときのポップアップメッセージを修正 PR #254925
- @SimonSiefke (サイモン・シーフケ)
- fix: 拡張機能タブでのメモリリーク PR #256887
- fix: エディター編集コンテキストでのメモリリーク PR #256957
- fix: 破棄時に編集コンテキストを未定義に設定する PR #256965
- fix: ChatInputPartでのメモリリーク PR #257082
- fix: コンテキストキーでのメモリリーク PR #258206
- @Skn0tt (Simon Knott): testFailure stringifyを修正 PR #258463
- @timheuer (Tim Heuer): RFC 6761で適切なlocalhostループバックをサポートする PR #256617
- @tmm1 (Aman Karmani)
- [engineering] unit-test runnerにtestSplitオプションを追加 PR #253049
- [dev] exthostにアタッチされたdevtoolsを開くショートカット PR #253139
- [engineering] typescript統合テストがjunitレポートを出力することを保証 PR #253528
- [engineering] packageTaskにラベルを追加 PR #253779
- [engineering] product-build-darwin-universal.ymlでの解凍を並列化 PR #257775
- @ttttotem (ttttotem): 水平方向のドラッグによる自動スクロール PR #235174
- @turansky (Victor Turansky): fix:
EvaluatableExpression
プロパティのjsdoc PR #257930 - @yamachu (Yusuke Yamada)
- 無効な設定キーを修正 PR #254609
- 「refactor: remove redundant actionRunner override in ChatEditorOverlayWidget」を元に戻す PR #255456
- @yutotnh (yutotnh): 設定内のeditor.wordSegmenterLocalesの説明を修正 PR #210305
vscode-codicons
への貢献
- @desean1625 (Sean Sullivan): READMEにアイコンのプレビューと検索を簡単に行える場所へのリンクを追加。 PR #295
vscode-copilot-chat
への貢献
- @24anisha
- @danilofalcao (Danilo Falcão): カテゴリなしでツールをサポートするすべてのopenrouterモデルをリスト PR #208
- @devm33 (Devraj Mehta): Completion応答インターフェースから未使用のフィールドを削除 PR #123
- @johnmog (John Mogensen): CONTRIBUTING.mdにGit LFSの説明を追加 PR #156
- @jwangxx (James Wang): プロンプトをレンダリングする際に、プロンプトフィルタリングによってエラーが発生した履歴からのターンを除外する PR #399
- @shsuman (Shantnu Suman): ログからのより良い解析のために、すべてのエラーメッセージの先頭にErrorリテラルを出力する PR #260
- @srilovesflutter (Sri): タイプミスを修正 PR #129
- @trycatchkamal (Kamal Raj Sekar): テストから未使用のコードを削除 PR #207
- @vritant24 (Vritant Bhardwaj)
vscode-eslint
への貢献者
- @noritaka1166 (Noritaka Kobayashi): chore: コメントアウトのタイプミスを修正 PR #2031
vscode-js-debug
への貢献者
vscode-json-languageservice
への貢献
- @fengzilong (MO): feat: 範囲を不定にすることを許可 PR #272
vscode-vsce
へのコントリビューション
- @Adjective-Object (Max): package.jsonに
commonjs
注釈を追加 PR #1179
debug-adapter-protocol
への貢献者
- @osiewicz (Piotr Osiewicz): chore: DAPをサポートするツールのリストにZedを追加 PR #548
language-server-protocol
への貢献者
- @Leonidas-from-XIV (Marek Kubica): ocaml-language-serverはもう存在しない PR #2165
- @osiewicz (Piotr Osiewicz): chore: 実装者のリストにZedを追加 PR #2164
python-environment-tools
への貢献
- @renan-r-santos (Renan Santos): CondaロケーターからPixi環境を除外 PR #234