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

まえがき

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

前のバージョン:VSCode1.105のリリースノート(日本語訳)
リリースノート一覧:VSCodeリリース情報

2025年10月 (バージョン 1.106)

リリース日: 2025年11月12日
Update 1.106.1: この更新プログラムでは、これらの問題 に対応しています
Update 1.106.2: この更新プログラムでは、これらの問題 に対応しています
Update 1.106.3: この更新プログラムでは、これらの問題 に対応しています

Visual Studio Code 2025年10月リリースへようこそ。

このリリースでは、次の3つの主要分野にわたって大きな更新が行われています。

  • Agent HQ により、ローカルかリモートか、Copilot か OpenAI Codex かに関わらず、エージェントセッションの開始、監視、レビューを一元的に行えます
  • セキュリティと信頼性の向上により、AI により多くのタスクを安心して委任できるようになります
  • 日々のコーディングをよりスムーズで快適にする優れたエディター体験

エンジニアがこれらの機能を紹介する VS Code 1.106 リリースハイライト動画 もご覧ください。

Agents

Agent Sessions ビュー

設定: chat.agentSessionsViewLocation

さまざまなコーディングエージェントにタスクを引き渡す際には、すべてのアクティブなセッションを明確に把握できることが重要です。Agent Sessions ビューは、アクティブなチャットセッションを管理するための集中ビューを提供します。これには VS Code 内のローカルセッションだけでなく、Copilot coding agent 、GitHub Copilot CLI 、OpenAI の Codex など、他の環境でバックグラウンドエージェントによって作成されたセッションも含まれます。Agent Sessions ビューは既定で有効になっており、chat.agentSessionsViewLocation 設定で管理できます。

既定では、Agent Sessions ビューには、すべてのアクティブなチャットセッションがソースごとに整理されて一覧表示されます。ビューは、VS Code 内のローカルチャットセッションと、バックグラウンドエージェントセッション用のセクションに分かれています。

すべてのプロバイダーにまたがるセッションを1つのビューにまとめて表示したい場合は、chat.agentSessionsViewLocation 設定で単一ビューオプションを有効にできます。このオプションを有効にすると、Agent Sessions ビューはセカンダリサイドバーの Chat ビューの隣に移動し、チャットとセッション管理の切り替えが容易になります。

なお、統合ビューではまだ利用できない機能もあります。近い将来、このビューをデフォルトにすることを目指して、現在も積極的に開発を進めています。
Agent Sessions ビューは検索 (Ctrl+Alt+F) にも対応し、一覧からセッションを簡単に見つけられるようになりました。

VS Code ドキュメントの Agent Sessions ビュー も参照してください。

Plan agent

新しい plan agent は、コードを書く前に複雑なタスクをステップごとに分解するのに役立ちます。Chat ビューのエージェントドロップダウンから Plan を選択して開始します。複数ステップの実装に取り組む際、VS Code は明確化のための質問を投げかけ、詳細な実装プランを生成します。あなたはまずそのプランを承認することで、すべての要件とコンテキストが事前に反映されていることを確認できます。

実装に入る前に、プランの反復に時間をかけることをお勧めします。要件の洗練、スコープの調整、未解決の質問への対応を何度でも行い、堅牢な土台を築けます。プランを承認すると、Copilot は VS Code ローカル、または cloud agents を通じてプランを実装します。これにより、開発プロセスに対するコントロールと可視性が高まり、抜け漏れや意思決定の不足を早期に発見し、手戻りを減らしコード品質を向上させられます。

また、チーム固有のワークフローやツールに合わせた独自のカスタム plan agent を作成することもできます。Configure Custom Agent メニューを使って、組み込みの plan agent をコピーし、計画スタイル、ツール、プロンプトを開発プロセスに合わせてカスタマイズしてください。VS Code チャットでのプランニング や カスタムエージェントの作成 について、さらに学ぶことができます。

Cloud agents

このリリースでは、エディター内のクラウドエージェントセッションに多くの更新を行いました。
Copilot coding agent の統合を GitHub Pull Request 拡張機能から Copilot Chat 拡張機能へ移行し、VS Code におけるよりネイティブなクラウドエージェント体験を提供します。この統合により、ブラウザーの Agent Sessions ビューからクラウドエージェントセッションを直接開いたり、その逆を行ったりと、VS Code と GitHub Mission Control 間の移行や操作がよりスムーズになります。

CLI agents

このリリースでは、Copilot CLI との初期統合も提供しています。チャットエディターまたは統合ターミナルから、新しい CLI エージェントセッションの作成や既存セッションの再開が可能です。

CLI エージェントエディターでは、ターミナルと同様に Copilot CLI にメッセージを送信し、モデルを切り替え、コンテキストを添付できます。

Agent delegation

クラウドエージェントへの委任体験を引き続き改善しています。
チャットパネルからクラウドボタンを使ってエージェントに委任する際、委任可能なエージェントの一覧が提示されます。また、CLI から /delegate コマンドを使い、CLI エディターまたはターミナルインスタンス内で Copilot coding agent に委任することもできます。

CLI agent の編集追跡

チャット編集セッションは、Copilot CLI などバックグラウンドエージェントによる編集も追跡するようになりました。Agent Sessions ビューからセッションを作成すると、インライン編集ピルと working set ビューの両方を通じて編集が追跡され、エージェントがワークスペースにどのような変更を加えているかを把握しやすくなります。

Chat modes を custom agents に改名

Chat modes は VS Code 全体で custom agents に改名され、他の環境で使用されている用語とより整合するようになりました。

カスタムエージェントを作成すると、その定義ファイルはワークスペース内の .github/agents に配置されます。これらのファイルは .agents.md サフィックスを使用でき、GitHub Copilot Cloud Agents や CLI Agents としても利用できます。
Chat: New Custom Agent... を使用して新しいエージェントを作成し、Chat: Configure Custom Agents... で管理します。

