に参加して、VS Code の AI 支援開発について学びましょう。

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月リリースへようこそ。このバージョンには、皆さんに気に入っていただけるであろう多くの更新が含まれています。主なハイライトは以下の通りです。

  • チャット

    • カスタム命令と再利用可能なプロンプト (詳細...)。
    • GitHub、拡張機能、ノートブックのツールでよりスマートな結果を (詳細...)。
    • MCP の画像とストリーミング可能な HTTP サポート (詳細...)。
  • チャットのパフォーマンス

    • 繰り返しのチャットリクエストでより高速な応答 (詳細...)。
    • エージェントモードでのより高速な編集 (詳細...)。
  • エディターエクスペリエンス

    • チャットとエディターのマルチウィンドウサポートの改善 (詳細...)。
    • ステージされた変更がより簡単に識別可能に (詳細...)。

これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.comアップデート をご覧ください。インサイダー: 新機能をいち早く試したいですか?夜間の インサイダー ビルドをダウンロードして、最新の更新プログラムが利用可能になり次第すぐに試すことができます。

チャット

プロンプトファイルと命令ファイル

VS Code で AI エクスペリエンスを特定のコーディングプラクティスとテクノロジースタックに合わせて調整するには、Markdown ベースの命令ファイルとプロンプトファイルを使用します。これら2つの関連する概念の実装と使用方法は統一されていますが、それぞれ異なる目的を持っています。

命令ファイル

設定: chat.instructionsFilesLocations

命令ファイル(カスタム命令またはルールとも呼ばれます)は、コードスタイルルールや使用するフレームワークなど、AI モデルに対する共通のガイドラインとコンテキストを Markdown ファイルで記述する方法を提供します。命令ファイルはスタンドアロンのチャットリクエストではなく、チャットリクエストに適用できるコンテキストを提供します。

命令ファイルは .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();
    }
    

チャット: 新しい命令ファイル...コマンドで命令ファイルを作成できます。さらに、_ユーザーデータ_フォルダーに作成されたファイルは、設定同期サービスを通じて複数のユーザーマシン間で自動的に同期できます。バックアップと同期の設定...ダイアログでプロンプトと命令オプションを必ずチェックしてください。

ドキュメントの命令ファイルについて詳しく学ぶ。

プロンプトファイル

設定: chat.promptFilesLocations

プロンプトファイルは、プロンプトテキスト、チャットモード、使用するツールを含む、スタンドアロンの完全なチャットリクエストを記述します。プロンプトファイルは、一般的なタスクのために再利用可能なチャットリクエストを作成するのに役立ちます。たとえば、フロントエンドコンポーネントを作成するため、またはセキュリティレビューを実行するためのプロンプトファイルを追加できます。

プロンプトファイルは .prompt.md ファイルサフィックスを使用します。ユーザーデータフォルダーまたはワークスペース内に配置できます。chat.promptFilesLocations 設定は、プロンプトファイルが検索されるフォルダーをリストします。

プロンプトファイルを実行するにはいくつかの方法があります

  • チャット入力フィールドに / を入力し、その後にプロンプトファイル名を入力します。スラッシュコマンドを使用してチャットビューでプロンプトを実行するスクリーンショット。

  • エディターでプロンプトファイルを開き、エディターツールバーの「再生」ボタンを押します。これにより、プロンプトをすばやく反復処理し、チャットビューに戻ることなく実行できます。エディターの再生ボタンを使用してプロンプトを実行するスクリーンショット。

  • コマンドパレットからチャット: プロンプトファイルを実行...コマンドを使用します。

プロンプトファイルは、実行方法を示すために、以下の Front Matter メタデータヘッダーを持つことができます。

  • mode: プロンプトを呼び出すときに使用するチャットモード (askedit、または agent モード)。
  • tools: modeagent の場合、プロンプトで使用できるツールのリスト。

次の例は、エージェントモードで実行され、一連のツールを使用できるリリースノート生成用のプロンプトファイルを示しています。

