VS Codeのエージェントモードを拡張するには、を試してください!

2025年1月 (バージョン 1.97)

更新 1.97.1: この更新により、これらのセキュリティ問題に対処しました。

更新 1.97.2: この更新により、これらの問題に対処しました。

ダウンロード: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap


Visual Studio Code 2025年1月リリースへようこそ。今回のバージョンでは、皆さんに気に入っていただけるであろう多くの更新があります。主なハイライトは以下の通りです。

これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com更新にアクセスしてください。 Insiders: 新しい機能をできるだけ早く試したいですか? 夜間ビルドのInsidersをダウンロードして、最新の更新が利用可能になったらすぐに試すことができます。

GitHub Copilot

Copilot 次回の編集候補 (プレビュー)

設定: github.copilot.nextEditSuggestions.enabled

GitHub Copilot のコード補完はオートコンプリートに優れていますが、ほとんどのコーディングアクティビティは既存のコードの編集であるため、補完が編集にも役立つのは自然な進化です。そこで、新しいプレビュー機能であるCopilot Next Edit Suggestions (Copilot NES) をリリースできることを嬉しく思います。

行っている編集に基づいて、Copilot NES は次に作成したい編集の場所と、その編集がどのようなものであるべきかを予測します。NES は現在の作業に関連する将来の変更を提案し、Tab キーを押すだけで提案をすばやく移動して受け入れることができます。

次の例では、変数を変更すると、ファイルの下の方で編集候補がトリガーされることに注目してください。Tab キーを使用するだけで、提案をナビゲートして受け入れることができます。ガターインジケーターは、次の編集候補に案内します。

Video showing Copilot NES suggesting code edits at another location. The gutter shows an arrow indicating the relative position of the edit.

VS Code の設定github.copilot.nextEditSuggestions.enabledで Copilot NES を有効にします。

編集のサイズと種類に応じて、提案のレンダリングは、並列から現在の行の下に動的に変更される場合があります。editor.inlineSuggest.edits.renderSideBySide設定を構成して、常に現在の行の下に提案をレンダリングします。

Copilot NES は急速に進化しており、弊社のリポジトリでのフィードバックをお待ちしております。NES エクスペリエンスを拡大するにつれて、詳細とシナリオについては、Copilot NES の完全なドキュメントをお読みください。

: Copilot Business または Enterprise ユーザーの場合、組織の管理者は、エディターでgithub.copilot.nextEditSuggestions.enabledを設定することに加えて、Copilot の「エディタープレビュー機能」の使用をオプトインする必要があります。

Copilot Edits

Copilot Edits の一般提供

VS Code 10月リリースで Copilot Edits のプレビューを発表しました。本日、Copilot Edits の一般提供を発表します! Copilot Edits はコード編集に最適化されており、チャットから直接、ワークスペース内の複数のファイルにわたるコード変更を行うことができます。

改善されたエディターコントロール

編集を個別に承認および破棄できるようになり、より詳細な制御が可能になりました。また、サイドバイサイドビューに切り替えても、編集のエディターコントロールが表示されたままになるようになりました。これは、より大きな変更を理解するのに役立ちます。

エディターで Copilot Edits から個々の変更を承認する方法を示すスクリーンショット。 テーマ: GitHub Light Colorblind (ベータ版) (vscode.devでプレビュー)

最後に、設定可能なタイムアウト後に編集候補を自動的に承認する新しい設定を追加しました。その設定はchat.editing.autoAcceptDelayで、変更が承認されるまでの秒数を指定します。カウントダウンは、承認ボタンを操作するか、変更の確認を開始すると停止します。これは、週末に一気見する人なら誰でもおなじみでしょう。

テーマ: GitHub Light Colorblind (ベータ版) (vscode.devでプレビュー)

エディターで適用

Copilot Chat では、コードブロックのツールバーにあるApply to Editorアクションを使用して、任意のコードブロックをワークスペース内のファイルに適用できます。このエクスペリエンスにいくつかの改善を行いました。

  • アクションのホバーに、コードブロックが生成されたファイルが表示されるようになりました。

    Screenshot that shows the Apply Code Block hover text, indicating the target file name.

  • コードブロックが既存しないファイルのものである場合、ファイルの作成場所を尋ねられます。これは、Copilot が提案するファイルパス、無題のエディター、または現在アクティブなエディターのいずれかになります。

  • 変更が計算されて適用されると、Copilot Edits と同じフローと UI が使用されます。各変更を個別に確認、改善、または破棄できます。

時間的コンテキスト

時間的コンテキストは、最近操作したファイルについて言語モデルに知らせることで、コードの編集や生成に役立ちます。その有効性を実験し、測定していますが、Inline Chat の場合はgithub.copilot.chat.editor.temporalContext.enabled、Copilot Edits の場合はgithub.copilot.chat.edits.temporalContext.enabledで手動で有効にすることもできます。