既存のカスタムチャットモード (.github/chatmodes 内の .chatmode.md ファイル) は引き続き動作し、自動的にカスタムエージェントとして扱われます。チャットエージェントファイルをエディターで開くと、1行目に情報マーカーが表示され、カスタムエージェントファイルへの移行を行うクイックフィックスが提供されます。

Custom agent メタデータ

カスタムエージェントの .agent.md ファイルでは、エージェントが環境間でどのように実行されるべきかを記述する追加の target フロントマター プロパティを受け付けるようになりました。

  • target: vscode: ローカルチャット向けにエージェントを最適化し、name、description、argument-hint、model、tools、handoffs プロパティを利用可能にします。VS Code にインストールされている任意のツールを使用できます。
  • target: github-copilot: Copilot クラウドエージェントや GitHub CLI 向けにエージェントを準備し、name、description、tools、mcp-servers、target をサポートします。ツールには edit、search、shell、custom-agent、および MCP サーバーからのツールを指定できます。

すべてのエージェントはすべての環境で実行可能であり、各環境は未知の属性やツールを無視します。

  • name: ファイル名を変更せずにエージェントラベルを上書きできます。
  • argument-hint: チャット入力にガイダンスを表示し、チームメイトがエージェントへのプロンプト方法を理解できるようにします。
  • handoffs: 他のエージェントへのガイド付き遷移を配線し、マルチステップワークフローを連鎖させます。

エージェントファイルエディターは、バリデーション、コード補完、ホバー、コードアクションを提供します。

ドキュメントの custom agents と agent handoffs について、さらに学ぶことができます。

Code Editing

diff エディターで削除されたコードを選択可能に

これまではコードを削除して diff エディターで変更を表示した際、削除された行をコピーできませんでした。このリリースでは、インライン diff ビューを使用している場合、diff エディターで削除された行のテキストを選択してコピーできるようになりました。

Inline suggestions をオープンソース化

VS Code をオープンソースの AI エディターにする取り組みを継続しています。GitHub Copilot Chat のオープンソース化という最初のマイルストーンに続き、今回、インラインサジェスションを vscode-copilot-chat リポジトリに統合することでオープンソース化しました。

このマイルストーンの一環として、GitHub Copilot 拡張機能と GitHub Copilot Chat 拡張機能を1つの拡張機能体験に統合しています。Chat 拡張機能がすべてのインラインサジェスションを提供し、従来どおりのインテリジェントなコード提案を維持しつつ、チャットとエージェント機能もすべて利用できます。この変更は透過的であり、入力中にこれまでと同じコード提案を受け取れます。問題が発生した場合は、一時的に chat.extensionUnification.enabled 設定を使って元に戻すことができます。

GitHub Copilot 拡張機能は 2026 年初頭までに非推奨となる予定です。このマイルストーンの詳細やオープンソースコードについては、ブログ記事 を参照してください。

ガターからインラインサジェスションをスヌーズ

インラインサジェスションをガターアイコンから直接スヌーズできるようになりました。ガターアイコンにマウスホバーすると Snooze オプション付きのコントロールが表示されます。これを選択して期間を指定すると、その間サジェスションが一時停止されます。

行へ移動の改善

今回のイテレーションでは、Go to Line コマンド (Ctrl+G) にいくつかの改善を行い、ファイル内のナビゲーションを向上させました。

Go to Line コマンドは、:: 構文を使用してファイル内の特定の文字位置へ移動できるようになりました。これは、「error at position 599」のようにツールが特定の文字オフセットでエラーを報告する場合に便利です。

文字オフセットに移動するには、Go to Line 入力ボックスに :: に続けて文字番号を入力します。例:

  • ::599 - ファイル内の文字位置 599 に移動
  • ::-100 - ファイル末尾から 100 文字前に移動

入力ボックス内のトグルを使用して、1始まり (既定) と 0始まりのオフセット計算を切り替えられます。

さらに、Go to Line コマンドは範囲外の値をより適切に処理し、ファイルや行の先頭・末尾への移動を簡単にしました。

  • 行番号: ファイルの行数より大きい行番号を入力すると、最終行に移動します。
  • 列番号: 負の列番号を使用すると、行末からの位置に移動します。たとえば :12:-1 は 12 行目の最後の文字に移動します。行の長さより大きい列番号を入力すると、その行の末尾に移動します。

Editor Experience

アイコンの刷新

このリリースでは、codicon アイコンセットを刷新しました。新しいアイコンは、曲線や新しいモディファイアデザイン、より正確なメタファーを取り入れ、モダンで親しみやすく、視認性も向上しています。

Linux ポリシーサポート

Linux システム上で JSON ファイルを使用して VS Code ポリシーを管理できるようになりました。これにより、管理者は Linux マシン上のすべてのユーザーに対して特定の設定や構成を強制できます。
詳細は JSON Policies on Linux を参照してください。

マルチファイル diff エディターでの変更ナビゲーション

単一ファイルの diff エディターで次/前の変更に移動できるのと同様に、マルチファイル diff エディターでもファイルをまたいで変更をナビゲートできるようになりました。キーバインドやナビゲーション用の上下矢印キーを使用して、複数ファイルにわたる変更をレビューできます。

診断ホバーのテキストコピー

診断ホバー (エラー、警告、情報、ヒント) にコピー用ボタンが表示されるようになり、エラーメッセージのコピーが容易になりました。診断マーカーにホバーし、ホバーメッセージ上にマウスを移動すると、右上にコピー用ボタンが表示されます。

アクセント非依存のコマンドフィルタリング

コマンドパレットは、コマンド検索時に文字のアクセントを無視するようになりました。これにより、キーボードレイアウトや言語設定に関係なく、必要なコマンドを見つけやすくなります。たとえば、Générer (フランス語の「Generate」) を含むコマンドを検索する際、アクセントなしで generer と入力しても、該当するコマンドが結果に表示されます。

これは、異なるキーボードレイアウトを使用している場合や、コマンドを探す際にタイプミスをした場合にも役立ちます。フィルタリングは Unicode Normalization Form D に基づいており、すべての Unicode 言語をサポートします。

高度な VS Code 設定

