2025年8月 (バージョン 1.104)
リリース日: 2025年9月11日
更新 1.104.1: この更新では、こちらの問題に対処しています。
更新 1.104.2: この更新では、こちらの問題に対処しています。
更新 1.104.3: この更新では、こちらの問題に対処しています。
ダウンロード: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Visual Studio Code 2025年8月リリースへようこそ。このバージョンには、皆様に喜んでいただけるようなアップデートが数多く含まれています。主なハイライトは以下の通りです。
-
モデルの柔軟性
-
セキュリティ
-
生産性
これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.comのアップデートにアクセスしてください。
Insiders: 新機能をいち早く試したいですか?
毎晩のInsidersビルドをダウンロードして、最新のアップデートが利用可能になり次第試すことができます。
Insiders をダウンロード
チャット
自動モデル選択 (プレビュー)
今回のイテレーションでは、チャットにおける自動モデル選択を導入しました。モデルピッカーでAutoモデルを選択すると、VS Codeが自動的にモデルを選択し、最適なパフォーマンスを得つつレート制限を抑えるようにします。
自動モデル選択は現在プレビュー段階であり、今後数週間かけて、GitHub Copilotの個人プランから順次、VS CodeのすべてのGitHub Copilotユーザーに向けてロールアウトされます。

組織によってこれらのモデルへのアクセスが無効化されていない限り、AutoはClaude Sonnet 4、GPT-5、GPT-5 mini、GPT-4.1の中から選択します。自動モデル選択を使用する場合、VS Codeは選択されたモデルに基づいて可変のモデル乗数を使用します。有料ユーザーの場合、Autoは10%のリクエスト割引を適用します。
チャットビューでレスポンスにカーソルを合わせることで、選択されたモデルとモデル乗数を確認できます。

VS Codeにおける自動モデル選択の詳細をご覧ください。
機密ファイルの編集を承認する
設定: chat.tools.edits.autoApprove
エージェントモードでは、エージェントがワークスペース内のファイルを自律的に編集できます。これには、設定ファイルなどの重要なファイルが誤って、あるいは悪意を持って変更・削除される可能性が含まれており、マシンに即座に悪影響を及ぼす可能性があります。AIを活用した開発ツールを使用する際のセキュリティ上の考慮事項について詳細をご覧ください。
今回のリリースでは、エージェントが特定のファイルを編集する前にユーザーに明示的に確認を求めるようになりました。これにより、エージェントモード使用時の安全性が一段と高まります。 chat.tools.edits.autoApprove 設定を使用して、どのファイルに確認が必要かを示すファイルパターンを構成できます。
一般的なシステムフォルダー、ドットファイル、ワークスペース外のファイルには、デフォルトで確認が必要となります。

AGENTS.mdファイルのサポート (実験的)
設定: chat.useAgentsMdFile
AGENTS.mdファイルを使用すると、エージェントに対するコンテキストや指示を提供できます。今回のリリースから、ワークスペースのルートにAGENTS.mdファイルが存在する場合、チャットリクエストのコンテキストとして自動的に読み込まれるようになりました。これは複数のAIエージェントを使用するチームにとって便利です。
AGENTS.mdファイルのサポートはデフォルトで有効になっており、 chat.useAgentsMdFile 設定で制御できます。AGENTS.mdファイルに関する詳細については、https://agents.md/を参照してください。
実践やチームのワークフローに合わせてVS Codeのチャットをカスタマイズする方法の詳細をご覧ください。
変更されたファイルの操作体験の向上
今回のイテレーションでは、変更されたファイルのリストが改良され、利便性を高める機能がいくつか追加されました。これらの変更により、エージェントモードでの操作性が向上するはずです!
-
変更されたファイルのリストはデフォルトで折りたたまれるようになり、チャットの会話スペースが広がりました。折りたたまれた状態でも、変更されたファイルの数と、追加または削除された行数を確認できます。
-
提案された変更を保持または承認すると、そのファイルは変更されたファイルリストから削除されます。
-
ソース管理ビューを使用してファイルをステージまたはコミットすると、提案されたファイル変更が自動的に承認されます。
-
ファイルごとの変更(追加または削除された行数)がリスト内の各項目に表示されるようになりました。
プロンプトファイルでカスタムチャットモードを使用する
プロンプトファイルは、再利用可能なチャットプロンプトを記述するためのMarkdownファイルです。プロンプトファイルを実行するには、チャット入力フィールドで/の後にプロンプトファイル名を入力するか、エディターでプロンプトファイルを開いた状態で再生ボタンを使用します。
プロンプトファイルの実行に使用するチャットモードを指定できるようになりました。以前は、agent、edit、askといった組み込みのチャットモードしか使用できませんでしたが、これからはプロンプトファイルでカスタムチャットモードを参照することも可能です。

プロンプトファイル、チャットモード、カスタム指示を使用してVS Codeのチャットをカスタマイズする方法の詳細をご覧ください。
プロンプトファイルの提案を構成する (実験的)
設定: chat.promptFilesRecommendations
チームがAIワークフローを標準化するためにカスタムプロンプトファイルを作成することはよくありますが、ユーザーが最も必要とする時にそれらのプロンプトを見つけるのが難しい場合があります。これからは、文脈条件に基づいてチャットのウェルカムビューにどのプロンプトファイルを提案として表示するかを構成できます。
新しい chat.promptFilesRecommendations 設定は、単純なブール値と、コンテキストを考慮した提案のためのwhen句式の両方をサポートしています。
{
"chat.promptFilesRecommendations": {
"plan": true, // Always suggest
"a11y-audit": "resourceExtname == .html", // Only for HTML files
"document": "resourceLangId == markdown", // Only for Markdown files
"debug": false // Never suggest
}
}
これにより、チームが適切なタイミングで適切なAIワークフローを提示できるようになり、カスタムプロンプトの発見可能性とワークスペースやファイルタイプに対する関連性が向上します。
ツールセットからツールを選択する
ツールセットは関連するツールをグループ化する便利な方法であり、VS Codeにはeditやsearchといったいくつかの組み込みツールセットがあります。
ツールピッカーで、各ツールセットにどのツールが含まれているかが表示されるようになり、各ツールを個別に有効化または無効化できます。ツールピッカーには、チャットビューのConfigure Tools...ボタンからアクセスできます。

