2025年6月 (バージョン 1.102)
リリース日: 2025年7月9日
アップデート 1.102.1: このアップデートは、これらの問題に対処しています。
アップデート 1.102.2: このアップデートは、これらの問題に対処しています。
アップデート 1.102.3: このアップデートは、これらの問題に対処しています。
ダウンロード: 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やawesome-copilotコミュニティリポジトリなど、外部リンクからチャットモード、再利用可能なプロンプト、命令ファイルをインポートできるようになりました。たとえば、次のリンクはBurkeのGPT 4.1 Beast Modeのチャットモードファイルをインポートします。
VS CodeにGPT 4.1 Beast Modeを追加する
これにより、現在のワークスペースまたはユーザー設定のいずれかの宛先をプロンプトで確認し、URLからモードファイルをインポートする前に名前を確認します。
awesome-copilotにある100以上のコミュニティ貢献による命令、プロンプト、チャットモードを試してみてください。
カスタム指示の生成
プロジェクトのカスタム指示を設定することで、コーディング標準とプロジェクトの慣習に関するコンテキストを提供し、AIの提案を大幅に改善できます。ただし、ゼロから効果的な指示を作成するのは難しい場合があります。
このマイルストーンでは、ワークスペースのカスタム指示をブートストラップするのに役立つChat: Generate Instructionsコマンドを導入しています。コマンドパレットまたはチャットビューのConfigureメニューからこのコマンドを実行すると、エージェントモードがコードベースを分析し、プロジェクトの構造、技術、パターンを反映したカスタマイズされた指示を生成します。
このコマンドは、.github
フォルダーにcopilot-instructions.md
ファイルを作成するか、既存の指示ファイルへの改善を提案します。その後、生成された指示を確認して、チームの特定のニーズに合わせてカスタマイズできます。
指示によるAI応答のカスタマイズについて詳しく学ぶ。
オンデマンドで指示ファイルをロードする
指示ファイルは、コーディングプラクティスとプロジェクト要件を記述するために使用できます。指示は、手動または自動でチャットリクエストのコンテキストとして含めることができます。
さまざまなメカニズムがサポートされており、ドキュメントのカスタム指示セクションを参照してください。
条件付きで含めたい大きな指示の場合は、.instructions.md
ファイルをapplyTo
ヘッダーで定義されたグロブパターンと組み合わせて使用できます。グロブパターンがチャットのコンテキスト内の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
: チャットセッションで使用するモード。利用可能なオプション: 'ask'、'edit'、'agent'、またはカスタムモードの識別子。デフォルトは'agent'です。-a --add-file
: ファイルをチャットセッションのコンテキストとして追加します。--maximize
: チャットセッションビューを最大化します。-r --reuse-window
: チャットセッションに最後にアクティブだったウィンドウを使用することを強制します。-n --new-window
: チャットセッションに空のウィンドウを開くことを強制します。
-
を最後に渡すことで、標準入力からの読み取りがサポートされます。例: ps aux | grep code | code chat
Fetchツールが非HTTP URLをサポート
モデルが、file://
URLなどの非HTTP URLでFetchツールを呼び出したい場合があることが確認されました。これを禁止するのではなく、FetchツールがこれらのURLをサポートし、URLのファイルまたはリソースのコンテンツを返すようになりました。画像もサポートされています。
言語モデルアクセス管理の明確化
拡張機能によって提供される言語モデルへの拡張機能アクセスを管理するUXを刷新しました。以前は、アカウントメニューにアカウント名 (GitHub Copilot Chat)という項目が表示されていましたが、これはGitHub Copilot Chatが使用しているアカウントとは無関係でした。むしろ、Copilot Chatが提供する言語モデルにどの拡張機能がアクセスできるかを管理するものでした。
これをより明確にするため、アカウント名 (GitHub Copilot Chat)項目を削除し、言語モデルアクセスを管理...という新しい項目に置き換えました。この項目をクリックすると、GitHub Copilot Chatが提供する言語モデルにどの拡張機能がアクセスできるかを管理できるQuick Pickが開きます。
これにより、より明確になったと考えています...とはいえ、今後のリリースでは、言語モデルのより詳細なアクセス制御 (たとえば、拡張機能が提供するすべてのモデルではなく、特定のモデルのみを許可するなど) を検討する予定ですので、ご期待ください。
チャットリクエストの読み取り
チャット拡張機能自体がオープンソースになったため、以前から内部で使用していたデバッグツールの一つにアクセスできるようになりました。「Show Chat Debug View」コマンドを実行すると、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開発者ガイドをご確認ください。
Elicitationsのサポート
最新のMCP仕様では、MCPサーバーがMCPクライアントから入力を要求する方法として、Elicitationsのサポートが追加されました。最新バージョンのVS Codeはこの仕様を採用し、Elicitationsのサポートを含んでいます。
MCPサーバーの検出とインストール
拡張機能ビューの新しいMCPサーバーセクションには、厳選されたリストから人気のあるMCPサーバーへの直接リンクを含む歓迎コンテンツが含まれています。ウェブサイトにアクセスして利用可能なMCPサーバーを探索し、任意のMCPサーバーでインストールを選択します。これにより、VS Codeが自動的に起動し、サーバーのREADMEとマニフェスト情報が表示されるMCPサーバーエディターが開きます。サーバーの詳細を確認し、インストールを選択してサーバーをVS Codeインスタンスに追加できます。
インストールされると、MCPサーバーは拡張機能ビューのMCP SERVERS - INSTALLEDセクションに自動的に表示され、そのツールはチャットビューのツールクイックピックで利用可能になります。これにより、MCPサーバーが正しく動作していることを簡単に確認し、その機能にすぐにアクセスできます。
MCPサーバー管理ビュー
拡張機能ビューの新しいMCP SERVERS - INSTALLEDビューにより、インストール済みのMCPサーバーの監視、設定、制御が簡単になりました。
ビューにはインストールされているMCPサーバーが一覧表示され、コンテキストメニューからいくつかの管理アクションが提供されます。
- サーバー起動 / サーバー停止 / サーバー再起動: サーバーの実行状態を制御します。
- アカウント切断: サーバーからのアカウントアクセスを削除します。
- 出力表示: トラブルシューティングのためにサーバーの出力ログを表示します。
- 設定表示: サーバーのランタイム設定を開きます。
- モデルアクセス設定: サーバーがアクセスできる言語モデルを管理します。
- サンプリングリクエスト表示: デバッグのためにサンプリングリクエストを表示します。
- リソース閲覧: サーバーによって提供されるリソースを探索します。
- アンインストール: VS Codeインスタンスからサーバーを削除します。
インストールされたMCPサーバーを選択すると、VS CodeはサーバーのREADMEの詳細、マニフェスト、およびそのランタイム構成を表示するMCPサーバーエディターを開きます。これにより、サーバーの機能と現在の設定の概要が提供され、サーバーが何を行うか、どのように構成されているかを簡単に理解できます。
MCP SERVERS - INSTALLEDビューには、コミュニティウェブサイトに直接移動できる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 Feature構成の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設定を使用すると、ウィンドウの境界の色を制御できます。Windowsのアクセントカラーを使用するにはdefault
を、境界を無効にするには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リリースの変更ログを確認してください。
コーディングエージェントセッションの開始 (プレビュー)
チャットで#copilotCodingAgent
ツールを呼び出すことで、ローカルの変更をバックグラウンドで続行するようにCopilotに依頼できます。
このツールは、保留中の変更をリモートブランチに自動的にプッシュし、そのブランチからユーザーの指示とともにコーディングエージェントセッションを開始します。
実験的: githubPullRequests.codingAgent.uiIntegration設定でUI統合をさらに強化できます。有効にすると、エージェントが有効になっているリポジトリのチャットビューに新しいコーディングエージェントに委任ボタンが表示されます。
ステータスの追跡
「私に代わってCopilot」クエリで、コーディングエージェントのプルリクエストのステータスを通知し、目立つように表示するように改善しました。新しい変更を示す数字バッジが表示されるようになりました。
セッションログ
コーディングエージェントセッションのセッションログをVS Codeで直接表示できるようになりました。これにより、コード変更やツール使用を含む、コーディングエージェントによって実行されたアクションの履歴を確認できます。
#activePullRequest
ツールの機能強化
#activePullRequest
ツールは、プルリクエストのタイトル、説明、ステータスなどの情報をチャットで使用できるように返しますが、今後はコーディングエージェントセッション情報も取得できるようになりました。
このツールは、コーディングエージェントエクスペリエンスを通じて作成されたプルリクエストを開くと、チャットに自動的に添付されるため、コンテキストを維持し、必要に応じてプルリクエストの作業を続けることができます。
Python
Python Environments拡張機能の改善
Python Environments拡張機能は、今回のリリースでいくつかの改善が加えられました。
- Poetryバージョン2.0.0以降のターミナルアクティベーションサポートを磨き上げました。
- Quick Create環境作成オプションを使用して、同じワークスペース内で一意に命名された複数の仮想環境を設定できるようになりました。
- 生成された
.venv
フォルダは、デフォルトでgit-ignoredされるようになりました。 - 環境削除プロセスを改善しました。
Python拡張機能に含まれるPython Environments
Python Environments拡張機能をPython拡張機能のオプションの依存関係として展開を開始しています。これは、Python DebuggerおよびPylance拡張機能と同様に、Python Environments拡張機能がPython拡張機能とともに自動的にインストールされ始める可能性があることを意味します。この制御された展開により、一般提供前に早期のフィードバックを収集し、信頼性を確保できます。
Python Environments拡張機能には、これまでに導入したすべてのコア機能が含まれています。Quick Createを使用したワンクリック環境設定、自動ターミナルアクティベーション("python-envs.terminal.autoActivationType"設定経由)、およびサポートされているすべての環境およびパッケージ管理用UI。
展開中にPython Environments拡張機能を使用するには、拡張機能がインストールされていることを確認し、以下の内容をVS Codeのsettings.jsonファイルに追加してください。
"python.useEnvironmentsExtension": true
Python 3.13でPyREPLが無効化されました
インタラクティブターミナルでのインデントとカーソルに関する問題に対処するため、Python 3.13以降でPyREPLを無効にしました。詳細はDisable 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
レイヤーに追加された場合、ビルドが失敗します。
sanity testingのためのvscode-bisect
vscode-bisect
プロジェクトは、VS Codeビルドの回帰を見つけるために長い間存在してきました(git bisect
がgit
に対して行うこと)。新しい--sanity
オプションを追加しました。これにより、新しいビルドをリリースする前に必須となるsanity checkを迅速に実行できます。
注目すべき修正点
- 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)
- 組み込み拡張機能でウェブ環境を検出するためにナビゲーターを確認しない 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): エディターのスティッキースクロールをリファクタリング PR #248131
- @RedCMD (RedCMD)
- 拡張機能のデバッグ時に「インストールフォルダ」バナー警告を無効にする 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
への貢献