VS Code は「高度な設定」の概念をサポートするようになりました。これらの設定は、特殊なシナリオを構成するためのもので、環境をきめ細かく制御する必要がある上級ユーザーを対象としています。既定では、高度な設定は設定エディター内で非表示になっており、インターフェイスをすっきり保ちながら、必要なときに強力なオプションを利用できるようにしています。

高度な設定を表示・構成するには、設定エディターのフィルタードロップダウンメニューから Advanced を選択するか、検索ボックスに @tag:advanced と入力します。

特定の設定名を正確に検索したり、@id: フィルターを使用した場合は、Advanced フィルターを適用しなくても高度な設定が結果に表示されます。これにより、探している設定を常に見つけられます。

高度な設定は、@modified や @feature: など他のフィルターと組み合わせることもできます。たとえば、@tag:advanced @feature:terminal は、ターミナルに関連する高度な設定のみを表示します。
注: 拡張機能の作者は、設定構成に advanced タグを追加することで、自身の設定を高度な設定としてマークできます。

Chat

埋め込みベースのツール選択

このリリースでは、チャットで 100 個以上のツールを有効にしているユーザー向けに、ツールのフィルタリングとグルーピング方法を大幅に改善しました。「Optimizing tool selection...」という読み込み状態が表示される頻度と時間が減るはずです。また、エージェントの混乱を減らし、適切なツールが選択されるようにツール選択を改善しました。

ツールの承認と信頼

外部データの事後承認

外部データを取得するエージェントツールは、事後承認をサポートするようになりました。これにより、チャットセッションでデータが使用される前に内容を確認でき、プロンプトインジェクション攻撃の可能性から保護するのに役立ちます。

事後承認は #fetch ツールと、openWorldHint を宣言している Model Context Protocol (MCP) ツールで有効になっています。

サーバーまたは拡張機能単位でツールを一括信頼

Allow ボタンのドロップダウンから、MCP サーバーや拡張機能ツールをソース単位で信頼できるようになりました。これにより、特定の MCP サーバーや拡張機能に属するすべてのツールを、一つひとつ承認するのではなく、一括で承認できます。

また、Chat: Manage Tool Approval コマンドの体験も更新され、ツールの事前承認と事後承認の両方を管理できるようになりました。

ツール自動承認ステータスの移動

自動承認ステータスは、チャットビュー内のインライン表示から、ツール呼び出しステータス/チェックアイコン側へ移動しました。

Terminal tool

自動承認用パーサーの改善

以前は、ターミナルツールのサブコマンド検出は、| や && など特定の文字列で単純に分割するナイーブな方法を使用していました。この方法にはいくつかの問題があり、特に echo "a|b|c" のように文字列内でパイプを使用している場合に、echo、b、c といった誤ったサブコマンドが検出されることがありました。また、サブコマンドを確実に抽出できなかったため、安全側に倒して誤実行を防ぐ目的で、括弧、波括弧、バッククォートのペアを全面的に禁止していました。

このリリースでは、この機能に parser を統合し、PowerShell には PowerShell grammar 、それ以外には bash grammar を使用するようにしました*。そのため、非常に複雑なケースでも正しくサブコマンドを抽出できるはずです。

  • なお、これはシェル構文が bash と異なる場合 (例: zsh における ; など) にサブコマンドを検出できない可能性があることを意味します。

ファイル書き込み/リダイレクト検出 (実験的)

新しいパーサーのおかげで、リダイレクトによって書き込まれるファイルをかなり信頼性高く抽出できるようになりました。新しい実験的設定 chat.tools.terminal.blockDetectedFileWrites により、検出されたファイル書き込みに応じて自動承認をブロックできます。

既定の自動承認ルールを無効化 (実験的)

新しい実験的設定 chat.tools.terminal.ignoreDefaultAutoApproveRules により、既定のルール (許可ルールと拒否ルールの両方) を無効化できます。これは、既定値を調べることなく、より細かい制御を行いたい場合に便利です。

シェル固有のプロンプトとコマンド書き換え

ターミナルツールは、PowerShell、bash、zsh、fish 向けのシェル固有の説明を持つようになりました。これにより、エージェントが提案するコマンドがより信頼性の高いものとなり、特に PowerShell で失敗しにくくなります。

さらに PowerShell では、&& を ; に書き換えるようにしました。これは && チェーン演算子が Windows PowerShell (v5) ではサポートされていないためです。この挙動は、vscode#274548 が対応されるまで、一時的に PowerShell 7 に対しても行われます。

ターミナルコマンドをチャットに添付

コマンドデコレーションのコンテキストメニューから、ターミナルコマンドをチャットにコンテキストとして添付できるようになりました。この添付では、コマンドライン、取得された出力、終了コードが共有され、エージェントが何が起きたかを正確に理解できるようになります。これはシェルインテグレーションで追跡されている任意のコマンドに適用され、テキストをコピー&ペーストすることなくトラブルシューティングをエスカレートしやすくします。

チャット内でターミナル出力を表示 (実験的)

新しい chat.tools.terminal.outputLocation 設定で、出力の表示場所を制御できます。既定値の none は、ターミナルがパネルを散らかさないようにします。

すべてのチャットターミナル呼び出しには、進行状況要素上に 2 つのアクションが表示されます。

  • Show Terminal: 非表示セッションを表示してフォーカスし、リッチなシェルインテグレーションが有効な場合は、該当コマンドまで直接スクロールします。基本的またはシェルインテグレーションなしの場合でも、正しいターミナルタブにフォーカスします。
  • Show Output: ターミナルの最終出力をチャットビュー内にインライン表示します。コマンドが非ゼロコードで終了した場合、出力ビューは自動的に展開されます。

npm i が失敗した場合、出力は自動的に展開されます。Show Terminal インラインアクションによりターミナルが表示されます。

非表示のチャットターミナルを検出 (実験的)