チャットで使用されるフォントを構成する
設定: chat.fontFamily , chat.fontSize
VS Codeではエディター全体で使用するフォントを選択できますが、チャットビューにはその設定機能がありませんでした。今回、チャットメッセージのフォントファミリー( chat.fontFamily )とフォントサイズ( chat.fontSize )を構成するための2つの新しい設定を追加しました。

注: リストの内容は現在これらの設定にまだ反映されませんが、今後のリリースで修正する予定です。
コーディングエージェントとの共同作業 (実験的)
コーディングエージェントを使用すると、バックグラウンドで処理されるタスクをAIエージェントに委任できます。複数のエージェントを並行して作業させることも可能です。コーディングエージェントとより効果的に連携できるよう、チャットセッションの操作体験を引き続き進化させています。
チャットセッションビュー
設定: chat.agentSessionsViewLocation
チャットセッションビューは、ローカルおよび外部から提供されるチャットセッションの両方を管理するための単一の統一ビューを提供します。チャットセッションビューを大幅に強化し、主要なすべての操作を実行できるようにしたことで、コーディングタスクの反復と完了がより容易になりました。
- ステータスバー追跡: 複数のコーディングエージェントの進捗をステータスバーから直接監視できます。
- マルチセッションサポート: 同じビューから複数のチャットセッションを開始・管理できます。
- 拡張されたコンテキストメニュー: より多くのアクションにアクセスして、コーディングエージェントと効率的にやり取りできます。
- リッチな説明: リッチな説明が有効な場合、各リストエントリには関連情報を素早く見つけるのに役立つ詳細なコンテキストが含まれます。
GitHubコーディングエージェントの統合
チャットセッションとGitHubコーディングエージェントの統合を改善し、よりスムーズで直感的な操作体験を実現しました。
- チャットエディターのアクション: コード変更の表示や適用、プルリクエストのチェックアウトをチャットエディターから直接行えます。
- シームレスな移行: ローカルチャットからGitHubエージェントタスクへ、継続性を維持したままスムーズに移行できます。
- セッションレンダリングの向上: カードやツールレンダリングのさまざまな改善により、視覚的な明瞭さが向上しました。
- パフォーマンス向上: セッション読み込みが高速化され、より応答性の高い体験を実現しました。
コーディングエージェントへの委任
VS CodeでのローカルタスクをCopilotコーディングエージェントに委任する方法の拡充を続けています。
-
コーディングエージェントでTODOを修正
TODOで始まるコメントに、コーディングエージェントセッションを素早く開始するためのコードアクションが表示されるようになりました。
-
チャットからの委任 ( githubPullRequests.codingAgent.uiIntegration )
チャットでコーディングエージェントに委任アクションを実行すると、ファイル参照を含む追加のコンテキストがGitHubコーディングエージェントに転送されるようになりました。これにより、タスクをコーディングエージェントに渡して完了させる前に、正確に計画を立てることができます。新しいチャットエディターが開き、コーディングエージェントの進捗状況がリアルタイムで表示されます。
テーマ: Sharp Solarized (vscode.devでプレビュー)
Googleによるソーシャルサインイン
Googleアカウントを使用してGitHub Copilotにサインインまたはサインアップするオプションが一般利用可能となり、VS Codeのすべてのユーザーに展開されています。

詳細については、GitHubブログの発表記事を参照してください。
ターミナルの自動承認
設定: chat.tools.terminal.enableAutoApprove この設定は組織レベルで管理されています。変更するには管理者に連絡してください。
ターミナルコマンドを自動承認すると、エージェントとの対話が大幅に効率化されますが、それにはセキュリティリスクも伴います。このリリースでは、ユーザビリティとセキュリティの両方を強化するため、ターミナルの自動承認にいくつかの改善が導入されました。
-
ターミナルの自動承認は、 chat.tools.terminal.enableAutoApprove この設定は組織レベルで管理されています。変更するには管理者に連絡してください。 設定で有効または無効にできます。この設定は、組織によってデバイス管理を通じて設定することも可能です。
-
ターミナルの自動承認が実際に有効になる前に、チャットビュー内のドロップダウンから明示的にオプトインする必要があります。

-
チャットビューから、実行中のコマンドに対して自動承認ルールを簡単に追加したり、設定を開いたりできます。

テーマ: Sapphire (vscode.dev でプレビュー中: vscode.dev)
コマンドに対して、より適切なサブコマンド(例:
npmではなくnpm testルールを提案する)を提案する基本的なサポートが含まれています。 -
自動承認されたコマンドに関する透明性を向上させるため、どのルールが適用されたかをチャットビューに表示し、そのルールを構成できるようにしました。

-
安全性とノイズの低減のためにデフォルト設定を改善しました。
settings.jsonファイルを開き、chat.tools.terminal.autoApproveと入力してTabキーで補完することで、設定のデフォルト値からルールの一覧全体を確認できます。 -
バックスラッシュまたはフォワードスラッシュを含む非正規表現ルールは、パスとして扱われるようになりました。その正確なパスを承認するだけでなく、どちらのスラッシュタイプも許可し、
./プレフィックスも許可されます。PowerShellを使用する場合、すべてのルールは大文字と小文字を区別しません。 -
エージェントモードが
curl、wget、Invoke-RestMethod、またはInvoke-WebRequestを使用してインターネットからコンテンツを取得しようとすると、警告が表示されるようになりました。これはプロンプトインジェクション攻撃の一般的なベクトルであるためです。
ドキュメントでターミナルの自動承認の詳細をご覧ください。
グローバル自動承認
グローバル自動承認は、v1.99以降、実験的な設定でした。私たちが観察したところ、ユーザーはその結果を深く考えることなくこの設定を有効にしていました。さらに、一部のユーザーは chat.tools.autoApprove 設定を有効にすることがターミナルの自動承認を有効にするための前提条件であると考えていましたが、実際にはそうではありませんでした。
これらの誤解に対処し、ユーザーをさらに保護するため、グローバル自動承認が最初に使用される際に警告が表示されるようになり、ユーザーは簡単に設定を取り消して無効にできるようになりました。