ワークスペースインデックスの状態UI

@workspaceまたは#codebaseを使用してプロジェクトのコードについてCopilotに質問すると、インデックスを使用してコードベースを迅速かつ正確に検索し、関連するコードスニペットをコンテキストとして含めます。このインデックスは、GitHubが管理するリモートインデックスローカルに保存されたインデックス、またはリモートインデックスを使用できない大規模プロジェクトのフォールバックとして使用される基本インデックスのいずれかになります。

今回のイテレーションでは、Copilotが使用しているインデックスの種類や、再インデックス化されているファイルの数などの関連情報を示す新しいワークスペースインデックスをステータスバーの言語ステータスインジケーターに追加しました。これを確認するには、VS Codeのステータスバーにある{}アイコンを選択するだけです。

Screenshot that shows the status of the Copilot workspace indexing in the Status Bar.

ワークスペースインデックスの種類とそれらを切り替える方法の詳細については、Copilotワークスペースドキュメントをご覧ください。

リモートワークスペースインデックスの構築

リモートワークスペースインデックスはGitHubによって管理されます。リモートインデックスは、大規模なプロジェクトでも高品質な結果を迅速に提供できます。また、ユーザーごとに1回ではなく、GitHubプロジェクトごとに1回だけ構築すれば済みます。

これらの利点を踏まえ、プロジェクトをリモートインデックスにアップグレードするためのいくつかの新しい方法を追加しました。

  • 新しいGitHub Copilot: Build Remote Indexコマンドを実行します。

  • ワークスペースインデックスの状態UIで「Build Index」ボタンを選択します。これは、プロジェクトがリモートインデックス化の対象である場合にのみ表示されます。

  • 最初に表示される@workspaceの応答で「Build Index」ボタンを選択します。これは、プロジェクトが対象であり、ワークスペースごとに1回のみ表示されます。

GitHubリモートを持つプロジェクトのみが現在リモートインデックスを使用できることに注意してください。リモートインデックスの構築には時間がかかる場合があり、特にプロジェクトが大きい場合はそうです。ワークスペースインデックスの状態UIでリモートインデックス化が完了したかどうかを確認してください。

ワークスペース検索の改善

@workspace#codebaseのコード検索も引き続き最適化しました。ハイライトは以下のとおりです。

  • リモートインデックスを使用している場合のローカルで変更されたファイルの追跡と処理を改善しました。

  • ローカルインデックス内の変更されたファイルのバックグラウンド更新を追加したため、@workspaceの質問が更新を待つ必要がなくなりました。

  • 大規模プロジェクト向けに基本インデックスを最適化しました。

Git変更コンテキスト変数

チャットまたは編集のクエリを作成するときに、#changesコンテキスト変数を使用してGitソース管理で変更されたファイルを参照できるようになりました。たとえば、my workspaceの#changesを要約してくださいとプロンプトに表示できます。

Screenshot of a Copilot chat response, which lists the modified files and changes when prompting for '#changes'.

モデルの可用性

Copilotを使用する際に、より多くのモデルから選択できるようになりました。以下のモデルは、Visual Studio Codeとgithub.comチャットのモデルピッカーで利用可能になりました。

  • OpenAIのo3-mini: コーディングワークフローにOpenAIの最新の推論モデルが段階的に展開されており、GitHub Copilot Pro、Business、Enterpriseユーザーが利用できるようになります。o3-miniモデルの利用可能性については、GitHubブログ記事で詳しく説明されています。

  • Gemini 2.0 Flash: Googleの最新モデルは、コードの提案、ドキュメント作成、コードの解説において高い能力を示しています。このモデルは、Copilot Freeを含むすべてのGitHub Copilotのお客様が利用できるようになりました。Gemini 2.0 Flashモデルの利用可能性については、GitHubブログ記事で詳しく説明されています。

アクセシビリティ

アクセシビリティサウンドの強化

ユーザーからのフィードバックに基づいて、いくつかのアクセシビリティサウンドを改善し、明瞭さと区別を向上させました。以下のサウンドが更新されました。

これらの更新は、コマンドパレットからHelp: List Signal Soundsコマンドを実行してプレビューできます。

Copilot Edits アクセシビリティヘルプダイアログ

スクリーンリーダーのユーザーは、入力ボックス内で⌥F1 (Windows Alt+F1, Linux Shift+Alt+F1)を呼び出すことで、Copilot Edits との対話に関するガイダンスにアクセスできるようになりました。

さらに、エディターに保留中の Copilot 編集が含まれている場合、この状態がエディターのヘルプダイアログに表示されるようになりました。また、次へ⌥F5 (Windows, Linux Alt+F5)/前へ⇧⌥F5 (Windows, Linux Shift+Alt+F5)、承認⌘Y (Windows, Linux Ctrl+Y)、破棄⌘N (Windows, Linux Ctrl+N)、diff ビューの切り替えのキーボードショートカットも導入されました。