setting(chat.tools.terminal.outputLocation):none の場合、少なくとも1つの非表示チャットターミナルが存在すると、ターミナルタブビューに X hidden terminal(s) ボタンが表示されます。これをクリックすると、各チャットターミナルとそのチャットセッションを一覧表示するクイックピックが開き、すぐに目的のプロセスにフォーカスできます。同じピッカーはターミナルのオーバーフローメニューの View Hidden Chat Terminals からも利用でき、すべてのチャットターミナルが表示状態になると非表示になります。
エージェントが ls -la を実行し成功した場合、出力は折りたたまれます。タブビューから非表示ターミナルアクションを実行すると、そのターミナルが選択・表示され、コマンドがハイライトされる位置までスクロールされます。

会話をプロンプトとして保存

チャット会話を /savePrompt コマンドで再利用可能なプロンプトとして保存できるようになりました。アクティブなチャットセッションで /savePrompt を実行すると、会話に基づいて一般化されたプロンプトを含むプロンプトファイルが生成されます。エディターには、このプロンプトをユーザーレベルまたはワークスペースレベルの有効な場所に保存できる青いボタンが表示されます。

この機能は以前の /save コマンドに代わるもので、有用な会話パターンをキャプチャして共有するワークフローをよりシンプルにします。生成されたプロンプトは、今後のチャットセッションで簡単に再利用したり、チームと共有したりできます。カスタムプロンプトファイル について詳しく学べます。

ウェルカムプロンプトの編集

Chat ウェルカムビューの提案プロンプトを右クリックして、追加のアクションにアクセスできるようになりました。プロンプトを右クリック (または Shift+F10 を押下) すると、対応するプロンプトファイルをエディターで直接開く Edit Prompt File オプションを含むコンテキストメニューが表示されます。

プロンプトファイルの編集は、ユーザー定義プロンプトや、chat.promptFilesRecommendations 設定を通じて構成されたプロジェクト固有のプロンプトなど、ファイルが関連付けられているプロンプトで機能します。

カスタムプロンプトファイル についてさらに学ぶことができます。

編集されたファイルを自動的に開く

設定: chat.openEditedFilesAutomatically

エージェントが編集したファイルをエディターで自動的に開かないよう、既定の動作を変更しました。以前の動作を好む場合は、accessibility.openChatEditedFiles 設定を有効にしてください。

Reasoning (実験的)

設定: chat.agent.thinkingStyle , chat.agent.thinking.collapsedTools

前回のイテレーションで、チャット内に思考トークンを表示する chat.agent.thinkingStyle 設定を追加しましたが、これはより多くのモデルで利用可能になりました。このリリース時点で、GPT-5-Codex、GPT-5、GPT-5 mini、Gemini 2.5 Pro がこれをサポートしています。

chat.agent.thinkingStyle は、より一般的な 3 つのスタイルに調整され、既定値は fixedScrolling となりました。これにより、最新の思考チェーンが表示されます。

追加の設定 chat.agent.thinking.collapsedTools により、ツール呼び出しを折りたたみ可能な思考 UI に組み込めます。

Inline chat v2 (プレビュー)

設定: inlineChat.enableV2

インラインチャットのモダナイズに向けた取り組みを加速しています。新しいインラインチャットは次のように設計されています。

  • 単一プロンプト
  • 単一ファイル
  • コード変更専用

これにより、全体的な体験がより軽量になり、UI も簡素化されます。対応できないタスクについては、自動的に Chat ビューへアップグレードされます。

Chat ビューの UX 改善

Chat ビューのいくつかの部分を調整し、より快適に感じられるようにしました。

  • 新しいチャットを作成するアクションがドロップダウンになり、エディター内または新しいウィンドウでチャットセッションを作成するオプションを選べるようになりました。
  • ツールと MCP サーバーのアクションが、モデルピッカーのすぐ隣に移動しました。
  • 設定ドロップダウンが整理されました。

また、チャットビュー内の数式を右クリックして、数式ソースをコピーすることも可能になりました。

MCP

組織向け MCP サーバーアクセス

設定: chat.mcp.gallery.serviceUrl , chat.mcp.access

VS Code は、GitHub 組織ポリシーを通じて構成された MCP レジストリをサポートするようになりました。これにより、組織はカスタム MCP レジストリを設定し、インストールおよび起動可能な MCP サーバーを制御できます。

組織のポリシーで MCP レジストリエンドポイントが構成されている場合、VS Code は次のように動作します。

  • 構成されたレジストリから MCP サーバーの閲覧とインストールを提供
  • アクセス制限が有効な場合、レジストリで利用可能なサーバーのみ起動を許可

組織がこれらのポリシーを構成している場合、chat.mcp.gallery.serviceUrl 設定は MCP レジストリエンドポイント URL を指定し、chat.mcp.access 設定はアクセスをそのレジストリ内のサーバーのみに制限するかどうかを制御します。これらの設定は設定エディター内で「(Managed by organization)」と表示されます。

組織や企業向けに MCP サーバーアクセスを構成する方法については、Configure MCP server access を参照してください。

MCP サーバーをワークスペース構成にインストール

MCP サーバーをインストールする際、グローバルにインストールするか、ワークスペース構成にインストールするかを選択できるようになりました。拡張機能ビューで MCP サーバーを右クリックし、コンテキストメニューから Install (Workspace) を選択するか、MCP サーバーエディター内の Install (Workspace) アクションを使用します。これにより、現在のワークスペースの .vscode/mcp.json ファイルに MCP サーバーが追加され、チームと MCP サーバーを共有しやすくなります。

認証: Client ID Metadata Document 認証フロー

リモート MCP 向けの認証サポートは、Client ID Metadata Document (CIMD) 認証フローをサポートするようになりました。これは MCP における将来の OAuth 標準であり、Dynamic Client Registration (DCR) よりも安全かつスケーラブルな認証ソリューションを提供します。これにより、認可サーバーはクライアントごとにクライアント ID を発行する必要がなくなります。

認可サーバーが CIMD をサポートする MCP サーバーに接続する際、VS Code は DCR よりも優先してこのフローを自動的に使用します。
CIMD の詳細については、oauth.net のリソース を参照してください。

認証: WWW-Authenticate scope step up

