エージェント型開発を探求する -

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.comUpdates を参照してください。Insiders: 新機能をいち早く試したいですか?ナイトリービルドのInsiders をダウンロードして、最新のアップデートをいち早く試すことができます。

チャット

プロンプトファイルと指示ファイル

Markdownベースの指示ファイルとプロンプトファイルを使用することで、VS CodeでのAI体験を、特定のコーディング慣習や技術スタックに合わせてカスタマイズできます。これら2つの関連概念の実装と使用方法を調整しましたが、それぞれ異なる目的を持っています。

指示ファイル (Instructions files)

設定: chat.instructionsFilesLocations VS Codeで開く VS Code Insidersで開く

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

指示ファイルは .instructions.md というファイルサフィックスを使用します。これらはユーザーデータフォルダまたはワークスペース内に配置できます。 chat.instructionsFilesLocations VS Codeで開く VS Code Insidersで開く 設定には、指示ファイルを含むフォルダがリストされます。

指示は手動で特定のチャットリクエストに添付するか、自動的に追加するように設定できます。

  • 手動で追加するには、チャットビューのコンテキストを追加 (Add Context)ボタンを使用し、指示 (Instructions...)を選択します。または、コマンドパレットからチャット: 指示を添付... (Chat: Attach Instructions...)コマンドを使用します。これにより、既存の指示ファイルを選択するか、新しく作成して添付できるピッカーが表示されます。

  • プロンプトに指示を自動的に追加するには、指示ファイルに applyTo フロントマターヘッダーを追加し、どのファイルに指示を適用するかを指定します。チャットリクエストに指定したグロブパターンと一致するファイルが含まれている場合、指示ファイルが自動的に添付されます。

    以下の例では、TypeScriptファイル (applyTo: '**/*.ts') に対する指示を提供しています。

    ---
    applyTo: '**/*.ts'
    ---
    Place curly braces on separate lines for multi-line blocks:
    if (condition)
    {
      doSomething();
    }
    else
    {
      doSomethingElse();
    }
    

チャット: 新しい指示ファイル... (Chat: New Instructions File...)コマンドを使用して指示ファイルを作成できます。さらに、ユーザーデータフォルダに作成されたファイルは、設定同期サービスを通じて複数のマシン間で自動的に同期できます。設定のバックアップと同期... (Backup and Sync Settings...)ダイアログでプロンプトと指示 (Prompts and Instructions)オプションがチェックされていることを確認してください。

詳細については、ドキュメントの指示ファイル (instruction files)をご覧ください。

プロンプト ファイル

設定: chat.promptFilesLocations VS Codeで開く VS Code Insidersで開く

プロンプトファイルは、プロンプトテキスト、チャットモード、使用するツールなど、単独で完結したチャットリクエストを記述します。プロンプトファイルは、一般的なタスクに対して再利用可能なチャットリクエストを作成するのに便利です。例えば、フロントエンドコンポーネントを作成するためのプロンプトファイルを追加したり、セキュリティレビューを実行するためのものを作成したりできます。

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

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

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

  • エディターでプロンプトファイルを開き、エディターツールバーの「再生 (Play)」ボタンを押します。これにより、チャットビューに戻ることなく、プロンプトを素早く繰り返し実行できます。 エディターの再生ボタンを使ってプロンプトを実行する様子を示すスクリーンショット。

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