設定名称も、より明確な chat.tools.global.autoApprove この設定は組織レベルで管理されています。変更するには管理者に連絡してください。 に変更され、自動的な移行は行われないため、すべてのユーザー(意図したか否かに関わらず)は改めて明示的に設定する必要があります。
数学的レンダリングがデフォルトで有効に
設定: chat.math.enabled
チャットの回答における数式のレンダリングが一般利用可能となり、デフォルトで有効になりました。 chat.math.enabled 設定でこの機能を無効にできます。

この機能はKaTeXをベースにしており、インライン数式とブロック数式の両方をサポートしています。インライン数式はマークアップをドル記号1つ($...$)で囲み、ブロック数式はドル記号2つ($$...$$)で囲んで記述します。
チャットビューのデフォルト表示
設定: workbench.secondarySideBar.defaultVisibility
ワークスペースを最初に開く際、チャットビューを含むセカンダリサイドバーがデフォルトで表示され、すぐに質問したり、エージェントセッションを開始したりできるようになります。この動作は、 workbench.secondarySideBar.defaultVisibility 設定、またはチャットビュー自体のドロップダウンを使用して構成できます。

タスクサポートの向上
-
入力リクエストの検出
エージェントモードでタスクやターミナルコマンドを実行すると、エージェントがプロセスのユーザー入力を要求していることを検出できるようになり、チャットで応答を促されるようになりました。プロンプトが表示されている間にターミナルで入力を開始すると、プロンプトは自動的に非表示になります。選択肢と説明(
[Y] はい [N] いいえなど)が提供される場合、これらは確認プロンプトに表示されます。 -
問題マッチャーを備えたタスクのエラー検出
問題マッチャーを使用するタスクでは、言語モデルが出力を評価するのではなく、問題マッチャーの結果に基づいてエラーを収集・表示するようになりました。問題はチャットの進捗メッセージ内のドロップダウンに表示され、問題の場所に直接移動できます。これにより、現在のタスク実行に関連する場合にのみエラーが報告されるようになります。
-
複合タスクサポート
エージェントモードで複合タスクの実行がサポートされました。複合タスクを実行すると、エージェントは各依存タスクの進捗と出力(ユーザー入力のプロンプトを含む)を表示します。これにより、より複雑なワークフローが可能になり、複数ステップにわたるタスク実行の可視性が向上します。
以下の例では、「VS Code - Build」タスクが実行されています。各依存タスクの出力が評価され、レスポンスと進捗メッセージのドロップダウンに問題がユーザーに表示されます。
ターミナルサポートの向上
-
ターミナルツールをコアへ移行
前回のリリースでの
runInTerminalツールと同様に、terminalSelectionおよびterminalLastCommandツールが拡張機能からコアに移行されました。これにより、全般的な信頼性が向上するはずです。 -
構成可能なターミナルツールのシェル統合タイムアウト
runInTerminalツールがターミナルを作成しようとするたび、シェル統合が有効になるまで一定時間待機します。シェル(PowerShellのプロファイルが非常に重い場合など)の起動が特に遅いと、これまでは固定の5秒のタイムアウトを待っても結局失敗することがありました。このタイムアウトは、 chat.tools.terminal.shellIntegrationTimeout 設定で構成可能になりました。 -
コマンドプロンプトの使用を防止
コマンドプロンプトでは、少なくともCopilotが必要とする機能においてはシェル統合が不可能であるため、CopilotはデフォルトでWindows PowerShellを使用するようにしました。これにより、デフォルトシェルがコマンドプロンプトの場合でも
runInTerminalツールの信頼性が向上します。何らかの理由でCopilotにコマンドプロンプトを使用させたい場合、現時点では不可能です。Copilotが使用するターミナルプロファイルをカスタマイズする機能を近いうちに追加する予定です。これについては#253945で追跡されています。
Todoリストツール
Todoリストツールは、エージェントが複雑な複数ステップのタスクを小さなタスクに分解し、進捗状況を報告して個々の項目を追跡するのに役立ちます。このツールを改良し、デフォルトで有効にしました。
ツールの進捗状況はチャットビュー上部のTodoコントロールに表示されます。Todoリストが進むにつれて自動的に折りたたまれ、現在進行中のタスクのみが表示されます。
ツール呼び出しのスキップ
エージェントがツール呼び出しの確認を求めてきた場合、ツール呼び出しをスキップしてエージェントに続行させることができるようになりました。引き続き、チャット入力ボックスからリクエストをキャンセルしたり、新しいリクエストを入力したりできます。
セマンティックワークスペース検索の向上
#codebaseツールをアップグレードし、ワークスペース内のコードのセマンティック検索に新しい埋め込み(Embedding)モデルを使用するようにしました。この新しいモデルは、コード検索においてより良い結果を提供します。また、新しい埋め込みモデルはストレージ容量を節約し、以前のモデルのオンディスクサイズのわずか6%のストレージで済みます。
今後数週間かけて、この新しい埋め込みモデルを段階的に展開していきます。ワークスペースは自動的に更新されるため、操作の必要はありません。VS Code Insidersでは、ロールアウト前に試せるよう、すでに新しいモデルを使用しています。
GitHub CopilotのAI機能を非表示または無効にする
設定: chat.disableAIFeatures
GitHub Copilotが提供するチャット、コード補完、次候補の編集提案などの組み込みAI機能を無効化または非表示にするための新しい設定 chat.disableAIFeatures を導入しました。
この設定には、以前のソリューションと比較して以下の利点があります。
- 明示的に無効化しない限り、デバイス間で同期されます。
- Copilot拡張機能がインストールされている場合、それらを無効にします。
- プロファイルごと、またはワークスペースごとに設定を構成できるため、AI機能をを選択的に無効化することが容易です。
「AI機能を非表示にする」コマンドは、この変更を反映して名前が変更され、設定エディターでこの新しい設定が表示されるようになります。
注意: 以前にAI機能を非表示にしていたユーザーは、引き続きAI機能が非表示になります。設定を更新することで、デバイス間で選択を同期させることもできます。
MCP
サーバー指示のサポート
VS CodeはMCPサーバーの指示を読み取り、それらをベースプロンプトに含めるようになりました。
MCPの自動検出がデフォルトで無効に
設定: chat.mcp.discovery.enabled
VS Codeは、Claude Codeなどの他のアプリにインストールされたMCPサーバーの自動検出をサポートしています。VS CodeにおけるMCPサポートの成熟に伴い、自動検出はデフォルトで無効になりましたが、 chat.mcp.discovery.enabled 設定を使用して再有効化できます。
MCPを有効にする
設定: chat.mcp.access この設定は組織レベルで管理されています。変更するには管理者に連絡してください。
以前はMCPサーバーをVS Codeで実行できるかどうかを制御していたchat.mcp.enabled設定が、より説明的なオプションを持つ新しい chat.mcp.access この設定は組織レベルで管理されています。変更するには管理者に連絡してください。 設定に移行されました。
all: すべてのMCPサーバーの実行を許可(以前のtrue値に相当)none: MCPサポートを完全に無効化(以前のfalse値に相当)
アクセシビリティ
チャット確認アクションにフォーカス
チャットの確認にフォーカス (kb(workbench.action.chat.focusConfirmation)) コマンドを追加しました。これにより、確認ダイアログが存在する場合はそれにフォーカスし、存在しない場合はスクリーンリーダーのユーザーに確認が不要であることをアナウンスします。
コード編集
インライン候補表示の遅延を構成可能に
設定: editor.inlineSuggest.minShowDelay
新しい editor.inlineSuggest.minShowDelay 設定により、タイピング後にインライン候補がどれくらいの速さで表示されるかを構成できます。候補が速すぎると感じ、タイピングの邪魔になる場合に便利です。
エディターエクスペリエンス
Windowsでのウィンドウ枠線の色サポート
設定: window.border
WindowsでVS Codeウィンドウの周りに色付きの枠線を表示できる新しい window.border 設定を追加しました。以下のオプションがあります。
default: カラーテーマ設定を尊重し、Windows設定にフォールバックします。system: Windows設定のみを尊重します(ウィンドウタイトルのアクセントカラー)。off: 枠線の色を無効にします。<color>: Hex、RGB、RGBA、HSL、HSLA形式の特定の色。
ワークスペースごとに色を構成できるため、どのウィンドウでどのワークスペースが開かれているかを簡単に区別できます。

