2025年3月 (バージョン 1.99)
ダウンロード: Windows: x64 Arm64 | Mac: ユニバーサル Intel シリコン | Linux: deb rpm tarball Arm snap
Visual Studio Code 2025年3月リリースへようこそ。このバージョンには多くのアップデートが含まれており、きっと気に入っていただけると思います。主なハイライトをいくつかご紹介します。
-
エージェントモード
-
コード編集
-
チャット
-
ノートブック編集
- 編集モードとエージェントモードのサポートにより、コードファイルと同じくらい簡単にノートブックを作成および編集できます (詳細...)。
これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com の Updates にアクセスしてください。Insiders: 最新機能をいち早く試したいですか? 夜間の Insiders ビルドをダウンロードして、最新のアップデートが利用可能になり次第お試しください。
チャット
エージェントモードが VS Code Stable で利用可能になりました
エージェントモードが VS Code Stable で利用可能になったことをお知らせします! 有効にするには、chat.agent.enabled を設定してください。設定の有効化は、デフォルトですべてのユーザーにロールアウトするため、今後数週間で不要になります。
エージェントモードのドキュメントを確認するか、チャットビューのチャットモードピッカーからエージェントモードを選択してください。
Model Context Protocol サーバーのサポート
このリリースでは、エージェントモードで Model Context Protocol (MCP) サーバーをサポートしています。MCP は、AI モデルが外部ツール、アプリケーション、データソースを検出して対話するための標準化された方法を提供します。VS Code でエージェントモードを使用してチャットプロンプトを入力すると、モデルはさまざまなツールを呼び出して、ファイル操作、データベースへのアクセス、ウェブデータの取得などのタスクを実行できます。この統合により、より動的でコンテキストを認識したコーディング支援が可能になります。
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 はそれらを検出し、実行するように提案します。この動作は、chat.mcp.discovery.enabled 設定で切り替えることができます。
MCP: サーバーの一覧表示 コマンドを使用して MCP サーバーの一覧とその現在のステータスを確認したり、エージェントモードで ツールの選択 ボタンを使用してチャットで使用できるツールを選択したりできます。
MCP サーバーのインストール方法と使用方法の詳細については、ドキュメントを参照してください。
エージェントモードツール
今回のマイルストーンでは、いくつかの新しい組み込みツールをエージェントモードに追加しました。
思考ツール (試験的)
設定: github.copilot.chat.agent.thinkingTool。
Anthropic の研究に触発されて、ツール呼び出しの間でモデルに思考の機会を与えるために使用できる思考ツールをエージェントモードに追加しました。これにより、製品内および SWE-bench eval でのエージェントの複雑なタスクのパフォーマンスが向上します。
フェッチツール
プロンプトに公開されているウェブページからのコンテンツを含めるには、#fetch
ツールを使用します。たとえば、MCP のようなトピックに関する最新のドキュメントを含めたい場合は、完全なドキュメント (LLM が消費しやすいように便利に準備されています) をフェッチして、プロンプトで使用するように要求できます。これがどのように見えるかのビデオを次に示します。
エージェントモードでは、このツールは自動的に選択されますが、#fetch
を介して他のモードで明示的に参照することもできます。その際、フェッチする URL を指定します。
このツールは、ヘッドレスブラウザウィンドウでウェブページをレンダリングし、そのページのデータがローカルにキャッシュされることで機能します。そのため、再レンダリングのオーバーヘッドなしに、モデルにコンテンツを何度もフェッチするように自由に要求できます。
#fetch
ツールをどのように使用するか、およびどのような機能が欲しいかをお知らせください!
フェッチツールの制限事項
- 現在、JavaScript はこのブラウザウィンドウでは無効になっています。ウェブサイトがコンテンツをレンダリングするために完全に JavaScript に依存している場合、ツールは多くのコンテキストを取得できません。これは、変更を検討しており、JavaScript を許可するように変更する可能性が高い制限事項です。
- ヘッドレスな性質のため、認証が必要なページをフェッチすることはできません。これは、このヘッドレスブラウザが使用しているブラウザコンテキストとは異なるブラウザコンテキストに存在するためです。代わりに、ターゲット用に特別に構築された MCP サーバー、または Playwright MCP サーバー などの汎用ブラウザ MCP サーバーを導入するために、MCP を使用することを検討してください。
usages ツール
#usages
ツールは、「すべての参照を検索」、「実装の検索」、および「定義へ移動」の組み合わせです。このツールは、チャットが関数、クラス、またはインターフェイスについて詳しく知るのに役立ちます。たとえば、チャットはこのツールを使用して、インターフェイスのサンプル実装を探したり、リファクタリングを行うときに変更する必要があるすべての場所を見つけたりできます。
エージェントモードでは、このツールは自動的に選択されますが、#usages
を介して明示的に参照することもできます。
エージェントモードで新しいワークスペースを作成する (試験的)
設定: github.copilot.chat.newWorkspaceCreation.enabled
エージェントモードで新しい VS Code ワークスペースをスキャフォールドできるようになりました。VS Code 拡張機能、MCP サーバー、またはその他の開発環境をセットアップする場合でも、エージェントモードは、これらのプロジェクトを必要な依存関係と設定で初期化、構成、および起動するのに役立ちます。
エージェントモードの VS Code 拡張機能ツール
数か月前、VS Code 拡張機能によって提供される 言語モデルツール の拡張機能 API を最終決定しました。これで、これらのツールをエージェントモードで使用できます。
構成で toolReferenceName
および canBeReferencedInPrompt
を設定するこの API に提供されるツールは、エージェントモードで自動的に利用可能になります。
拡張機能でツールを提供することにより、完全な VS Code 拡張機能 API にアクセスでき、拡張機能マーケットプレイス経由で簡単にインストールできます。
MCP サーバーのツールと同様に、エージェントモードで ツールの選択 ボタンを使用して、これらを有効または無効にできます。独自のツールを構築するには、言語モデルツール拡張機能ガイドを参照してください!
エージェントモードツールの承認
ユーザープロンプトのタスクを完了する一部として、エージェントモードはツールとターミナルコマンドを実行できます。これは強力ですが、潜在的にリスクが伴います。したがって、エージェントモードでツールとターミナルコマンドを使用するには、承認が必要です。
このエクスペリエンスを最適化するために、セッション、ワークスペース、またはアプリケーションレベルで承認を記憶できるようになりました。これは現在、ターミナルツールでは有効になっていませんが、今後のリリースでターミナルの承認システムを開発する予定です。
すべてのツールを自動承認したい場合は、試験的な chat.tools.autoApprove 設定を使用できるようになりました。これにより、すべてのツールが自動承認され、言語モデルがツールを実行したい場合に VS Code は確認を求めません。この設定を有効にすると、モデルが実行しようとしている潜在的に破壊的なアクションをキャンセルする機会がなくなることに注意してください。
将来、この設定をよりきめ細かい機能で拡張する予定です。
SWE-bench でのエージェント評価
VS Code のエージェントは、Claude 3.7 Sonnet で swebench-verified
で 56.0% の合格率を達成しました。これは、Anthropic の 研究 に基づいて、SWE-bench 環境でユーザー入力を必要とせずに実行するようにエージェントを構成した結果です。私たちの実験は、Claude 3.5 および 3.7 Sonnet モデルのインディストリビューションであるファイル編集用の新しいツールを含む、エージェントモードの改善されたプロンプト、ツール記述、およびツール設計に反映されています。
統合チャットビュー
過去数か月間、言語モデルに質問するための「チャット」ビューと、AI を活用したコード編集セッション用の「Copilot Edits」ビューがありました。今月は、2 つのビューを 1 つのチャットビューに統合することで、チャットベースのエクスペリエンスを合理化することを目指しています。チャットビューには、3 つのモードのドロップダウンが表示されます。
- Ask: これは、以前のチャットビューと同じです。ワークスペースや一般的なコーディングについて、任意のモデルを使用して質問します。
@
を使用して、組み込みのチャット参加者またはインストールされた 拡張機能 から呼び出します。#
を使用して、任意の種類のコンテキストを手動で添付します。 - Agent: コンテキストを自律的に収集し、ターミナルコマンドを実行し、またはタスクを完了するために他のアクションを実行できる一連のツールを使用して、エージェントコーディングフローを開始します。エージェントモードは、すべての VS Code Insiders ユーザーに対して有効になっており、VS Code Stable でますます多くのユーザーにロールアウトしています。
- Edit: 編集モードでは、モデルは複数のファイルに対して指示された編集を行うことができます。
#codebase
を添付して、編集するファイルを自動的に見つけさせます。ただし、ターミナルコマンドを実行したり、他のことを自動的に実行したりすることはありません。
注: この一覧にエージェントモードが表示されない場合は、まだ有効になっていないか、組織ポリシーによって無効にされており、組織の所有者によって有効にする必要があります。
チャットエクスペリエンスを簡素化するだけでなく、この統合により、AI を活用したコード編集のいくつかの新機能が有効になります。
- 会話の途中でモードを切り替える: たとえば、ask モードでアプリのアイデアをブレインストーミングしてから、agent モードに切り替えて計画を実行できます。ヒント: ⌘. (Windows、Linux Ctrl+.) を押すと、モードをすばやく変更できます。
- 履歴内の編集セッション: チャットを表示 コマンド (チャットビューの上部にある時計アイコン) を使用して、過去の編集セッションを復元し、作業を続けることができます。
- チャットをエディターまたはウィンドウに移動: チャットを新しいエディター/新しいウィンドウで開く を選択して、サイドバーから新しいエディタータブまたは別の 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 のお客様向けのサポートを積極的に検討しており、今後のリリースで最新情報をお知らせします。この機能の詳細については、ドキュメントをご覧ください。
再利用可能なプロンプトファイル
構成の改善
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 のチャットエクスペリエンスを単一の統合されたチャットビューに合理化しました。別々のビュー間を移動して会話のコンテキストを失う必要がなくなり、さまざまなチャットモードを簡単に切り替えることができるようになりました。
シナリオに応じて、これらのモードのいずれかを使用し、会話の途中で自由に移動できます。
- Ask モード: コードベースに関する質問やアイデアのブレインストーミングに最適化されています。
- Edit モード: コードベース内の複数のファイルにわたって編集を行うのに最適化されています。
- Agent モード: コード編集とツール呼び出しを組み合わせた自律的なコーディングフローに最適化されています。
統合されたチャットビューの詳細をご覧ください。
インスタントインデックス作成によるワークスペース検索の高速化
リモートワークスペースインデックスは、AI が質問に答えたり編集を生成したりするときに使用する関連コードスニペットについて、大規模なコードベースの検索を高速化します。これらのリモートインデックスは、数万または数十万ものファイルを含む大規模なコードベースに特に役立ちます。
以前は、リモートワークスペースインデックスを構築して使用を開始するには、ボタンを押すかコマンドを実行する必要がありました。新しいインスタントインデックス作成サポートにより、#codebase
/@workspace
の質問を最初に試みるときに、リモートワークスペースインデックスが自動的に構築されるようになりました。ほとんどの場合、このリモートインデックスは数秒で構築できます。構築されると、VS Code でそのリポジトリを操作するユーザーが行うコードベース検索はすべて、リモートインデックスを自動的に使用します。
リモートワークスペースインデックスは現在、GitHub に保存されているコードでのみ利用可能であることに注意してください。リモートワークスペースインデックスを使用するには、ワークスペースに GitHub リモートを使用した git プロジェクトが含まれていることを確認してください。Copilot ステータスメニューを使用して、現在使用されているインデックスのタイプを確認できます。
負荷を管理するために、今後数週間かけてインスタントインデックス作成を徐々にロールアウトしているため、すぐに表示されない場合があります。インスタントインデックス作成がまだ有効になっていない場合は、GitHub Copilot: リモートインデックスの構築
コマンドを実行して、リモートインデックスの使用を開始できます。
Copilot ステータスメニュー
ステータスバーからアクセスできる Copilot ステータスメニューが、すべてのユーザーで有効になりました。今回のマイルストーンでは、いくつかの新機能が追加されました。
-
ワークスペースインデックスのステータス情報をいつでも表示できます。
-
アクティブなエディターでコード補完が有効になっているかどうかを表示します。
新しいアイコンはステータスを反映するため、コード補完が有効になっているかどうかをすばやく確認できます。
-
コード補完と NES を有効または無効にします。
すぐに使える Copilot セットアップ (試験的)
すぐに使える機能的なチャットエクスペリエンスを表示する試験的な機能をリリースしています。これには、チャットビュー、エディター/ターミナルインラインチャット、およびクイックチャットが含まれます。最初のチャットリクエストを送信すると、Copilot Free へのサインインとサインアップをご案内します。
このエクスペリエンスを自分で確認したい場合は、chat.setupFromDialog 設定を有効にしてください。
チャットプレリリースチャネルの不一致
VS Code Stable に Copilot Chat 拡張機能のプレリリースバージョンがインストールされている場合、この構成はサポートされていないことを通知する新しいウェルカム画面が表示されます。チャット機能の急速な開発のため、拡張機能は VS Code Stable でアクティブになりません。
ウェルカム画面には、拡張機能のリリースバージョンに切り替えるか、VS Code Insiders をダウンロードするオプションが表示されます。
セマンティックテキスト検索の改善 (試験的)
設定: github.copilot.chat.search.semanticTextResults
AI を活用したセマンティックテキスト検索が、検索ビューでデフォルトで有効になりました。⌘I (Windows、Linux Ctrl+I) キーボードショートカットを使用してセマンティック検索をトリガーすると、通常の検索結果に加えて、クエリに基づいて最も関連性の高い結果が表示されます。
#searchResults
ツールを使用して、チャットプロンプトでセマンティック検索結果を参照することもできます。これにより、LLM に結果を要約または説明させたり、結果に基づいてコードを生成したりできます。
設定エディターの検索の更新
デフォルトでは、設定エディターの検索は、前のリリースで導入したキー一致アルゴリズムを使用するようになりました。設定 ID が既知の設定と完全に一致する場合でも、追加の設定が表示されます。
テーマ: Light Pink (vscode.dev でプレビュー)
ウィンドウコントロールの新しい設定 (Linux, Windows)
タイトルバースタイル (window.titleBarStyle) を custom
に設定した場合、ウィンドウコントロールの 3 つの異なるスタイルから選択できるようになりました。
native
: これはデフォルトであり、基盤となるプラットフォームに従ってウィンドウコントロールをレンダリングします。custom
: ネイティブのものよりもカスタムスタイルを好む場合は、カスタムスタイルでウィンドウコントロールをレンダリングします。hidden
: タイトルバーのスペースを少しでも増やしたい場合や、キーボード中心のユーザーである場合は、ウィンドウコントロールを完全に非表示にします。
コード編集
Next Edit Suggestions の一般提供
設定: github.copilot.nextEditSuggestions.enabled
Next Edit Suggestions (NES) の一般提供を発表できることを嬉しく思います! さらに、NES の全体的なユーザーエクスペリエンスもいくつか改善しました。
- 編集候補をよりコンパクトにし、周囲のコードへの干渉を減らし、一目で読みやすくします。
- すべての候補がより簡単に気付かれるように、ガターインジケーターを更新しました。
AI 編集の改善
AI を使用して編集を生成する際に、いくつかの小さな調整を行いました。
-
AI 編集でファイルを書き換えている間、エディター外の診断イベントをミュートします。以前は、このシナリオで波線をすでに無効にしていました。これらの変更により、[問題] パネルのちらつきが軽減され、クイックフィックスコードアクションのリクエストが発行されないようにします。
-
AI 編集を保持することにした場合、ファイルを明示的に保存するようになりました。
ツールベースの編集モード
チャットの編集モードの動作方法を変更しています。新しい編集モードは、エージェントモードと同じアプローチを使用しており、モデルがツールを呼び出してファイルを編集できるようにします。このアラインメントの利点は、3 つのモードすべてをシームレスに切り替えることができるようになり、これらのモードが内部でどのように機能するかが大幅に簡素化されることです。
欠点は、新しいモードがエージェントモードで動作するのと同じ削減されたモデルセットでのみ動作することを意味することです。つまり、ツール呼び出しをサポートし、ツールが関与している場合に優れたエクスペリエンスが得られることを確認するためにテストされたモデルです。編集モードの一覧に o3-mini
や Claude 3.7 (Thinking)
などのモデルが表示されない場合があります。これらのモデルを編集に使用し続けたい場合は、chat.edits2.enabled 設定を無効にして、以前の編集モードに戻してください。モードを切り替えるときにセッションをクリアするように求められます。
ツールを使用する場合、さまざまなモデル間で一貫した結果を得るためのプロンプトが難しいことがわかりましたが、これらのモデルを編集 (およびエージェント) モードで使用できるように取り組んでいます。
この設定は、VS Code Stable のユーザーに徐々に有効になります。
インライン候補のシンタックスハイライト
設定: editor.inlineSuggest.syntaxHighlightingEnabled
今回のアップデートでは、インライン候補のシンタックスハイライトがデフォルトで有効になりました。次のスクリーンショットでは、コード候補にシンタックスカラーリングが適用されていることに注目してください。
シンタックスハイライトなしのインライン候補を希望する場合は、editor.inlineSuggest.syntaxHighlightingEnabled で無効にできます。
Tree-Sitter ベースのシンタックスハイライト (プレビュー)
設定: editor.experimental.preferTreeSitter.css および editor.experimental.preferTreeSitter.regex
シンタックスハイライトに Tree-Sitter を使用するための以前の作業に基づいて、CSS ファイルと TypeScript 内の正規表現の試験的な Tree-Sitter ベースのシンタックスハイライトをサポートするようになりました。
ノートブック
Jupyter ノートブックドキュメントの最小バージョンを 4.5 に
新しいノートブックのデフォルトの nbformat
バージョンが 4.2 から 4.5 に引き上げられました。これにより、差分計算を容易にするために、ノートブックの各セルに id
フィールドが設定されるようになります。既存のノートブックを手動で更新するには、ノートブックの生の JSON で nbformat_minor
を 5
に設定することもできます。
AI ノートブック編集の改善
AI 搭載のノートブック編集サポート(エージェントモードを含む)が、Stable リリースで利用可能になりました。これは先月、VS Code Insiders のプレビュー機能として追加されたものです。
チャットを使用して、コードファイルの編集と同じ直感的な操作感でノートブックファイルを編集できるようになりました。複数のセルにわたるコンテンツの変更、セルの挿入と削除、セルタイプの変更が可能です。この機能は、データサイエンスやドキュメントのノートブックを扱う際に、シームレスなワークフローを提供します。
新しいノートブックツール
VS Code は、チャットから直接新しい Jupyter ノートブックを作成するための専用ツールを提供するようになりました。このツールは、クエリに基づいて新しいノートブックを計画し、作成します。
新しいノートブックツールは、エージェントモードまたは編集モードで使用できます(chat.edits2.enabled で改善された編集モードを有効にしてください)。ask モードを使用している場合は、チャットプロンプトに /newNotebook
と入力して、新しいノートブックを作成します。
AI 編集のナビゲーション
差分ツールバーを使用して、セルを跨いだ各 AI 編集を反復処理し、レビューできます。
AI 編集の取り消し
セルコンテナにフォーカスがある場合、取り消しコマンドは、ノートブックレベルでの AI による変更のフルセットを元に戻します。
チャットでのテキストと画像出力のサポート
テキスト、エラー、画像などのノートブックセルの出力を、コンテキストとしてチャットに直接追加できるようになりました。これにより、ask、edit、またはエージェントモードを使用する際に、出力を参照することができ、言語モデルがノートブックのコンテンツを理解し、支援することが容易になります。
トリプルドットメニューまたは出力を右クリックして利用できる、セル出力をチャットに追加アクションを使用します。
セルエラー出力をチャットコンテキストとして添付するには
セル出力画像をチャットコンテキストとして添付するには
アクセシビリティ
チャットエージェントモードの改善
「ターミナルでコマンドを実行する」など、ツールの呼び出し中に手動操作が必要な場合に通知されるようになりました。この情報は、関連するチャット応答の ARIA ラベルにも含まれており、スクリーンリーダーユーザーのアクセシビリティを向上させています。
さらに、エージェントモードで新しいアクセシビリティヘルプダイアログが利用可能になり、ユーザーがこの機能に何を期待できるか、そして効果的にナビゲートする方法を説明しています。
チャット編集アクションのアクセシビリティシグナル
VS Code は、AI によって生成された編集を保持または取り消しする際に、聴覚シグナルを提供するようになりました。これらのシグナルは、accessibility.signals.editsKept および accessibility.signals.editsUndone を介して設定可能です。
サジェストコントロールの ARIA ラベルの改善
サジェストコントロール項目の ARIA ラベルに、サジェストのタイプ(例:メソッドや変数)など、より豊富で説明的な情報が含まれるようになりました。この情報は以前は、アイコンを通じて視覚ユーザーのみが利用できました。
ソース管理
参照ピッカーの改善
今月のマイルストーンでは、チェックアウト、マージ、リベース、またはブランチの削除などのさまざまなソース管理操作に使用される参照ピッカーの改善を行いました。更新された参照ピッカーには、最後のコミットの詳細(作成者、コミットメッセージ、コミット日)、およびローカルブランチの先行/遅延情報が含まれています。この追加コンテキストは、さまざまな操作に適した参照を選択するのに役立ちます。
git.showReferenceDetails 設定を切り替えることで、追加情報を非表示にできます。
リポジトリステータスバー項目
複数のリポジトリを含むワークスペースには、ブランチピッカーの左側にアクティブなリポジトリを表示するソース管理プロバイダーステータスバー項目が表示されるようになりました。新しいステータスバー項目は、追加のコンテキストを提供するため、エディター間を移動したり、ソース管理ビューを使用したりする際に、アクティブなリポジトリを把握できます。
ソース管理プロバイダーステータスバー項目を非表示にするには、ステータスバーを右クリックし、コンテキストメニューから ソース管理プロバイダー の選択を解除します。
Git blame エディター装飾の改善
入力中に「まだコミットされていません」エディター装飾はあまり価値がなく、むしろ邪魔になるというフィードバックをいただきました。今月のマイルストーンから、「まだコミットされていません」エディター装飾は、キーボードまたはマウスを使用してコードベース内をナビゲートしている間のみ表示されるようになりました。
コミット入力カーソルのカスタマイズ
今月のマイルストーンでは、コミュニティの貢献のおかげで、ソース管理入力ボックスで有効になる設定のリストに、editor.cursorStyle および editor.cursorWidth 設定が追加されました。
ターミナル
エージェントモードの信頼性
エージェントモードがターミナルでコマンドを実行できるようにするツールには、信頼性と互換性の向上が多数含まれています。ツールがスタックしたり、出力が表示されずにコマンドが終了するケースが少なくなるはずです。
大きな変更点の 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 スクリプトが署名されるようになり、Windows でデフォルトの PowerShell 実行ポリシーである RemoteSigned
を使用している場合、シェル統合が自動的に開始されるはずです。シェル統合の利点の詳細はこちらをご覧ください。
ターミナルシェルタイプ
今回のイテレーションでは、ターミナルシェル API を最終決定しました。これにより、拡張機能はターミナルでユーザーの現在のシェルタイプを確認できます。イベント onDidChangeTerminalState
をサブスクライブすると、ターミナルでのユーザーのシェルタイプの変更を確認できます。たとえば、シェルが zsh から bash に変更される可能性があります。
識別可能なすべてのシェルのリストは、現在 こちら にリストされています。
リモート開発
Linux レガシーサーバーのサポート終了
リリース 1.99 以降、これらのサーバーに接続できなくなります。1.97 リリース で述べたように、サポートされている Linux ディストリビューションへの移行を完了するために追加の時間が必要なユーザーは、glibc
および libstdc++
のカスタムビルドを回避策として提供できます。この回避策の詳細については、FAQ セクションをご覧ください。
エンタープライズ
macOS デバイス管理
VS Code は、Windows に加えて macOS でのデバイス管理をサポートするようになりました。これにより、システム管理者は Microsoft Intune のような集中管理システムからポリシーをプッシュできます。
詳細については、エンタープライズサポート ドキュメントをご覧ください。
拡張機能への貢献
Python
Pylance による編集可能インストールに対するより良いサポート
Pylance は、PEP 660 で定義されているように、編集可能モード(pip install -e .
)でインストールされたパッケージのインポートパスの解決をサポートするようになり、これらのシナリオで IntelliSense エクスペリエンスが向上します。
この機能は、python.analysis.enableEditableInstalls を介して有効になり、今月中にデフォルトのエクスペリエンスとして展開を開始する予定です。問題が発生した場合は、Pylance GitHub リポジトリ で報告してください。
Pylance によるより高速で信頼性の高い診断エクスペリエンス (実験的)
拡張機能のリリースバージョンを使用している場合の Pylance の診断の精度と応答性を向上させるための変更を展開し始めています。これは、複数のファイルを開いている場合や、最近閉じたファイルがあるシナリオで特に役立ちます。
ロールアウトを待ちたくない場合は、python.analysis.usePullDiagnostics を設定できます。問題が発生した場合は、Pylance GitHub リポジトリ で報告してください。
Pylance カスタム Node.js 引数
新しい python.analysis.nodeArguments 設定があります。これにより、python.analysis.nodeExecutable を使用する際に、カスタム引数を Node.js に直接渡すことができます。デフォルトでは "--max-old-space-size=8192"
に設定されていますが、ニーズに合わせて変更できます(たとえば、大きなワークスペースを扱う場合に Node.js により多くのメモリを割り当てるなど)。
さらに、python.analysis.nodeExecutable を auto
に設定すると、Pylance は Node.js を自動的にダウンロードするようになりました。
拡張機能の作成
Terminal.shellIntegration の調整
Terminal.shellIntegration
API は、コマンド検出が発生した場合にのみ有効になります。以前は、現在のワーキングディレクトリのみが報告された場合に機能するはずでしたが、これにより TerminalShellIntegration.executeCommand
がうまく機能しませんでした。
さらに、TerminalShellIntegration.executeCommand
は、より一貫して動作し、複数のコマンドを実行することになった単一のコマンドラインに対して、複数の「サブ実行」を追跡するようになりました。これは、エージェントモードの信頼性セクション で述べたように、リッチシェル統合に依存します。
提案された API
タスク問題マッチャーステータス
提案された API を追加しました。これにより、拡張機能は、タスクの問題マッチャーが行の処理を開始および終了するタイミングを監視できます。taskProblemMatcherStatus
で有効にします。
画像を LLM に送信
今回のイテレーションでは、提案された API を追加しました。これにより、拡張機能は画像を添付し、ビジョンリクエストを言語モデルに送信できます。添付ファイルは、画像の生の非 base64 エンコードされたバイナリデータ (Uint8Array
) である必要があります。最大画像サイズは 5MB です。
使用例を確認し、この API のステータスを最新の状態に保つには、この API 提案 issue を確認してください。
エンジニアリング
Marketplace から新しい /latest
API を使用して拡張機能の更新を確認
数マイルストーン前に、拡張機能の更新を確認するための新しい API エンドポイントを vscode-unpkg
サービスに導入しました。Marketplace は同じエンドポイントをサポートするようになり、VS Code は拡張機能の更新を確認するためにこのエンドポイントを使用するようになりました。これは実験段階であり、段階的にユーザーにロールアウトされます。
ありがとうございました
最後に、しかし決して重要でないわけではありませんが、VS Code の貢献者の皆様に心から感謝申し上げます。
Issue tracking
Issue tracking への貢献
- @gjsjohnmurray (John Murray)
- @albertosantini (Alberto Santini)
- @IllusionMH (Andrii Dieiev)
- @RedCMD (RedCMD)
Pull requests
vscode
への貢献
- @a-stewart (Anthony Stewart): Add a 2 hour offset to tests to avoid being a day short after the clocks change PR #243194
- @acdzh (Vukk): Fix hasEdits flag's value when updating multiple values in JSONEditingService PR #243876
- @c-claeys (Cristopher Claeys): Increment the request attempt in the chat retry action PR #243471
- @ChaseKnowlden (Chase Knowlden): Add Merge Editor Accessibility help PR #240745
- @dibarbet (David Barbet): Update C# onEnterRules to account for documentation comments PR #242121
- @dsanders11 (David Sanders): Fix a few broken
@link
in vscode.d.ts PR #242407 - @jacekkopecky (Jacek Kopecký): Honor more cursor settings in scm input editor PR #242903
- @joelverhagen (Joel Verhagen): Show support URL and license URL even if extension URL is not set PR #243565
- @kevmo314 (Kevin Wang): Fix comment typo PR #243145
- @liudonghua123 (liudonghua): support explorer.copyPathSeparator PR #184884
- @mattmaniak: Make telemetry info table a little bit narrower and aligned PR #233961
- @notoriousmango (Seong Min Park)
- fix: use the copy command for images with CORS errors in the markdown preview PR #240508
- Fix Incorrect character indentation on settings with line break PR #242074
- @pprchal (Pavel Prchal): Added localization to right-click on icon PR #243679
- @SimonSiefke (Simon Siefke): feature: support font family picker in settings PR #214572
- @tribals (Anthony): Add discovery of PowerShell Core user installation PR #243025
- @tusharsadhwani (Tushar Sadhwani): Make
git show
ref argument unambiguous PR #242483 - @wszgrcy (chen): fix: extension uncaughtException listen Maximum call stack size exceeded PR #244690
- @zyoshoka (zyoshoka): Correct
typescript-basics
extension path PR #243833
vscode-css-languageservice
への貢献
- @lilnasy (Arsh): Support
@starting-style
PR #421
vscode-custom-data
への貢献
- @rviscomi (Rick Viscomi): Add computed Baseline status PR #111
vscode-extension-samples
への貢献
- @ratmice (matt rice): Fix esbuild scripts PR #1154
vscode-extension-telemetry
への貢献
- @minestarks (Mine Starks): Remove extra brace from common.platformversion PR #221
vscode-js-debug
への貢献
- @erikson84 (Erikson Kaszubowski): fix: ensure backslash in path when setting breakpoints in windows PR #2184
- @xymopen (xymopen_Official): Support usenode as npm script runner PR #2178
vscode-mypy
への貢献
- @ivirabyan (Ivan Virabyan): Report only files specified by mypy config PR #352
vscode-prompt-tsx
への貢献
- @dsanders11 (David Sanders): docs: fix sendRequest API name in README example PR #159
- @tamuratak (Takashi Tamura)
vscode-pull-request-github
への貢献
- @aedm (Gábor Gyebnár): Adds
sanitizedLowercaseIssueTitle
to settings docs PR #6690
vscode-python-debugger
への貢献
- @rchiodo (Rich Chiodo): Update debugpy to latest version PR #653
vscode-test
への貢献
- @SKaplanOfficial (Stephen Kaplan): fix: avoid 'Invalid extraction directory' when unzipping PR #303
language-server-protocol
への貢献
- @MariaSolOs (Maria José Solano): Update range formatting capabilities in metamodel PR #2106
python-environment-tools
への貢献
- @CharlesChen0823: bump winreg PR #195
- @elprans (Elvis Pranskevichus)