ソース管理アクセシビリティヘルプダイアログ

ソース管理ビューにフォーカスがある状態でShow Accessibility Helpコマンドを呼び出すと、ソース管理アクセシビリティヘルプダイアログが開き、スクリーンリーダーユーザーにとって重要な情報が提供されます。このダイアログには、現在のソース管理状態の概要と、ビューおよびその操作方法に関する一般情報が含まれています。

スクリーンリーダー通知の改善

スクリーンリーダーが検出されると、関連する通知に詳細情報へのリンクが含まれるようになり、追加のコンテキストとリソースが提供されます。

テキスト読み上げでコードブロックを無視する

以前は、Copilot の応答をテキスト読み上げで読み上げると、コードブロックも読み上げられました。accessibility.voice.ignoreCodeBlocks設定を使用すると、テキスト読み上げセッションからコードブロックを無視できます。

ワークベンチ

コマンドパレットとクイック入力を移動する

コマンドパレットやその他のクイック入力を、ウィンドウの上部に固定する代わりに、新しい位置に移動できるようになりました。

機能

  • コマンドパレットやその他のクイック入力を、中央と上部にスナップするようにドラッグアンドドロップできます。
  • リロードしても位置が保持されるため、クイック入力の新しい永続的な位置を設定できます。
  • カスタマイズレイアウトピッカーでプリセット位置を利用できます。

拡張機能発行者の信頼

初めて発行元から拡張機能をインストールする際に、その拡張機能発行元の信頼性を評価するためのダイアログが表示されるようになりました。この機能は、信頼できるソースからの拡張機能のみをインストールすることを保証し、開発環境のセキュリティを強化するのに役立ちます。

Screenshot that shows the Trust Publisher dialog that is shown when a user installs an extension.

拡張機能パックまたは依存関係を持つ拡張機能をインストールする場合、発行元を信頼すると、一緒にインストールされる拡張機能の発行元も暗黙的に信頼されます。

VS Code 1.97 リリースに更新すると、現在インストールされている拡張機能の発行元が自動的に信頼されます。信頼できる拡張機能発行元は、Extensions: Manage Trusted Extensions Publishers コマンドで管理できます。このコマンドを使用すると、以前に信頼した発行元の信頼をリセットまたは取り消すことができます。

Screenshot that shows the Quick Pick list of trusted publishers, enabling unchecking publishers to make them untrusted.

: VS Code ウィンドウが開いていない状態で CLI (code-insiders --install-extension pub.name) から拡張機能をインストールした場合、拡張機能はインストールされますが、発行元は信頼リストに追加されません。

詳細については、詳細を学ぶリンクをご覧ください。

出力パネルのフィルタリング

出力パネルの内容をフィルタリングできるようになり、特に大量のログデータを扱う場合に、ログの管理と分析を大幅に改善できます。

Screenshot of the Output panel, highlighting the filtering dropdown.

  • ログレベルでフィルタリング: ログを重要度レベル (例: エラー、警告、情報) に基づいてフィルタリングします。これにより、最も重要な問題に最初に集中できます。
  • カテゴリでフィルタリング: 特定のカテゴリでログを絞り込み、特定のソースまたはコンポーネントからのログを分離できます。カテゴリはログデータから自動的に取得されます。
  • テキストでフィルタリング: ログ内で特定のテキストを検索して、関連するエントリをすばやく見つけます。

複合ログ

情報が複数のログにまたがっていて、全体像を把握するためにそれらを一緒に表示する必要がある場合があります。これで、単一の複合ログビューで複数のログを表示できます。これを新しいフィルタリング機能と組み合わせることで、ログの分析がはるかに改善されました!

カスタム複合ログを作成するには、出力パネルのオーバーフローメニューにあるCreate Compound Log...アクションを使用します。

複合ログをエディターまたは新しいVS Codeウィンドウで開いて、柔軟な監視と分析を行うこともできます。この機能は、関連するログの統合ビューを提供することで、問題の診断能力を向上させます。

注: 複合ログビューは、現在のところVS Codeの再起動後も保持されません。

ログのエクスポートとインポート

出力ビューのオーバーフローメニューのアクションを使用して、ログをエクスポートおよびインポートできるようになりました。この機能により、ログの共有とレビューが容易になり、コラボレーションとログ管理が向上します。

ログをエクスポートまたはインポートするには、出力パネルのオーバーフローメニューにある対応するExport LogsまたはImport Logアクションを選択します。

設定エディターの検索修正

今回のイテレーションでは、欠落した文字を含む検索クエリが期待される結果を表示しないというリグレッションを修正しました。たとえば、設定エディターでは、「editor formonpast」で検索してもeditor.formatOnPaste設定が見つかりませんでした。

また、設定エディターが狭いエディターグループにある場合でも、検索中に目次を表示する問題を修正しました。