window.border を default として構成すると、テーマは window.activeBorder および window.inactiveBorder カラーキーを使用して、アクティブおよび非アクティブなウィンドウの枠線の色を設定できます。これらの色は、 workbench.colorCustomizations 設定からさらに上書きできます。
拡張機能アカウント設定の管理
コマンドパレットにアカウント: 拡張機能アカウント設定を管理コマンドを追加しました。起動すると、認証アカウントにアクセスできる拡張機能の一覧が表示され、それらの拡張機能が使用するアカウントを変更できます。リストから直接新しいアカウントにサインインすることも可能です。
これは、1年前に導入したアカウント管理機能に基づいています。
エディターのタブインデックス
設定: workbench.editor.showTabIndex
エディターのタブインデックスをタブのラベルに表示できるようになりました。多くのタブを開いている場合や、キーボードショートカットを使って素早くタブ間を移動したい場合に便利です。 workbench.editor.showTabIndex 設定でこの機能を有効にできます。

エディタータブバーのスクロールバー表示設定
設定: workbench.editor.titleScrollbarVisibility
workbench.editor.titleScrollbarVisibility 設定により、エディタータブバーのスクロールバーを表示するタイミングを制御できます。デフォルト値のautoは、タブがオーバーフローし、タブにマウスホバーした時のみスクロールバーを表示します。visibleに設定して常に表示したり、hiddenにして非表示にしたりすることも可能です。
問題報告機能の改善
組み込みの課題報告ツールを使用してVS Codeや拡張機能の問題を報告する際、報告ボタンのドロップダウンからGitHubで作成またはGitHubでプレビューを選択できるようになりました。ボタンがドロップダウンを生成せず、「作成」または「プレビュー」のみが表示される場合は、まだ拡張機能データが読み込み中か、適切なスコープを持つGitHubアカウントでサインインしていることを確認する必要があります。

ノートブック
NES提案の改善 (実験的)
設定: github.copilot.chat.notebook.enhancedNextEditSuggestions.enabled
Notebook向けの次候補の編集(Next Edit Suggestions)の品質向上を実験しています。現在、言語モデルは提案の生成時にアクティブなセルの内容にアクセスできます。 github.copilot.chat.notebook.enhancedNextEditSuggestions.enabled 設定を有効にすると、言語モデルがNotebook全体にアクセスできるようになり、より正確で高品質な編集候補を生成できるようになります。
ソース管理
Git作業ツリーの変更をプレビューして移行
ソース管理の変更ビューで作業ツリーのファイルを右クリックしてコンテキストメニューを開き、ワークスペースと比較を選択することで、作業ツリーのファイルと現在のワークスペースとの差分をプレビューできるようになりました。