---
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を持つようになりました。これは、開いているすべてのドキュメントの_言語モード_ダイアログで設定可能です(それぞれ「Prompt」と「Instructions」)。これにより、たとえば、未保存のドキュメントを一時的なプロンプトファイルとして使用し、後でディスクにファイルとして保存する前に活用できます。
  • チャット: プロンプトを使用コマンドをチャット: プロンプトを実行に名称変更しました。さらに、このコマンドは、以前のようにチャットコンテキストとして添付するのではなく、選択したプロンプトを_すぐに_実行するようになりました。
  • 両方のファイルタイプがヘッダーに description メタデータをサポートするようになり、短くユーザーフレンドリーなプロンプトの要約を共通の場所に提供します。将来的には、このヘッダーは applyTo ヘッダーとともに、ファイルがチャットリクエストに自動的に含まれるべきかを決定するルールとして使用される予定です(例: description: 'TypeScript で書かれたフロントエンドコンポーネントのコードスタイルルール。')。

エージェントモードでの編集の高速化

エージェントモードで OpenAI の apply patch 編集形式 (GPT 4.1 および o4-mini) と Anthropic の replace string ツール (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 を受け取ります。たとえば、「TS でファクトリーパターンを実装する方法 #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.

Screenshot showing using the #githubRepo tool in agent mode with hints from instructions files.

現在作業中のリポジトリについて質問したい場合は、#codebase ツールを使用するだけです。

また、#githubRepo ツールは関連するコードスニペットの検索にのみ使用されます。GitHub MCP サーバーは、GitHub の इशシューとプルリクエストを操作するためのツールを提供します。VS Code で MCP サーバーを追加する方法について詳しく学んでください。

拡張機能ツールでマーケットプレイスの拡張機能を検索

チャットで拡張機能ツール (#extensions) を使用して、マーケットプレイスから拡張機能を見つけます。チャットプロンプトに基づいて、ツールが自動的に呼び出されるか、プロンプトで #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 で無効にできます。

エージェントモードでの元に戻す操作と手動編集の処理

以前は、エージェントモードのセッション中に手動で編集を行うと、モデルが混乱する可能性がありました。現在は、エージェントが変更についてプロンプト表示され、変更された可能性のあるファイルを編集する前に、必要に応じてファイルを再読み込みするようになっています。

会話の要約とプロンプトのキャッシュ

プロンプトのキャッシュを最適化するために、エージェントモードのプロンプトの構築方法を変更しました。プロンプトのキャッシュは、プロンプトの安定したプレフィックスを維持することで、モデルの応答を高速化する方法です。次のリクエストはそのプレフィックスから再開でき、その結果、各リクエストが少し高速になります。これは、エージェントモードで通常行われるような、大規模なコンテキストを持つ一連の繰り返しリクエストで特に効果的です。

会話が長くなったり、コンテキストが非常に大きくなったりすると、エージェントモードのセッションに「要約された会話履歴」メッセージが表示される場合があります。

Screenshot showing a summarized conversation message in the Chat view.

会話全体を FIFO として保持し、キャッシュを破壊する代わりに、これまでの会話を最も重要な情報と現在のタスクの状態の要約に圧縮します。これにより、プロンプトのプレフィックスが安定し、応答が高速になります。

ストリーミング可能なHTTPのMCPサポート

このリリースでは、モデルコンテキストプロトコルサーバーの新しいストリーミング可能なHTTPトランスポートのサポートが追加されます。ストリーミング可能な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 (プレビュー)

設定: inlineChat.enableV2

インラインチャットの刷新されたバージョン ⌘I (Windows, Linux Ctrl+I) に取り組んできました。そのテーマは引き続き「チャットをコードに組み込む」ですが、裏側ではチャット編集と同じロジックを使用しています。これにより、利用可能なコンテキストをより良く活用し、より良いコード編集戦略が可能になります。インラインチャット v2 は inlineChat.enableV2 を介して有効にできます。

さらに、より軽量な UX がオプションで有効にできるようになりました。inlineChat.hideOnRequest 設定を使用すると、リクエストが行われるとすぐにインラインチャットが非表示になります。その後、チャット編集オーバーレイに最小化され、変更を受け入れるか破棄するか、またはインラインチャットコントロールを復元することができます。

UI要素を選択してチャットに添付 (実験的)

設定: chat.sendElementsToChat.enabled

Webアプリケーションを開発しているとき、Webページの特定のUI要素についてチャットに質問したい場合があります。組み込みのシンプルブラウザを使用して、UI要素をコンテキストとしてチャットに添付できるようになりました。

組み込みのシンプルブラウザ(シンプルブラウザ: 表示コマンドで起動)経由でローカルホストサイトを開くと、新しいツールバーが表示され、そこから開始を選択して、サイト内の任意の要素を選択できます。これにより、選択した要素のスクリーンショットと、その要素のHTMLおよびCSSが添付されます。

チャットに添付するものを設定するには

この実験的な機能は、すべてのシンプルブラウザでデフォルトで有効になっていますが、chat.sendElementsToChat.enabled で無効にすることができます。

エージェントモードでタスクを作成して起動 (実験的)

設定: github.copilot.chat.newWorkspaceCreation.enabled

前回のリリースでは、エージェントモードでのワークスペース作成を可能にする github.copilot.chat.newWorkspaceCreation.enabled (実験的) 設定を導入しました。

今回、この作成フローの最後に、アプリまたはプロジェクトを起動するためのタスクを作成して実行するよう促されます。これにより、プロジェクト起動プロセスが合理化され、タスクの再利用が容易になります。

アクセシビリティ

マージエディタの改善

マージエディタはよりアクセスしやすくなりました。利用可能なアクションについては、マージエディタ内でアクセシビリティヘルプダイアログを開いてください(⌥F1 (Windows Alt+F1, Linux Shift+Alt+F1))。主要なアクションには、Merge Editor: Complete Merge (⌘Enter (Windows, Linux Ctrl+Enter)) と Toggle Between Merge Editor Inputs (⇧⌘T (Windows, Linux Ctrl+Shift+T)) が含まれます。現在フォーカスされている入力も、支援技術にアナウンスされるようになりました。

次の編集候補の機能強化

新しい設定 accessibility.signals.nextEditSuggestion は、予測された候補が利用可能になったときに通知します。アクセシブルビュー (⌥F2 (Windows Alt+F2, Linux Shift+Alt+F2)) を介して候補を確認して受け入れます。さらに、accessibility.signals.diffLineAddedaccessibility.signals.diffLineRemoved は、ナビゲーション中に音声キューを提供し、差分レビューをアクセシブルにします。

アクセシブルビューから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 駆動のキーワード提案をサポートするようになりました。この機能を有効にすると、探しているコードを見つけるのに役立つ関連する参照や定義が表示されるようになります。

コード編集

新しい次世代編集候補 (NES) モデル

設定: github.copilot.nextEditSuggestions.enabled

私たちは、より高速で状況に即したコードの推奨事項を提供するように設計された、新しいNESモデルを発表できることを嬉しく思います。この更新されたモデルは、パフォーマンスが向上し、遅延が低減された提案を提供し、邪魔にならず、最近の編集とより密接に連携した提案を提供します。この更新は、Visual Studio Code 内のAI支援開発ツールを改良するという私たちの継続的な取り組みの一環です。

インポートの提案

設定: github.copilot.nextEditSuggestions.fixes

Next Edit Suggestions (NES) は、JavaScript および TypeScript ファイルで不足している import ステートメントの追加を自動的に提案できるようになりました。github.copilot.nextEditSuggestions.fixes を設定して、この機能を有効にしてください。今後のアップデートでは、追加の言語からのインポートをサポートすることで、この機能をさらに強化する予定です。

Screenshot showing NES suggesting an import statement.

Next Edit Suggestions (NES) をデフォルトで有効化

Next Edit Suggestions が VS Code Insiders でデフォルトで有効になり、Stable に段階的に展開されています。

HTMLまたはMarkdownでaltテキストを生成

HTMLおよびMarkdownファイルで、既存のaltテキストを生成または更新できるようになりました。埋め込み画像を含む任意の行に移動し、⌘. (Windows, Linux Ctrl+.) を介して、または電球アイコンを選択してクイックフィックスをトリガーします。

Screenshot that shows generating alt text for an image html element.

ノートブック

検索と置換の履歴の永続化

ノートブック検索コントロールが、検索入力フィールドと置換入力フィールドの両方で永続的な履歴をサポートするようになりました。これはリロード後も保持され、editor.find.history および editor.find.replaceHistory の設定によって制御されます。

セルの出力をチャットにドラッグアンドドロップ

チャットでのセル出力の使用に対する既存のサポートを強化するため、出力はチャットビューにドラッグアンドドロップできるようになり、シームレスな添付体験が実現しました。現在、画像とテキスト出力のみがサポートされています。画像MIMEタイプを持つ出力は直接ドラッグできますが、テキスト選択との衝突を避けるため、テキスト出力はAlt修飾キーを押しながらドラッグを有効にする必要があります。今後のリリースでUXの改善を検討しています。

エージェントモード用のノートブックツール

セルを実行

チャットに、ノートブックセルを実行するLLMツールが追加されました。これにより、エージェントはセル実行の結果に基づいて更新を実行したり、ノートブックを構築しながら独自のデータ探索を実行したりできます。

カーネルの状態を取得

エージェントは、カーネル状態ツールを使用して、現在のカーネルセッションでどのセルが実行されたか、およびアクティブな変数を読み取ることができます。

パッケージをリスト/インストール

Jupyter 拡張機能は、ノートブックのカーネルとして使用されている環境にパッケージをリストしたりインストールしたりするためのツールを提供します。操作は、利用可能な場合は Python Environments 拡張機能に委任されます。そうでない場合は、pip パッケージマネージャーを使用しようとします。

ソース管理

ステージされた変更に対するクイック差分装飾

長年の機能要求に対応するため、このマイルストーンで、ステージされた変更に対するクイック差分エディターの装飾を追加しました。これにより、ソース管理ビューを開くことなく、エディターから直接ステージされた変更を表示できるようになりました。

ステージされた変更のクイック差分装飾の色は、editorGutter.addedSecondaryBackgroundeditorGutter.modifiedSecondaryBackgroundeditorGutter.deletedSecondaryBackground のテーマトークンを使用してカスタマイズできます。

ステージされた変更に対するクイック差分装飾を表示したくない場合は、エディターのガッターコンテキストメニューにある差分装飾サブメニューを使用して非表示にできます。

デバッグ

逆アセンブリビューのコンテキストメニュー

コミュニティからの貢献により、逆アセンブリビューにコンテキストメニューが追加されました。

Screenshot that shows the context menu in the Disassembly view.

JavaScriptデバッガネットワークビュー

最近のNode.jsバージョンでは、ネットワークデバッグ機能が強化されています。実験的なネットワークビューは、それを十分にサポートする最近のNode.jsバージョン(v22.14.0以降)でデフォルトで有効になります。

言語

CSSとHTMLのブラウザサポートを表示

CSSプロパティ、HTML要素、またはHTML属性にカーソルを合わせると、Baselineを使用して、そのプロパティまたは要素がブラウザ全体でどれだけサポートされているかの概要が表示されるようになりました。

Screenshot that shows baseline browser support in the CSS hover.

.*.env ファイルのデフォルトの構文ハイライト

.*.env の名前形式を持つファイルは、.ini ファイルとして構文ハイライトされるようになりました。

JavaScriptとTypeScriptの展開可能なホバー (実験的)

設定: typescript.experimental.expandableHover

JavaScriptとTypeScriptの展開可能なホバー機能のイテレーションを継続しました。この機能により、ホバーコントロールで+-を使用して、型情報の表示量を増減できます。

この機能はまだ実験段階ですが、typescript.experimental.expandableHover を有効にすることで今すぐ試すことができます。TypeScriptバージョン5.9以上を使用している必要があります。例えば、TypeScript nightly extensionをインストールすることで実現できます。

リモート開発

リモート開発拡張機能を使用すると、開発コンテナー、SSH 経由のリモートマシン、リモートトンネル、またはWindows 用 Linux サブシステム (WSL) をフル機能の開発環境として使用できます。

開発コンテナーの指示ファイル

開発コンテナーの機能とイメージに、ツールと構成を記述する指示ファイルが含まれるようになりました。VS Code チャットは、このコンテキストを自動的に使用でき、開発中の提案の関連性と精度が向上します。

拡張機能への貢献

Python

ブランチカバレッジのサポート

Python のテストエクスプローラーでブランチカバレッジがサポートされるようになりました!この機能には、coveragepy のバージョンが 7.7 以上である必要があることに注意してください。pip install coverage==7.7 を実行して coverage をアップグレードできます。

Python Environmentsクイック作成コマンド

Python Environments拡張機能はクイック作成のサポートを追加し、環境作成プロセスをよりシームレスにしました。クイック作成は、仮想環境を作成し、ワークスペースの依存関係をシングルクリックでインストールするために、マシン上の最新のPythonバージョンを検出することで、ユーザーが必要とする入力を最小限に抑えます。これにより、venvベースの環境の場合はワークスペースに.venvが、condaベースの環境の場合は.condaが作成されます。コマンドパレットのPython: 環境を作成コマンドからクイック作成にアクセスできます。

Screenshot showing Quick Create in the Python: Create Environment quick pick.

Python Environmentsチャットツール

Python Environments拡張機能(プレビュー)に「Python環境情報を取得」と「Pythonパッケージをインストール」という2つのチャットツールが追加されました。これらのツールを使用するには、プロンプトに#pythonGetEnvironmentInfo #pythonInstallPackageを追加して直接参照するか、エージェントモードが適用されると自動的にツールを呼び出します。これらのツールは、ファイルまたはワークスペースのコンテキストに基づいて適切な環境情報をシームレスに検出し、正確な環境解決でパッケージのインストールを処理します。

Pylance使用時のカラーピッカー

Pylanceは、Pythonファイル内で認識された色値に対して、インタラクティブなカラー見本をエディターに直接表示できるようになり、色を視覚化してその場で選択するのが容易になりました。これを試すには、python.analysis.enableColorPicker を有効にします。サポートされる形式には、#RGB(例:「#001122」)と#RGBA(例:「#001122FF」)が含まれます。

Screenshot showing the color swatch displayed in the editor next to #RGB color format.

AIコードアクション: フォーマット文字列を変換 (実験的)

Pylanceを使用する場合、文字列連結をf-stringまたはformat()に変換するための新しい実験的なAIコードアクションがあります。これを試すには、変換したい文字列内のシンボルを選択したときに電球を介して、またはCtrl + ./Cmd + .を介して、Convert to f-string with CopilotまたはConvert to format() call with Copilotコードアクションを選択します。

Screenshot showing the convert strings Code Actions, powered by AI.

このエクスペリエンスは次の設定で有効になります

"python.analysis.aiCodeActions": {"convertFormatString": true}

GitHub Pull Requests and Issues

GitHub Pull Requests 拡張機能は、プルリクエストや課題の作業、作成、管理を可能にし、さらなる進歩を遂げました。新しい機能には以下が含まれます。

  • チャットで「#activePullRequestのコメントをすべて処理してください」のように、アクティブなプルリクエストに関する質問をする。
  • プルリクエストを表示するのと同様に、ウェブビューで課題を表示する。
  • 「プルリクエスト」、「課題」、「通知」ビューの磨き上げと調整。
  • Copilotへの課題の割り当て、Copilotへの@-メンション、UIでの適切な表示を可能にすることで、GitHubのProject Padawanのリリースに備えた。

その他のハイライトについては、拡張機能の0.110.0リリースの変更履歴を確認してください。

拡張機能の作成

テキストエンコーディング

VS Code でテキストエンコーディングを扱うための API を完成させました。

具体的には、この新しいAPIを使用すると、次のことができます。

  • TextDocument の現在の encoding を取得する
  • 特定の encodingTextDocument を開く
  • 特定の encodingstringUint8Array にエンコードする
  • 特定の encoding を使用して Uint8Arraystring にデコードする

拡張機能のESMサポート

NodeJS拡張機能ホストは、JavaScriptモジュール(ESM)を使用する拡張機能をサポートするようになりました。拡張機能のpackage.jsonファイルに"type": "module"エントリを追加するだけで済みます。これにより、JavaScriptコードはimportおよびexportステートメントを使用できるようになり、特殊なモジュールimport('vscode')も含まれます。サンプルはこちらで見つけることができます: https://github.com/jrieken/vscode-esm-sample-extension

ESM サポートは、まだ Web Worker 拡張ホストでは利用できません。まず克服すべき技術的な課題がいくつかあります。https://github.com/microsoft/vscode/issues/130367 で更新情報をお知らせします。続報にご期待ください!

提案されたAPI

画像のツール呼び出し

前回のイテレーションでは、拡張機能が画像を添付して言語モデルにビジョンリクエストを送信できる提案されたAPIを追加しました。今回のイテレーションでは、このAPIを拡張し、ツール呼び出しの結果にも画像を含めることができるようにしました。

この API の使用例と状況については、この API 提案 issue をご確認ください。

拡張機能によって提供されるMCPサーバー

拡張機能は、新しい提案されたAPIを使用して、プログラムによってエディターに拡張機能を提供できます。これは、ユーザーが各サーバーの設定またはmcp.jsonに構成をハードコーディングする代替手段です。

この API に興味がある場合は、そのサンプルAPI 提案 issueをチェックして、この API のステータスに関する最新情報を入手してください。

MCPツールアノテーション

VS Codeは、適切なツールアノテーションで構成されたツールを持つMCPサーバーの人間が読める名前を表示するようになりました。さらに、アノテーションでreadOnlyHint: trueとマークされたツールは、ユーザー確認なしで実行できるようになります。

可変行の高さ

IModelDecorationOptions型で行の高さの値を設定することで、Monacoエディターで可変行の高さを定義できるようになりました。1行に2つの行の高さが設定されている場合、その行では大きい方の値が使用されます。

現時点では簡略化のため、行の高さは対応する装飾範囲の最初の行にのみ設定されます。以下のスクリーンレコーディングでは、24行目と32行目はデフォルトよりも大きい行の高さでレンダリングされています。

この作業はまだ拡張機能では利用できませんが、さらなるテスト後に展開される予定です。

注目すべき修正点

  • 244939 - 個人用Microsoftアカウントが非常に早くログアウトする (数分から数時間)

ありがとうございます

最後に、VS Codeの貢献者の皆様に心からの感謝を申し上げます。

問題追跡

問題追跡への貢献者

プルリクエスト

vscodeへの貢献者

vscode-css-languageserviceへの貢献者

vscode-js-debugへの貢献者

vscode-json-languageserviceへの貢献

vscode-jupyterへの貢献者

vscode-mypyへの貢献

vscode-notebook-renderersへの貢献

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

vscode-python-debuggerへの貢献者

vscode-python-environmentsへの貢献

language-server-protocolへの貢献者

monaco-editorへのコントリビューション

© . This site is unofficial and not affiliated with Microsoft.