Screenshot of a narrow-width Settings editor, with a search for 'edtor cursstyle' that shows the 'editor.cursorStyle' setting and does not reveal the settings table of contents.

テーマ: Light Pink (vscode.devでプレビュー)

拡張機能フィルターの強化

利用可能な更新がある拡張機能を追跡したり、最近更新された拡張機能を見つけたりするのに役立つように、拡張機能ビューに新しい2つのフィルターオプションが追加されました: @outdated@recentlyUpdated

Screenshot of the filtering options in the Extension view, highlighting the 'outdated' and 'recentlyUpdated' options.

SVG画像プレビューのサポート

組み込みの画像プレビューは、SVGファイルのプレビューを基本サポートするようになりました。

Screenshot that shows the default preview of an SVG image in VS Code.

より高度なSVGプレビュー拡張機能については、Visual Studio Marketplaceをご覧ください。

CLIからワークスペースからルートフォルダーを削除する

以前は、--addコマンドラインオプションを使用して、ルートフォルダーをマルチルートワークスペースに追加できました。

新しい--removeコマンドラインオプションを使用して、マルチルートワークスペースからルートフォルダーを削除する機能も追加しました。

code --remove /path/to/rootfolder

エディター

検索と置換の履歴を保持

前回のマイルストーンで、エディターの検索コントロールに履歴の永続化を導入しました。今回のマイルストーンでは、これを置換入力コントロールにも拡張し、複数のセッションにわたって両方を個別に保持できるようにしました。置換履歴はワークスペースごとに保存され、editor.find.replaceHistory設定で無効にできます。

コメント

未送信コメントを閉じる際の確認

未送信のコメントがあるコメントコントロールをescなどで閉じようとすると、確認ダイアログが表示されるようになりました。この確認は、設定comments.thread.confirmOnCollapseで無効にできます。

コメントエディターでのクイックアクション

コメントエディターからクイックアクションを使用できます。

Screenshot that shows Quick actions in the Comments editor.

ソース管理

Git blame情報

今回のマイルストーンでは、エディターとステータスバーにGit blame情報を表示する機能を引き続き洗練させました。また、エディターのデコレーションやステータスバーの項目にホバーしたときに表示される情報も改善しました。

Screenshot that shows Git blame information when hovering over the git blame item in the Status Bar.

Git blameステータスバー項目はデフォルトで有効になっており、git.blame.statusBarItem.enabled設定を使用して無効にすることができます。Git blameエディターのデコレーションは、git.blame.editorDecoration.enabled設定で有効にします。

また、コマンドパレットやキーバインドを使用してGit blame情報を簡単に切り替えるコマンドも追加しました: Git: Toggle Git Blame Editor DecorationGit: Toggle Git Blame Status Bar Item

GitHubリポジトリ

GitHubでホストされているリポジトリ向けに、タイムラインのコンテキストメニューとホバー、ソース管理グラフのコンテキストメニューとホバー、Git blameエディターの装飾とステータスバーの項目ホバーに、新しいコマンドOpen on GitHubを追加しました。

Screenshot of the Source Control history item hover, highlighting the Open on GitHub link.

GitHubのissueとプルリクエストの参照は、タイムライン、ソース管理グラフ、Git blameエディターの装飾とステータスバーの項目ホバーでリンクとしてレンダリングされるため、ブラウザで簡単に開くことができます。

最後に、タイムライン、ソース管理グラフ、Git blameエディターの装飾とステータスバーの項目ホバーにGitHubのアバターも追加しました。github.showAvatar設定を使用してGitHubのアバターのレンダリングを無効にできます。

ソース管理グラフアクション

ソース管理グラフビューの機能を拡張し、履歴項目参照 (例: ブランチタグ) にスコープを設定したアクションをコンテキストメニューに追加しました。最初に追加されたアクションはCheckoutDelete BranchDelete Tagで、ソース管理グラフビューから直接、ブランチ/タグのチェックアウト、ブランチの削除、タグの削除を簡単に行うことができます。

今後のマイルストーンでさらに多くのアクションを追加する予定です。

ノートブック

セル実行時のインライン値

ノートブックエディタは、notebook.inlineValuesの設定でセル実行後のインライン値表示をサポートするようになりました。有効にすると、セルの実行が成功した後、登録されたInlineValueProviderの結果に従ってインライン値が表示されます。

プロバイダがない場合、フォールバックアプローチは、単純な正規表現マッチングにより、カーネルで見つかった値をセルドキュメントと照合します。より正確な結果を確保するために、言語拡張機能からのプロバイダを使用することをお勧めします。

Screenshot that shows inline values after cell execution in the notebook editor.

Markdown セルのカスタムフォントファミリー

ノートブックエディターは、レンダリングされた Markdown セルにカスタムフォントファミリーを設定できるようになりました。これは、notebook.markup.fontFamily設定で制御できます。空白のままにすると、デフォルトのワークベンチフォントファミリーが使用されます。