変更を確認した後、コマンドパレットから作業ツリーの変更を移行...コマンド()を使用して、作業ツリーのすべての変更を現在のワークスペースにマージできます。これにより、複数の作業ツリー間で簡単に作業し、変更を選択的にメインリポジトリに戻すことができます。
VS CodeでのGit作業ツリーの詳細をご覧ください。
ターミナル
ターミナルウィンドウの発見性と洗練
ターミナルを別のウィンドウで開きたいという要望がよく寄せられていました。この機能は1年半前から存在していましたが、あまり知られていませんでした。今回のイテレーションでは、この機能への複数のエントリポイントを追加しました。
- 新しいコマンド ⌃⇧⌥` (Windows, Linux Ctrl+Shift+Alt+`)。
- 空のエディターメニューとタブウェルメニューに新しいターミナルエントリが追加されました。
- 新しいターミナルのドロップダウンが整理され、新しいターミナルウィンドウエントリが追加されました。
- トップレベルのターミナルメニューに新しいターミナルウィンドウエントリが追加されました。
また、これらの新しいターミナルウィンドウがコンパクトモードで開く体験を洗練させました。ウィンドウに新しいタブを追加すると、自動的にコンパクトモードが終了します。

ターミナルエディターでのターミナルアクション
ターミナルビューで利用可能なアクション(新しいターミナルのドロップダウン、ターミナルのクリアなど)が、エディターエリアやターミナルウィンドウ内のターミナルでも利用できるようになりました。

ターミナルビューと同様に、アクション領域を右クリックしてオーバーフローメニューから移動させることができます。
ターミナルのIntelliSenseの向上 (プレビュー)
今回のリリースで、ターミナルIntelliSenseにいくつかの改善が加えられています。
- Windowsでの体験に大きな影響を与える、複数のパフォーマンス改善。
- Windowsでは利用できない
sed依存関係の削除により、Windowsでのgit補完がより信頼できるようになりました。 git補完に、コミット、ブランチ、リモート、スタッシュ、タグを表すおなじみのアイコンが表示されるようになりました。
- 多数の補完スペックが追加されました:
adb,basename,bundle,clear,cut,date,dd,diff,dig,dirname,docker-compose,docker,dotnet,env,export,fdisk,fmt,fold,gh,go,htop,id,jq,ln,lsblk,lsof,mount,nl,od,paste,ping,pkill,readlink,rsync,ruby,ruff,sed,seq,shred,sort,source,split,stat,su,sudo,tac,tar,tee,time,tr,traceroute,tree,truncate,uniq,unzip,wc,where,whereis,which,who,xargs,xxd,yo,zip
ターミナルのスティッキースクロールの改善
ターミナルのスティッキースクロールをデフォルトで有効にしました。ページャーを使用する際の動作改善など、より良い体験のためにいくつか改善を行いました。ターミナルスティッキースクロールは、 editor.tabFocusMode 設定と互換性があります。
言語
JavaScriptとTypeScript
利用数を確認した結果、組み込みのbower.json IntelliSenseを削除することに決定しました。Bowerは2017年から非推奨となっており、組み込みサポートの使用頻度が低く、積極的にメンテナンスされていませんでした。
Bowerはユーザーにnpmまたはyarnへの移行を推奨しています。VS CodeでのBowerの継続的なサポートは、拡張機能によって提供されます。
Python
PipenvのPython環境拡張機能サポート
Pipenv環境をPython拡張機能と同様に検出し、選択できるようになりました。さらに、これらはPythonサイドバーの環境マネージャービューに表示され、他の環境タイプと一緒にグループ化されます。