プロンプトファイルには、どのように実行されるべきかを示す以下のフロントマターメタデータヘッダーを含めることができます。

  • mode: プロンプトを呼び出す際に使用するチャットモード (ask, edit, または 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.

プロンプトファイルを作成するには、コマンドパレットからチャット: 新しいプロンプトファイル... (Chat: New Prompt File...)コマンドを使用します。

詳細については、ドキュメントのプロンプトファイル (prompt files)をご覧ください。

改善点と注意点

  • 指示ファイルとプロンプトファイルは現在、独自の言語IDを持っており、開いているファイルの「言語モード」ダイアログで設定可能です(それぞれ「Prompt」と「Instructions」)。これにより、例えば未保存のドキュメントを一時的なプロンプトファイルとして使い、後でディスクに保存するといったことが可能になります。
  • チャット: プロンプトを使用 (Chat: Use Prompt)コマンドをチャット: プロンプトを実行 (Chat: Run Prompt)に名称変更しました。さらに、このコマンドは以前のようにチャットコンテキストとして添付するのではなく、選択したプロンプトを即座に実行するようになりました。
  • 両方のファイルタイプがヘッダー内で description メタデータをサポートするようになり、ユーザーフレンドリーなプロンプトの要約を共通の場所に記述できるようになりました。将来的には、applyTo ヘッダーと共に、チャットリクエスト時に自動的に含めるべきかどうかを決定するルールとしてこのヘッダーを使用する計画です(例: description: 'Code style rules for front-end components written in 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リポジトリ内のコードスニペットを検索できるようになりました。このツールは、追加の入力として ユーザー名/リポジトリ名 を受け取ります。例: "how to implement factory pattern in 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のIssueやプルリクエストを操作するためのツールを提供します。VS CodeへのMCPサーバーの追加について詳しく学びましょう。

拡張機能ツールでMarketplaceの拡張機能を探す

チャットで拡張機能ツール (#extensions) を使用して、Marketplaceから拡張機能を見つけることができます。チャットプロンプトに基づいて、ツールが自動的に呼び出されるか、プロンプト内で #extensions と明示的に参照できます。ツールはクエリに一致する拡張機能のリストを返し、結果から直接インストールできます。

Webページ取得ツールの改善

先月、チャットから直接Webページの内容を取得し、プロンプトのコンテキストとして含めるための取得ツール (#fetch) を導入しました。そのリリースノートを見逃した場合は、取得ツールの初期リリースのリリースノートと例を確認してください。

今回のイテレーションでは、このツールにいくつかの大きな変更を加えました。

  • ページ全体をコンテキストとして使用: ページの一部ではなく、ページ全体をコンテキストとして追加するようにしました。より大きなコンテキストウィンドウにより、モデルにページ全体を与えることができます。例えば、ページ全体を必要とする要約の質問が可能になりました。コンテキストウィンドウを本当に使い切ってしまう場合は、fetchツールが賢く機能し、重要度の低いセクションを除外します。これにより、コンテキストウィンドウの制限を超えずに、重要な部分を保持できます。
  • 標準化されたページフォーマット (Markdown): 以前は、取得したWebページをカスタムの階層構造でフォーマットしていましたが、その独自性ゆえに推論が困難な場合がありました。現在では、取得したWebページを標準的なMarkdownに変換します。これにより、関連性の検出の信頼性が向上し、多くの言語モデルが深く理解しているフォーマットであるため、容易に推論できるようになりました。

fetchツールの使用感や、追加してほしい機能があればぜひお聞かせください!

チャット入力の改善

チャット入力ボックスにいくつかの改善を行いました。

  • 添付ファイル: プロンプトテキスト内で # を使ってコンテキストを参照すると、それが添付ファイルピルとして表示されるようになりました。これにより、何が言語モデルに送信されているのかが理解しやすくなります。
  • コンテキストピッカー: コンテキストピッカーを効率化し、ファイル、フォルダ、その他の添付ファイルタイプを選択しやすくしました。
  • Doneボタン: 「Done」ボタンについてフィードバックをいただき、削除しました!予期せぬセッション終了で混乱することはもうありません。今後は、新しいチャットを作成したときのみ新しいセッションが開始されます (⌘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 VS Codeで開く VS Code Insidersで開く

エージェントモードでのファイル編集により新しいエラーが発生した場合、エージェントモードがそれを検出し、自動的にフォローアップ編集を提案できるようになりました。つまり、エラーを修正するために追加のプロンプトを送信する必要はありません。この動作は github.copilot.chat.agent.autoFix VS Codeで開く VS Code Insidersで開く で無効にできます。

エージェントモードでのアンドゥと手動編集の扱い

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

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

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

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

Screenshot showing a summarized conversation message in the Chat view.

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

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

今回のリリースでは、Model Context Protocol (MCP) サーバー向けの新しい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: サーバーを追加 (MCP: Add Server)コマンドによって生成されたAI支援構成は、構成結果に値を直接インライン化するのではなく、秘密情報のための inputs を生成するようになりました。

インラインチャット V2 (プレビュー)

設定: inlineChat.enableV2 VS Codeで開く VS Code Insidersで開く

インラインチャット ⌘I (Windows, Linux Ctrl+I) の刷新版に取り組んできました。テーマは引き続き「コードの中にチャットを持ち込む」ですが、内部的にはチャット編集と同じロジックを使用しています。つまり、利用可能なコンテキストの活用が向上し、コード編集戦略が改善されました。インラインチャットv2は inlineChat.enableV2 VS Codeで開く VS Code Insidersで開く から有効にできます。

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

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

設定: chat.sendElementsToChat.enabled VS Codeで開く VS Code Insidersで開く

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

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

チャットへの添付内容の設定

  • chat.sendElementsToChat.attachCSS VS Codeで開く VS Code Insidersで開く : 関連するCSSを添付するかどうかを有効/無効にします。
  • chat.sendElementsToChat.attachImages VS Codeで開く VS Code Insidersで開く : 選択した要素のスクリーンショットを添付するかどうかを有効/無効にします。

この実験的機能はすべてのSimple Browserでデフォルトで有効になっていますが、 chat.sendElementsToChat.enabled VS Codeで開く VS Code Insidersで開く で無効にできます。

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

設定: github.copilot.chat.newWorkspaceCreation.enabled VS Codeで開く VS Code Insidersで開く

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

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

アクセシビリティ

マージエディターの改善

マージエディターがより使いやすくなりました。利用可能なアクションについては、マージエディター内でアクセシビリティヘルプダイアログを開いてください (⌥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)) が含まれます。現在フォーカスされている入力は、支援技術にも通知されるようになりました。

次の一括編集候補 (Next Edit Suggestion) の強化

新しい設定 accessibility.signals.nextEditSuggestion VS Codeで開く VS Code Insidersで開く は、予測された候補が利用可能になったときに通知します。候補の確認と承認は、アクセシブルビュー (⌥F2 (Windows Alt+F2, Linux Shift+Alt+F2)) を通じて行います。さらに、 accessibility.signals.diffLineAdded VS Codeで開く VS Code Insidersで開く accessibility.signals.diffLineRemoved VS Codeで開く VS Code Insidersで開く が、ナビゲーション中に音声による合図を提供し、diffの確認をよりアクセシブルにします。

アクセシブルビューからCopilotのユーザーリクエストを確認

エージェントモードでは、ツールの呼び出しやターミナルコマンドの実行にユーザーの許可が必要な場合があります。これらのアクションはアクセシブルビュー (⌥F2 (Windows Alt+F2, Linux Shift+Alt+F2)) 内で確認してください。

固有のアクセシビリティサウンド

accessibility.signals.save.sound VS Codeで開く VS Code Insidersで開く に独自のサウンドが割り当てられ、 accessibility.signals.terminalCommandSucceeded.sound VS Codeで開く VS Code Insidersで開く と音声が共有されなくなりました。

エディターエクスペリエンス

フローティングウィンドウモード

VS Codeのフローティングウィンドウを使用すると、エディターや特定のビューをメインウィンドウから移動し、軽量なマルチウィンドウ設定のための小さなウィンドウとして表示できます。フローティングウィンドウには2つの新しいモードがあります。

  • コンパクト (Compact): コンテンツのためのスペースを確保するため、特定のUI要素を非表示にします。
  • 最前面表示 (Always-on-top): このモードを終了するまで、ウィンドウは他のすべてのウィンドウの上に留まります。

以下は、フローティングエディターウィンドウをコンパクトモードにする方法の例です。

新しいウィンドウでチャットを作成する場合、デフォルトでコンパクトモードを使用します。常に最前面に表示するオプションと組み合わせることで、いつでもチャットビューを表示して質問できるようにしておけます!

これらのアクションにキーボードショートカットを使用したい場合のために、新しいコマンドを導入しました。

  • workbench.action.toggleWindowAlwaysOnTop: 最前面表示モードを切り替える
  • workbench.action.enableWindowAlwaysOnTop: フローティングウィンドウを最前面に設定する
  • workbench.action.disableWindowAlwaysOnTop: フローティングウィンドウを通常の設定に戻す
  • workbench.action.toggleCompactAuxiliaryWindow: コンパクトモードを切り替える
  • workbench.action.enableCompactAuxiliaryWindow: コンパクトモードを有効にする
  • workbench.action.disableCompactAuxiliaryWindow: コンパクトモードを無効にする

注: コンパクトモードであっても、複雑なエディターレイアウトを作成したり、他のエディターを開いたりすることは可能です。

セカンダリサイドバーのデフォルト表示

設定: workbench.secondarySideBar.defaultVisibility VS Codeで開く VS Code Insidersで開く

デフォルトでは、新しいワークスペースやウィンドウを開いたとき、セカンダリサイドバーは非表示になっています。新しい設定 workbench.secondarySideBar.defaultVisibility VS Codeで開く VS Code Insidersで開く を使用すると、新しいワークスペースやウィンドウでセカンダリサイドバーを自動的に開くかどうかを制御できます。以下のオプションから選択できます。

  • hidden: デフォルト設定で、セカンダリサイドバーを非表示のままにします。
  • visibleInWorkspace: フォルダーまたはマルチルートワークスペースを開いた場合にセカンダリサイドバーを開きます。
  • visible: 常にセカンダリサイドバーを開きます。

ワークスペースやウィンドウが開かれた後は、可視性はワークスペースの状態となり、設定値を上書きすることに注意してください。セカンダリサイドバーを閉じると、そのワークスペースまたはウィンドウでは閉じたままになります。

拡張機能の署名検証の必須化

拡張機能の署名検証が、Windows、macOS、Linuxのすべてのプラットフォームで必須となりました。以前はWindowsとmacOSでのみ必須でしたが、今回のリリースでLinuxでも拡張機能の署名検証が適用され、すべての拡張機能がインストール前に適切に検証されるようになりました。

この変更により、潜在的に悪意のある拡張機能のインストールを防止し、セキュリティがさらに強化されます。詳細については、拡張機能の署名 (Extension Signing)を参照してください。

注: 拡張機能の署名検証の必須化は、issue #248308のため、Linux ARM32ビルドでは引き続き無効となっています。これは次回のリリースで解決される予定です。

拡張機能が悪意のあるものとして識別された場合、VS Codeはその拡張機能がフラグ付けされた理由を説明する詳細情報へのリンクを提供するようになりました。これらの「詳細はこちら (Learn More)」リンクにより、ユーザーはGitHubのIssueや詳細なセキュリティ上の懸念事項に関するドキュメントにアクセスでき、潜在的なリスクをより深く理解できるようになります。

VS Code StableでのCopilot Chatプレリリース版のインストールを防止

VS Code Stableにおいて、Copilot Chat拡張機能のプレリリース版をインストールできないようになりました。これにより、誤ってCopilot Chatプレリリース版をインストールしてしまい、壊れた状態になることを防ぎます。つまり、Copilot Chat拡張機能のプレリリース版は、VS CodeのInsidersビルドでのみインストール可能となります。

フォーカスせずにビューを開くコマンド

ビュー(ツリービューやWebViewビュー)をフォーカスせずに開けるようになりました。これは、現在のエディターからフォーカスを奪わずにビューを開きたい拡張機能やキーボードショートカットに役立ちます。コマンドは your-view-id.open で、引数として { preserveFocus: boolean} を受け取ります。

キーワード候補付きのセマンティックテキスト検索 (実験的)

設定: github.copilot.chat.search.keywordSuggestions VS Codeで開く VS Code Insidersで開く

セマンティックテキスト検索が、AIによるキーワード候補をサポートしました。この機能を有効にすると、探しているコードを見つけるのに役立つ関連する参照や定義が表示されるようになります。

コード編集

新しい「次の一括編集候補 (Next Edit Suggestions: NES)」モデル

設定: github.copilot.nextEditSuggestions.enabled VS Codeで開く VS Code Insidersで開く

NESを強化する新しいモデルを導入しました。より高速でコンテキストに関連性の高いコード推薦を提供するように設計されています。このアップデートされたモデルはパフォーマンスが向上しており、遅延を低減して候補を提供します。また、邪魔にならず、最近の編集に沿った候補を提供します。このアップデートは、Visual Studio Code内のAI支援開発ツールを改善するという継続的な取り組みの一環です。

インポート候補

設定: github.copilot.nextEditSuggestions.fixes VS Codeで開く VS Code Insidersで開く

「次の一括編集候補 (NES)」は、JavaScriptおよびTypeScriptファイルで欠落しているインポートステートメントを自動的に提案できるようになりました。 github.copilot.nextEditSuggestions.fixes VS Codeで開く VS Code Insidersで開く を設定してこの機能を有効にしてください。今後のアップデートで他の言語のインポートサポートを追加し、この機能をさらに強化する予定です。

Screenshot showing NES suggesting an import statement.

「次の一括編集候補 (NES)」をデフォルトで有効化

NESはVS Code Insidersでデフォルトで有効になっており、Stableにも順次展開中です。

HTMLまたはMarkdownでの代替テキスト (alt text) 生成

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

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

ノートブック

検索と置換の履歴永続化

ノートブックの検索コントロールが、検索および置換入力フィールドの両方で履歴の保持をサポートしました。これはリロードをまたいで保持され、設定 editor.find.history VS Codeで開く VS Code Insidersで開く および editor.find.replaceHistory VS Codeで開く VS Code Insidersで開く によって制御されます。

セルの出力をドラッグ&ドロップでチャットへ

チャット内でのセル出力使用を強化するため、出力をチャットビューにドラッグしてシームレスに添付できるようになりました。現在、画像とテキストの出力のみがサポートされています。画像MIMEタイプの出力は直接ドラッグ可能ですが、テキスト選択と衝突するのを避けるため、テキスト出力には alt キーを押しながらドラッグする必要があります。今後のリリースでさらにUXを改善していく予定です。

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

セルの実行 (Run cell)

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

カーネル状態の取得 (Get kernel state)

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

パッケージのリスト/インストール (List/Install packages)

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

ソース管理

ステージング済み変更のクイックDiff装飾

長年の機能リクエストに応え、今回のマイルストーンでは、ステージング済みの変更に対するクイックDiffエディター装飾を追加しました。ソース管理ビューを開くことなく、エディターから直接ステージングされた変更を確認できるようになりました。

以下のテーマトークンを使用して、ステージング済みの変更のクイックDiff装飾の色をカスタマイズできます: editorGutter.addedSecondaryBackground, editorGutter.modifiedSecondaryBackground, editorGutter.deletedSecondaryBackground

ステージング済みの変更に対するクイックDiff装飾を表示したくない場合は、エディターガターのコンテキストメニューから利用可能なDiff装飾 (Diff Decorations)サブメニューを使用して非表示にできます。

デバッグ

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

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

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 VS Codeで開く VS Code Insidersで開く

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

この機能はまだ実験的ですが、 typescript.experimental.expandableHover VS Codeで開く VS Code Insidersで開く を有効にすることで試すことができます。TypeScript 5.9以降を使用している必要があり、例えば TypeScript nightly extension をインストールすることで利用可能です。

リモート開発

リモート開発拡張機能を使用すると、Dev Container、SSH 経由のリモートマシン、またはリモートトンネル、あるいはWindows Subsystem for Linux (WSL) をフル機能の開発環境として使用できます。

Dev Containerの指示ファイル

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

拡張機能への貢献

Python

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

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

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

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

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

Python Environmentsのチャットツール

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

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

Pylanceは、Pythonファイル内で認識された色の値に対して、エディター内でインタラクティブなカラー見本を直接表示できるようになりました。これにより、色をその場で視覚化して選択するのが容易になります。試すには、 python.analysis.enableColorPicker VS Codeで開く VS Code Insidersで開く を有効にしてください。サポートされている形式には #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 拡張機能にさらなる進歩がありました。新機能には次のようなものがあります。

  • アクティブなプルリクエストに関する質問をチャットで「Address all comments in the #activePullRequest」のように行えます。
  • プルリクエストを表示できるのと同様に、IssueをWebView内で表示できます。
  • 「プルリクエスト」、「Issue」、「通知」ビューの洗練と調整を行いました。
  • GitHub Project Padawanのリリースに向けて、CopilotへのIssue割り当て、Copilotへの@-メンションの有効化、およびUIでの適切な表示を保証しました。

その他のハイライトについては、拡張機能の0.110.0リリース版のチェンジログを確認してください。

拡張機能の作成

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

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

具体的には、この新しいAPIにより以下が可能になります。

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

拡張機能向けのESMサポート

NodeJS拡張機能ホストがJavaScriptモジュール (ESM) を使用する拡張機能をサポートしました。拡張機能の package.json ファイルに "type": "module" エントリを含めるだけです。これにより、JavaScriptコードは特殊なモジュール import('vscode') を含め、import および export 文を使用できるようになります。サンプルはこちら: 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サーバーを貢献できるようになりました。これは、ユーザーが各サーバーの構成を自分の設定や mcp.json にハードコーディングする代替手段となります。

このAPIに興味がある場合は、サンプルAPI提案のIssueをチェックしてステータスを確認してください。

MCPツールアノテーション

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

可変行の高さ

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

現時点では簡略化のため、行の高さは対応する装飾範囲の最初の行にのみ設定されることに注意してください。以下の画面録画では、24行目と32行目がデフォルトよりも大きい行の高さでレンダリングされています。

この機能は拡張機能からはまだ利用できませんが、さらなるテストを経て順次リリースされる予定です。

注目すべき修正

  • 244939 - 個人のMicrosoftアカウントが非常に短時間でログアウトしてしまう(数分から数時間)

ありがとうございます

最後になりましたが、VS Code への貢献者の方々に心から感謝いたします。

イシュートラッキング

イシュートラッキングへの貢献

プルリクエスト

vscodeへの貢献

vscode-css-languageserviceへの貢献

vscode-js-debug への貢献

vscode-json-languageservice への貢献

vscode-jupyter への貢献

vscode-mypy への貢献

  • @tdscheper (Tommy Scheper): cwd 設定オプションが ${nearestConfig} の場合、mypy.ini, .mypy.ini, pyproject.toml, setup.cfg のすべてを検索するようにする PR #357

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.