リモート MCP 向けの認証サポートは、WWW-Authenticate ヘッダーを通じた動的スコープエスカレーションをサポートするようになりました。これは OAuth 2.0 仕様 で言及されており、MCP サーバーが必要に応じて追加の権限を要求できるようにします。たとえば、サーバーへの接続には最小限のスコープのみが必要ですが、特定のツール呼び出し時にのみ、より広い権限を要求できます。これは最小権限の原則に従うことで、セキュリティを向上させます。

この機能は、まもなく確定予定の 最新の MCP 仕様ドラフト にも記載されています。

Accessibility

音声タイムアウトを既定で無効化

設定 accessibility.voice.speechTimeout の既定値が 0 に変更されました。これは、一定時間の遅延後に音声セッションが自動的に終了しなくなったことを意味します (たとえば、一時停止してもチャットリクエストが自動的にトリガーされません)。これがより良い既定の体験であると考えていますが、以前の既定値 (2500) に戻すことも可能です。

チャット入力の改善

チャット入力は、スクリーンリーダーユーザーが最も関連性の高いコンテキストを最初に聞けるよう、アクティブなエージェントとモデルをより明確な順序でアナウンスするようになりました。また、チャットのアクセシビリティヘルプには、添付されたコンテキストアイテムを削除するために Delete キーを押せることが明記され、添付の管理が完全にキーボード操作で行えるようになりました。

Notebooks

Notebook 検索

Notebook でセルをまたいだ検索がサポートされました。エディターと同様に、キーバインド (F3 と Shift+F3) を使用して次/前の一致箇所に移動できます。

Source Control

git コミットメッセージの折りたたみサポート

設定: git.verboseCommit , git.useEditorAsCommitInput

エディターで git コミットメッセージを記述する際、コミットメッセージの一部を折りたたんで整理できるようになりました。この機能を使用するには、git.verboseCommit と git.useEditorAsCommitInput 設定を有効にしてください。

グラフでの受信/送信変更

設定: scm.graph.showIncomingChanges , scm.graph.showOutgoingChanges

このマイルストーンでは、Source Control Graph ビューで受信および送信の変更を簡単に表示できる機能を追加しました。受信または送信の変更があるアクティブブランチには、グラフに「Incoming Changes」と「Outgoing Changes」ノードが表示されます。各ノードを選択すると、受信または送信ファイルの一覧が表示されます。

scm.graph.showIncomingChanges と scm.graph.showOutgoingChanges 設定を使用して、グラフビューからこの情報を非表示にできます。

グラフでの参照比較

Source Control Graph のコンテキストメニューに新しいコマンド Compare with... を追加しました。これにより、グラフ内の履歴項目を任意のブランチやタグと比較できます。この機能を使うと、履歴項目には存在するが、指定したブランチやタグには存在しない変更を確認できます。

コンテキストメニューには、履歴項目をリモートブランチやマージベースと比較するためのショートカットコマンド Compare with Remote と Compare with Merge Base も用意されています。

リポジトリ選択モード

設定: scm.repositories.selectionMode

Source Control Repositories ビューには、ワークスペースで開かれているリポジトリの一覧が表示され、Source Control Changes ビューに表示されるリポジトリを制御するために使用されます。

このビューの機能拡張を検討しており、その準備として、Repositories ビューの選択モードを単一リポジトリまたは複数リポジトリに制御する scm.repositories.selectionMode 設定を導入しました。

Repositories ビューの新機能に加え、これにより Graph ビューのタイトルにあったリポジトリピッカーを削除し、すべてのソースコントロールビューで共通のグローバルリポジトリピッカーを提供できるようになります。選択モードは設定、または Repositories ビューの「…」メニューから切り替えられます。

新しい Repository メニュー

ユーザーは scm/repository メニュー ID を使用して、新しい Source Control Repositories ビュー内のインラインソースコントロールプロバイダー行にコマンドを追加できます。「inline」グループに追加されたコマンドはインラインに表示され、それ以外のコマンドは「…」メニューに表示されます。

Repositories explorer (実験的)

設定: scm.repositories.explorer , scm.repositories.selectionMode

Repositories ビューを拡張し、各リポジトリに関する追加情報を表示することを検討しています。この実験的機能を試すには、scm.repositories.selectionMode と scm.repositories.explorer を設定してください。

最初のイテレーションでは、ブランチとタグに焦点を当てています。新しいブランチやタグの作成、ブランチやタグの一覧表示、各ブランチ/タグに対するさまざまなアクション (例: checkout など) を実行できます。今後のマイルストーンでは、stashes や remotes など、さらに多くの情報を追加する予定です。この実験的機能をぜひ試して、フィードバックをお寄せください。

Testing

テストカバレッジで未カバー行をナビゲート

テストカバレッジをレビューする際、未カバー行間を簡単に移動できる新しいナビゲーションコマンドを利用できるようになりました。カバレッジ情報を表示しているエディターツールバーには、次の 2 つのコマンドが用意されています。

  • Go to Next Uncovered Line - 次の未カバー行にジャンプ
  • Go to Previous Uncovered Line - 前の未カバー行にジャンプ

これらのコマンドにより、カバレッジの抜けを素早く特定し、追加のテストが必要な箇所に集中できるため、コードベース全体のテスト品質を向上させやすくなります。

Terminal

Terminal IntelliSense

Terminal IntelliSense は、約 1.5 年間実験/プレビュー機能として提供 されてきました。このリリースではプレビューフラグを外し、安定版ユーザー全員に対して段階的に既定有効化を行います。

有効化すると、ターミナルで入力中に、PowerShell、bash、zsh、fish 向けにエディターと同様の IntelliSense が表示されます。

補完候補にはさまざまなソースがあり、たとえばパス補完はコア機能で処理されます。

一部のコマンドには高度な仕様があり、git ではブランチ名を取り込むことができます。

この機能の開発から得た教訓は、「万人に合う 1 つの設定は存在しない」ということでした。そのため、目的に合わせて挙動を調整できるよう、多くのオプションを用意しています。