Screenshot that shows a custom font for rendered Markdown cells.

ターミナル

合字サポート

この機能は現在安定していると見なされています。前バージョンからの変更点の概要は以下のとおりです。

ConEmuの進捗エスケープシーケンスのサポート

ConEmuによって開拓されたESC ] 9 ; 4エスケープシーケンスが、ターミナルで進捗を報告するようになりました。これはwingetなどの一部のCLIツールで進捗を報告するために使用されます。ターミナルタブで進捗を表示するには、${progress}terminal.integrated.tabs.titleまたはterminal.integrated.tabs.descriptionに追加します。これは通常、進捗スピナーまたはパーセンテージとして表示されます。

切り詰められたコマンドの固定スクロール

ターミナルの固定スクロール (terminal.integrated.stickyScroll.enabled) が、コマンドが末尾に省略記号で切り詰められたときに表示されるようになりました

Screenshot that shows an ellipsis at the end of a command in Sticky Scroll when it is truncated.

最後のターミナルが閉じられたときの動作を構成する

新しいterminal.integrated.hideOnLastClosed設定により、最後のターミナルが閉じられたときにパネルを閉じるかどうかを構成できます。これに加えて、ターミナルが開いていない場合のエクスペリエンスが改善されました。

タスク

列番号変数

新しい${columnNumber}変数は、カーソル位置の列番号を参照するためにtasks.jsonおよびlaunch.jsonで使用できます。VS Codeドキュメントの変数の全リストを参照してください。

デバッグ

値のフィルタリングと検索

変数とウォッチビューでビュー内検索 (⌥⌘F (Windows, Linux Ctrl+Alt+F)) が可能になり、名前だけでなく変数と式の値でフィルタリングできるようになりました。

Screenshot that shows the search control in the Variables view when debugging.

デバッグコンソールでの選択

デバッグコンソールは、より長く信頼性の高いコンテンツ選択をサポートするようになり、コピーアンドペーストが容易になりました。

JavaScriptデバッガー

スクリプトは、デバッガーが現在一時停止しているソースでなくても、コマンドパレットまたはエディターのアクションからDebug: Pretty print for debuggingコマンドを使用して整形出力できるようになりました。

言語

TypeScript 5.7.3

このリリースには、TypeScript 5.7.3リカバリリリースが含まれています。このマイナーアップデートでは、いくつかのインポートバグと回帰が修正されています。

Markdown プレビューから画像を右クリックして開く

Markdown プレビューでワークスペースの画像を右クリックし、Open Image を選択して新しいエディターで開くことができるようになりました。

Screenshot that shows the context menu option to open an image in the Markdown preview.

これは、現在のワークスペースの一部であるすべての画像でサポートされています。

VS Codeの組み込みMarkdown機能は、ファイルや画像へのローカルリンクの自動検証をサポートしています。これは、名前が変更されたヘッダーやディスク上に存在しなくなったファイルへのリンクなど、一般的な間違いを検出するのに非常に役立ちます。

この機能を見つけやすくするために、リンク検証用の新しい言語ステータス項目を追加しました。

Screenshot that shows the Markdown link validation language status item.

Markdownファイルを開いた状態で、ステータスバーの{}を選択してリンク検証ステータスを表示します。ステータス項目を使用して、リンク検証をすばやくオン/オフに切り替えることもできます。

新しいRuby構文強調表示文法

古い、メンテナンスされていないRuby文法であるtextmate/ruby.tmbundleから移行し、現在はShopify/ruby-lspからRuby文法を取得しています。

リモート開発

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

主なハイライトは次のとおりです。

  • Linuxレガシーサーバーへの接続パスの移行
  • SSHチャット参加者の改善
  • SSH構成の改善
  • SSHの既定のリモート拡張機能

これらの機能の詳細については、リモート開発リリースノートをご覧ください。

拡張機能への貢献

Microsoft アカウント

Microsoft アカウントで MSAL (Windowsでは WAM をサポート) を使用するようになりました

注: 先月展開された Microsoft の MSAL ベースの認証は、重大なバグのためロールバックする必要がありました。このバグは修正され、展開を続行しています。

Microsoft 認証の強力なセキュリティベースラインを確保するため、Microsoft アカウント拡張機能でMicrosoft Authentication Libraryを採用しました。

この作業における際立った機能の1つは、WAM (Web Account Manager...別名Broker) の統合です。簡単に言えば、Microsoft 認証フローのためにブラウザーにアクセスする代わりに、OSに直接アクセスするようになりました。これは Microsoft 認証セッションを取得する推奨される方法です。さらに、OSに既にログインしているアカウントを利用できるため、高速です。

Screenshot that shows an authentication popup that the OS shows over VS Code.