環境変数の注入を構成
新しい設定である python.useEnvFile は、Python環境拡張機能が有効な場合に、.envファイルや python.envFile 設定からの環境変数をターミナルに注入するかどうかを制御します。
Python Environments 拡張機能の改善
Python環境拡張機能 は、安定版ユーザーへの制御されたロールアウトの一環として、バグ修正と改善を受け続けています。ロールアウト中にPython環境拡張機能を使用するには、拡張機能がインストールされていることを確認し、VS Codeの settings.json ファイルに "python.useEnvironmentsExtension": true を追加してください。
PylanceによるAIを活用したホバー要約 (実験的)
Python用の最新のプレリリース版Pylanceを使用すると、新しい試験的なAIホバー要約機能を利用できるようになりました。 python.analysis.aiHoverSummaries 設定を有効にすると、ドキュメントがまだ存在しないシンボルに対して、オンザフライで役立つ要約を取得できます。これにより、未知のコードを理解しやすくなり、Pythonプロジェクトを探索する際の生産性が向上します。AIホバー要約は現在、GitHub Copilot Pro、Pro+、およびEnterpriseユーザーが利用可能です。
この試験的な機能を、近日中に安定版の拡張機能にも提供する予定です。
コードスニペット実行ツール
Pylanceのコードスニペット実行ツールを使用すると、python -c "code"のようなターミナルコマンドに頼ったり、実行用の一時ファイルを作成したりすることなく、GitHub CopilotがPythonスニペットを完全にメモリ内で実行できるようになります。このツールはワークスペース用に設定された適切なPythonインタープリターを自動的に使用し、ターミナル実行時に発生することがあるシェルエスケープや引用符に関連する一般的な問題を解消します。
特筆すべき利点の一つは、stdoutとstderrが明確に統合された、整理され見やすい形式で出力される点です。これにより、GitHub Copilotのエージェントモードを使用して、ワークスペースのコンテキスト内で小さなコードブロックのテスト、簡易スクリプトの実行、Python式の検証、インポートの確認を行う際に非常に適しています。
試してみるには、Pylance拡張機能の最新のプレリリース版を使用してください。その後、チャットビューのAdd context...(コンテキストの追加...)> Tools(ツール)メニューから pylancerunCodeSnippet ツールを選択できます。
注意:すべてのAI生成コードと同様に、このツールを実行する前に、生成されたコードを確認してください。コードのロジックと意図をレビューすることで、プロジェクトの目標と一致しているか、安全で正しいものであるかを確認してください。
すべてのPythonドキュメントでPylance IntelliSenseが有効化
python.analysis.supportAllPythonDocuments 設定がPylanceの最新プレリリース版から削除されました。Pylance IntelliSenseは、ターミナルビューやdiffビューを含むすべてのPythonドキュメントでデフォルトで有効になります。つまり、VS CodeでPythonを扱うあらゆる場所で、高度なコード補完、ホバー、コードナビゲーションを利用できるようになります。
アクティベーションフック
Pythonのアクティベーションフックが、Python環境拡張機能によるシェルプロファイルの変更を必要とせず、シェル統合スクリプトから実行できるようになりました。これにより、 python-envs.terminal.autoActivationType が shellStartup に設定されている場合のターミナル起動がより信頼性の高いものになり、重要な点として、Copilotターミナルが期待どおりにアクティベートされるようになります。
拡張機能への貢献
GitHub Pull Requests
プルリクエストと課題の操作、作成、管理を可能にする GitHub Pull Requests 拡張機能にさらなる進歩がありました。新機能には次のようなものがあります。
- サイドバーのコンテンツが狭いウィンドウで折りたたまれるようになりました
- プルリクエストとIssueのウェブビューがリロード後に復元されるようになりました
- 新しい「TODO」コードアクションを使用して、Copilotコーディングエージェントに直接委任できるようになりました
- サブモジュールは githubPullRequests.ignoreSubmodules で無視できます
リリースの全容については、拡張機能の 0.118.0 リリース版の変更履歴 を確認してください。
拡張機能の作成
拡張機能が起動したターミナル向けの shellIntegrationNonce
shellIntegrationNonce を TerminalOptions および ExtensionTerminalOptions 内の createTerminal に渡せるようになりました。これにより、拡張機能は シェル統合エスケープシーケンス 内のコマンドを検証するために使用されるnonceを制御できるようになります。
言語モデルチャットプロバイダーAPI
今回のイテレーションで LanguageModelChatProviders API が完成しました。これにより、拡張機能はクラウドホスト型またはローカルの1つ以上の言語モデルを提供できるようになります。ユーザーは拡張機能をインストールすることで、チャット内のモデルピッカーからこれらのモデルを選択できます。
すでに AI Toolkit for VS Code、Cerebras Inference、Hugging Face など、このAPIを活用してVS Codeのチャットを拡張し、追加のモデルを提供する複数の拡張機能が存在します。
このAPIの利用方法についての詳細は、Language Model Chat Provider 拡張機能ガイド または 拡張機能サンプル を参照してください。
注意:このAPIを通じて提供されるモデルは、現在 GitHub Copilot 個人向けプラン のユーザーのみが利用可能です。
提案API
認証:getSession における WWW-Authenticate チャレンジのサポート
HTTPの確立されたパターンとして、APIへのリクエストに対して 401 Unauthorized ステータスコードと WWW-Authenticate ヘッダーが返されることがあります。このヘッダーは、認証チャレンジ を定義します。これらは本質的に、APIが401エラーを解決するために必要なものです。
認証プロバイダーに対してこれらのチャレンジを渡し、処理することを可能にする提案APIを導入しました。まず、呼び出し側から以下のようにチャレンジを渡すことができます。
export interface AuthenticationWWWAuthenticateRequest {
/**
* The raw WWW-Authenticate header value that triggered this challenge.
*/
readonly wwwAuthenticate: string;
/**
* Optional scopes for the session.
*/
readonly scopes?: readonly string[];
}
export namespace authentication {
// NOTE: The only change is the 2nd parameter, the other variations of `getSession` have the same change
export function getSession(
providerId: string,
scopeListOrRequest: ReadonlyArray<string> | AuthenticationWWWAuthenticateRequest,
options?: AuthenticationGetSessionOptions
): Thenable<AuthenticationSession | undefined>;
}
認証プロバイダー側には、AuthenticationProvider に以下の2つの新しい関数を追加しました。
getSessionsFromChallenges(constraint: AuthenticationConstraint, options: AuthenticationProviderSessionOptions): Thenable<readonly AuthenticationSession[]>;
createSessionFromChallenges(constraint: AuthenticationConstraint, options: AuthenticationProviderSessionOptions): Thenable<AuthenticationSession>;
また、認証プロバイダーは AuthenticationProviderOptions 内で supportsChallenges: true を設定することで、チャレンジのサポートを宣言できます。
例:Azure MFA
この作業は当初、Azure APIでMFA(多要素認証)が必須化されるという今後の変更 に対応するために行われました。このAPIの例としてこれを使用してみましょう。
Azureでリソースを作成する拡張機能があるとします。これは単に Azure RM API を呼び出すだけで、特別なことはしていません。あなたの拡張機能はおそらく、認証セッション(主にアクセストークン)を取得するために vscode.authentication.getSession を呼び出すことにすでに慣れているでしょう。さて、その認証セッションを最初に作成した際、所属組織によっては、多要素認証(MFA)を通過している場合とそうでない場合があります。通過している場合、Azure APIは正常に動作します。もし通過していない場合、AzureのAPIは401と WWW-Authenticate ヘッダーを返します。
ここでVS Codeの新しいAPIの出番です。ヘッダー値を取得し、それをそのまま vscode.authentication.getSession に渡すだけです。
const newRequest = {
wwwAuthenticate: theRawHeaderValue,
scopes: scopesFromPreviousRequest
};
const sessionWithMFA = await vscode.authentication.getSession(
'microsoft',
newRequest,
options
);
これにより、そのヘッダー値が microsoft 認証プロバイダーに渡され、プロバイダーはチャレンジが満たされた状態でセッションを作成する責任を負います。
次のステップ
次回のイテレーションでは、この提案の getSession(拡張機能が認証を要求する部分)を確定させる予定です。この提案や AuthenticationProvider の変更の形状についてフィードバックがあれば、ぜひお知らせください!GitHub上の提案の全容はこちら で確認できます。
WWW-Authenticate に関してもう一つ近々対応予定のユースケースとして、MCPサーバーがより多くのスコープを要求するトークンを求めるために WWW-Authenticate ヘッダーを発行する機能があります。MCP仕様において、これに関する提案が行われています。
セカンダリサイドバーにおけるビューコンテナ
拡張機能は activitybar および panel にビューコンテナを提供できます。今回、secondarySidebar への提供もサポートしました。これは現在 contribSecondarySideBar 提案APIの背後にあります。近日中にこのAPIを確定させたいと考えています。
エンジニアリング
VS Codeの内部開発ループにおけるPlaywrightおよびPlaywright MCPの活用検討
エージェントモードやVS Codeのその他のAI機能は、VS CodeチームがVS Code自体を構築するための中心的なツールになっています。私たちは、これらの機能をさらに適用してVS Codeの内部開発ループをより良くする方法を検討したいと考えました。そのために、Playwright を使用した既存のスモークテスト 自動化プロジェクト を拡張し、ローカルのVS Codeインスタンスを操作できるMCPサーバーを作成する実験を行ってきました。これにより、ビルド/テスト時の成果物(コンパイル、リンター、テストなど)からコンテキストを受け取ることに焦点を当てていた既存のエージェントフローが、ライブのVS Codeインスタンスと対話できるようになり、実行時に変更が意図した効果をもたらしているかを確認できるようになりました。
この作業の最初の部分は、vscodeリポジトリの test/mcp フォルダ にあります。試してみたい場合は、簡単に開始できます。
- Code OSSのローカル版を実行するための コントリビューションガイドライン に従ってください。
- その後、私たちの(今のところ単純な)プロンプトファイル を使用して、エージェントモードで
/playwright ここに質問を入力と質問できます。
これはまだ初期の探索段階ですが、AIを内部開発ループでさらに活用するための可能性が広がることに興奮しています。基盤は整いましたので、今後はチームにとってより堅牢で有用なものにするために反復作業を行っていきます。
この作業は最近、VS Code Insidersポッドキャストで取り上げられ、この探索の背景にある動機や技術的な詳細について議論しました。VS Code Insidersポッドキャスト のエピソードを聴くことができます。
注目すべき修正
- vscode#151902 - ターミナル:1.68における選択時のコピー+新しいハイライト機能が、CMD+Fで以前の用語をコピーしてしまう
- vscode#222075 - ページャーでPage Downを使用すると、ターミナルのスティッキースクロールが1フレーム表示されることがある
- xtermjs/xterm.js#5390 - Altバッファ終了後のスクロールバーのテレポートを修正
ありがとうございます
最後になりましたが、VS Code への貢献者の方々に心から感謝いたします。
イシュートラッキング
イシュートラッキングへの貢献
- @gjsjohnmurray (John Murray)
- @RedCMD (RedCMD)
- @IllusionMH (Andrii Dieiev)
- @albertosantini (Alberto Santini)
プルリクエスト
vscodeへの貢献
- @a-ariff (Ariff): docs: Development Containerセクションの文法を修正 PR #264162
- @alexkozy (Alexey)
- fix: debugToolBar.tsの小さなメモリリークを修正 PR #259349
- fix: WorkerTextModelSyncClientを登録 PR #259442
- @alexvoedi (Alexander Vödisch): linkedEditingの同期ずれを修正 PR #242993
- @bluedog13
- OAuthリダイレクトURIの形式をMicrosoftのURL標準に合わせるよう修正 PR #260446
- RFC 8707へのOAuth2リソースパラメーターの準拠を修正 PR #261815
- @CGNonofr (Loïc Mangeonjean): Firefoxで外部ウィンドウとテーマが同期されない問題を修正 PR #259839
- @Da-nie-elT: for-inループのスニペットを
Object.hasOwn()で更新 PR #262682 - @DoctorKrolic:
xml言語拡張リストに.slnxを追加 PR #259049 - @DrSergei (Druzhkov Sergei): Watchウィンドウでのメモリー参照処理を修正 PR #259753
- @gjsjohnmurray (John Murray)
- カバレッジソースのクイックピックに
テストに移動 (Go to Test)を追加 PR #259600 - テストカバレッジツールバーのクイックピックに正しいアクティブエントリを設定 PR #259639
- テスト結果:uriがある場合のみ
テストに移動 (Go to Test)を提示 (fix #260443) PR #260508
- カバレッジソースのクイックピックに
- @hihry (Himanshu Ravindra Iwanati): fix: 'Restore to Last Checkpoint' ホバーテキストのキャピタリゼーションを更新 PR #259572
- @j3iiifn: プロンプトファイル名に数字を含めることができない問題を修正 PR #261704
- @joelverhagen (Joel Verhagen)
- インストールフローから正式なパッケージ名とバージョンを返せるようにした PR #259081
- 補助的なMCPインストールによって server.json が返されるのをサポート PR #259634
- MCP補助インストール失敗時のヘルプリンクサポートを追加 PR #260215
- @kenherring (Ken Herring): terminal.copyOnSelection と terminalFindWidget - フォーカス時に選択範囲をコピーしないように修正 PR #254065
- @kplates (kplates): feat: ファイル検索にファイルタイプの含める/除外を追加 PR #254285
- @LeftPhalange (Ethan Bovard): DIFF_OPEN_SIDE コマンドを使用して、コマンドパレットに「アクティブなDiffを横に開く (Open Active Diff Side)」オプションを追加 PR #261699
- @remcohaszing (Remco Haszing)
- MonacoEnvironmentのグローバルアクセスを修正 PR #248075
- Markdownコードブロックでの言語ハイライトを拡充 PR #263550
- @rwoll (Ross Wollman)
- オートメーションにおいてエージェントループの終了を待機 PR #262370
- オートメーションでのモデル切り替えをサポート PR #262420
- fix: chat.open コマンド内のコマンドを解析 PR #263458
workbench.action.chat.exportでパスをオプションで受け入れるように変更 PR #263507- fix: Promiseに基づく応答の確認 PR #263894
- "fix: confirm response based on promise (#_263894)" を元に戻す PR #264047
- @SimonSiefke (Simon Siefke)
- fix: パターン入力ウィジェットのメモリリークを修正 PR #258152
- fix: codelensコントローラーのメモリリークを修正 PR #263136
- fix: アクセシビリティ信号スケジューラーのメモリリークを修正 PR #263147
- fix: QuickDiffModelのメモリリークを修正 PR #265007
- @swordjjjkkk (Truman): VSCodeでタブインデックスを表示 PR #209196
- @terreng (Terren): タイトルスクロールバーの表示を制御する新しいオプションを実装 PR #246161
- @timheuer (Tim Heuer): テストカバレッジビューにすべて折りたたむ機能を追加 PR #258906
- @tmm1 (Aman Karmani)
- いくつかのタイプミスを修正 PR #259747
- terminalProcessManager: disposableのリークを修正 PR #261710
- storage: upsert構文を使用してsqliteへの挿入を最適化 PR #261999
- @Tritlo (Matthías Páll Gissurarson): extHostMcp: SSE/JSON処理のためのContent-Typeパラメーターを受け入れるように変更 PR #262787
- @ttttotem (ttttotem): 「最初の2文字の間のクリック時にキャレットが列0にジャンプする」問題を修正 PR #265131
- @JBlitzar (JBlitzar): 既存のインスタンスに接続する際に
app.dock.hideを使用 PR #259352
vscode-copilot-chat への貢献
- @24anisha: GitHubテレメトリにskuデータを追加 PR #819
- @devm33 (Devraj Mehta): logprobsフィールドをオプションに設定 PR #325
- @iann0036 (Ian Mckay): fix: "GitHub" の大文字小文字の区別を調整 PR #631
- @joelverhagen (Joel Verhagen)
- @jwangxx (James Wang)
- @lipido (Daniel Glez-Peña): エージェントのテストカバレッジを改善 PR #614
- @m4dc4p: getErrors (GetErrors / problems) ツールを更新 PR #394
- @rwoll (Ross Wollman)
- @shaunm-msft (Shaun Miller)
- @sridharavinash (Avinash Sridhar): 会話モデルメッセージにモードを追加 PR #517
- @yemohyleyemohyle: MSFT内部テレメトリにメッセージ長イベントを追加 PR #473
- @zhichli (Zhichao Li)
vscode-eslint への貢献
- @AmarMuric04 (AmarMuric)
- @davidtaylorhq (David Taylor): Emberの glimmer-ts/glimmer-js 形式のプローブサポートを追加 PR #2069
vscode-extension-samples への貢献
- @Sepush (Artea): refactor(lsp-embedded-request-forwarding): 不要なコードをクリーンアップ PR #1196
vscode-js-debug への貢献
- @LittleLittleCloud (Xiaoyun Zhang): fix: constructInspectorWSUri 関数でlocalhostホスト名を処理 PR #2260
vscode-jupyter への貢献
- @hunterhogan (Hunter Hogan): package.nls.json のタイプミスを修正 PR #16890
- @krassowski (Michał Krassowski): カスタムCDN URLのサポートを追加 PR #16885
vscode-languageserver-nodeへの貢献
- @MariaSolOs (Maria José Solano):
textDocument/colorPresentationに機能情報を追加 PR #1660
vscode-markdown-languageservice への貢献
- @remcohaszing (Remco Haszing): @vscode/l10n をバージョン 0.0.18 に更新 PR #199
vscode-markdown-tm-grammarへの貢献
- @c-schuhmann (Christian Schuhmann): SAP ABAP構文のサポートを追加 PR #176
- @esmasth (Siddharth Sharma): YANGコードフェンスのサポートを追加 PR #169
- @Morikko (Eric Masseran): Markdownコードブロックでのrestructuredtextサポートを追加 PR #178
- @remcohaszing (Remco Haszing)
vscode-pull-request-github への貢献
- @krassowski (Michał Krassowski): タイプミスを修正 "will be replace" → "will be replaced" PR #7540
vscode-python-environments への貢献
- @almarouk (Abdelrahman AL MAROUK): fix: パスの存在確認によるconda実行ファイルの取得を強化 PR #677
- @sjsikora (Sam Sikora): バグ修正: pip listパッケージ解析の厳格化 PR #698
vscode-vsceへの貢献
- @tgrospic (Tomislav Grospić): prepublishコマンドに文字列形式を使用してNode.js DEP0190警告を回避 PR #1188
debug-adapter-protocolへの貢献
- @jborean93 (Jordan Borean): Ansible実装を追加 PR #552
language-server-protocolへの貢献
- @aartaka (Artyom Bologov): 実装リストに cl-lsp (Common Lisp) を追加 PR #2179
- @anakin4747 (Anakin Childerhose): kconfig-language-server を追加 PR #2177
- @asukaminato0721 (Asuka Minato): ty を追加 PR #2175
- @MariaSolOs (Maria José Solano):
textDocument/colorPresentationに機能情報を追加 PR #2173 - @notpeter (Peter Tripp)
- @ribru17 (Riley Bruins): 3.18メタモデルバージョンを修正 PR #2180
- @skewb1k: 遅延プロパティの説明における文法と一貫性を修正 PR #2170
node-jsonc-parser への貢献
- @operagxsasha: docs: バッジテストへのリンクを編集 PR #98
- @pimterry (Tim Perry): パーサーエラーに startLine と startCharacter を追加 PR #102
python-environment-tools への貢献
- @almarouk (Abdelrahman AL MAROUK): conda環境のトレースメッセージを修正 PR #241
新機能をすぐに試していただくことに感謝しています。頻繁にチェックして、新機能について学んでください。
以前の VS Code バージョンのリリースノートを読むには、code.visualstudio.com の Updates にアクセスしてください。