まだこの機能が表示されない場合は、shell integration が有効になっていることを確認し、terminal.integrated.suggest.enabled 設定で IntelliSense を明示的に有効にしてください。

全体的な磨き込みに加え、このリリースでは次の改善が行われています。

  • copilot と azd CLI に補完を追加
  • 拡張機能 API が最終化に近づいている
  • git commit 補完でコミットメッセージを表示

シェルインテグレーションタイムアウト設定の統合

VS Code がターミナル内でコマンドを実行する前に、シェルインテグレーションが準備完了になるまで待機する時間を制御する、統一された設定 terminal.integrated.shellIntegration.timeout を導入しました。これは、executeCommand API や Copilot ターミナルツールによってトリガーされるコマンドも含みます。

chat.tools.terminal.shellIntegrationTimeout は、この統合に伴い非推奨となりました。

Authentication

拡張機能アカウント設定コマンドの発見性向上

Manage Extension Account Preferences コマンドの発見性が向上しました。コマンドパレットや拡張機能のコンテキストメニューに加え、Manage Language Model Access と並んでアカウントメニューにも表示されるようになり、拡張機能がアクセスできるアカウントの設定を見つけやすくなりました。

従来の Microsoft 認証の最終バージョン - 問題がある場合は msal-no-broker を使用

microsoft-authentication.implementation の classic オプションは削除される予定です。つまり、VS Code 1.106 が classic オプションを含む最後のバージョンとなります。

microsoft-authentication.implementation 設定は、Microsoft アカウントで問題が発生した場合に、ネイティブブローカ認証をオプトアウトできるようにするためのものでした。この設定の値は次のとおりです。

  • msal - 利用可能な場合、ブローカ認証付きの MSAL を使用 (既定)
  • msal-no-broker - ブローカ認証なしで MSAL を使用 (最近追加)
  • classic - MSAL を使用しない従来の Microsoft 認証フローを使用

classic オプションは使用率が非常に低く、msal オプションで発生する問題の多くはブローカに起因しており、msal-no-broker で解消できるため、削除されます。

Microsoft 認証のデバイスコードフロー

Microsoft 認証は、特にリモート開発環境で有用な、ブローカ非使用シナリオでのデバイスコードフローをサポートするようになりました。他の認証方法が失敗した場合、VS Code は自動的にデバイスコードフローにフォールバックし、別のデバイスで入力するコードを表示して認証を完了できるようにします。

アカウント管理コマンド

コマンドパレットから Accounts: Manage Accounts コマンドを使用して、認証アカウントを直接管理できるようになりました。このコマンドは、アカウントメニューが非表示またはアクセスしづらい場合でも、アカウント管理機能にアクセスする手段を提供します。

Manage Accounts コマンドを実行すると、すべてのアクティブアカウントを一覧表示するクイックピックメニューが表示されます。アカウントを選択すると、次のアクションを含む利用可能な操作が表示されます。

  • Manage Trusted Extensions - 選択したアカウントにアクセスできる拡張機能を制御
  • Manage Trusted MCP Servers - この機能をサポートするアカウント向けに MCP サーバーアクセス権限を管理
  • Sign Out - アカウントからサインアウト

Languages

Python

Python Environments 拡張機能: python.poetryPath 設定のサポート

Python Environments 拡張機能は、既存の python.poetryPath ユーザー設定を尊重するようになりました。これにより、使用する Poetry 実行ファイルを指定できます。指定されたパスは検索され、Poetry 環境の管理時に選択されます。

Python Environments 拡張機能: venv 作成の改善: dev-requirements.txt 検出

新しい仮想環境を作成する際、拡張機能は requirements.txt と dev-requirements.txt の両方を検出し、自動的に依存関係をインストールするようになりました。

Copilot Hover Summaries を docstring として追加

Copilot Hover Summaries で生成した AI ドキュメントを、新しい Add as docstring コマンドを使ってコード内に直接 docstring として追加できるようになりました。関数やクラスのサマリーを生成した後、そのシンボル定義に移動してホバーすると、Add as docstring コマンドにアクセスでき、カーソル位置の直下に適切な docstring 形式でサマリーが挿入されます。

これにより、再入力することなくコードのドキュメント化プロセスを効率化し、可読性と保守性を素早く向上させられます。

ローカライズされた Copilot Hover Summaries

Pylance 内の GitHub Copilot Hover Summaries は、VS Code の表示言語を尊重するようになりました。AI 生成サマリーを呼び出すと、エディターで設定している言語で文字列が生成され、ドキュメントを理解しやすくなります。

ワイルドカードインポート変換コードアクション

from module import * のようなワイルドカードインポートは、名前空間を汚染し、名前の出どころが不明瞭になるため、Python では推奨されないことが多いです。

Pylance は、from module import * に依存しているモジュールをクリーンアップするための新しいコードアクションを提供します。このアクションはワイルドカードを明示的なシンボルに置き換え、エイリアスを保持しつつ、インポートを単一のステートメントにまとめます。試すには、ワイルドカードインポートの行をクリックし、Ctrl+. (macOS では Cmd+.) を押して Convert to explicit imports コードアクションを選択してください。

dotenv

アプリケーションの環境変数定義によく使用される dotenv ファイル (.env) に対する基本的な組み込みサポートが追加されました。

Contributions to extensions

GitHub Pull Requests

プルリクエストと issue の作業、作成、管理を可能にする GitHub Pull Requests 拡張機能に、さらなる進捗がありました。新機能には次のものが含まれます。

  • AI 生成 PR 説明 (githubPullRequests.pullRequestDescription ) が、リポジトリに PR テンプレートが存在する場合はそれを尊重するようになりました。
  • Pull Requests ビュー内のドラフトは、[DRAFT] プレフィックスの代わりにイタリック体で表示されるようになりました。
  • 次のような URL からプルリクエストを開けるようになりました:
    vscode-insiders://github.vscode-pull-request-github/checkout-pull-request?uri=https://github.com/microsoft/vscode-css-languageservice/pull/460

