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

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

Update 1.97.1: このアップデートでは、以下のセキュリティの問題に対処しています。

Update 1.97.2: このアップデートでは、以下の問題に対処しています。

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


Visual Studio Code 2025年1月リリースへようこそ。このバージョンには多くのアップデートが含まれており、皆様に気に入っていただけることを願っています。主なハイライトは以下のとおりです。

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

GitHub Copilot

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

設定: github.copilot.nextEditSuggestions.enabled

GitHub Copilotのコード補完はオートコンプリートに優れていますが、ほとんどのコーディング活動が既存のコードの編集であるため、補完が編集の支援にも進化するのは自然な流れです。そこで、新しいプレビュー機能であるCopilot 次の編集候補 (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はコード編集に最適化されており、チャットから直接ワークスペース内の複数のファイルにわたるコード変更を可能にします。

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

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

Screenshot that shows how to accept an individual change from Copilot Edits in the editor. テーマ: GitHub Light Colorblind (Beta) (vscode.devでプレビュー)

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

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

エディターに適用

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

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

    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によって管理されます。リモートインデックスは、大規模プロジェクトでも高品質な結果を迅速に提供できます。また、ユーザーごとではなく、GitHubプロジェクトごとに一度構築するだけで済みます。

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

  • 新しいGitHub Copilot: リモートインデックスを構築コマンドを実行します。

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

  • 最初に表示される@workspace応答の「インデックスを構築」ボタンを選択します。これは、プロジェクトが対象であり、ワークスペースごとに一度しか表示されません。

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

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

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

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

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

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

Git変更コンテキスト変数

ChatまたはEditsのクエリを作成する際に、#changesコンテキスト変数を使用してGitソース管理で変更されたファイルを参照できるようになりました。たとえば、summarize the #changes in my workspaceとプロンプトできます。

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ブログの投稿を参照してください。

アクセシビリティ

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

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

コマンドパレットからヘルプ: 信号サウンドを一覧表示コマンドを実行することで、これらの更新をプレビューできます。

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)、および差分ビューの切り替えのキーボードショートカットも導入しました。

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

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

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

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

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

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

Workbench

コマンドパレットとクイック入力の移動

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

機能

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

拡張機能発行元の信頼

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

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

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

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

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.

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

複合ログ

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

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

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

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

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

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

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

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

今回のイテレーションでは、文字が欠落している検索クエリが期待される結果を表示しないリグレッションを修正しました。たとえば、設定エディターでは、「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

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

前回のマイルストーンで、エディターの検索コントロールに履歴の永続化を導入しました。今回のマイルストーンでは、これを置換入力コントロールにも拡張し、複数のセッションにわたって両方を個別に保持できるようにしました。置換履歴はワークスペースごとに保存され、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: Git Blameエディター装飾を切り替えGit: Git Blameステータスバー項目を切り替え)を使用して、Git blame情報を簡単に切り替えるコマンドも追加しました。

GitHubリポジトリ

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

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

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

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

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

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

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

ノートブック

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

ノートブックエディターは、設定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ツールが進行状況を報告するために使用します。ターミナルタブで進行状況を表示するには、terminal.integrated.tabs.titleまたはterminal.integrated.tabs.description${progress}を追加します。これは通常、進行状況スピナーまたはパーセンテージとして表示されます。

切り捨てられたコマンドのスティッキースクロール

ターミナルのスティッキースクロール(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.jsonlaunch.jsonで使用して、カーソル位置の列番号を参照できるようになりました。VS Codeドキュメントの変数の全リストを参照してください。

デバッグ

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

変数と監視ビューでビュー内検索(⌥⌘F (Windows, Linux Ctrl+Alt+F))を使用して、名前だけでなく変数と式の値でフィルタリングできるようになりました。

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

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

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

JavaScriptデバッガー

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

言語

TypeScript 5.7.3

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

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

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

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構文ハイライト文法

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

リモート開発

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

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

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

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

拡張機能への貢献

Microsoftアカウント

MicrosoftアカウントがMSALを使用するように (WindowsでのWAMサポート付き)

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

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

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

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

この新しいフローで問題が見つかった場合はお知らせください。重大な問題が見つかり、以前のMicrosoft認証動作に戻す必要がある場合は、microsoft-authentication.implementationclassicに設定してVS Codeを再起動)で可能ですが、この設定は長くは利用できないことに注意してください。したがって、MSALフローで問題が発生した場合は、issueを開いてください。

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.

実装へ移動

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

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

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

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

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

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

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のエージェントモードの詳細をご覧ください。

エージェント的コードベース検索 (プレビュー)

クエリに#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ウィンドウのスクリーンショットを添付する(添付 > スクリーンショットウィンドウを選択)

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

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

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

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

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固有のグローバル補完が提案されるようになりました。

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

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

拡張機能の作成

ドキュメント貼り付けAPI

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

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

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

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

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

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

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

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

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

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

提案されたAPI

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

これでターミナル補完プロバイダーを登録できるようになりました。このGitHubイシューでご意見をお聞かせください。

これの例は、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への貢献者