この新しいフローで問題が発生した場合はお知らせください。重大な問題が発生し、以前の Microsoft 認証動作に戻す必要がある場合は、microsoft-authentication.implementation (classicに設定し、VS Codeを再起動) で行うことができますが、この設定は長くは存在しないことに注意してください。したがって、MSALフローで問題が発生している場合は、イシューをオープンしてください。

Python

ターミナルからネイティブREPLを起動する

ターミナルのREPLからVS CodeネイティブREPLを起動できるようになりました。python.terminal.shellIntegration.enabledtrueに設定すると、ターミナルのPython REPLにクリック可能なリンクが表示され、ターミナルから直接VS CodeネイティブREPLを開くことができます。

設定なしデバッグ

新しい設定なしデバッグ機能の一部として、ターミナルから直接、Pythonスクリプトまたはモジュールをセットアップなしでデバッグできるようになりました!機能に関するすべての詳細とトラブルシューティングのヒントについては、Wikiページをご覧ください。

テスト検出のキャンセル

テストエクスプローラーUIからテスト検出をトリガーすると、現在進行中のテスト検出呼び出しをキャンセルできるようになりました。検出中に更新ボタンの代わりに表示されるキャンセルボタンを使用します。

Screenshot that shows the Test Explorer, highlighting the Cancel button to cancel the test discovery.

実装へ移動

PylanceGo to Implementationをサポートするようになり、関数やメソッドの利用箇所から直接、その実装にすばやく移動できるようになりました。これは、継承されたクラスを扱う場合に特に便利な機能です。

Screenshot that shows the Go to Implementation displayed via the context menu

AIコードアクション: シンボルの生成 (実験的)

Pylance と Copilot を使用してシンボルを生成するための新しい実験的な AI コードアクションがあります。試すには、次の設定を有効にします。

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

そして、新しいシンボル(たとえば、クラスや関数)を定義したら、Generate Symbol with Copilot コードアクションを選択し、Copilot に実装を任せることができます!必要に応じて、Pylance のMove Symbol コードアクションを活用して、別のファイルに移動することもできます。

GitHubプルリクエストとイシュー

GitHubプルリクエスト拡張機能にはさらなる進歩があり、プルリクエストやイシューの作業、作成、管理が可能になります。新機能は次のとおりです。

  • 今日の相対的な期間を指定する変数 (${today-7d}) を使用したグローバルなプルリクエストクエリ。
  • :<emoji-name>:形式の絵文字がコメントでサポートされるようになりました。
  • チェックアウトされていないプルリクエストの説明を開くと、古くなっていないすべてのコメントがコメントパネルに表示されます。

その他のハイライトについては、拡張機能の0.104.0リリースの変更ログをご覧ください。

プレビュー機能

エージェントモード (実験的)

Copilot Edits の新しいエージェントモードの開発を進めています。エージェントモードでは、Copilot はワークスペース内の関連するコンテキストを自動的に検索し、ファイルを編集し、エラーをチェックし、ターミナルコマンド (許可を得て) を実行して、タスクをエンドツーエンドで完了することができます。

Screenshot that shows agent mode in the Copilot Edits view.

Copilot Edits ビューのドロップダウンで、数か月間利用可能だった現在の編集モードとエージェントモードを切り替えることができます。ドロップダウンを表示するには、chat.agent.enabled設定を有効にします。エージェントモードは、本日よりVS Code Insidersで利用開始できます。VS Code Stable ユーザーには段階的に展開されます。Stable で設定が表示されない場合は、まだ有効になっていません。

Screenshot of the agent mode setting in the Settings editor.

エージェントモードでは、Copilot は自律的に実行されますが、現在のワークスペース内のファイルのみを編集できます。ターミナルコマンドを実行したい場合は、そのコマンドを表示し、続行する前にレビューして続行を選択するまで待機します。

: エージェントモードでは Copilot Edits が多くのチャットリクエストを使用する可能性があるため、定期的に一時停止し、続行するかどうかを尋ねます。これはchat.agent.maxRequestsでカスタマイズできます。これは Copilot 有料ユーザーの場合はデフォルトで 15、Copilot 無料ユーザーの場合は 5 です。

VS CodeドキュメントのCopilot Editsにおけるエージェントモードの詳細をご覧ください。

Agentic codebase search (プレビュー)

クエリに#codebaseを追加すると、Copilot Editsはタスクに関連するファイルを検出します。ファイルやテキスト検索、Gitリポジトリの状態、ディレクトリ読み取りなどの追加ツールを使用して、関連ファイルを検出する実験的なサポートを追加しました。以前は、#codebaseはセマンティック検索のみを実行していました。

github.copilot.chat.edits.codesearch.enabledで有効にできます。フィードバックがあればぜひお寄せください

VS Code Insiders の Copilot Vision (プレビュー)

VS Code Insiders の GitHub Copilot Chat のプレリリース版で、エンドツーエンドのビジョンサポートを導入しています。これにより、画像を添付して Copilot Chat プロンプトで画像と対話できます。たとえば、デバッグ中にエラーに遭遇した場合、VS Code のスクリーンショットをすばやく添付して Copilot に問題の解決を依頼できます。