拡張機能バージョン 0.122.0 のすべての変更については、changelog を参照してください。

Preview Features

Language Models エディター

新しい Language Models エディターは、GitHub Copilot Chat で利用可能なすべての言語モデルを表示・管理するための集中ビューを提供します。チャットのモデルピッカーから、または Chat: Manage Language Models コマンドを通じて開くことができます。
注: この機能は VS Code Insiders でのみ利用可能です。

エディターには次の情報が表示されます。

  • プロバイダーごとに整理されたすべての利用可能なモデル
  • モデルの機能 (tools、vision、agent)
  • コンテキストサイズと倍率情報
  • モデルの可視性ステータス

次の方法でモデルを検索・フィルタリングできます。

  • ハイライト付きテキスト検索
  • プロバイダーフィルター: @provider:"OpenAI"
  • 機能フィルター: @capability:tools、@capability:vision、@capability:agent
  • 可視性フィルター: @visible:true/false

モデル名やコンテキストサイズにホバーすると、モデル ID、バージョン、ステータス、トークン内訳などの詳細情報が表示されます。

モデルの可視性管理

各モデルの横にある目のアイコンを切り替えることで、チャットのモデルピッカーに表示されるモデルを制御できます。モデルが可視状態の場合、GitHub Copilot Chat 使用時のモデルピッカードロップダウンに表示され、選択可能になります。非表示のモデルは Language Models エディターには残りますが、モデルピッカーには表示されず、よく使うモデルに絞って選択肢を整理できます。

多数のモデルにアクセスできる場合でも、よく使うモデルだけをピッカーに表示してワークフローを簡素化するのに特に有用です。

インストール済みプロバイダーからモデルを追加

Add Models... ボタンを使用して、すでにインストール済みの言語モデルプロバイダーからモデルを構成・追加できます。このボタンを選択すると、Copilot、Anthropic、Azure、Google、Groq、Ollama、OpenAI など、インストール済みのすべてのモデルプロバイダーを一覧表示するドロップダウンが表示されます。リストからプロバイダーを選択すると、その構成を行い、GitHub Copilot Chat でそのモデルを使用し始めることができます。

これにより、Language Models エディターから離れることなく、インストール済みの追加モデルプロバイダーを簡単に有効化できます。プロバイダー行の歯車アイコンを選択すると、プロバイダー管理にアクセスできます。

Extension Authoring

認証セッションでの ID トークン

AuthenticationSession インターフェイスに、オプションの idToken プロパティが追加されました。これにより、認証プロバイダーはアクセストークンに加えて ID トークンも返せるようになり、ユーザーの ID 情報が必要なシナリオで特に有用です。Microsoft 認証プロバイダーはこのフィールドを返しますが、GitHub など他のプロバイダーは返さない場合があります。

ID トークンには認証済みユーザーに関するクレームが含まれ、ID プロバイダーによって署名されるため、ユーザー ID の検証に役立ちます。ID トークンとアクセストークンの違いについては、https://oauth.net/id-tokens-vs-access-tokens/ を参照してください。

TypeScript

export interface AuthenticationSession {
  /**
   * The ID token.
   */
  readonly idToken?: string;
}

Git 拡張機能 getRepositoryWorkspace API

組み込みの Git 拡張機能は、git リポジトリのリモートに関連付けられていることが分かっているフォルダーを取得するための新しい API を提供します。これは、ユーザーが git リモートを持つフォルダーを開いた際に、リポジトリリモートとフォルダーのマッピングをキャッシュすることで機能します。

セカンダリサイドバーでのビューコンテナー

拡張機能の作者は、新しい secondarySidebar コントリビューションポイントを使用して、セカンダリサイドバーにビューコンテナーを登録できるようになりました。これにより、拡張機能は Chat などの組み込みビューと並んでカスタムビューをセカンダリサイドバーに配置し、VS Code のデュアルサイドバー レイアウトとの統合を向上させられます。

JSON

{
  "contributes": {
    "viewsContainers": {
      "secondarySidebar": [
        {
          "id": "myExtensionViews",
          "title": "My Extension",
          "icon": "$(extensions)"
        }
      ]
    },
    "views": {
      "myExtensionViews": [
        {
          "id": "myCustomView",
          "name": "Custom View",
          "when": "true"
        }
      ]
    }
  }
}

Proposed APIs

Quick Pick と Quick Input の改善

Quick Pick と Quick Input API に、拡張機能開発者がインタラクティブなユーザーインターフェイスをより柔軟に作成できる新機能が追加されました。

提案 API: トグルボタンのサポート

拡張機能は、QuickInput の toggles プロパティを通じて、Quick Pick と Quick Input インターフェイスにトグルボタンを追加できます。これにより、入力ボックス領域におけるパスワード表示切り替えなど、ユーザーがクイックピックインターフェイスを離れることなく操作できるシナリオを実現できます。

この API 提案へのコメントやフィードバックは歓迎します (GitHub issue を参照してください)。

TypeScript

export enum QuickInputButtonLocation {
  ...

  /**
   * The button is rendered at the far end inside the input box.
   */
  Input = 3
}

export interface QuickInputButton {
  ...

  /**
   * When present, indicates that the button is a toggle button that can be checked or unchecked.
   *
   * **Note:** This property is currently only applicable to buttons with {@link QuickInputButtonLocation.Input} location.
   * It must be set for such buttons, and the state will be updated when the button is toggled.
   * It cannot be set for buttons with other location values.
   */
  readonly toggle?: { checked: boolean };
}

提案 API: Quick Pick のプロンプトサポート

Quick Pick は、Input Box に存在するものと同様の prompt プロパティをサポートします。prompt は入力ボックスの下に表示される永続的なテキストで、ユーザーが入力している間も表示され続け、消えないガイダンスや説明を提供します。

この API 提案へのコメントやフィードバックは歓迎します (GitHub issue を参照してください)。

TypeScript

export interface QuickPick<T extends QuickPickItem> extends QuickInput {
  /**
   * Optional text that provides instructions or context to the user.
   *
   * The prompt is displayed below the input box and above the list of items.
   */
  prompt: string | undefined;
}

