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

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

アップデート 1.97.1: このアップデートには、これらのセキュリティ問題への対応が含まれています。

アップデート 1.97.2: このアップデートには、これらの問題への対応が含まれています。

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


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

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

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 ユーザーの場合、組織の管理者によって Copilot "エディタープレビュー機能" の使用をオプトインする必要があります。さらに、エディターでgithub.copilot.nextEditSuggestions.enabled を設定する必要があります。

Copilot Edits

Copilot Edits の一般提供開始

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

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

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

エディターで Copilot Edits から個々の変更を承認する方法を示すスクリーンショット。 テーマ: 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 によって管理されます。リモートインデックスは、大規模なプロジェクトでも高品質の結果を迅速に提供できます。また、ユーザーごとに1回ではなく、GitHub プロジェクトごとに1回だけ構築する必要があります。

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

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

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

  • 最初に表示される @workspace 応答で [インデックスの構築] ボタンを選択します。これは、プロジェクトが対象であり、ワークスペースごとに1回だけ表示されます。

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

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

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

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

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

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

Git 変更コンテキスト変数

チャットまたは編集のクエリを作成するときに、#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 ブログの投稿をご覧ください。

アクセシビリティ

強化されたアクセシビリティサウンド

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

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

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

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

改善されたスクリーンリーダー通知

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

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

以前は、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 リリースに更新すると、現在インストールされている拡張機能のパブリッシャーは自動的に信頼されます。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.

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

複合ログ

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

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

複合ログをエディターまたは新しい 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 でプレビュー)

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

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

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.editorDecoration.enabled 設定を使用して Git blame エディターの装飾を有効にしてください。

コマンドパレットまたはキーバインディングを使用して 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 の課題とプルリクエストの参照は、タイムライン、ソース管理グラフ、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デバッガー

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

言語

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 文法を取得しています。

リモート開発

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

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

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

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

拡張機能への貢献

Microsoft アカウント

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

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

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

この作業の際立った機能の 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.

実装へ移動

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 Pull Requests and Issues

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

  • 今日からの相対的な時間範囲 (${today-7d}) を指定する変数を含むグローバルなプルリクエストクエリ。
  • :<絵文字名>: スタイルの絵文字がコメントでサポートされるようになりました。
  • 未チェックアウトのプルリクエストの説明を開くと、すべての期限切れでないコメントがコメントパネルに表示されます。

その他のハイライトについては、拡張機能の 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 Free ユーザーでは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 のプレリリース版で、エンドツーエンドの Vision サポートを導入しています。これにより、画像を添付して 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/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 固有のグローバル補完が提案されるようになりました。

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 Issue でご意見をお聞かせください。

この例は、terminal.integrated.suggest.enabled で有効にしたときに補完を提供するターミナル提案拡張機能にあります。

ターミナルシェルタイプ

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

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

エンジニアリング

整理整頓

毎年恒例の12月の整理整頓の一環として、すべてのリポジトリで GitHub の Issue とプルリクエストの整理に注力しました。今年は、Issue とプルリクエストを合計3,821件削減し、バックログが適切かつ管理可能な状態であることを確認しました。

Issue クリーンアップガイドに従い、古い、重複した、もはや関連性のない Issue をレビューして優先順位付けしました。これにより、効率的な開発ワークフローを維持し、ユーザーのために 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 の Issue をご覧ください。

注目すべき修正点

  • 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への貢献者

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