Screenshot that shows an attached image in a Copilot Chat prompt. Hovering over the image shows a preview of it.

画像を添付する方法はいくつかあります。

  • OS またはエクスプローラービューから画像をドラッグアンドドロップ
  • クリップボードから画像を貼り付け
  • VS Code ウィンドウのスクリーンショットを添付 (Attach > Screenshot Window を選択)

選択したモデルが現在画像を処理する機能を持っていない場合、警告が表示されます。現在サポートされているモデルはGPT 4oのみです。現在、サポートされている画像タイプはJPEG/JPGPNGGIFWEBPです。

再利用可能なプロンプト (実験的)

この機能を使用すると、再利用可能なプロンプトを構築、保存、共有できます。プロンプトファイルは、Copilot Chat でプロンプトを作成する際に使用されるのと同じ形式に従う.prompt.md Markdown ファイルであり、他のファイルや他のプロンプトにリンクすることもできます。タスク固有のガイダンス、コード生成の補助、または後で使用するための完全なプロンプトを添付できます。

プロンプトファイルを有効にするには、chat.promptFilestrueに設定するか、{ "/path/to/folder": boolean }表記を使用して別のパスを指定します。他のパスが指定されていない場合、.github/promptsフォルダーがデフォルトでプロンプトファイル (*.prompt.md) を見つけるために使用されます。

VS Codeのドキュメントでプロンプトファイルについて詳しく学ぶことができます。

Linuxのカスタムタイトルバー (実験的)

今回のマイルストーンでは、Linuxユーザーの一部を対象にカスタムタイトルバーを有効にする実験を開始します。

Screenshot that shows the custom VS Code title bar on Linux.

実験に参加していない場合でも、window.titleBarStylecustomに手動で設定して試すことができます。

カスタムタイトルコンテキストメニューから、またはwindow.titleBarStylenativeに設定することで、いつでもネイティブのタイトル装飾に戻すことができます。

Screenshot that shows the content menu option to disable the custom title bar on Linux.

TypeScript 5.8ベータ版のサポート

このリリースには、TypeScript 5.8ベータ版のサポートが含まれています。このリリースの詳細については、TypeScript 5.8ブログ記事をご覧ください。

TypeScript 5.8のプレビュービルドの使用を開始するには、TypeScript Nightly拡張機能をインストールしてください。フィードバックを共有し、TypeScript 5.8でバグに遭遇した場合はお知らせください。

より多くのシェルに対応したターミナル補完

前回のバージョンで導入された新しい提案されたAPIに基づいた一般的なターミナル補完を反復処理しました。terminal.integrated.suggest.enabledで有効にすると、新しい補完が以前のPowerShellの組み込みプロバイダーを置き換えますが、terminal.integrated.suggest.providersでカスタマイズできるようになりました。

今回のリリースの主な更新は以下のとおりです。

  • エディターのサジェストウィジェットと連携するよう、ウィジェットのスタイルと設定を強化しました。
  • 設定可能なステータスバー (terminal.integrated.suggest.showStatusBar) は、コンテキストに応じたアクションと情報を提供します。
  • codecode-insiderscdlsrmechomkdirrmdirtouchなど、コマンドの引数認識を改善しました。
  • コマンドまたはリソースのパスを詳細情報として表示します。
  • ...../../などのディレクトリナビゲーションショートカットのサポートを追加しました。
  • スクリーンリーダーの使用を有効にしました。
  • $PATHから取得されたエントリは、実行可能ファイルの場合にのみ表示されるようになりました。Windowsにはファイルメタデータに実行可能ビットの概念がないため、拡張子のリストはterminal.integrated.suggest.windowsExecutableExtensionsで構成できます。これらは、今後の提案APIを使用して利用可能な場合は実際のシェル環境も使用するようになりました。
  • 詳細の切り替え ( ⌃Space (Windows, Linux Ctrl+Space) ) と、提案の詳細フォーカスの切り替え ( ⌃⌥Space (Windows, Linux Ctrl+Alt+Space) ) のキーボードサポートが強化されました。
  • サジェストは常にすべてのタイプに表示されるようになり、エディターでのクイックサジェストの動作に近づきました。
  • Get-ChildItemWrite-HostなどのPowerShell固有のグローバル補完が提案されるようになりました。

Tree-Sitter ベースの TypeScript 構文ハイライト

多くの Textmate 文法はもはやメンテナンスされていないため、構文ハイライトに Tree-Sitter を使用することを検討しています。まず TypeScript から始め、チームがそれをセルフホストしてフィードバックを提供できるようにしました。editor.experimental.preferTreeSitter設定を使用して、その初期プレビューを試すことができます。

拡張機能の作成

ドキュメント貼り付けAPI