export interface QuickPickOptions {
  /**
   * Optional text that provides instructions or context to the user.
   *
   * The prompt is displayed below the input box and above the list of items.
   */
  prompt?: string;
}

提案 API: Quick Pick アイテムのファイルアイコン

QuickPickItem の resourceUri プロパティを通じて、Quick Pick アイテムにファイルタイプ固有のアイコンを表示できるようになりました。リソース URI を指定すると、VS Code はリソースタイプに基づいて、現在のテーマのファイルアイコンセットに合わせてラベル、説明、アイコンを自動的に導出します。これは、ファイルやフォルダー選択インターフェイスを構築する際に特に有用で、ユーザーは見慣れたファイルタイプアイコンによって項目を素早く識別できます。

この API 提案へのコメントやフィードバックは歓迎します (GitHub issue を参照してください)。

TypeScript

export interface QuickPickItem {
  /**
   * A {@link Uri} representing the resource associated with this item.
   *
   * When set, this property is used to automatically derive several item properties if they are not explicitly provided:
   * - **Label**: Derived from the resource's file name when {@link QuickPickItem.label label} is not provided or is empty.
   * - **Description**: Derived from the resource's path when {@link QuickPickItem.description description} is not provided or is empty.
   * - **Icon**: Derived from the current file icon theme when {@link QuickPickItem.iconPath iconPath} is set to
   *   {@link ThemeIcon.File} or {@link ThemeIcon.Folder}.
   */
  resourceUri?: Uri;
}

MarkdownString での GitHub スタイルアラート (#209652)

MarkdownString で新しいプロパティ supportAlertSyntax を設定することで、GitHub スタイルのアラート構文 をレンダリングできるようになりました。

TypeScript

const markdown = new vscode.MarkdownString();
markdown.supportAlertSyntax = true;
markdown.value = `
> [!NOTE]
> Useful information that users should know, even when skimming content.

> [!TIP]
> Helpful advice for doing things better or more easily.

> [!IMPORTANT]
> Key information users need to know to achieve their goal.

> [!WARNING]
> Urgent info that needs immediate user attention to avoid problems.

> [!CAUTION]
> Advises about risks or negative outcomes of certain actions.
`;

これにより、拡張機能はコメントなど UI のさまざまな場所でアラートをレンダリングできるようになります。

TreeItem ラベルでの MarkdownString サポート (#115365)

拡張機能の作者は、ツリービューアイテムのラベルに MarkdownString を使用できるようになり、codicons やテキスト装飾を含む Markdown のサブセットを利用できます。これにより、より視覚的にリッチなツリービューを作成できます。

TypeScript

// Codicons
const itemWithIcon = new vscode.TreeItem({
  label: new vscode.MarkdownString('$(star) Starred item', true)
});

// Text formatting (must surround the entire string)
const italicItem = new vscode.TreeItem({
  label: new vscode.MarkdownString('_Italic item_')
});

// Formatting and codicons can be combined
const combined = new vscode.TreeItem({
  label: new vscode.MarkdownString('_~~**$(check) Done $(star)**~~_', true)
});

上記のアイテムは次のようにレンダリングされます。

エンジニアリング

自動 UX PR テストの検証

UI 変更を含むプルリクエストを、コードを手元でチェックアウトして実行することなくレビューできるようにする新しい自動化ワークフローを導入しました。UI 変更を含むプルリクエストに ~copilot-video-please ラベルを追加すると、自動プロセスが起動します。

  • PR ブランチから VS Code をビルド
  • playwright-mcp を活用し、GitHub Copilot CLI を使って変更箇所と対話しながら動画を録画
  • 詳細な検査用に Playwright トレースを生成
  • 結果を PR のコメントとして投稿

まだ初期段階ですが、このワークフローにより、特に小さな UI 変更に対するコードレビューに必要な手作業を削減できます。動画とトレースにより、レビュアーは変更が期待どおりに動作するかを素早く確認できます。現在、動画はチームメンバーのみがアクセス可能です。

この自動化の詳細については、https://github.com/microsoft/vscode/issues/272529 を参照してください。

macOS 11.0 サポート終了

VS Code 1.106 は、macOS 11.0 (macOS Big Sur) をサポートする最後のリリースです。詳細は FAQ を参照してください。

注目すべき修正

  • vscode#258236 - 拡張機能インストール時に使用される拡張機能リクエストタイムアウト用設定を追加
  • vscode#272945 - タスクが onDidStartTerminalShellExecution をトリガーしない
  • vscode#273372 - .gitignore ファイルで /** が自動的に */ で閉じられる
  • vscode#243584 - pwsh/conpty で最初の入力が無視される
  • vscode#271952 - Copilot の configure instructions クイックピックに、ワークスペースレベルのエージェント指示ファイル (copilot-instructions.md、AGENTS.md) が表示されない
  • vscode#274631 - ネットワーク: Windows で中間認証局を読み込む

謝辞

Issue トラッキング

Issue トラッキングへの貢献:

プルリクエスト

vscode への貢献:

vscode-copilot-chat への貢献:

vscode-html-languageservice への貢献:

vscode-json-languageservice への貢献:

vscode-languageserver-node への貢献:

vscode-pull-request-github への貢献:

vscode-test-cli への貢献:

debug-adapter-protocol への貢献:

language-server-protocol への貢献:

monaco-editor への貢献:

node-pty への貢献:

python-environment-tools への貢献:

新機能を準備でき次第すぐに試していただけることに、心から感謝しています。ここを頻繁にチェックして、新機能を確認してください。
以前の VS Code バージョンのリリースノートを読みたい場合は、code.visualstudio.com の Updates にアクセスしてください。


スポンサーリンク

もふもふ

プロフィール

著者
もふもふ
プログラマ。汎用系→ゲームエンジニア→Webエンジニア→QAエンジニア。開発からテストまで一通り経験し、実際に詰まった点や検証結果を技術ブログとしてまとめています。