2025 年 3 月 (バージョン 1.99)¶
Visual Studio Code の 2025 年 3 月リリースへようこそ。このバージョンでは多くのアップデートがあり、きっと気に入っていただけると思います。主なハイライトは次のとおりです。
- エージェント モード
- コード編集
- チャット
- ノートブック編集
- 編集およびエージェント モードのサポートにより、コード ファイルと同じくらい簡単にノートブックを作成および編集できます (詳細...)。
これらのリリース ノートをオンラインで読むには、code.visualstudio.com の Updates にアクセスしてください。 Insiders: 新機能をいち早く試したいですか? nightly Insiders ビルドをダウンロードして、最新のアップデートをいち早くお試しください。
チャット¶
エージェント モードが VS Code Stable で利用可能になりました¶
設定: setting(chat.agent.enabled:true)
エージェント モードが VS Code Stable で利用可能になったことをお知らせします。setting(chat.agent.enabled:true)
を設定して有効にします。デフォルトですべてのユーザーに有効にするロールアウトを行うため、数週間後には設定を有効にする必要はなくなります。
エージェント モードのドキュメントを確認するか、チャット ビューのチャット モード ピッカーからエージェント モードを選択してください。
Model Context Protocol サーバーのサポート¶
このリリースでは、エージェント モードで Model Context Protocol (MCP) サーバーがサポートされています。MCP は、AI モデルが外部ツール、アプリケーション、およびデータ ソースを検出して対話するための標準化された方法を提供します。VS Code でエージェント モードを使用してチャット プロンプトを入力すると、モデルはさまざまなツールを呼び出して、ファイル操作、データベースへのアクセス、Web データの取得などのタスクを実行できます。この統合により、より動的でコンテキストを認識したコーディング支援が可能になります。
MCP サーバーは、ユーザー、リモート、または .code-workspace
設定の mcp
セクション、またはワークスペースの .vscode/mcp.json
で構成できます。この構成では、シークレットと定数をハードコーディングしないように入力変数がサポートされています。たとえば、${env:API_KEY}
を使用して環境変数を参照したり、${input:ENDPOINT}
を使用してサーバーの起動時に値を要求したりできます。
MCP: サーバーの追加 コマンドを使用すると、コマンド ライン呼び出しから MCP サーバーをすばやくセットアップしたり、Docker、npm、または PyPI に公開された MCP サーバーから AI 支援セットアップを使用したりできます。
新しい MCP サーバーが追加されると、チャット ビューに更新アクションが表示されます。これを使用してサーバーを起動し、ツールを検出できます。その後、リソースを節約するためにサーバーはオンデマンドで起動されます。
テーマ: Codesong (vscode.dev でプレビュー)
Claude Desktop などの他のアプリケーションで MCP サーバーを既に使用している場合、VS Code はそれらを検出し、実行するように提案します。この動作は、setting(chat.mcp.discovery.enabled)
設定で切り替えることができます。
MCP: サーバーの一覧表示 コマンドを使用して MCP サーバーの一覧とその現在のステータスを表示したり、エージェント モードの ツールの選択 ボタンを使用してチャットで使用できるツールを選択したりできます。
MCP サーバーのインストール方法と使用方法の詳細については、ドキュメントを参照してください。
エージェント モード ツール¶
このマイルストーンでは、いくつかの新しい組み込みツールをエージェント モードに追加しました。
思考ツール (試験的)¶
設定: setting(github.copilot.chat.agent.thinkingTool:true)
。
Anthropic の調査 に触発されて、ツール呼び出しの間にモデルに思考の機会を与えるために使用できるエージェント モードの思考ツールのサポートを追加しました。これにより、製品内および SWE-bench eval での複雑なタスクに対するエージェントのパフォーマンスが向上します。
Fetch ツール¶
プロンプトにパブリックにアクセス可能な Web ページからのコンテンツを含めるには、#fetch
ツールを使用します。たとえば、MCP のようなトピックに関する最新のドキュメントを含める場合は、完全なドキュメント (LLM が使用できるように便利に準備されています) をフェッチして、プロンプトで使用するように要求できます。その様子を次のビデオで示します。
エージェント モードでは、このツールは自動的に選択されますが、フェッチする URL とともに #fetch
を介して他のモードで明示的に参照することもできます。
このツールは、Web ページをヘッドレス ブラウザー ウィンドウでレンダリングすることによって機能します。このウィンドウでは、そのページのデータがローカルにキャッシュされるため、再レンダリングのオーバーヘッドなしに、モデルにコンテンツを何度もフェッチするように自由に要求できます。
#fetch
ツールをどのように使用しているか、およびどのような機能が必要かをお知らせください。
Fetch ツールの制限事項:
- 現在、このブラウザー ウィンドウでは JavaScript が無効になっています。Web サイトがコンテンツのレンダリングを完全に JavaScript に依存している場合、ツールは多くのコンテキストを取得できません。これは変更を検討している制限事項であり、JavaScript を許可するように変更される可能性があります。
- ヘッドレスな性質のため、認証が必要なページをフェッチすることはできません。これは、このヘッドレス ブラウザーが使用するブラウザーとは異なるブラウザー コンテキストに存在するためです。代わりに、MCP を使用して、そのターゲット用に特別に構築された MCP サーバー、または Playwright MCP サーバー などの汎用ブラウザー MCP サーバーを導入することを検討してください。
Usages ツール¶
#usages
ツールは、"すべての参照を検索"、"実装の検索"、および "定義へ移動" の組み合わせです。このツールは、チャットが関数、クラス、またはインターフェイスについて詳しく知るのに役立ちます。たとえば、チャットはこのツールを使用して、インターフェイスのサンプル実装を探したり、リファクタリングを行うときに変更する必要があるすべての場所を見つけたりできます。
エージェント モードでは、このツールは自動的に選択されますが、#usages
を介して明示的に参照することもできます。
エージェント モードで新しいワークスペースを作成する (試験的)¶
設定: setting(github.copilot.chat.newWorkspaceCreation.enabled)
エージェント モード で新しい VS Code ワークスペースをスキャフォールドできるようになりました。VS Code 拡張機能、MCP サーバー、またはその他の開発環境をセットアップする場合でも、エージェント モードは、必要な依存関係と設定を使用してこれらのプロジェクトを初期化、構成、および起動するのに役立ちます。
エージェント モードの VS Code 拡張機能ツール¶
数か月前、VS Code 拡張機能によって提供される 言語モデル ツール の拡張機能 API を完成させました。これで、これらのツールをエージェント モードで使用できます。
構成で toolReferenceName
および canBeReferencedInPrompt
を設定するこの API に提供されるツールは、エージェント モードで自動的に使用できます。
拡張機能でツールを提供することにより、完全な VS Code 拡張機能 API にアクセスでき、拡張機能マーケットプレースから簡単にインストールできます。
MCP サーバーからのツールと同様に、エージェント モードの ツールの選択 ボタンを使用してこれらを有効または無効にできます。独自のツールを構築するには、言語モデル ツール拡張機能ガイド を参照してください。
エージェント モード ツールの承認¶
ユーザー プロンプトのタスクを完了する一環として、エージェント モードはツールとターミナル コマンドを実行できます。これは強力ですが、潜在的なリスクが伴う可能性があります。したがって、エージェント モードでのツールとターミナル コマンドの使用を承認する必要があります。
このエクスペリエンスを最適化するために、セッション、ワークスペース、またはアプリケーション レベルでその承認を記憶できるようになりました。これは現在ターミナル ツールでは有効になっていませんが、今後のリリースでターミナルの承認システムを開発する予定です。
すべての ツールを自動承認する場合は、試験的な setting(chat.tools.autoApprove:true)
設定を使用できるようになりました。これにより、すべてのツールが自動承認され、言語モデルがツールを実行したいときに VS Code は確認を求めません。この設定を有効にすると、モデルが実行しようとしている潜在的に破壊的なアクションをキャンセルする機会がなくなることに注意してください。
今後、この設定をより詳細な機能で拡張する予定です。
SWE-bench でのエージェントの評価¶
VS Code のエージェントは、Claude 3.7 Sonnet で swebench-verified
で 56.0% の合格率を達成しています。これは、SWE-bench 環境でユーザー入力を必要とせずに実行するようにエージェントを構成することに関する Anthropic の 調査 に基づいています。私たちの実験は、Claude 3.5 および 3.7 Sonnet モデルの配信に含まれるファイル編集用の新しいツールを含む、エージェント モードの改善されたプロンプト、ツールの説明、およびツールの設計の出荷につながりました。
統合されたチャット ビュー¶
過去数か月間、言語モデルに質問するための "チャット" ビューと、AI を利用したコード編集セッション用の "Copilot Edits" ビューがありました。今月は、2 つのビューを 1 つのチャット ビューに統合して、チャットベースのエクスペリエンスを合理化することを目指しています。チャット ビューには、3 つのモードのドロップダウンが表示されます。
- Ask: これは以前のチャット ビューと同じです。ワークスペースまたは一般的なコーディングについて、任意のモデルを使用して質問します。
@
を使用して、組み込みのチャット参加者またはインストールされている 拡張機能 から呼び出します。#
を使用して、任意の種類のコンテキストを手動で添付します。 - Agent: コンテキストを自律的に収集し、ターミナル コマンドを実行したり、タスクを完了するために他のアクションを実行したりできる一連のツールを使用して、エージェント コーディング フローを開始します。エージェント モードは、すべての VS Code Insiders ユーザーに対して有効になっており、VS Code Stable でますます多くのユーザーにロールアウトしています。
- Edit: Edit モードでは、モデルは複数のファイルに対して指示された編集を行うことができます。編集するファイルを自動的に見つけるには、
#codebase
を添付します。ただし、ターミナル コマンドを実行したり、他のことを自動的に実行したりすることはありません。
注: この一覧にエージェント モードが表示されない場合は、まだ有効になっていないか、組織のポリシーによって無効になっているため、組織の所有者 が有効にする必要があります。
チャット エクスペリエンスを簡素化することに加えて、この統合により、AI を利用したコード編集のいくつかの新機能が有効になります。
- 会話の途中でモードを切り替える: たとえば、ask モードでアプリのアイデアをブレインストーミングしてから、エージェント モードに切り替えて計画を実行することができます。ヒント:
kb(workbench.action.chat.toggleAgentMode)
を押すと、モードをすばやく変更できます。 - 履歴内の編集セッション: チャットの表示 コマンド (チャット ビューの上部にある時計アイコン) を使用して、過去の編集セッションを復元し、作業を続けることができます。
- チャットをエディターまたはウィンドウに移動: 新しいエディター/新しいウィンドウでチャットを開く を選択して、サイド バーから新しいエディター タブまたは別の VS Code ウィンドウにチャットの会話をポップアウトします。チャットはこれを長い間サポートしてきましたが、エディター ペインまたは別のウィンドウから編集/エージェント セッションを実行することもできます。
- 複数のエージェント セッション: 上記の点から、これは複数のエージェント セッションを同時に実行できることも意味します。1 つのチャットをエージェント モードで機能の実装に取り組み、別の独立したセッションを調査や他のツールの使用に使用することができます。2 つのエージェント セッションに同時にファイルの編集を指示することはお勧めしません。混乱を招く可能性があります。
Bring Your Own Key (BYOK) (プレビュー)¶
Copilot Pro および Copilot Free ユーザーは、Azure、Anthropic、Gemini、Open AI、Ollama、Open Router などの一般的なプロバイダーの独自の API キーを持ち込むことができるようになりました。これにより、Copilot でネイティブにサポートされていない新しいモデルをリリースされたその日に使用できます。
試すには、モデル ピッカーから モデルの管理... を選択します。Copilot Business および Enterprise 顧客のサポートを積極的に検討しており、今後のリリースで最新情報をお知らせします。この機能の詳細については、ドキュメントを参照してください。
再利用可能なプロンプト ファイル¶
構成の改善¶
設定: setting(chat.promptFilesLocations)
setting(chat.promptFilesLocations)
設定で、ファイル パスに glob パターンがサポートされるようになりました。たとえば、現在開いているワークスペース内のすべての .prompt.md
ファイルを含めるには、パスを { "**": true }
に設定します。
さらに、構成は、ホスト オペレーティング システムの動作に合わせて、適用されるファイル システムで大文字と小文字を区別するようになりました。
プロンプト ファイルの編集の改善¶
.prompt.md
ファイルで、ファイル システム パスの基本的なオートコンプリートが提供され、有効なファイル参照が強調表示されるようになりました。一方、壊れたリンクは警告またはエラーの波線として表示され、詳細な診断情報が提供されます。- チャット: プロンプトの使用 コマンド内のプロンプト ファイル リストで、編集および削除アクションを使用してプロンプトを管理できるようになりました。
- プロンプト ファイル内のフォルダー参照は、無効としてフラグが立てられなくなりました。
- Markdown コメントが適切に処理されるようになりました。たとえば、LLM モデルに送信される最終的なプロンプトを生成するときに、コメントアウトされたすべてのリンクは無視されます。
カスタム指示との整合性¶
.github/copilot-instructions.md
ファイルは、ネストされたリンク解決と拡張された言語機能をサポートする、他の再利用可能な .prompt.md
ファイルと同様に動作するようになりました。さらに、.prompt.md
ファイルは参照できるようになり、適切に処理されます。
カスタム指示 の詳細をご覧ください。
ユーザー プロンプト¶
ユーザー プロンプトの作成 コマンドで、ユーザー プロンプト と呼ばれる新しい種類のプロンプトを作成できるようになりました。これらはユーザー データ フォルダーに保存され、コード スニペットやユーザー設定と同様に、マシン間で同期できます。同期は、同期リソース リストの プロンプト 項目を使用して、設定の同期 で構成できます。
改善されたビジョン サポート (プレビュー)¶
前回のイテレーションでは、Copilot Vision が GPT-4o
で有効になりました。チャットで画像を添付して使用する方法の詳細については、リリース ノート を確認してください。
このリリースでは、ドラッグ アンド ドロップで任意のブラウザーから画像を添付できます。ブラウザーからドラッグ アンド ドロップされた画像には、.jpg
、.png
、.gif
、.webp
、または .bmp
の正しい URL 拡張子が必要です。
エディターの構成¶
統合されたチャット エクスペリエンス¶
VS Code のチャット エクスペリエンスを 1 つの統合されたチャット ビューに合理化しました。個別のビュー間を移動して会話のコンテキストを失う必要はなくなり、さまざまなチャット モードを簡単に切り替えることができるようになりました。
シナリオに応じて、次のいずれかのモードを使用し、会話の途中で自由に移動します。
- Ask モード: コードベースに関する質問やアイデアのブレインストーミングに最適化されています。
- Edit モード: コードベース内の複数のファイルにわたって編集を行うのに最適化されています。
- Agent モード: コード編集とツール呼び出しを組み合わせた自律的なコーディング フローに最適化されています。
統合されたチャット ビュー の詳細をご覧ください。
インスタント インデックス作成によるワークスペース検索の高速化¶
リモート ワークスペース インデックス は、AI が質問に答えたり編集を生成したりするときに使用する関連するコード スニペットについて、大規模なコードベースの検索を高速化します。これらのリモート インデックスは、数万または数十万ものファイルを含む大規模なコードベースに特に役立ちます。
以前は、リモート ワークスペース インデックスを構築して使用を開始するには、ボタンを押すか、コマンドを実行する必要がありました。新しいインスタント インデックス作成のサポートにより、#codebase
/@workspace
の質問を最初に試みるときに、リモート ワークスペース インデックスが自動的に構築されるようになりました。ほとんどの場合、このリモート インデックスは数秒で構築できます。構築されると、あなたまたは VS Code でそのリポジトリを操作する他のユーザーが行うコードベース検索は、自動的にリモート インデックスを使用します。
リモート ワークスペース インデックスは現在、GitHub に保存されているコードでのみ使用できることに注意してください。リモート ワークスペース インデックスを使用するには、ワークスペースに GitHub リモートを含む git プロジェクトが含まれていることを確認してください。Copilot ステータス メニュー を使用して、現在使用されているインデックスのタイプを確認できます。
負荷を管理するために、今後数週間かけてインスタント インデックス作成を徐々に展開しているため、すぐに表示されない場合があります。インスタント インデックス作成がまだ有効になっていない場合は、GitHub Copilot: リモート インデックスの構築
コマンドを実行して、リモート インデックスの使用を開始できます。
Copilot ステータス メニュー¶
ステータス バーからアクセスできる Copilot ステータス メニューが、すべてのユーザーで有効になりました。このマイルストーンでは、いくつかの新機能が追加されました。
- ワークスペース インデックス のステータス情報をいつでも表示します。
- アクティブなエディターでコード補完が有効になっているかどうかを表示します。
新しいアイコンはステータスを反映するため、コード補完が有効になっているかどうかをすばやく確認できます。
- コード補完と NES を有効または無効にします。
すぐに使える Copilot セットアップ (試験的)¶
設定: setting(chat.setupFromDialog)
すぐに使える機能的なチャット エクスペリエンスを表示するための試験的な機能を出荷しています。これには、チャット ビュー、エディター/ターミナルのインライン チャット、およびクイック チャットが含まれます。最初のチャット リクエストを送信すると、Copilot Free へのサインインとサインアップをご案内します。
このエクスペリエンスを自分で確認する場合は、setting(chat.setupFromDialog)
設定を有効にします。
チャット プレリリース チャネルの不一致¶
VS Code Stable に Copilot Chat 拡張機能のプレリリース バージョンがインストールされている場合、この構成はサポートされていないことを通知する新しいウェルカム画面が表示されます。チャット機能の急速な開発により、拡張機能は VS Code Stable でアクティブになりません。
ウェルカム画面には、拡張機能のリリース バージョンに切り替えるか、VS Code Insiders をダウンロードするオプションが表示されます。
セマンティック テキスト検索の改善 (試験的)¶
設定: setting(github.copilot.chat.search.semanticTextResults:true)
AI を利用したセマンティック テキスト検索が、検索ビューでデフォルトで有効になりました。kb(search.action.searchWithAI)
キーボード ショートカットを使用してセマンティック検索をトリガーすると、通常の検索結果に加えて、クエリに基づいて最も関連性の高い結果が表示されます。
#searchResults
ツールを使用して、チャット プロンプトでセマンティック検索結果を参照することもできます。これにより、LLM に結果の要約または説明を求めたり、結果に基づいてコードを生成したりすることもできます。
設定エディターの検索の更新¶
デフォルトでは、設定エディターの検索で、前のリリースで導入されたキー一致アルゴリズムが使用されるようになりました。また、設定 ID が既知の設定と完全に一致する場合でも、追加の設定が表示されます。
テーマ: Light Pink (vscode.dev でプレビュー)
ウィンドウ コントロールの新しい設定 (Linux、Windows)¶
設定: setting(window.controlsStyle)
タイトル バーのスタイル (setting(window.titleBarStyle)
) を custom
に設定している場合は、ウィンドウ コントロールに 3 つの異なるスタイルから選択できるようになりました。
native
: これはデフォルトであり、基になるプラットフォームに従ってウィンドウ コントロールをレンダリングします。custom
: ネイティブのものよりもカスタム スタイルの方が好みの場合は、カスタム スタイルでウィンドウ コントロールをレンダリングします。hidden
: タイトル バーのスペースを少しでも増やしたい場合や、キーボード中心のユーザーの場合は、ウィンドウ コントロールを完全に非表示にします。
Code Editing¶
Next Edit Suggestions の一般提供開始¶
設定: setting(github.copilot.nextEditSuggestions.enabled:true)
Next Edit Suggestions (NES) の一般提供開始をお知らせします! さらに、NES の全体的なユーザー エクスペリエンスを向上させるために、いくつかの改善も行いました。
- 編集候補をよりコンパクトにし、周囲のコードへの干渉を減らし、一目で読みやすくしました。
- すべての候補がより見やすくなるように、gutter インジケーターを更新しました。
AI 編集の改善¶
AI を使用して編集を生成する際に、いくつかの小さな調整を行いました。
- AI 編集でファイルを書き換えている間、エディター外の診断イベントをミュートします。以前は、このシナリオではすでに波線を無効にしていました。これらの変更により、[問題] パネルのちらつきが軽減され、クイック修正コード アクションのリクエストが発行されないようになります。
- AI 編集を保持することにした場合、ファイルを明示的に保存するようになりました。
ツールベースの編集モード¶
設定: setting(chat.edits2.enabled:true)
チャットの編集モード の動作方法を変更します。新しい編集モードでは、エージェント モードと同じアプローチを使用します。これにより、モデルはツールを呼び出してファイルを編集できます。この調整の利点は、3 つのモードすべてをシームレスに切り替えることができると同時に、これらのモードが内部でどのように機能するかを大幅に簡素化できることです。
欠点は、新しいモードがエージェント モードで動作するのと同じ、ツール呼び出しをサポートし、ツールが関与する場合に優れたエクスペリエンスが得られることを確認するためにテストされた、削減されたモデル セットでのみ動作することを意味します。o3-mini
や Claude 3.7 (Thinking)
などのモデルが編集モードの一覧に表示されない場合があります。これらのモデルを編集に使用し続けたい場合は、setting(chat.edits2.enabled)
設定を無効にして、以前の編集モードに戻してください。モードを切り替えるときに、セッションをクリアするように求められます。
ツールを使用する場合、さまざまなモデルで一貫した結果を得るためのプロンプトは難しいことがわかりましたが、これらのモデルを編集 (およびエージェント) モードで利用できるように取り組んでいます。
この設定は、VS Code Stable のユーザーに対して徐々に有効になります。
インライン サジェストの構文の強調表示¶
設定: setting(editor.inlineSuggest.syntaxHighlightingEnabled)
今回の更新により、インライン サジェストの構文の強調表示がデフォルトで有効になりました。次のスクリーンショットでは、コード サジェストに構文の色付けが適用されていることに注意してください。
構文の強調表示なしでインライン サジェストを使用する場合は、setting(editor.inlineSuggest.syntaxHighlightingEnabled:false)
で無効にできます。
Tree-Sitter ベースの構文の強調表示 (プレビュー)¶
設定: setting(editor.experimental.preferTreeSitter.css:true)
および setting(editor.experimental.preferTreeSitter.regex:true)
Tree-Sitter を構文の強調表示に使用するための以前の作業に基づいて、CSS ファイルと TypeScript 内の正規表現に対して、試験的な Tree-Sitter ベースの構文の強調表示をサポートするようになりました。
Notebooks¶
Jupyter Notebook ドキュメントの最小バージョンを 4.5 に変更¶
新しい Notebook の nbformat
のデフォルト バージョンが 4.2 から 4.5 に引き上げられました。これにより、Notebook の各セルの id
フィールドが設定され、差分の計算に役立ちます。Notebook の raw JSON で nbformat_minor
を 5
に設定して、既存の Notebook を手動で更新することもできます。
AI Notebook 編集の改善¶
Notebook の AI を利用した編集サポート (エージェント モードを含む) が、Stable リリースで利用できるようになりました。これは、先月 VS Code Insiders でプレビュー機能として追加されました。
チャットを使用して、コード ファイルを編集するのと同じ直感的なエクスペリエンスで Notebook ファイルを編集できるようになりました。複数のセルにわたってコンテンツを変更したり、セルを挿入および削除したり、セルの種類を変更したりできます。この機能は、データ サイエンスまたはドキュメント Notebook を操作する際にシームレスなワークフローを提供します。
新しい Notebook ツール¶
VS Code には、チャットから直接新しい Jupyter Notebook を作成するための専用ツールが用意されています。このツールは、クエリに基づいて新しい Notebook を計画および作成します。
エージェント モードまたは編集モードで新しい Notebook ツールを使用します (setting(chat.edits2.enabled:true)
で改善された編集モードを有効にしてください)。Ask モードを使用している場合は、チャット プロンプトに /newNotebook
と入力して、新しい Notebook を作成します。
AI 編集のナビゲート¶
diff ツールバーを使用して、セル全体の各 AI 編集を反復処理して確認します。
AI 編集の取り消し¶
セル コンテナーにフォーカスがある場合、取り消し コマンドは Notebook レベルでの AI による変更の完全なセットを元に戻します。
チャットでのテキストおよび画像の出力サポート¶
テキスト、エラー、画像などの Notebook セルの出力を、コンテキストとしてチャットに直接追加できるようになりました。これにより、Ask、Edit、またはエージェント モードを使用するときに出力を参照できるため、言語モデルが Notebook コンテンツを理解して支援することが容易になります。
3 つのドット メニューを使用するか、出力を右クリックして、セル出力をチャットに追加 アクションを使用します。
セル エラー出力をチャット コンテキストとして添付するには:
セル出力画像をチャット コンテキストとして添付するには:
Accessibility¶
チャット エージェント モードの改善¶
「ターミナルでコマンドを実行」など、ツール呼び出し中に手動操作が必要な場合に通知されるようになりました。この情報は、関連するチャット応答の ARIA ラベルにも含まれており、スクリーン リーダー ユーザーのアクセシビリティが向上しています。
さらに、エージェント モード で新しいアクセシビリティ ヘルプ ダイアログが利用できるようになり、ユーザーがこの機能に期待できることと、効果的にナビゲートする方法について説明します。
チャット編集アクションのアクセシビリティ シグナル¶
VS Code は、AI によって生成された編集を保持または元に戻すときに、聴覚シグナルを提供するようになりました。これらのシグナルは、setting(accessibility.signals.editsKept)
および setting(accessibility.signals.editsUndone)
を介して構成できます。
サジェスト コントロールの ARIA ラベルの改善¶
サジェスト コントロール項目の ARIA ラベルに、サジェストの種類 (メソッドや変数など) などのより豊富で説明的な情報が含まれるようになりました。この情報は、以前はアイコンを介して視覚ユーザーのみが利用できました。
Source Control¶
参照ピッカーの改善¶
設定: setting(git.showReferenceDetails)
今回のマイルストーンでは、チェックアウト、マージ、リベース、またはブランチの削除などのさまざまなソース管理操作に使用される参照ピッカーを改善しました。更新された参照ピッカーには、最後のコミットの詳細 (作成者、コミット メッセージ、コミット日) と、ローカル ブランチの先行/遅延情報が含まれています。この追加のコンテキストは、さまざまな操作に適した参照を選択するのに役立ちます。
setting(git.showReferenceDetails:false)
設定を切り替えて、追加情報を非表示にします。
リポジトリ ステータス バー項目¶
複数のリポジトリを含むワークスペースには、ブランチ ピッカーの左側にアクティブなリポジトリを表示するソース管理プロバイダー ステータス バー項目が表示されるようになりました。新しいステータス バー項目は追加のコンテキストを提供するため、エディター間を移動したり、ソース管理ビューを使用したりするときに、アクティブなリポジトリがわかります。
ソース管理プロバイダー ステータス バー項目を非表示にするには、ステータス バーを右クリックし、コンテキスト メニューから ソース管理プロバイダー を選択解除します。
Git blame エディター装飾の改善¶
入力中に、"まだコミットされていません" エディター装飾はあまり価値を提供せず、むしろ気を散らすものであるというフィードバックがありました。今回のマイルストーン以降、"まだコミットされていません" エディター装飾は、キーボードまたはマウスを使用してコードベースをナビゲートしている場合にのみ表示されます。
コミット入力カーソルのカスタマイズ¶
今回のマイルストーンでは、コミュニティの貢献のおかげで、setting(editor.cursorStyle)
および setting(editor.cursorWidth)
設定が、ソース管理入力ボックスで有効になっている設定の一覧に追加されました。
Terminal¶
エージェント モードの信頼性¶
エージェント モードがターミナルでコマンドを実行できるようにするツールには、多くの信頼性と互換性の改善が含まれています。ツールがスタックしたり、出力が存在せずにコマンドが完了したりするケースが少なくなるはずです。
より大きな変更の 1 つは、"基本" および "なし" とは対照的に、"リッチ" な品質の シェル統合 の概念の導入です。VS Code に付属するシェル統合スクリプトは、通常、ターミナル ツール (および一般的なターミナルの使用) での実行で最高のエクスペリエンスを提供するリッチ シェル統合をすべて有効にする必要があります。ターミナル タブにカーソルを合わせると、シェル統合の品質を表示できます。
ターミナル IntelliSense の改善 (プレビュー)¶
code
CLI の拡張された IntelliSense¶
IntelliSense は、code
、code-insiders
、および code-tunnel
CLI のサブコマンドをサポートするようになりました。たとえば、code tunnel
と入力すると、help
、kill
、および prune
などの利用可能なサブコマンドが、それぞれ説明的な情報とともに表示されます。
次のオプションのサジェストも追加しました。
--uninstall-extension
--disable-extension
--install-extension
これらは、コマンドの完了を支援するために、インストールされている拡張機能の一覧を表示します。
さらに、code --locate-shell-integration-path
は、bash
、zsh
、fish
、および pwsh
などのシェル固有のオプションを提供するようになりました。
グローバル コマンドの自動更新¶
ターミナルは、システムの bin
ディレクトリで変更が検出されると、グローバル コマンドの一覧を自動的に更新するようになりました。これは、新しくインストールされた CLI ツール (たとえば、npm install -g pnpm
の実行後) が、ウィンドウをリロードしなくても、すぐに補完に表示されることを意味します。
以前は、新しいツールの補完は、ウィンドウを手動でリロードするまでキャッシュが原因で表示されませんでした。
オプション値のコンテキスト¶
ターミナルのサジェストは、予期されるオプション値に関するコンテキスト情報を表示するようになり、コマンドをより簡単に完了できるようになりました。
fish シェルのリッチな補完¶
前回のリリースでは、bash と zsh の詳細なコマンド補完を追加しました。今回のイテレーションでは、そのサポートを fish にも拡張しました。補完の詳細は、シェルのドキュメントまたは組み込みのヘルプ コマンドから取得されます。
たとえば、fish で jobs
と入力すると、使用法情報とオプションが表示されます。
サジェストのファイルの種類アイコン¶
ターミナルのサジェストに、さまざまなファイルの種類に固有のアイコンが含まれるようになり、スクリプトとバイナリを一目で区別しやすくなりました。
インライン サジェストの詳細¶
ターミナルにゴースト テキストとして表示されるインライン サジェストは、サジェストの一覧の一番上に引き続き表示されます。今回のリリースでは、これらのエントリにコマンドの詳細を追加して、受け入れる前により多くのコンテキストを提供するようにしました。
新しい簡略化された詳細なタブ ホバー¶
デフォルトでは、ターミナル タブに表示される詳細が大幅に少なくなりました。
すべてを表示するには、ホバーの下部にある 詳細の表示 ボタンがあります。
署名付き PowerShell シェル統合¶
シェル統合 PowerShell スクリプトが署名されるようになったため、デフォルトの PowerShell 実行ポリシー RemoteSigned
を使用する場合、Windows でのシェル統合が自動的に開始されるようになりました。シェル統合の利点については、こちら を参照してください。
ターミナル シェル タイプ¶
今回のイテレーションでは、ターミナル シェル API を完成させ、拡張機能がターミナルでユーザーの現在のシェル タイプを確認できるようにしました。
イベント onDidChangeTerminalState
をサブスクライブすると、ターミナルでのユーザーのシェル タイプの変更を確認できます。
たとえば、シェルは zsh から bash に変更される可能性があります。
識別可能なすべてのシェルの一覧は、現在 こちら に記載されています。
Remote Development¶
Linux レガシー サーバーのサポートが終了しました¶
リリース 1.99 以降、これらのサーバーに接続できなくなりました。1.97 リリース で説明したように、サポートされている Linux ディストリビューションへの移行を完了するために追加の時間が必要なユーザーは、glibc
および libstdc++
のカスタム ビルドを回避策として提供できます。この回避策の詳細については、FAQ セクションを参照してください。
Enterprise¶
macOS デバイス管理¶
VS Code は、Windows に加えて macOS でのデバイス管理をサポートするようになりました。これにより、システム管理者は、Microsoft Intune などの集中管理システムからポリシーをプッシュできます。
詳細については、エンタープライズ サポート のドキュメントを参照してください。
Contributions to extensions¶
Python¶
Pylance での編集可能なインストールに対するより良いサポート¶
Pylance は、PEP 660 で定義されているように、編集可能なモード (pip install -e .
) でインストールされたパッケージのインポート パスの解決をサポートするようになり、これらのシナリオで IntelliSense エクスペリエンスが向上します。
この機能は setting(python.analysis.enableEditableInstalls:true)
を介して有効になり、今月中にデフォルトのエクスペリエンスとしてロールアウトを開始する予定です。問題が発生した場合は、Pylance GitHub リポジトリ で報告してください。
Pylance によるより高速で信頼性の高い診断エクスペリエンス (試験的)¶
拡張機能のリリース バージョンを使用する場合に、Pylance の診断の精度と応答性を向上させるための変更のロールアウトを開始しています。これは、複数のファイルが開いているか、最近閉じられたファイルがあるシナリオで特に役立ちます。
ロールアウトを待機したくない場合は、setting(python.analysis.usePullDiagnostics:true)
を設定できます。問題が発生した場合は、Pylance GitHub リポジトリ で報告してください。
Pylance カスタム Node.js 引数¶
新しい setting(python.analysis.nodeArguments)
設定があります。これにより、setting(python.analysis.nodeExecutable)
を使用する場合に、カスタム引数を Node.js に直接渡すことができます。デフォルトでは、"--max-old-space-size=8192"
に設定されていますが、ニーズに合わせて変更できます (たとえば、大規模なワークスペースを操作する場合に、Node.js により多くのメモリを割り当てるなど)。
さらに、setting(python.analysis.nodeExecutable)
を auto
に設定すると、Pylance は Node.js を自動的にダウンロードするようになりました。
Extension authoring¶
Terminal.shellIntegration の調整¶
Terminal.shellIntegration
API は、コマンド検出が発生した場合にのみ有効になります。以前は、現在の作業ディレクトリが報告された 場合にのみ これが機能するはずでしたが、これにより TerminalShellIntegration.executeCommand
がうまく機能しませんでした。
さらに、TerminalShellIntegration.executeCommand
は、より一貫して動作し、複数のコマンドを実行することになった単一のコマンド ラインの複数の "サブ実行" を追跡するようになりました。これは、エージェント モードの信頼性セクション で説明されているように、リッチ シェル統合に依存します。
Proposed APIs¶
タスクの問題マッチャーのステータス¶
拡張機能がタスクの問題マッチャーが開始および終了するタイミングを監視できるように、提案された API を追加しました。taskProblemMatcherStatus
で有効にします。
LLM に画像を送信¶
今回のイテレーションでは、拡張機能が画像を添付してビジョン リクエストを言語モデルに送信できるように、提案された API を追加しました。添付ファイルは、画像の raw で、base64 でエンコードされていないバイナリ データ (Uint8Array
) である必要があります。最大画像サイズは 5MB です。
使用例を確認し、この API のステータスを最新の状態に保つには、この API 提案の問題 を確認してください。
Engineering¶
Marketplace から新しい /latest
API を使用して拡張機能の更新を確認する¶
数マイルストーン前に、拡張機能の更新を確認するために、vscode-unpkg
サービスに新しい API エンドポイントを導入しました。Marketplace は同じエンドポイントをサポートするようになり、VS Code はこのエンドポイントを使用して拡張機能の更新を確認するようになりました。これは実験の背後にあり、段階的にユーザーにロールアウトされます。
Thank you¶
最後になりましたが、VS Code の貢献者の皆様に 感謝 申し上げます。
Issue tracking¶
Issue tracking への貢献:
- @gjsjohnmurray (John Murray)
- @albertosantini (Alberto Santini)
- @IllusionMH (Andrii Dieiev)
- @RedCMD (RedCMD)
Pull requests¶
vscode
への貢献:
- @a-stewart (Anthony Stewart): クロック変更後に 1 日短くなるのを避けるために、テストに 2 時間のオフセットを追加 PR #243194
- @acdzh (Vukk): JSONEditingService で複数の値を更新するときに hasEdits フラグの値を修正 PR #243876
- @c-claeys (Cristopher Claeys): チャット再試行アクションでリクエスト試行回数を増やす PR #243471
- @ChaseKnowlden (Chase Knowlden): マージ エディターのアクセシビリティ ヘルプを追加 PR #240745
- @dibarbet (David Barbet): ドキュメント コメントを考慮するように C# onEnterRules を更新 PR #242121
- @dsanders11 (David Sanders): vscode.d.ts のいくつかの壊れた
@link
を修正 PR #242407 - @jacekkopecky (Jacek Kopecký): scm 入力エディターでより多くのカーソル設定を尊重 PR #242903
- @joelverhagen (Joel Verhagen): 拡張機能 URL が設定されていない場合でも、サポート URL とライセンス URL を表示 PR #243565
- @kevmo314 (Kevin Wang): コメントのタイプミスを修正 PR #243145
- @liudonghua123 (liudonghua): explorer.copyPathSeparator をサポート PR #184884
- @mattmaniak: テレメトリ情報テーブルを少し狭くして、配置 PR #233961
- @notoriousmango (Seong Min Park)
- fix: markdown プレビューで CORS エラーが発生した画像に copy コマンドを使用 PR #240508
- Fix: 改行を含む設定で不正な文字インデント PR #242074
- @pprchal (Pavel Prchal): アイコンの右クリックにローカリゼーションを追加 PR #243679
- @SimonSiefke (Simon Siefke): feature: 設定でフォント ファミリー ピッカーをサポート PR #214572
- @tribals (Anthony): PowerShell Core ユーザー インストールの検出を追加 PR #243025
- @tusharsadhwani (Tushar Sadhwani):
git show
ref 引数を明確にする PR #242483 - @wszgrcy (chen): fix: 拡張機能 uncaughtException listen Maximum call stack size exceeded PR #244690
- @zyoshoka (zyoshoka):
typescript-basics
拡張機能パスを修正 PR #243833
vscode-css-languageservice
への貢献:
- @lilnasy (Arsh):
@starting-style
をサポート PR #421
vscode-custom-data
への貢献:
- @rviscomi (Rick Viscomi): 計算されたベースライン ステータスを追加 PR #111
vscode-extension-samples
への貢献:
- @ratmice (matt rice): esbuild スクリプトを修正 PR #1154
vscode-extension-telemetry
への貢献:
- @minestarks (Mine Starks): common.platformversion から余分な中かっこを削除 PR #221
vscode-js-debug
への貢献:
- @erikson84 (Erikson Kaszubowski): fix: Windows でブレークポイントを設定するときに、パスに円記号が含まれていることを確認 PR #2184
- @xymopen (xymopen_Official): npm スクリプト ランナーとして usenode をサポート PR #2178
vscode-mypy
への貢献:
- @ivirabyan (Ivan Virabyan): mypy 構成で指定されたファイルのみを報告 PR #352
vscode-prompt-tsx
への貢献:
- @dsanders11 (David Sanders): docs: README の例で sendRequest API 名を修正 PR #159
- @tamuratak (Takashi Tamura)
vscode-pull-request-github
への貢献:
- @aedm (Gábor Gyebnár):
sanitizedLowercaseIssueTitle
を設定ドキュメントに追加 PR #6690
vscode-python-debugger
への貢献:
- @rchiodo (Rich Chiodo): debugpy を最新バージョンに更新 PR #653
vscode-test
への貢献:
- @SKaplanOfficial (Stephen Kaplan): fix: 解凍時に「無効な抽出ディレクトリ」を回避 PR #303
language-server-protocol
への貢献:
- @MariaSolOs (Maria José Solano): メタモデルの範囲書式設定機能を更新 PR #2106
python-environment-tools
への貢献:
- @CharlesChen0823: winreg をバンプ PR #195
- @elprans (Elvis Pranskevichus)