ドキュメント貼り付けAPIを使用すると、拡張機能はテキストドキュメントのコピー/貼り付け操作にフックできます。このAPIを使用すると、拡張機能は次のことができます。

  • コピー時に、データをクリップボードに書き込みます。これには、貼り付け時に取得できるメタデータの書き込みが含まれます。

  • 貼り付け時に、貼り付けを適用するカスタム編集を生成します。これにより、貼り付けられるテキストコンテンツが変更されたり、新しいファイルの作成など、より複雑なワークスペース編集が行われたりする可能性があります。

  • コンテンツを貼り付ける複数の方法を提供します。ユーザーは、貼り付けコントロールまたはeditor.pasteAs.preferences設定を使用して、コンテンツの貼り付け方法を選択できます。

VS Codeは、JavaScriptおよびTypeScriptの貼り付け時のインポートの更新や、URLを貼り付けたときのMarkdownリンクの自動作成など、機能を実装するためにドキュメント貼り付けAPIを使用します。

ドキュメント貼り付けAPIの使用を開始するには、ドキュメント貼り付け拡張機能のサンプルをご覧ください。より複雑な例としては、組み込みのMarkdown拡張機能が画像ファイルの貼り付けを実装して、画像をMarkdownドキュメントに挿入する方法をご覧ください。

ファイルopenLabelがシンプルなファイルピッカーに表示される

OpenDialogOptionsopenLabelプロパティがシンプルなファイルピッカーでサポートされるようになりました (以前はシステムファイルピッカーのみでサポートされていました)。これにより、ファイルピッカーのボタンにカスタムラベルを提供できます。

ファイルレベルのコメントAPI

コメントAPIは、ファイルレベルのコメントを作成および表示することをサポートしています。ファイルレベルのコメントは、ファイルの最初の行の前に、ファイルの上部に表示されます。ファイル内の特定の行または範囲にはアタッチされません。ファイルレベルのコメントを表示するには、コメントのrangeundefinedに設定します。コメント範囲プロバイダーからファイルレベルのコメントを残すことをサポートするには、CommentingRangeProviderenableFileCommentsプロパティをtrueに設定します。

提案されたAPI

ターミナル補完プロバイダー

ターミナル補完プロバイダーを登録できるようになりました。ご意見はこちらのGitHub issueでお知らせください。

この例は、terminal.integrated.suggest.enabledを介して有効にすると補完を提供する、当社のターミナルサジェスト拡張機能にあります。

ターミナルシェルタイプ

拡張機能は現在アクティブなシェルタイプ情報にアクセスできるようになります。shellTypeフィールドはTerminalStateの一部になります。

このシェルタイプ情報を使用して、必要なシェル固有の操作を実行します。

エンジニアリング

整理整頓

12月に行った年次整理活動の一環として、私たちはすべてのリポジトリにわたるGitHubのイシューとプルリクエストのクリーンアップに注力しました。今年は、イシューとプルリクエストを3,821件純減し、バックログが関連性を保ち、管理しやすい状態であることを確認しました。

イシュークリーンアップガイドに従い、古い、重複した、もはや関連性のないイシューを確認し、トリアージしました。これにより、効率的な開発ワークフローを維持し、ユーザーのためにVisual Studio Codeを改善することに集中できます。

コミュニティの継続的な関与とフィードバックに感謝します。皆様の貢献がVS Codeを日々より良いものにしています!🚀

Chart that shows the trend of the number of open issues over the last years. The chart shows a steep decline each year during December, the housekeeping month.

TypeScriptワークスペースでのファイル監視のリソース最適化

大規模なTypeScriptワークスペース(数千のTypeScriptファイルまたはプロジェクト)でファイル監視がもたらすオーバーヘッドを軽減するために、いくつかの最適化が行われました。特に、このようなワークスペースを開いてウォッチャーを初期化する際に、CPUの急増が見られなくなったり、CPU使用率がすぐに安定したりするはずです。

詳細については、このVS Codeの問題を参照してください。

注目すべき修正点

  • 160325 ctrl+Dが押された後のターミナル起動失敗を抑制する
  • 230438 コードページ1125、別名cp866uのサポート
  • 238577 デフォルトのウィンドウサイズを増やす
  • 197377 launch.jsonまたはtasks.jsonにおけるworkspaceFolder変数置換は、仮想ファイルシステムにURIを使用すべき
  • 229857 focus comment on line実行後、a11yビューが空白になる

ありがとうございます

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

問題追跡

問題追跡への貢献者

プルリクエスト

vscodeへの貢献者

vscode-eslintへの貢献者

vscode-extension-samplesへの貢献

vscode-js-debugへの貢献者

vscode-jupyterへの貢献者

vscode-locへの貢献

vscode-prompt-tsxへの貢献者

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

vscode-pylintへの貢献

vscode-python-debuggerへの貢献者

vscode-ripgrepへの貢献

vscode-testへの貢献

language-server-protocolへの貢献者