2025年4月 (バージョン 1.100)
リリース日: 2025年5月8日
更新: VS Code StableでNext Edit Suggestions (NES) をデフォルトで有効化 (詳細...)。
更新 1.100.1: この更新により、以下のセキュリティ問題が解決されます。
更新 1.100.2: この更新により、以下の問題が解決されます。
更新 1.100.3: この更新により、以下の問題が解決されます。
ダウンロード: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Visual Studio Code 2025年4月リリースへようこそ。このバージョンには、皆さんに気に入っていただけるであろう多くのアップデートが含まれており、主なハイライトは以下の通りです。
-
チャット
-
チャットのパフォーマンス
-
エディターエクスペリエンス
これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.comの更新情報をご覧ください。Insiders: 新機能をいち早く試したいですか? nightly Insidersビルドをダウンロードして、最新の更新が利用可能になり次第お試しいただけます。
チャット
プロンプトおよび指示ファイル
Markdownベースの指示ファイルとプロンプトファイルを使用することで、VS CodeでのAI体験を、お客様の特定のコーディング習慣や技術スタックに合わせて調整できます。これら2つの関連する概念の実装と使用法を調整しましたが、それぞれ異なる目的を持っています。
指示ファイル
設定: chat.instructionsFilesLocations
指示ファイル(カスタム指示またはルールとも呼ばれる)は、Markdownファイルで、AIモデルのための一般的なガイドラインやコンテキスト(コードスタイルルールや使用するフレームワークなど)を記述する方法を提供します。指示ファイルは単独のチャットリクエストではなく、チャットリクエストに適用できるコンテキストを提供します。
指示ファイルは.instructions.md
のファイルサフィックスを使用します。これらはユーザーデータフォルダまたはワークスペース内に配置できます。chat.instructionsFilesLocations設定は、指示ファイルを含むフォルダをリストします。
指示は特定のチャットリクエストに手動で添付することも、自動で追加することもできます。
-
手動で追加するには、チャットビューのコンテキストの追加ボタンを使用し、指示...を選択します。または、コマンドパレットからチャット: 指示を添付...コマンドを使用します。これにより、既存の指示ファイルを選択するか、新しく作成して添付するためのピッカーが表示されます。
-
プロンプトに指示を自動的に追加するには、指示ファイルに
applyTo
Front Matterヘッダーを追加して、指示がどのファイルに適用されるかを示します。チャットリクエストに指定されたグロブパターンに一致するファイルが含まれている場合、指示ファイルは自動的に添付されます。以下の例は、TypeScriptファイル用の指示を提供します (
applyTo: '**/*.ts'
)。--- applyTo: '**/*.ts' --- Place curly braces on separate lines for multi-line blocks: if (condition) { doSomething(); } else { doSomethingElse(); }
チャット: 新しい指示ファイル...コマンドで指示ファイルを作成できます。さらに、ユーザーデータフォルダに作成されたファイルは、設定同期サービスを通じて複数のユーザーマシン間で自動的に同期できます。バックアップと同期の設定...ダイアログでプロンプトと指示オプションを必ずチェックしてください。
ドキュメントで指示ファイルについて詳しく学びましょう。
プロンプトファイル
プロンプトファイルは、プロンプトテキスト、チャットモード、使用するツールなど、独立した完全なチャットリクエストを記述します。プロンプトファイルは、一般的なタスク用の再利用可能なチャットリクエストを作成するのに役立ちます。たとえば、フロントエンドコンポーネントを作成するため、またはセキュリティレビューを実行するためのプロンプトファイルを追加できます。
プロンプトファイルは.prompt.md
のファイルサフィックスを使用します。これらはユーザーデータフォルダまたはワークスペース内に配置できます。chat.promptFilesLocations設定は、プロンプトファイルが検索されるフォルダをリストします。
プロンプトファイルを実行するにはいくつかの方法があります。
-
チャット入力フィールドに
/
とプロンプトファイル名を入力します。 -
エディターでプロンプトファイルを開き、エディターツールバーの「再生」ボタンを押します。これにより、チャットビューに戻ることなく、プロンプトを迅速に繰り返し実行できます。
-
コマンドパレットからチャット: プロンプトファイルを実行...コマンドを使用します。
プロンプトファイルには、実行方法を示す以下のFront Matterメタデータヘッダーを含めることができます。
mode
: プロンプトを呼び出す際に使用するチャットモード (ask
、edit
、またはagent
モード)。tools
:mode
がagent
の場合、プロンプトで利用可能なツールのリスト。
以下の例は、エージェントモードで実行され、一連のツールを使用できるリリースノート生成用のプロンプトファイルを示しています。
---
mode: 'agent'
tools: ['getCurrentMilestone', 'getReleaseFeatures', 'file_search', 'semantic_search', 'read_file', 'insert_edit_into_file', 'create_file', 'replace_string_in_file', 'fetch_webpage', 'vscode_search_extensions_internal']
---
Generate release notes for the features I worked in the current release and update them in the release notes file. Use [release notes writing instructions file](.github/instructions/release-notes-writing.instructions.md) as a guide.
プロンプトファイルを作成するには、コマンドパレットからチャット: 新しいプロンプトファイル...コマンドを使用します。
ドキュメントでプロンプトファイルについて詳しく学びましょう。
改善と注意事項
- 指示ファイルとプロンプトファイルは、それぞれ独自の言語IDを持つようになりました(開いている任意のファイルの言語モードダイアログで設定可能。「プロンプト」と「指示」)。これにより、例えば、無題のドキュメントを一時的なプロンプトファイルとして、ディスクにファイルとして保存する前に使用できます。
- チャット: プロンプトを使用コマンドをチャット: プロンプトを実行に名称変更しました。さらに、このコマンドは、以前のようにチャットコンテキストとして添付するのではなく、選択したプロンプトを即座に実行するようになりました。
- 両方のファイルタイプが、ヘッダーで
description
メタデータをサポートするようになり、短くユーザーフレンドリーなプロンプトの要約を共通の場所に提供します。将来的には、このヘッダーはapplyTo
ヘッダーと共に、ファイルがチャットリクエストに自動的に含まれる必要があるかどうかを決定するルールとして使用される予定です(例:description: 'TypeScriptで書かれたフロントエンドコンポーネントのコードスタイルルール。'
)。
エージェントモードでの編集の高速化
エージェントモードで、OpenAIの適用パッチ編集フォーマット (GPT 4.1およびo4-mini) とAnthropicの文字列置換ツール (Claude Sonnet 3.7および3.5) のサポートを実装しました。これにより、特に大きなファイルにおいて、編集が大幅に高速化されます。
OpenAIモデルの更新は、VS Code Insidersではデフォルトで有効になっており、Stable版にも順次展開されています。Anthropicの更新は、Stable版とInsiders版の両方で全ユーザーに利用可能です。
チャットのベースモデル
VS Codeのチャットにおけるデフォルトのベースモデルとして、GPT-4.1を順次展開しています。チャットビューのモデルスイッチャーを使用して、いつでも別のモデルに切り替えることができます。
#githubRepo
ツールでGitHubリポジトリのコードを検索する
GitHubリポジトリについて質問したいが、エディターで開いていない状況を想像してください。例えば、microsoft/vscode
リポジトリで特定の関数がどのように実装されているかを知りたい場合です。
#githubRepo
ツールを使用して、アクセス権のあるGitHubリポジトリのコードスニペットを検索できるようになりました。このツールは、追加の入力としてuser/repo
を受け取ります。例えば、「TypeScriptでファクトリーパターンを実装する方法 #githubRepo microsoft/vscode」などです。
以下の例に示すように、カスタム指示を使用して、このツールをいつどのように使用するかをヒントとして与えることもできます。
---
applyTo: '**'
---
Use the `#githubRepo` tool with `microsoft/vscode` to find relevant code snippets in the VS Code codebase.
Use the `#githubRepo` tool with `microsoft/typescript` to answer questions about how TypeScript is implemented.
現在作業中のリポジトリについて質問したい場合は、#codebase
ツールを使用するだけです。
また、#githubRepo
ツールは関連するコードスニペットを検索するためだけのものです。GitHub MCPサーバーは、GitHubのissueやプルリクエストを扱うためのツールを提供しています。VS CodeでMCPサーバーを追加する方法について詳しく学びましょう。
拡張機能ツールでMarketplace拡張機能を見つける
チャットで拡張機能ツール (#extensions
) を使用して、Marketplaceから拡張機能を見つけることができます。チャットプロンプトに基づいてツールが自動的に呼び出されるか、#extensions
を使ってプロンプトで明示的に参照できます。ツールはクエリに一致する拡張機能のリストを返します。結果から直接拡張機能をインストールできます。
ウェブページ取得ツールの改善
先月、チャットから直接ウェブページのコンテンツを取得し、プロンプトのコンテキストとして含めるためのフェッチツール (#fetch
) を導入しました。そのリリースノートを見逃した場合は、フェッチツールの初期リリースのリリースノートと例をご覧ください。
今回のイテレーションでは、このツールにいくつかの大きな変更を加えました。
- ページ全体をコンテキストとして利用: これまでサブセットを追加していたのに対し、ページ全体をコンテキストとして追加するようになりました。コンテキストウィンドウが大きくなったことで、モデルにページ全体を提供できるようになりました。例えば、可能な限り多くのページを必要とする要約の質問をすることができるようになりました。もしコンテキストウィンドウがいっぱいになった場合でも、フェッチツールは関連性の低い部分を賢く除外します。これにより、コンテキストウィンドウの制限を超えずに、重要な部分を保持できます。
- 標準化されたページ形式 (Markdown): 以前は、取得したウェブページをカスタムの階層形式でフォーマットしていました。これは機能していましたが、カスタムであるため推論が難しい場合がありました。現在、取得したウェブページを標準化された言語であるMarkdownに変換しています。これにより、関連性検出の信頼性が向上し、ほとんどの言語モデルが深く理解している形式であるため、より簡単に推論できるようになります。
フェッチツールの使い方や、望む機能があればぜひお聞かせください!
チャット入力の改善
チャット入力ボックスにいくつかの改善を加えました。
- 添付ファイル: プロンプトテキストで
#
を使ってコンテキストを参照すると、それが添付ファイルピルとしても表示されるようになりました。これにより、言語モデルに何が送信されているかをより簡単に理解できます。 - コンテキストピッカー: ファイル、フォルダ、その他の添付ファイルタイプを選択しやすくするために、コンテキストピッカーを合理化しました。
- 完了ボタン: 「完了」ボタンに関するフィードバックを受け、削除しました!予期せぬセッション終了に関する混乱はもうありません。新しいチャットを作成した場合にのみ、新しいセッションを開始します (⌘N (Windows、Linux Ctrl+N))。
チャットモードのキーボードショートカット
キーボードショートカット ⌃⌘I (Windows、Linux Ctrl+Alt+I) は引き続きチャットビューを開くだけですが、⇧⌘I (Windows Ctrl+Shift+I、Linux Ctrl+Shift+Alt+I) ショートカットはチャットビューを開き、エージェントモードに切り替わるようになりました。他のチャットモードのキーボードショートカットを設定したい場合は、各モードにコマンドがあります。
workbench.action.chat.openAgent
workbench.action.chat.openEdit
workbench.action.chat.openAsk
エージェントモードの編集による診断の自動修正
設定: github.copilot.chat.agent.autoFix
エージェントモードでのファイル編集が新しいエラーを発生させた場合、エージェントモードはそれを検出し、自動的に修正提案を行うことができるようになりました。これにより、エージェントモードにエラーを修正するよう追跡プロンプトを送信する必要がなくなります。この動作はgithub.copilot.chat.agent.autoFixで無効にできます。
エージェントモードにおける元に戻す操作と手動編集の扱い
以前は、エージェントモードセッション中に手動で編集を行うと、モデルを混乱させる可能性がありました。現在は、エージェントは変更についてプロンプトされ、変更された可能性のあるファイルを編集する前に必要に応じてファイルを再読み込みするはずです。
会話の要約とプロンプトのキャッシュ
プロンプトキャッシュを最適化するために、エージェントモードのプロンプトの構築方法にいくつかの変更を加えました。プロンプトキャッシュは、プロンプトの安定したプレフィックスを維持することで、モデルの応答を高速化する方法です。次のリクエストはそのプレフィックスから再開でき、その結果、各リクエストが少し速くなるはずです。これは、エージェントモードで通常見られるような、大きなコンテキストを伴う繰り返しのリクエストシリーズで特に効果的です。
会話が長くなったり、コンテキストが非常に大きくなったりすると、エージェントモードセッションで「会話履歴が要約されました」というメッセージが表示されることがあります。
会話全体をFIFOとして保持しキャッシュを破棄する代わりに、これまでの会話を最も重要な情報とタスクの現在の状態の要約に圧縮します。これにより、プロンプトのプレフィックスが安定し、応答が高速になります。
ストリーミング可能なHTTPに対するMCPのサポート
このリリースでは、Model Context Protocolサーバー用の新しいStreamable HTTPトランスポートのサポートが追加されました。Streamable HTTPサーバーは既存のSSEサーバーと同様に構成され、我々の実装はSSEサーバーと下位互換性があります。
{
"servers": {
"my-mcp-server": {
"url": "https://:3000/mcp"
}
}
}
VS CodeでのMCPサポートについて詳しく学びましょう。
画像出力に対するMCPのサポート
ツールの出力の一部として画像を生成するMCPサーバーをサポートするようになりました。
すべての言語モデルがツール出力から画像を読み取ることをサポートしているわけではないことに注意してください。たとえば、GPT-4.1は視覚能力を持っていますが、現在ツールからの画像読み取りはサポートしていません。
MCPサーバーからの入力、出力、および進捗の強化
MCPサーバーツールの入力と出力を表示するUIを強化し、MCPの新しい進捗メッセージのサポートも追加しました。
テーマ: Codesong (vscode.devでプレビュー)
MCP構成生成での入力の使用
機密情報を安全に保つために、MCP: サーバーを追加コマンドで生成されるAI支援構成は、結果の構成に直接埋め込むのではなく、機密情報に対してinputs
を生成するようになりました。
インラインチャット V2 (プレビュー)
インラインチャットの刷新されたバージョン ⌘I (Windows、Linux Ctrl+I) を開発してきました。そのテーマは引き続き「コードにチャットをもたらす」ですが、舞台裏ではチャット編集と同じロジックを使用しています。これにより、利用可能なコンテキストがより有効に活用され、より良いコード編集戦略が可能になります。インラインチャットv2はinlineChat.enableV2で有効にできます。
さらに、オプションで有効にできる、より軽量なUXが提供されました。inlineChat.hideOnRequest設定により、リクエストが送信されるとすぐにインラインチャットが非表示になります。その後、チャット編集オーバーレイに最小化され、変更を承認または破棄したり、インラインチャットコントロールを復元したりできます。
チャットにUI要素を選択して添付する (実験的)
設定: chat.sendElementsToChat.enabled
ウェブアプリケーションを開発している際、ウェブページの特定のUI要素についてチャットに質問したい場合があります。組み込みのSimple Browserを使用して、UI要素をコンテキストとしてチャットに添付できるようになりました。
組み込みのSimple Browser (Simple Browser: 表示コマンドで起動) を介してローカルホストされている任意のサイトを開くと、新しいツールバーが表示され、開始を選択してサイト内の任意の要素を選択できるようになりました。これにより、選択された要素のスクリーンショット、およびその要素のHTMLとCSSが添付されます。
チャットに添付する内容を設定する
- chat.sendElementsToChat.attachCSS: 関連するCSSの添付を有効または無効にする
- chat.sendElementsToChat.attachImages: 選択された要素のスクリーンショットの添付を有効または無効にする
この実験的な機能は、すべてのSimple Browserでデフォルトで有効になっていますが、chat.sendElementsToChat.enabledで無効にできます。
エージェントモードでタスクを作成して起動する (実験的)
設定: github.copilot.chat.newWorkspaceCreation.enabled
前回のリリースでは、エージェントモードでのワークスペース作成を有効にするgithub.copilot.chat.newWorkspaceCreation.enabled (実験的) 設定を導入しました。
今回、この作成フローの終わりに、アプリやプロジェクトを起動するためのタスクを作成して実行するよう促されます。これにより、プロジェクトの起動プロセスが合理化され、タスクの再利用が容易になります。
アクセシビリティ
マージエディターの改善
マージエディターのアクセシビリティが向上しました。利用可能なアクションについては、マージエディター内でアクセシビリティヘルプダイアログを開いてください (⌥F1 (Windows Alt+F1、Linux Shift+Alt+F1))。主なアクションには、マージエディター: マージを完了
(⌘Enter (Windows、Linux Ctrl+Enter)) と マージエディター入力間の切り替え
(⇧⌘T (Windows、Linux Ctrl+Shift+T)) があります。現在フォーカスされている入力も、支援技術にアナウンスされるようになりました。
次の編集候補の強化
新しい設定accessibility.signals.nextEditSuggestionは、予測された候補が利用可能になったときに通知します。アクセシブルビュー (⌥F2 (Windows Alt+F2、Linux Shift+Alt+F2)) を介して候補を確認し、受け入れます。さらに、accessibility.signals.diffLineAdded と accessibility.signals.diffLineRemoved は、ナビゲーション中にオーディオキューを提供し、diffレビューをアクセシブルにします。
アクセシブルビューからCopilotユーザーリクエストを確認する
エージェントモードでは、ツール呼び出しやターミナルコマンドの実行にはユーザーの許可が必要な場合があります。これらのアクションはアクセシブルビュー (⌥F2 (Windows Alt+F2、Linux Shift+Alt+F2)) で確認できます。
独自のアクセシビリティサウンド
accessibility.signals.save.soundは独自の異なるサウンドを持つようになり、accessibility.signals.terminalCommandSucceeded.soundとオーディオを共有しなくなりました。
エディター体験
フローティングウィンドウモード
VS Codeのフローティングウィンドウを使用すると、エディターや特定のビューをメインウィンドウから小さなウィンドウに移動させて、軽量なマルチウィンドウ設定を構築できます。フローティングウィンドウには2つの新しいモードがあります。
- コンパクト: 実際のコンテンツにより多くのスペースを確保するため、特定のUI要素を非表示にします。
- 常に手前に表示: このモードを終了するまで、ウィンドウは他のすべてのウィンドウの上に表示され続けます。
フローティングエディターウィンドウをコンパクトモードにする方法の例を以下に示します。
新しいウィンドウでチャットを作成する際に、デフォルトでコンパクトモードを使用します。ウィンドウを常に手前に表示するオプションと組み合わせることで、質問するために常にチャットビューを開いたままにすることができます!
これらのアクションにキーボードショートカットを使用したい場合は、新しいコマンドを導入しました。
workbench.action.toggleWindowAlwaysOnTop
: 常に手前に表示モードを切り替えるworkbench.action.enableWindowAlwaysOnTop
: フローティングウィンドウを常に手前に設定するworkbench.action.disableWindowAlwaysOnTop
: フローティングウィンドウを通常に設定するworkbench.action.toggleCompactAuxiliaryWindow
: コンパクトモードを切り替えるworkbench.action.enableCompactAuxiliaryWindow
: コンパクトモードを有効にするworkbench.action.disableCompactAuxiliaryWindow
: コンパクトモードを無効にする
注: コンパクトモードでも、複雑なエディターレイアウトを作成したり、他のエディターを開いたりできます。
セカンダリサイドバーのデフォルトの表示設定
設定: workbench.secondarySideBar.defaultVisibility
デフォルトでは、新しいワークスペースまたはウィンドウを開くと、セカンダリサイドバーは非表示になります。新しい設定workbench.secondarySideBar.defaultVisibilityを使用すると、新しいワークスペースまたはウィンドウでセカンダリサイドバーを自動的に開くかどうかを制御できます。選択肢は以下の通りです。
hidden
: デフォルトであり、セカンダリサイドバーを非表示にします。visibleInWorkspace
: フォルダまたはマルチルートワークスペースを開いた場合にセカンダリサイドバーを開きます。visible
: 常にセカンダリサイドバーを開きます。
ワークスペースまたはウィンドウが開かれた後、表示設定はワークスペースの状態となり、設定値を上書きすることに注意してください。セカンダリサイドバーを閉じると、そのワークスペースまたはウィンドウでは閉じられたままになります。
拡張機能の署名検証の義務化
拡張機能の署名検証は、すべてのプラットフォーム (Windows、macOS、Linux) で必須となりました。以前は、この検証はWindowsとmacOSでのみ必須でした。このリリースにより、Linuxでも拡張機能の署名検証が強制され、すべての拡張機能がインストール前に適切に検証されるようになります。
この変更により、悪意のある可能性のある拡張機能のインストールが防止され、セキュリティがさらに強化されます。詳細については、拡張機能の署名を参照してください。
注: issue #248308のため、Linux ARM32ビルドでは拡張機能の署名検証の義務化は引き続き無効です。これは次のリリースで解決される予定です。
悪意のある拡張機能の詳細リンク
拡張機能が悪意のあるものとして識別された場合、VS Codeは拡張機能がフラグ付けされた理由を説明する追加情報へのリンクを提供するようになりました。これらの「詳細を見る」リンクは、ユーザーをGitHubのイシューやセキュリティ上の懸念に関する詳細が記載されたドキュメントに誘導し、潜在的なリスクをよりよく理解するのに役立ちます。
VS Code StableでのCopilot Chatプレリリースバージョンのインストールを防止
VS Codeは、VS Code StableでのCopilot Chat拡張機能のプレリリースバージョンのインストールを防止するようになりました。これにより、誤ってCopilot Chatプレリリースバージョンをインストールしてしまい、壊れた状態に陥る状況を回避できます。つまり、Copilot Chat拡張機能のプレリリースバージョンは、VS CodeのInsidersビルドでのみインストールできます。
フォーカスせずにビューを開くコマンド
ビュー(ツリービューおよびウェブビュービュー)を、フォーカスすることなく開くことができるようになりました。これは、ビューを開きたいが現在のエディターからフォーカスを奪いたくない拡張機能やキーボードショートカットにとって有用です。コマンドはyour-view-id.open
で、プロパティバッグ引数: { preserveFocus: boolean}
を受け取ります。
キーワード候補付きのセマンティックテキスト検索 (実験的)
設定: github.copilot.chat.search.keywordSuggestions
セマンティックテキスト検索が、AIによるキーワード候補をサポートするようになりました。この機能を有効にすることで、探しているコードを見つけるのに役立つ可能性のある関連する参照や定義が表示されるようになります。
コード編集
新しいNext Edit Suggestions (NES) モデル
設定: github.copilot.nextEditSuggestions.enabled
NESを強化する新しいモデルを導入できることを嬉しく思います。これは、より高速でコンテキストに即したコード推奨を提供するために設計されています。この更新されたモデルは、パフォーマンスが向上し、遅延を減らして候補を提示し、より邪魔にならず、最近の編集内容とより密接に一致する候補を提供します。この更新は、Visual Studio Code内でAI支援開発ツールを改良するという我々の継続的なコミットメントの一部です。
インポートの候補
設定: github.copilot.nextEditSuggestions.fixes
Next Edit Suggestions (NES) は、JavaScriptおよびTypeScriptファイルで不足しているインポートステートメントの追加を自動的に提案できるようになりました。この機能は、github.copilot.nextEditSuggestions.fixesを設定することで有効にできます。今後のアップデートでは、追加の言語からのインポートもサポートし、この機能をさらに強化する予定です。
Next Edit Suggestions (NES) のデフォルト有効化
Next Edit Suggestionsは、VS Code Insidersでデフォルトで有効になり、Stable版にも順次展開されています。
HTMLまたはMarkdownで代替テキストを生成する
HTMLおよびMarkdownファイルで、既存の代替テキストを生成または更新できるようになりました。埋め込み画像を含む任意の行に移動し、⌘. (Windows、Linux Ctrl+.) または電球アイコンを選択してクイックフィックスをトリガーします。
ノートブック
検索と置換の履歴の永続化
ノートブックの検索コントロールが、検索および置換入力フィールドの両方で永続的な履歴をサポートするようになりました。これは再読み込み後も保持され、editor.find.historyおよびeditor.find.replaceHistoryの設定によって制御されます。
セルの出力をチャットにドラッグアンドドロップ
チャット内でのセル出力使用の既存のサポートを強化するため、出力をチャットビューにドラッグできるようになり、シームレスな添付体験が可能になりました。現在、画像とテキスト出力のみがサポートされています。画像MIMEタイプを持つ出力は直接ドラッグ可能ですが、テキスト選択との競合を避けるため、テキスト出力はドラッグを有効にするためにAlt修飾キーを押しながら操作する必要があります。今後のリリースでUX改善を検討しています。
エージェントモード用のノートブックツール
セルの実行
チャットには、ノートブックセルを実行するLLMツールが追加されました。これにより、エージェントはセルの実行結果に基づいて更新を実行したり、ノートブックを構築する際に独自のデータ探索を行ったりできます。
カーネル状態の取得
エージェントは、現在のカーネルセッションでどのセルが実行されたかを調べ、カーネル状態ツールを使用してアクティブな変数を読み取ることができます。
パッケージのリスト/インストール
Jupyter拡張機能は、ノートブックのカーネルとして使用されている環境にパッケージをリストアップおよびインストールするためのツールを提供します。利用可能な場合は、操作はPython Environments拡張機能に委任されます。そうでない場合は、pipパッケージマネージャーの使用を試みます。
ソース管理
ステージングされた変更のクイック差分デコレーション
長年の機能要求に対応するため、今回のマイルストーンでステージングされた変更に対するクイック差分エディターデコレーションを追加しました。これにより、ソース管理ビューを開くことなく、エディターから直接ステージングされた変更を表示できるようになりました。
ステージングされた変更のクイック差分デコレーションの色は、以下のテーマトークンを使用してカスタマイズできます: editorGutter.addedSecondaryBackground
、editorGutter.modifiedSecondaryBackground
、editorGutter.deletedSecondaryBackground
。
ステージングされた変更のクイック差分デコレーションを表示したくない場合は、エディターのガターコンテキストメニューで利用可能な差分デコレーションサブメニューを使用して非表示にできます。
デバッグ
逆アセンブリビューのコンテキストメニュー
コミュニティからの貢献により、逆アセンブリビューにコンテキストメニューが追加されました。
JavaScriptデバッガーのネットワークビュー
Node.jsの最近のバージョンでは、ネットワークデバッグ機能が強化されています。互換性の高いNode.jsの最近のバージョン (v22.14.0以降) では、実験的なネットワークビューがデフォルトで有効になります。
言語
CSSとHTMLのブラウザーサポートを表示
CSSプロパティ、HTML要素、またはHTML属性にカーソルを合わせると、Baselineを使用して、そのプロパティまたは要素がブラウザー全体でどの程度サポートされているかの概要が表示されるようになりました。
.*.env
ファイルのデフォルトのシンタックスハイライト
ファイル名が.*.env
のファイルは、.ini
ファイルとしてシンタックスハイライトされるようになりました。
JavaScriptとTypeScriptの展開可能なホバー (実験的)
設定: typescript.experimental.expandableHover
JavaScriptとTypeScriptの展開可能なホバー機能の改善を続けています。この機能により、ホバーコントロールで+
と-
を使用して、より詳細な、またはより少ない型情報を表示できます。
この機能はまだ実験段階ですが、typescript.experimental.expandableHoverを有効にすることで今日から試すことができます。TypeScriptバージョン5.9以上を使用している必要があります。例えば、TypeScript nightly拡張機能をインストールすることで実現できます。
リモート開発
The Remote Development拡張機能を使用すると、Dev Container、SSH経由のリモートマシン、Remote Tunnels、またはLinux用Windowsサブシステム (WSL) をフル機能の開発環境として使用できます。
Devコンテナ指示ファイル
Dev Containerの機能とイメージに、そのツールと構成を記述する指示ファイルが含まれるようになりました。VS Codeのチャットはこのコンテキストを自動的に使用でき、開発中の提案の関連性と精度が向上します。
拡張機能への貢献
Python
ブランチカバレッジのサポート
Pythonのテストエクスプローラーでブランチカバレッジがサポートされるようになりました!この機能を使用するには、coveragepy
のバージョンが7.7以上である必要があります。pip install coverage==7.7
を実行してカバレッジをアップグレードできます。
Python環境クイック作成コマンド
Python Environments拡張機能にクイック作成のサポートが追加され、環境作成プロセスがよりシームレスになりました。クイック作成は、仮想環境を単一のクリックで作成し、ワークスペースの依存関係をインストールするために、マシン上の最新のPythonバージョンを検出することで、ユーザーからの必要な入力を最小限に抑えます。これにより、venvベースの環境にはワークスペース内に.venv
が、condaベースの環境には.conda
が作成されます。コマンドパレットのPython: 環境を作成コマンドを介してクイック作成にアクセスできます。
Python環境チャットツール
Python Environments拡張機能(プレビュー版)に、「Python環境情報の取得」と「Pythonパッケージのインストール」の2つのチャットツールが追加されました。これらのツールを使用するには、プロンプトで直接#pythonGetEnvironmentInfo
#pythonInstallPackage
と追加して参照するか、エージェントモードが適用される場合にツールを自動的に呼び出します。これらのツールは、ファイルまたはワークスペースのコンテキストに基づいて適切な環境情報をシームレスに検出し、正確な環境解決でパッケージインストールを処理します。
Pylance使用時のカラーピッカー
Pylanceは、Pythonファイルで認識された色の値に対して、エディターに直接インタラクティブなカラースウォッチを表示できるようになり、色の視覚化と選択がより簡単になりました。試すには、python.analysis.enableColorPickerを有効にしてください。サポートされている形式には、#RGB(例: "#001122")および#RGBA(例: "#001122FF")が含まれます。
AIコードアクション: フォーマット文字列の変換 (実験的)
Pylanceを使用している場合、文字列の連結をf-stringまたはformat()に変換するための新しい実験的なAIコードアクションがあります。これを試すには、変換したい文字列内のシンボルを選択したときに電球アイコンから、またはCtrl + ./Cmd + .から、Copilotでf-stringに変換またはCopilotでformat()呼び出しに変換コードアクションを選択します。
このエクスペリエンスは、以下の設定で有効になります。
"python.analysis.aiCodeActions": {"convertFormatString": true}
GitHubプルリクエストとイシュー
GitHub Pull Requests拡張機能にさらなる進展がありました。この拡張機能により、プルリクエストやイシューの作業、作成、管理が可能になります。新機能は以下の通りです。
- チャットでアクティブなプルリクエストについて質問できます。例えば、「#activePullRequestのすべてのコメントに対処する」などです。
- プルリクエストを表示するのと同様に、ウェブビューでイシューを表示できます。
- 「プルリクエスト」、「イシュー」、「通知」ビューの洗練と調整。
- GitHubのProject Padawanのリリースに備え、Copilotへのイシューの割り当て、Copilotの@-メンション、およびUIでの適切な表示を可能にしました。
その他のハイライトについては、拡張機能の0.110.0リリース変更ログをご確認ください。
拡張機能の作成
テキストエンコーディング
VS Codeでのテキストエンコーディングを扱うためのAPIを完成させました。
具体的には、この新しいAPIを使用すると次のことが可能になります。
TextDocument
の現在のencoding
を取得する- 特定の
encoding
でTextDocument
を開く - 特定の
encoding
でstring
をUint8Array
にエンコードする - 特定の
encoding
を使用してUint8Array
をstring
にデコードする
拡張機能のESMサポート
NodeJS拡張機能ホストは、JavaScriptモジュール (ESM) を使用する拡張機能をサポートするようになりました。必要なのは、拡張機能のpackage.json
ファイルに"type": "module"
エントリを追加することだけです。これにより、JavaScriptコードはimport
およびexport
ステートメントを使用できるようになり、特殊なモジュールimport('vscode')
も含まれます。サンプルはこちらで見つけることができます: https://github.com/jrieken/vscode-esm-sample-extension。
ESMのサポートは、まだウェブワーカー拡張機能ホストには対応していません。まず克服すべき技術的な課題がいくつかあります。https://github.com/microsoft/vscode/issues/130367で最新情報をお知らせします。ご期待ください!
提案されたAPI
画像のためのツール呼び出し
前回のイテレーションでは、拡張機能が画像を添付し、言語モデルにビジョンリクエストを送信できる提案されたAPIを追加しました。今回のイテレーションでは、このAPIを拡張し、ツール呼び出しの結果にも画像を含めることができるようにしました。
使用例を確認し、このAPIのステータスに関する最新情報を得るには、このAPI提案イシューをご覧ください。
拡張機能によって貢献されるMCPサーバー
拡張機能は、新しい提案されたAPIを使用することで、プログラムでエディターに拡張機能を提供できるようになりました。これは、ユーザーが設定やmcp.json
で各サーバーの構成をハードコーディングする代替手段です。
このAPIに興味がある場合は、そのサンプルと、このAPIのステータスに関する最新情報を得るためのAPI提案イシューをご覧ください。
MCPツールアノテーション
VS Codeは、適切なツールアノテーションで構成されたツールを持つMCPサーバーの人間が読める名前を表示するようになりました。さらに、アノテーションでreadOnlyHint: true
とマークされたツールは、ユーザーの確認を必要とせずに実行が許可されます。
可変行の高さ
Monacoエディターで、IModelDecorationOptions
型の行の高さの値を設定することで、可変行の高さを定義できるようになりました。1行に2つの行の高さが設定されている場合、そのうちの最大値が使用されます。
なお、現時点では簡素化のため、行の高さは対応する装飾範囲の最初の行にのみ設定されます。以下のスクリーンレコーディングでは、24行目と32行目がデフォルトよりも大きな行の高さでレンダリングされています。
この機能はまだ拡張機能では利用できませんが、さらなるテストの後で展開される予定です。
注目すべき修正点
- 244939 - 個人用Microsoftアカウントが非常に早くログアウトする(数分から数時間)
ありがとうございます
最後に、VS Codeの貢献者の皆様に心からの感謝を申し上げます。
問題追跡
問題追跡への貢献者
- @albertosantini (Alberto Santini)
- @gjsjohnmurray (John Murray)
- @RedCMD (RedCMD)
- @IllusionMH (Andrii Dieiev)
プルリクエスト
vscode
への貢献者
- @ahojukka5 (Jukka Aho): chatExecuteActions.ts を更新 PR #246494
- @alexweininger (Alex Weininger): fix: 編集セッション ID プロバイダー内のキャンセルエラーを処理 PR #247450
- @andrewbranch (Andrew Branch): tsgoを優先して組み込みのTS/JS拡張機能を無効化できるようにする PR #246858
- @BABA983 (BABA): すべての組み合わせを受け入れるコマンド PR #225132
- @batsev: Git - 作成前にブランチ名を検証 PR #245029
- @brthom (Ben Thomas): テストエクスプローラーでのテスト項目の並べ替えを自然なファイル順序を使用するように修正 PR #246352
- @bytemain (Jiacheng)
- fix: ファイルベースの推奨事項のフィルタリングロジックを修正 PR #245062
- refactor(nls): JSON解析にthenを使用 PR #247013
- @Cecil0o0 (hj): git: 文字/テキスト/色を意味的に一貫性を持たせる PR #245889
- @eps1lon (Sebastian "Sebbie" Silbermann): 古いJSX変換を強調しないようにする PR #246738
- @futurist (James Yang): fix: runCommand型 PR #246198
- @gabritto (Gabriela Araujo Britto)
- [typescript-language-features] 展開可能なホバーを再追加 PR #246899
- [typescript-language-features] 展開可能なホバーをデフォルトで有効にする PR #247343
- @guiserle (guiserle): config: コマンドが返す変数を解決する PR #246641
- @huntertran (Tuan Tran Van): git blame ホバーポップアップでのコミット説明の単一行改行を二重行改行に置き換える PR #245779
- @johnscollins98 (John Collins): #245665 空のpromptString入力での早期タスク終了を修正 PR #246834
- @KapitanOczywisty: html派生文法がphpコードを消費する問題を修正、#237262を修正 PR #245076
- @luantranminh (Tran Minh Luan): argv:
add-mcp
の説明を更新 PR #246473 - @manabu-nakamura (nakamura)
- 閉じるボタンのツールチップテキストが国際化されました PR #245190
- 閉じるボタンのツールチップテキストが国際化されました (2) PR #245333
- 省略記号を正規化 PR #246447
- @mdanish-kh (Muhammad Danish): WinGet構成ファイルの場所と拡張機能を更新 PR #242241
- @mkhuzaima (Muhammad Khuzaima Umair): ディレクトリがドラッグされたときにDragDataを設定 PR #243656
- @mortalYoung (野迂迂): fix: 不要なasync宣言を削除 PR #247213
- @nknguyenhc (Nguyen): HTMLスクリプト内の組み込みシンボルの定義へ移動 PR #244074
- @noahbowman (Noah): #188711 - ウォークスルーのフォーカス表示アウトライン PR #247650
- @pedrofrazaopacheco (Pedro Frazão Pacheco): microsoft/vscode#240654を修正: JSONスキーマURL内の予約文字のエンコードを回避 PR #244934
- @pisv (Vladimir Piskarev): マージエディター:
LineRange.join(other)
のバグを修正 PR #227585 - @RedCMD (RedCMD)
- template.expressionの括弧を修正 #190564 PR #245786
- YAML文字列内のコード補完を自動トリガー #239679 PR #246939
- @s-rigaud (Samuel Rigaud)
- test: タイプミスを修正 PR #247259
- fix: vscode-dtsのタイプミスを修正 PR #247263
- fix: toggleApplicationScopeのタイプミスを修正 PR #247264
- @sfaut: PHP f* files関数のシグネチャを修正 PR #246964
- @thegecko (Rob Moran): 逆アセンブリビューのコンテキストメニューを追加 PR #212500
- @theskcd: [vscode] #fileからの装飾が大幅に改善され、改行で壊れない PR #231948
- @tjcork (tjcork): shellIntegration-bash.shでenvVarCollectionsの環境変数をフェッチするためにパラメータ展開を使用 PR #245264
- @tmm1 (Aman Karmani): tsb: 小さなビルドの改善 PR #237450
- @Victuracor (Victuracor): extensions/typescript-language-features/package.nls.jsonのタイプミスを修正 PR #245713
- @whistlegraph (jeffrey): イシュー#662を修正(Pointer Lock Web APIを有効にする) PR #210875
- @wolfgang42 (Wolfgang Faust): feat: markdown-basics スニペット: すべての行を引用符で囲む PR #246871
- @zobo (Damjan Cvetko): 変数置換内のオブジェクトのキーも置換 PR #245989
vscode-css-languageservice
への貢献者
- @AlterNT (NTPS):
@scope
をサポート PR #434 - @rviscomi (Rick Viscomi): ホバーカードにBaselineステータスを追加 PR #428
vscode-js-debug
への貢献者
- @mikaelwaltersson (Mikael Waltersson): repl/watchでの「浮動」WASM変数の展開と、WASMメモリがSharedArrayBufferの場合のreadMemoryを修正 PR #2199
vscode-json-languageservice
への貢献
- @fengzilong (MO): feat: newJSONDocumentとJSONDocumentを一致させる PR #259
vscode-jupyter
への貢献者
- @alexfanqi (Alex Fan): excludeUserSitePackagesのスコープをウィンドウに変更 PR #16377
- @realDuang (Duang): fix: 環境サービスでpythonコードのエスケープパスを修正 PR #16518
vscode-mypy
への貢献
- @tdscheper (Tommy Scheper): cwd設定オプションが${nearestConfig}の場合、mypy.ini, .mypy.ini, pyproject.toml, setup.cfgのすべてを検索 PR #357
vscode-notebook-renderers
への貢献
- @marthacryan (Martha Cryan): plotly.jsのバージョンを3.0.0に更新 PR #230
vscode-pull-request-github
への貢献者
- @kabel (Kevin Abel): git configが失敗した場合のマージメール確認を修正 PR #6797
- @timrogers (Tim Rogers):
copilot-swe-agent
がコメントの作成者の場合、Copilot IDでレンダリングする PR #6794
vscode-python-debugger
への貢献者
- @rchiodo (Rich Chiodo): アタッチ構成でのautoReloadを許可 PR #676
vscode-python-environments
への貢献
- @InSyncWithFoo (InSync): fix:
showSkipOption
がアンインストールにも適用されることを明確にする PR #288
language-server-protocol
への貢献者
- @hippietrail (Andrew Dunbar): いくつかの文法修正 PR #2123
- @imbant (imbant): クライアントリクエストの前にドキュメントの状態同期を保証する PR #2017
- @ocfbnj: Thriftにthrift-lsを追加 PR #2128
- @rtorralba (rtorralba)
monaco-editor
へのコントリビューション
- @RoccoC (Rocco Cataldo): モジュールワーカーをサポートするようにwebpackプラグインを更新 PR #4742