2025年6月 (バージョン 1.102)
リリース日: 2025年7月9日
ダウンロード: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Visual Studio Code 2025年6月版へようこそ。今回のバージョンには、皆さまに気に入っていただける多くの更新が含まれています。主なハイライトは次のとおりです。
-
チャット
-
MCP
-
エディターエクスペリエンス
これらのリリースノートをオンラインで読むには、code.visualstudio.comの更新ページにアクセスしてください。Insiders: 新機能をいち早く試したいですか?毎晩のInsidersビルドをダウンロードして、利用可能になり次第、最新の更新を試すことができます。
チャット
Copilot Chatがオープンソース化
GitHub Copilot Chat拡張機能をオープンソース化したことをお知らせします!ソースコードは現在、MITライセンスの下でmicrosoft/vscode-copilot-chat
で利用可能です。
これは、透明性とコミュニティとの協業への私たちのコミットメントにおける重要なマイルストーンとなります。拡張機能をオープンソース化することで、コミュニティは以下のことを可能になります。
- VS CodeにおけるAI駆動型チャットエクスペリエンスの開発に直接貢献する
- チャットモード、カスタム指示、AI統合の実装を理解する
- 私たちの作業を基盤として、さらに優れたAI開発者ツールを作成する
- AI支援型コーディングの未来を形作ることに参加する
リポジトリを探索して、エージェントモード、インラインチャット、MCP統合などの機能がどのように実装されているかを確認できます。コミュニティからの貢献、フィードバック、コラボレーションを歓迎します。
このマイルストーンとオープンソースAIエディターツールのより広範なビジョンについて詳しく知るには、詳細なブログ投稿「オープンソースAIエディター - 最初のマイルストーン」をお読みください。
チャットモードの改善
前回のマイルストーンでは、カスタムチャットモードをプレビューしました。組み込みのチャットモードである「Ask」、「Edit」、「Agent」に加えて、特定の指示と、リクエストへの返信時にLLMに従わせたいツールのセットを持つ独自のチャットモードを定義できます。
今回のマイルストーンでは、この分野でいくつかの改善とバグ修正を行いました。
言語モデルの構成
多くの要望に応え、チャットモードで使用する言語モデルを指定できるようになりました。chatmode.md
ファイルにmodel
メタデータプロパティを追加し、モデル識別子を指定してください (モデル情報についてはIntelliSenseが提供されます)。
編集サポートの改善
チャットモード、プロンプト、および指示ファイルのエディターが、すべてのサポートされているメタデータプロパティの補完、検証、ホバーをサポートするようになりました。
チャットビューのギアメニュー
チャットビューのツールバーにあるチャットの構成アクションを使用すると、カスタムモードだけでなく、再利用可能な指示、プロンプト、ツールセットを管理できます。
モードを選択すると、現在インストールされているすべてのカスタムモードが表示され、モードを開いたり、新規作成したり、削除したりできます。
vscode
リンクによるモードのインポート
gistのような外部リンクからチャットモードファイルをインポートできるようになりました。たとえば、次のリンクはBurkeのGPT 4.1 Beast Modeのチャットモードファイルをインポートします。
これにより、保存先フォルダーとモード名の入力を求められ、リンク内のURLからモードファイルがインポートされます。同様のメカニズムは、プロンプトファイルと指示ファイルでも利用できます。
カスタム指示の生成
プロジェクトのカスタム指示を設定すると、コーディング標準やプロジェクトの慣習に関するコンテキストを提供することで、AIの提案を大幅に改善できます。しかし、ゼロから効果的な指示を作成するのは難しい場合があります。
今回のマイルストーンでは、ワークスペースのカスタム指示をブートストラップするのに役立つチャット: 指示を生成コマンドを導入します。このコマンドをコマンドパレットまたはチャットビューの構成メニューから実行すると、エージェントモードがコードベースを分析し、プロジェクトの構造、テクノロジー、パターンを反映したカスタマイズされた指示を生成します。
このコマンドは、.github
フォルダーにcopilot-instructions.md
ファイルを作成するか、既存の指示ファイルへの改善を提案します。その後、生成された指示を確認し、チームの特定のニーズに合わせてカスタマイズできます。
指示によるAI応答のカスタマイズについて詳しくはこちら。
指示ファイルのオンデマンド読み込み
指示ファイルは、コーディングプラクティスやプロジェクト要件を記述するために使用できます。指示は、チャットリクエストのコンテキストとして手動または自動で含めることができます。
さまざまなメカニズムがサポートされています。詳細については、ドキュメントのカスタム指示セクションを参照してください。
条件付きで含めたい大規模な指示については、applyTo
ヘッダーで定義されたグロブパターンと組み合わせて.instructions.md
ファイルを使用できます。グロブパターンがチャットのコンテキスト内の1つ以上のファイルに一致すると、ファイルは自動的に追加されます。
今回のリリースで新たに、大規模言語モデルが指示をオンデマンドで読み込めるようになりました。各リクエストには、すべての指示ファイルのリストと、グロブパターンおよび説明が提供されます。この例では、LLMはコンテキストに明示的に追加されたTypeScriptファイルの指示を持っていません。そのため、TypeScriptファイルを作成する前にコードスタイルルールを探します。
以前のリクエストを編集 (実験的)
以前のリクエストをクリックして、テキストコンテンツ、添付コンテキスト、モード、モデルを変更できるようになりました。この変更を送信すると、それ以降のリクエストはすべて削除され、行われた編集は元に戻され、新しいリクエストがチャットで送信されます。
リクエスト編集のさまざまなエントリポイントは段階的に展開され、これにより優先的な編集および元に戻すフローに関するフィードバックを収集するのに役立ちます。ただし、ユーザーは実験的なchat.editRequests設定で優先モードを設定できます。
- chat.editRequests.inline: リクエストにホバーしてテキストを選択すると、リクエストとインラインで編集を開始します。
- chat.editRequests.hover: リクエストにホバーすると、リクエストとインラインで編集を開始するボタンが付いたツールバーが表示されます。
- chat.editRequests.input: リクエストにホバーするとツールバーが表示され、チャットの下部にある入力ボックスで編集を開始します。
ターミナルの自動承認 (実験的)
エージェントモードに、ターミナルでのコマンドを自動承認するメカニズムが追加されました。デフォルトを使用したデモはこちらです。
現在、許可リストと拒否リストの2つの設定があります。許可リストは、一致すると明示的な承認なしにコマンドを実行できるコマンドのプレフィックスまたは正規表現のリストです。たとえば、次の設定では、npm run test
で始まる任意のコマンド、および厳密にgit status
またはgit log
が実行可能になります。
"github.copilot.chat.agent.terminal.allowList": {
"npm run test": true,
"/^git (status|log)$/": true
}
これらの設定は、設定スコープ間でマージされるため、ユーザー承認済みコマンドのセットと、ワークスペース固有の承認済みコマンドを持つことができます。
連結されたコマンドについては、シェルに基づいてこれらのケースを検出し、すべてのサブコマンドが承認されることを要求します。したがって、foo && bar
の場合、foo
とbar
の両方が許可されていることを確認し、その時点で初めて承認なしで実行されます。また、echo $(pwd)
のようなインラインコマンドも検出しようとします。この場合、echo $(pwd)
とpwd
の両方をチェックします。
拒否リストは許可リストと同じ形式ですが、許可リストを上書きし、承認を強制します。今のところ、これは主に許可リストに広範なエントリがあり、それが含む可能性のある特定のコマンドをブロックしたい場合に役立ちます。たとえば、次の設定では、npm run danger
で始まる場合を除き、npm run
で始まるすべてのコマンドが許可されます。
"github.copilot.chat.agent.terminal.allowList": {
"npm run": true
},
"github.copilot.chat.agent.terminal.denyList": {
"npm run danger": true
}
ワークスペース信頼からプロンプトインジェクションに対する保護が得られるため、この機能をセキュリティに関して実装する際に採用した哲学は、許可リストには少数の無害なコマンドを含め、拒否リストには万が一すり抜けてしまう可能性のある特に危険なコマンドを含めるというものです。許可リストは、デフォルトがどうあるべきかをまだ検討中であるため、デフォルトでは空ですが、私たちが考えているのは次のとおりです。
- 許可リスト:
echo
,cd
,ls
,cat
,pwd
,Write-Host
,Set-Location
,Get-ChildItem
,Get-Content
,Get-Location
- 拒否リスト:
rm
,rmdir
,del
,kill
,curl
,wget
,eval
,chmod
,chown
,Remove-Item
この機能に追加したい主な2つの要素は、リストに新しいコマンドをより簡単に追加するためのUIエントリポイント (#253268) と、LLMがコマンドの安全性を評価できるようにするオプトインオプション (#253267) です。また、これらの設定のgithub.copilot.
プレフィックスを削除し (#253314)、次のリリースでプレビュー設定になる前にそれらを統合する予定です (#253472)。
ターミナルコマンドの簡素化
エージェントモードは、念のためcd
ステートメントを含むコマンドを実行したがる場合があります。現在、現在の作業ディレクトリと一致する場合にこれを検出し、実行されるコマンドを簡素化します。
タスクとターミナルに対するエージェントの認識
エージェントモードは、どのバックグラウンドターミナルを作成したか、どのタスクがアクティブに実行されているかを理解するようになりました。エージェントは新しいGetTaskOutput
ツールを使用してタスク出力を読み取ることができ、これにより重複タスクの実行を防ぎ、ワークスペースコンテキストを改善します。
チャットビューの最大化
セカンダリサイドバーを最大化してエディター領域全体に広げ、プライマリサイドバーとパネル領域を非表示にできるようになりました。VS Codeはこの状態を再起動後も記憶し、エディターやビューを開いたときにチャットビューを復元します。
閉じるボタンの横にある新しいアイコンを使用するか、コマンドパレットから新しいコマンドworkbench.action.toggleMaximizedAuxiliaryBar
を使用して、最大化状態の切り替えができます。
エージェントモードのバッジインジケーター
ウィンドウがフォーカスされておらず、エージェントが続行するためにユーザー確認が必要な場合、ドックのアプリケーションアイコンの上にバッジが表示されるようになりました。バッジは、それをトリガーした関連ウィンドウがフォーカスを受け取るとすぐに消えます。
chat.notifyWindowOnConfirmation設定で、このバッジを有効または無効にできます。
コマンドラインからチャットを開始
VS Code CLIに新しいサブコマンドchat
が追加され、現在の作業ディレクトリで指定されたプロンプトを使用してチャットセッションを開始できるようになりました。
基本的な構文はcode chat [options] [prompt]
で、オプションは次のいずれかです。
-m --mode <mode>
: チャットセッションで使用するモード。「ask」、「edit」、「agent」、またはカスタムモードの識別子が利用可能です。デフォルトは「agent」です。-a --add-file <path>
: チャットセッションにファイルをコンテキストとして追加します。--maximize
: チャットセッションビューを最大化します。-r --reuse-window
: チャットセッションに最後にアクティブだったウィンドウの使用を強制します。-n --new-window
: チャットセッションのために空のウィンドウを開くことを強制します。
標準入力からの読み取りがサポートされており、最後に-
を渡すことで利用できます (例: ps aux | grep code | code chat <prompt> -
)。
フェッチツールが非HTTP URLをサポート
時折、モデルがfile://
URLなどの非HTTP URLでフェッチツールを呼び出そうとすることが確認されました。これを不許可にする代わりに、フェッチツールはこれらのURLをサポートし、そのURLにあるファイルまたはリソースのコンテンツを返すようになりました。画像もサポートされています。
言語モデルのアクセス管理がより明確に
拡張機能によって提供される言語モデルへの拡張機能アクセス管理に関するUXを再設計しました。以前は、アカウントメニューにAccountName (GitHub Copilot Chat)という項目が表示されていましたが、これはGitHub Copilot Chatが使用しているアカウントとは無関係でした。むしろ、Copilot Chatによって提供される言語モデルにどの拡張機能がアクセスできるかを管理するためのものでした。
これをより明確にするため、AccountName (GitHub Copilot Chat)の項目を削除し、言語モデルのアクセスを管理...という新しい項目に置き換えました。この項目はクイックピックを開き、GitHub Copilot Chatによって提供される言語モデルにどの拡張機能がアクセスできるかを管理できます。
これにより、より明確になったと考えています... とはいえ、将来のリリースでは、言語モデルのよりきめ細やかなアクセス制御 (たとえば、拡張機能によって提供されるすべてのモデルではなく、特定のモデルのみを許可するなど) を検討する予定ですので、ご期待ください。
チャットリクエストの読み取り
チャット拡張機能自体がオープンソースになったため、私たちが内部でしばらく使用してきたデバッグツールの一つにアクセスできるようになりました。Copilot Chatが行ったすべてのリクエストの詳細を簡単に確認するには、「チャットデバッグビューを表示」コマンドを実行します。これにより、各リクエストのエントリを持つツリービューが表示されます。モデルに送信された完全なプロンプト、有効になったツール、応答、その他の主要な詳細を確認できます。リクエストログは右クリック > 「名前を付けてエクスポート...」で保存できます。
このビューには、ツール呼び出し単独のエントリと、Simple Browserで開くprompt-tsxデバッグビューも含まれています。
🚨 注意: このログは問題のトラブルシューティングに非常に役立ち、エージェントの動作に関する問題を報告する際に共有していただけると幸いです。ただし、このログにはファイルの内容やターミナル出力などの個人情報が含まれている場合があります。他者と共有する前に、内容を慎重に確認してください。
編集ツールの改善
このリリースには、GPT-4モデルおよびSonnetモデルで使用される編集ツールの予測可能性と信頼性に関するいくつかの変更が含まれています。今回のリリースではより信頼性の高い編集動作が見られるはずであり、今後のリリースでもこれらのツールを改善し続けます。
MCP
VS CodeでのMCPサポートが一般提供開始
この数か月間、VS CodeでのMCPサポートの拡張に取り組んでおり、仕様のMCP機能の全範囲をサポートしています。このリリースから、VS CodeでのMCPサポートが一般提供されるようになりました!
さらに、組織はGitHub Copilotポリシーを使用してMCPサーバーの可用性を制御できるようになりました。GitHub CopilotドキュメントのエンタープライズでのCopilotのポリシーと機能の管理について詳しくはこちら。
厳選されたリストから人気のあるMCPサーバーをいくつかインストールして開始できます。VS CodeでMCPサーバーを使用する方法と、それらを使用してエージェントモードを拡張する方法について詳しくはこちら。
独自のMCPサーバーを構築したい場合は、VS CodeのMCP機能を活用する方法について、MCP開発者ガイドで詳細を確認してください。
エリティケーションのサポート
最新のMCP仕様では、MCPサーバーがMCPクライアントから入力を要求する方法としてエリティケーションのサポートが追加されました。VS Codeの最新バージョンはこの仕様を採用し、エリティケーションのサポートを含んでいます。
MCPサーバーの検出とインストール
拡張機能ビューの新しいMCPサーバーセクションには、厳選されたリストからの人気のあるMCPサーバーに直接リンクするウェルカムコンテンツが含まれています。ウェブサイトにアクセスして利用可能なMCPサーバーを探索し、任意のMCPサーバーでインストールを選択してください。これにより、VS Codeが自動的に起動し、サーバーのREADMEとマニフェスト情報を表示するMCPサーバーエディターが開きます。サーバーの詳細を確認し、インストールを選択して、そのサーバーをVS Codeインスタンスに追加できます。
インストールされると、MCPサーバーは自動的に拡張機能ビューのMCPサーバー - インストール済みセクションに表示され、そのツールはチャットビューのツールクイックピックで利用可能になります。これにより、MCPサーバーが正しく動作していることを簡単に確認し、その機能にすぐにアクセスできます。
MCPサーバー管理ビュー
拡張機能ビューの新しいMCPサーバー - インストール済みビューを使用すると、インストールされているMCPサーバーを簡単に監視、構成、制御できます。
このビューには、インストールされているMCPサーバーが一覧表示され、コンテキストメニューを通じていくつかの管理アクションを提供します。
- サーバーの起動 / サーバーの停止 / サーバーの再起動: サーバーの実行状態を制御します。
- アカウントの切断: サーバーからアカウントアクセスを削除します。
- 出力の表示: トラブルシューティングのためにサーバーの出力ログを表示します。
- 構成の表示: サーバーのランタイム構成を開きます。
- モデルアクセスの構成: サーバーがアクセスできる言語モデルを管理します。
- サンプリングリクエストの表示: デバッグのためにサンプリングリクエストを表示します。
- リソースの参照: サーバーが提供するリソースを探索します。
- アンインストール: VS Codeインスタンスからサーバーを削除します。
インストール済みのMCPサーバーを選択すると、VS CodeはMCPサーバーエディターを開き、サーバーのREADME詳細、マニフェスト、およびそのランタイム構成を表示します。これにより、サーバーの機能と現在の設定の概要が提供され、サーバーが何をするものか、どのように構成されているかを簡単に理解できます。
MCPサーバー - インストール済みビューには、コミュニティウェブサイトに直接移動できるMCPサーバーを参照...アクションも用意されており、VS Code内から常にサーバーを探索できます。
MCPサーバーのファーストクラスリソース化
MCPサーバーは、ユーザータスクやその他のプロファイル固有の構成と同様に、VS Codeでファーストクラスのリソースとして扱われるようになりました。これは、以前のMCPサーバーがユーザー設定に保存されていたアプローチからの重要なアーキテクチャ上の改善を意味します。この変更により、MCPサーバーの管理がより堅牢になり、一般的なVS Code設定とMCPサーバー構成の間の関心の分離が向上します。MCPサーバーをインストールまたは構成すると、メインの設定ファイルが整理されて集中できるように、適切なプロファイル固有の場所に自動的に保存されます。
- 専用ストレージ: MCPサーバーは、ユーザー設定ファイルを散らかすのではなく、各プロファイル内の専用の
mcp.json
ファイルに保存されるようになりました。 - プロファイル固有: 各VS Codeプロファイルは独自のMCPサーバーセットを維持するため、異なるワークフローやプロジェクトに対して異なるサーバー構成を持つことができます。
- 設定同期統合: MCPサーバーは、設定同期を通じてデバイス間でシームレスに同期され、同期される内容をきめ細かく制御できます。
MCP移行のサポート
MCPサーバーがファーストクラスのリソースとなり、その構成に関連する変更があったため、VS Codeは以前のMCPサーバー構成形式からアップグレードするユーザーに対して包括的な移行サポートを提供します。
- 自動検出:
settings.json
内の既存のMCPサーバーは自動的に検出され、新しいプロファイル固有のmcp.json
形式に移行されます。 - リアルタイム移行: ユーザー設定にMCPサーバーを追加すると、VS Codeは変更を説明する便利な通知とともに、すぐにそれらを移行します。
- クロスプラットフォームサポート: 移行は、ローカル、リモート、WSL、Codespaces環境を含むすべての開発シナリオでシームレスに機能します。
この移行により、既存のMCPサーバー構成は手動での介入なしに引き続き機能し、新しいアーキテクチャの強化された管理機能も提供されます。
MCP構成のDev Containerサポート
Dev Container構成ファイルdevcontainer.json
とDev Container機能構成ファイルdevcontainer-feature.json
は、パスcustomizations.vscode.mcp
でMCPサーバー構成をサポートします。Dev Containerが作成されると、収集されたMCPサーバー構成はリモートのMCP構成ファイルmcp.json
に書き込まれます。
Playwright MCPサーバーを構成するdevcontainer.json
の例
{
"image": "mcr.microsoft.com/devcontainers/typescript-node:latest",
"customizations": {
"vscode": {
"mcp": {
"servers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}
}
}
}
MCPリソースにアクセスするコマンド
MCPサーバーの操作をより簡単にアクセスできるように、MCP構成ファイルを管理およびアクセスするのに役立つコマンドを追加しました。
- MCP: ユーザー構成を開く - ユーザーレベルの
mcp.json
ファイルへの直接アクセス - MCP: リモートユーザー構成を開く - リモートユーザーレベルの
mcp.json
ファイルへの直接アクセス
これらのコマンドにより、MCP構成ファイルにすばやくアクセスでき、サーバー構成を直接表示および管理できます。
MCP認証のクイック管理
MCPギアメニューとクイックピックからアカウントのサインアウトまたは切断ができるようになりました。
-
MCPビューのギアメニュー:
-
MCPエディターのギアメニュー:
-
MCPクイックピック:
切断アクションは、アカウントが他のMCPサーバーまたは拡張機能によって使用されている場合に表示され、サインアウトは、アカウントがMCPサーバーのみによって使用されている場合に表示されます。サインアウトアクションはアカウントをVS Codeから完全に削除しますが、切断はMCPサーバーからアカウントへのアクセスのみを削除します。
アクセシビリティ
エディター内からすべての編集を保持
以前は、すべての編集を承諾するにはチャットビューにフォーカスがある必要がありました。現在では、エディターにフォーカスがある状態で、すべての編集を保持コマンド (⌥⌘Y (Windows, Linux Ctrl+Alt+Y)) を実行できます。
ユーザーアクション要求時のサウンド
チャットがユーザーアクションを必要とするときを示すアクセシビリティ信号を微調整し、デフォルト値をauto
に設定しました。これにより、スクリーンリーダーユーザーはこの信号を聞くことができます。この動作はaccessibility.signals.chatUserActionRequired設定で構成できます。
チャットでレンダリングエラーが発生したときのアラート
以前は、チャットのレンダリングエラーが発生してもスクリーンリーダーユーザーには通知されませんでした。現在では、ユーザーはこの情報をアラートで受け取り、キーボードでフォーカスすることもできます。
コード編集
ミドルクリックでスクロール
設定: editor.scrollOnMiddleClick
ミドルマウスボタン (スクロールホイール) をクリックまたは長押しして移動するだけで、エディターをスクロールできます。
有効化されると、カーソルがパンアイコンに変わり、マウスを上下に動かすとその方向にエディターがスムーズにスクロールします。スクロール速度は、最初のクリックポイントからマウスをどのくらい動かすかによって決まります。ミドルマウスボタンを離すか、再度クリックするとスクロールが停止し、標準のカーソルに戻ります。
既知の競合
この機能を有効にすると、ミドルマウスボタンに紐付けられた他のアクションと干渉する可能性があります。たとえば、列選択 (editor.columnSelection) が有効になっている場合、ミドルマウスボタンを長押しするとテキストが選択されます。同様に、Linuxでは、選択クリップボード (editor.selectionClipboard) がミドルマウスボタンをクリックするとクリップボードの内容を貼り付けます。
これらの競合を避けるため、一度に有効にする設定はいずれか1つのみにしてください。
コード補完のスヌーズ
新しいスヌーズ機能を使用すると、インライン候補と次の編集候補 (NES) を一時的に停止できます。これは、候補による邪魔なしに集中したい場合に役立ちます。
候補をスヌーズするには、ステータスバーのCopilotダッシュボードを選択するか、コマンドパレットからインライン候補をスヌーズコマンドを実行し、ドロップダウンメニューから期間を選択します。スヌーズ期間中は、インライン候補やNESは表示されません。
コマンドに目的の期間を引数として渡すことで、特定の期間、候補をすばやくスヌーズするためのカスタムキーバインドを割り当てることもできます。例:
{
"key": "...",
"command": "editor.action.inlineSuggest.snooze",
"args": 10
}
エディター体験
Windowsのアクセントカラー
設定: window.border
Windows版VS Codeは、Windowsの設定で有効になっている場合、「タイトルバーとウィンドウの境界線にアクセントカラーを表示」としてアクセントカラーをウィンドウフレームの境界線として使用することをサポートするようになりました。
新しいwindow.border設定により、ウィンドウ境界線の色を制御できます。default
を使用するとWindowsのアクセントカラーが使用され、off
で境界線が無効になり、特定の色の値を指定するとカスタムカラーが使用されます。
注意: 境界線は、関連するWindows設定が有効になっている場合にのみ表示されます。まだワークスペースごとに設定することはできませんが、そのサポートに取り組んでいます。
設定検索候補 (プレビュー)
設定: workbench.settings.showAISearchToggle
今回のマイルストーンでは、設定エディターのスパークルトグルを変更し、AIと非AIの検索結果を切り替えるトグルとして機能するようにしました。AI設定の検索結果は、文字列の一致に基づく結果ではなく、意味的に類似した結果です。たとえば、「テキストサイズを大きくする」と検索すると、editor.fontSize
がAI設定の検索結果として表示されます。
このトグルは、AIの結果が利用可能な場合にのみ有効になります。AI設定検索で期待する設定が見つからなかった場合のフィードバックを歓迎します。次回のイテレーションでは、この設定をデフォルトで有効にする予定です。
タスク
実行中のすべてのタスクを再実行
新しいTasks: Rerun All Running Tasks
コマンドを使用して、現在実行中のすべてのタスクをすばやく再実行できるようになりました。これは、複数の同時タスクを伴うワークフローに役立ち、個別に停止して再実行することなく、すべてを一度に再起動できます。
タスクの再起動で更新されたtasks.jsonを再読み込み
タスクの再起動コマンドは、再起動する前にtasks.json
を再読み込みするようになり、最近の変更が確実に反映されるようになりました。以前は、タスクを再起動してもタスク構成の変更が反映されず、混乱や古いタスクの動作につながる可能性がありました。
ターミナル
ターミナル提案 (プレビュー)
ターミナル提案機能に大幅な改善を加えました。
選択モード
新しい設定terminal.integrated.suggest.selectionMode
は、デフォルトではTabキー (Enterキーではない) が候補を受け入れることを理解するのに役立ちます。候補がどのように選択され、受け入れられるかを制御するために、partial
、always
、never
モードから選択できます。
デフォルト値はpartial
で、これはナビゲーションが発生するまでTabキーが候補を受け入れることを意味します。
詳細はこちら
ターミナル提案コントロールのステータスバーにある詳細はこちらアクション (kb(workbench.action.terminal.suggestLearnMore))
が、最初の10回、またはコントロールが表示されてから10秒間強調表示されるようになりました。これにより、提案コントロールの設定方法、無効化方法、および関連情報の確認方法を発見するのに役立ちます。
複数コマンドのサポート
ターミナル提案は、複数コマンド行をサポートするようになりました。;
、&&
、その他のシェル演算子でコマンドをリンクし、行内のすべてのコマンドの候補を受け取ることができます。
シンボリックリンク情報
提案の詳細コントロールでシンボリックリンクの実パスが表示されるようになり、シンボリックリンクファイルとフォルダーに固有のアイコンが追加され、他の候補と区別しやすくなりました。
ソートの改善
最も関連性の高い候補を最初に表示するように、さまざまな点でソートを改善しました。たとえば、main
とmaster
を他のブランチよりも優先します。
Git Bashの改善
Git Bashのフォルダーとファイルのパス補完が適切にサポートされるようになりました。さらに、組み込みコマンドをソースとして取得し、候補として表示します。
拡張機能への貢献
GitHubプルリクエスト
プルリクエストやイシューの作業、作成、管理を可能にするGitHub Pull Requests拡張機能は、さらに進歩しました。
GitHub Pull Requests拡張機能とCopilot コーディングエージェントとの間に深い統合が実現され、VS Codeから直接コーディングエージェントのセッションを開始、表示、管理できるようになりました。
これらの機能を使用するには、ワークスペースがCopilot コーディングエージェントが有効になっているリポジトリを開いている必要があります。
リリースのすべての詳細については、拡張機能の0.114.0バージョンの変更履歴を確認してください。
ステータストラッキング
「Copilot on my behalf」クエリでコーディングエージェントのプルリクエストのステータスを通知し、目立つように表示する改善を行いました。数字バッジが新しいコーディングエージェントの変更を示すようになりました。
セッションログ
コーディングエージェントセッションのセッションログをVS Codeで直接確認できるようになりました。これにより、コード変更やツール使用を含む、コーディングエージェントによって実行されたアクションの履歴を見ることができます。
#activePullRequest
ツールの強化
#activePullRequest
ツールは、プルリクエストに関する情報 (タイトル、説明、チャットで使用するステータスなど) を返します。さらに、コーディングエージェントのセッション情報を取得するためにも使用できるようになりました。
このツールは、コーディングエージェントエクスペリエンスを通じて作成されたプルリクエストを開くと、チャットに自動的にアタッチされるため、コンテキストを維持し、必要に応じてプルリクエストの作業を続けることができます。
コーディングエージェントセッションを開始 (プレビュー)
チャットで#copilotCodingAgent
ツールを呼び出すことで、ローカル変更の残りをコーディングエージェントに委任します。
このツールは、保留中の変更をリモートブランチに自動的にプッシュし、そのブランチからユーザーの指示とともにコーディングエージェントセッションを開始します。
実験的: githubPullRequests.codingAgent.uiIntegration設定で、より深いUI統合を有効にできます。有効にすると、コーディングエージェントが有効になっているリポジトリのチャットビューに新しいコーディングエージェントに委任ボタンが表示されます。
Python
Python Environments拡張機能の改善
Python Environments拡張機能は、今回のリリースでいくつかの改善が加えられました。
- Poetryバージョン2.0.0以降のターミナルアクティベーションサポートを改善しました。
- クイック作成環境作成オプションを使用して、同じワークスペース内で一意の名前を持つ複数の仮想環境を設定できるようになりました。
- 生成された
.venv
フォルダーは、デフォルトでGitによって無視されるようになりました。 - 環境の削除プロセスを改善しました。
Python拡張機能の一部として含まれるPython Environments
Python拡張機能のオプションの依存関係として、Python Environments拡張機能の展開を開始しています。これは、Python DebuggerやPylance拡張機能と同様に、Python Environments拡張機能がPython拡張機能とともに自動的にインストールされるようになる可能性があることを意味します。この段階的な展開により、一般提供前に早期のフィードバックを収集し、信頼性を確保できます。
Python Environments拡張機能には、これまでに導入したすべてのコア機能が含まれています。これには、クイック作成を使用したワンクリック環境設定、自動ターミナルアクティベーション ("python-envs.terminal.autoActivationType"設定経由)、およびすべてのサポートされている環境およびパッケージ管理用UIが含まれます。
展開中にPython Environments拡張機能を使用するには、拡張機能がインストールされていることを確認し、VS Codeのsettings.jsonファイルに以下を追加してください。
"python.useEnvironmentsExtension": true
Python 3.13向けのPyREPLを無効化
インタラクティブターミナルでのインデントとカーソルの問題を解決するため、Python 3.13以降のPyREPLを無効にしました。詳細については、PyREPL for >= 3.13を無効にするを参照してください。
Pylance MCPツール (実験的)
Pylance拡張機能には、Pylanceのドキュメント、インポート分析、環境管理などへのアクセスを提供する、いくつかの実験的なMCPツールが含まれるようになりました。これらのツールは現在、Pylanceのプレリリースバージョンで利用可能であり、開発の初期段階にあります。新しい機能を提供する一方で、今日直接呼び出すのは難しい場合があることを認識しています。今後のアップデートでこれらのツールをより使いやすく、より価値のあるものにするために積極的に取り組んでいます。pylance-releaseリポジトリでのフィードバックを歓迎します。私たちは引き続きエクスペリエンスを改善していきます。
GitHub認証
GitHubサインインフローの刷新
今回のイテレーションでは、GitHubサインインフローを、vscode://
プロトコルURLを使用するフローではなく、ループバックURLフローをデフォルトとすることで刷新しました。この変更は、サインインフローの信頼性を向上させ、カスタムURLスキームをサポートしないプラットフォームを含むすべてのプラットフォームで機能することを保証するためです。
GitHubでサインインすると、https://:PORT/
のようなループバックURLにリダイレクトされるようになりました。これにより、カスタムURLスキームに依存することなく、サインインフローが正常に完了します。ただし、ループバックURLに到達すると、VS Codeに戻るためにvscode://
URLにリダイレクトされますが、サインインフローが正常に完了するためにこれが解決される必要はありません。
言い換えれば、私たちは両方の良い点を手に入れます。すべてのプラットフォームで機能する信頼性の高いサインインフローと、vscode://
URLスキームを使用するVS Codeへの戻りです。
この作業と並行して、このランディングページも刷新しました。今後のイテレーションでは、この新しいデザインを他のサインインエクスペリエンスにも適用する予定です。
拡張機能の作成
vscode.openFolder
コマンド使用時にファイルを開くことを許可
vscode.openFolder
コマンドを呼び出す拡張機能は、オプションとしてfilesToOpen?: UriComponents[]
を渡して、開くワークスペースウィンドウで開くファイルを選択できるようになりました。
例
vscode.commands.executeCommand('vscode.openFolder', <folder uri>, { filesToOpen: [ /* files to open */]});
提案されたAPI
エンジニアリング
esbuild
を使用したCSSミニファイ
VS Codeは長い間、JavaScriptソースのバンドルとミニファイにesbuild
を使用してきました。今回、CSSファイルのバンドルとミニファイにもesbuild
を使用するようになりました。
tsconfig.json
を使用した厳密なレイヤーチェック
ソースコードがターゲット環境ルールに準拠していることを確認するために、複数のtsconfig.json
ファイルを使用するようになりました。CIはnpm run valid-layers-check
を実行し、たとえばnode
ランタイムにのみ存在する型がbrowser
レイヤーに追加された場合、ビルドは失敗します。
動作確認のためのvscode-bisect
vscode-bisect
プロジェクトは長年にわたり存在し、VS Codeビルドの回帰を見つけるのに役立っています (git bisect
がgit
に対して行うことと同様)。新しいビルドをリリースする前に必須となる動作確認を迅速に行えるように、新しい--sanity
オプションを追加しました。
注目すべき修正点
- vscode-copilot-release#6073 - エージェントがWindows PowerShellで
&&
を提案すべきではない
ありがとうございます
最後に、VS Codeの貢献者の皆様に心からの感謝を申し上げます。
問題追跡
問題追跡への貢献者
- @albertosantini (Alberto Santini)
- @gjsjohnmurray (John Murray)
- @RedCMD (RedCMD)
- @IllusionMH (Andrii Dieiev)
- @tamuratak (田村 隆)
プルリクエスト
vscode
への貢献者
- @a-stewart (Anthony Stewart): asyncDataTree.test.ts の型を修正 PR #209394
- @charles7668 (charles): #215925 を修正 PR #219321
- @chengluyu (Luyu Cheng): 提案ウィジェットに
font-variation-settings
を適用 (fix #199954) PR #200000 - @DrSergei: デバッグアダプターの機能チェックを改善 PR #250779
- @emmanuel-ferdman (Emmanuel Ferdman): launch.jsonの参照を修正 PR #250187
- @Enzo-Nunes (Enzo Nunes): makefileの行コメントアクションを修正 (Fixes #234464) PR #243283
- @Gallaecio (Adrián Chaves): スペルミスを修正 (an language model call → a language model call) PR #252202
- @ghLcd9dG (Liu): copyFiles.tsを更新 PR #250773
- @heoh (HeoHeo): MarkdownプレビューのスクロールがEOFで止まる問題を修正 (fix #249278) PR #251228
- @hyrious (hyrious): fix: リモートの組み込み拡張機能の翻訳が欠落している問題を修正 PR #249430
- @jeanp413 (Jean Pierre)
- 組み込み拡張機能でWeb環境を検出するためにnavigatorをチェックしない PR #251688
- カスタムエディターの名前変更時に「Assertion Failed: Argument is undefined or null」が発生する問題を修正 PR #252071
- @JJJJJJ-git: ChatServiceのundoバグを修正 PR #253478
- @liuxingbaoyu: fix: ユーザー名にUnicodeが含まれている場合にPowerShellが動作しない問題を修正 PR #251534
- @matthew-godin: patternIndicesのtypoを修正 PR #250085
- @mohiuddin-khan-shiam (S. M. Mohiuddin Khan Shiam): version_manager.rsの誤ったSHA-1コミット正規表現を修正 PR #251329
- @notoriousmango (Seong Min Park)
- feat: webviewテーマに合字フォントを追加 PR #250998
- feat: 前回実行された失敗したテストの再実行およびデバッグアクションを追加 PR #251679
- @raffaeu (Raffaele Garofalo): エディターのsticky scrollをリファクタリング PR #248131
- @RedCMD (RedCMD)
- 拡張機能のデバッグ時に
installation folder
バナー警告を無効にする PR #244305 - TypeScriptでコメント本文内のComment onEnterRulesを制限 PR #251692
- 拡張機能のデバッグ時に
- @ssigwart (Stephen Sigwart): PHP, JS, TSのインデントを更新 PR #251465
- @Sublimeful (Jian Qiang Wu): ターミナルがない場合にTerminal: Run Recent Commandを実装 PR #250799
- @tmm1 (Aman Karmani): [engineering] Swcトランスパイルへの無効な参照を削除 PR #252375
- @UziTech (Tony Brix): feat: ミドルマウスボタンのスクロールを追加 PR #245882
- @yiliang114 (易良): #250737を修正、NotebookのfindWidgetでの一致数結果オーバーフロー PR #250738
vscode-copilot-chat
への貢献
- @caohy1988 (Hai-Yuan Cao): エージェントモードの概要プロンプトを更新 PR #13
- @CharlesCNorton: README.mdを更新 PR #54
- @gmacario (Gianpaolo Macario): docs(CONTRIBUTING): 目次を同期 PR #79
- @moonboxing (ASSEMAR MOHAMED): pylint削除後のdevcontainer-lockを更新 PR #76
vscode-json-languageservice
への貢献
- @aedenmurray (Aeden Murray): feat: 不正な正規表現パターンを通知 PR #261
vscode-pull-request-github
への貢献者
- @dyhagho (Dyhagho Briceño): fix:
github-enterprise.uri
が設定されている場合にGithub.com認証を許可 PR #7002
vscode-ripgrep
への貢献
- @benz0li (Olivier Benz): Linux riscv64ターゲットを追加 PR #73
- @Vector341: 不正なダウンロードによるクラッシュインストールを修正 PR #66
vscode-test
への貢献
- @coliff (Christian Oliff): .npmignoreを更新 PR #312
language-server-protocol
への貢献者
- @billybonks (Sebastien Stettler): fix: コメントの可読性を改善 PR #2155
- @rcjsuen (Remy Suen): Docker Language Serverをリストに追加 PR #2153
- @yangdanny97 (Danny Yang): Pyreflyを言語サーバーリストに追加 PR #2160
monaco-editor
へのコントリビューション
- @Ho1yShif (Shifra Williams): Snowflake SQLキーワードを追加 PR #4915
ripgrep-prebuilt
への貢献