コンテンツにスキップ

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


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

これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.comUpdates にアクセスしてください。 Insiders: 新機能をいち早く試したいですか? nightly Insiders ビルドをダウンロードして、最新のアップデートをすぐに試すことができます。

GitHub Copilot

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

設定: setting(github.copilot.nextEditSuggestions.enabled)

GitHub Copilot のコード補完はオートコンプリートに優れていますが、ほとんどのコーディングアクティビティは既存のコードの編集であるため、補完の自然な進化として、編集も支援することが考えられます。そこで、新しいプレビュー機能である Copilot の次の編集候補(Copilot NES) をリリースすることになりました。

Copilot NES は、行っている編集に基づいて、次に行いたい編集の場所と、その編集内容を予測します。NES は現在の作業に関連する将来の変更を提案し、kbstyle(Tab) を使用してすばやく移動し、提案を受け入れることができます。

次の例では、変数を変更すると、ファイルのさらに下にある編集候補がトリガーされることに注目してください。kbstyle(Tab) キーを使用して、候補を移動して受け入れるだけです。gutter インジケーターは、次の編集候補に案内します。

Copilot NES が別の場所でコード編集を提案するビデオ。gutter には、編集の相対的な位置を示す矢印が表示されます。

VS Code の設定 setting(github.copilot.nextEditSuggestions.enabled) を使用して Copilot NES を有効にします。

編集のサイズと種類に基づいて、候補のレンダリングは、サイドバイサイドから現在の行の下に動的に変更される場合があります。setting(editor.inlineSuggest.edits.renderSideBySide:never) 設定を構成して、常に現在の行の下に候補をレンダリングします。

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

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

Copilot Edits

Copilot Edits の一般提供開始

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

エディターコントロールの改善

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

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

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

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

エディターで適用

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

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

    ターゲットファイル名を示す [コードブロックの適用] ホバーテキストを示すスクリーンショット。

  • コードブロックが存在しないファイルの場合、ファイルの作成場所を尋ねられます。これは、Copilot が提案したファイルパス、名前のないエディター、または現在アクティブなエディターにすることができます。
  • 変更が計算されて適用されると、Copilot Edits と同じフローと UI が使用されます。各変更を個別に確認、改善、または破棄できます。

テンポラルコンテキスト

テンポラルコンテキストは、最近操作したファイルに関する言語モデルに通知することで、コードの編集または生成時に役立ちます。効果を実験および測定していますが、インラインチャットの場合は setting(github.copilot.chat.editor.temporalContext.enabled)、Copilot Edits の場合は setting(github.copilot.chat.edits.temporalContext.enabled) を手動で有効にすることもできます。

ワークスペースインデックスのステータス UI

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

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

ステータスバーでの Copilot ワークスペースインデックスのステータスを示すスクリーンショット。

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

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

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

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

  • 新しい GitHub Copilot: リモートインデックスの構築 コマンドを実行します。
  • 最初に表示される @workspace 応答で [インデックスの構築] ボタンを選択します。これは、プロジェクトが対象となる場合にのみ表示され、ワークスペースごとに1 回のみ表示されます。

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

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

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

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

Git の変更コンテキスト変数

チャットまたは Edits のクエリを作成するときに、#changes コンテキスト変数を使用して、Git ソース管理で変更されたファイルを参照できるようになりました。たとえば、ワークスペース内の #changes を要約する ように求めることができます。

Copilot チャットの応答のスクリーンショット。'#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 ブログ投稿 を参照してください。

アクセシビリティ

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

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

  • setting(accessibility.signals.save)
  • setting(accessibility.signals.lineHasFoldedArea)
  • setting(accessibility.signals.terminalQuickFix)
  • setting(accessibility.signals.lineHasInlineSuggestion)

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

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

スクリーンリーダーのユーザーは、以下を呼び出すことで、Copilot Edits との対話に関するガイダンスにアクセスできるようになりました: 入力ボックス内の kb(editor.action.accessibilityHelp)

さらに、エディターに保留中の Copilot 編集が含まれている場合、このステータスがエディターヘルプダイアログに表示されるようになりました。また、次の移動 kb(chatEditor.action.navigateNext)/前の移動 kb(chatEditor.action.navigatePrevious)、承認 kb(chatEditor.action.acceptHunk)、破棄 kb(chatEditor.action.undoHunk)、および差分ビューの切り替え kb(chatEditor.action.diffHunk) のキーボードショートカットも導入しました。

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

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

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

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

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

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

ワークベンチ

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

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

機能:

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

拡張機能の発行者を信頼する

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

ユーザーが拡張機能をインストールするときに表示される [発行者の信頼] ダイアログを示すスクリーンショット。

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

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

信頼できる発行者のクイックピッキングリストを示すスクリーンショット。発行者のチェックを外して信頼できないようにすることができます。

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

詳細については、詳細はこちら リンクにアクセスしてください。

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

出力パネルの内容をフィルタリングできるようになりました。これにより、特に大量のログデータを処理する必要がある場合に、ログの管理と分析が大幅に改善されます。

出力パネルのスクリーンショット。フィルタリングドロップダウンが強調表示されています。

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

複合ログ

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

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

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

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

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

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

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

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

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

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

幅の狭い設定エディターのスクリーンショット。"edtor cursstyle" の検索では、"editor.cursorStyle" 設定が表示され、設定の目次は表示されません。

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

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

拡張機能ビューのフィルタリングオプションのスクリーンショット。"outdated" および "recentlyUpdated" オプションが強調表示されています。

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

組み込みの画像プレビューで、SVG ファイルのプレビューの基本的なサポートが追加されました。

VS Code での SVG 画像のデフォルトプレビューを示すスクリーンショット。

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

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

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

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

code --remove /path/to/rootfolder

エディター

検索と置換履歴の保持

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

コメント

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

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

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

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

コメントエディターのクイックアクションを示すスクリーンショット。

ソース管理

Git blame 情報

このマイルストーンでは、エディターおよびステータスバーに git blame 情報を表示する機能をさらに磨きました。また、エディターの装飾やステータスバーアイテムにホバーしたときに表示される情報も改善しました。

ステータスバーの git blame アイテムにホバーしたときに表示される git blame 情報を示すスクリーンショット。

git blame ステータスバーアイテムはデフォルトで有効になっており、setting(git.blame.statusBarItem.enabled:false) 設定を使用して無効にできます。git blame エディターの装飾を有効にするには、setting(git.blame.editorDecoration.enabled:true) 設定を使用します。

コマンドパレットまたはキーバインディングを使用して git blame 情報を簡単に切り替えるためのコマンドも追加しました: Git: Git Blame エディターの装飾を切り替える および Git: Git Blame ステータスバーアイテムを切り替える

GitHub リポジトリ

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

ソース管理履歴アイテムのホバーを示すスクリーンショット。GitHub で開くリンクが強調表示されています。

GitHub の issue およびプルリクエストの参照は、タイムライン、ソース管理グラフ、および git blame エディターの装飾とステータスバーアイテムのホバーでリンクとして表示され、ブラウザーで簡単に開くことができます。

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

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

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

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

ノートブック

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

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

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

ノートブックエディターでセル実行後のインライン値を示すスクリーンショット。

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

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

レンダリングされた Markdown セルのカスタムフォントを示すスクリーンショット。

ターミナル

リガチャのサポート

この機能は安定版と見なされるようになりました。前回のバージョン以降の変更点の概要は次のとおりです。

  • 有効化設定が terminal.integrated.fontLigatures から setting(terminal.integrated.fontLigatures.enabled) に変更されました。
  • カーソルまたは選択がリガチャ内にある場合、リガチャは一時的に無効になります。
  • setting(terminal.integrated.fontLigatures.featureSettings) を使用して、リガチャセットとバリアントを設定します。これは、内部で font-feature-settings CSS プロパティに渡されます。
  • 使用しているライブラリがリガチャを解析できない場合、setting(terminal.integrated.fontLigatures.fallbackLigatures) を使用してリガチャシーケンスを手動で設定します。

ConEmu の進行状況エスケープシーケンスのサポート

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

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

ターミナルのスティッキースクロール (setting(terminal.integrated.stickyScroll.enabled)) は、コマンドが省略記号で切り捨てられた場合に表示されるようになりました。

コマンドが切り捨てられた場合にスティッキースクロールに省略記号が表示されるスクリーンショット。

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

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

タスク

列番号変数

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

デバッグ

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

変数およびウォッチビューでビュー内を検索 (kb(list.find)) して、変数および式の名前だけでなく値でフィルタリングできるようになりました。

デバッグ時の変数ビューの検索コントロールを示すスクリーンショット。

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

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

JavaScript デバッガー

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

言語

TypeScript 5.7.3

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

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

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

Markdown プレビューで画像を開くコンテキストメニューオプションを示すスクリーンショット。

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

VS Code の組み込み Markdown 機能は、ファイルおよび画像へのローカルリンクを自動的に 検証 することをサポートしています。これは、名前が変更されたヘッダーやディスク上に存在しなくなったファイルへのリンクなど、一般的なミスをキャッチするのに最適な方法です。

この機能を発見しやすくするために、リンク検証の新しい言語ステータスアイテムを追加しました。

Markdown リンク検証言語ステータスアイテムを示すスクリーンショット。

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

新しい Ruby 構文ハイライトグラマー

古い、メンテナンスされていない textmate/ruby.tmbundle からの Ruby グラマーを廃止し、Shopify/ruby-lsp からの Ruby グラマーを使用するようになりました。

リモート開発

リモート開発拡張機能 を使用すると、Dev Container、SSH 経由のリモートマシンまたは Remote Tunnels、または Windows Subsystem for Linux (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 に既にログインしているアカウントを活用できるため、より高速です。

VS Code 上に表示される OS の認証ポップアップを示すスクリーンショット。

この新しいフローに問題がある場合はお知らせください。重大な問題が発生し、古い Microsoft 認証の動作に戻す必要がある場合は、setting(microsoft-authentication.implementation) を使用して (これを classic に設定し、VS Code を再起動します)、戻すことができますが、この設定は長くは続かないことに注意してください。したがって、MSAL フローに問題がある場合は、issue を開いてください。

Python

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

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

設定不要デバッグ

新しい設定不要デバッグ機能の一環として、ターミナルから設定なしで Python スクリプトまたはモジュールをデバッグできるようになりました! この機能の詳細とトラブルシューティングのヒントについては、wiki ページ を参照してください。

テスト検出のキャンセル

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

テストエクスプローラーを示すスクリーンショット。テスト検出をキャンセルするためのキャンセルボタンが強調表示されています。

実装に移動

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

コンテキストメニューで表示される実装に移動を示すスクリーンショット

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

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

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

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

GitHub プルリクエストと issue

プルリクエストと issue の作成および管理を行うための GitHub プルリクエスト 拡張機能の進展がありました。新機能には次のものが含まれます。

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

拡張機能の 0.104.0 の変更ログ を確認して、他のハイライトについて学んでください。

プレビュー機能

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

Copilot Edits の新しい エージェントモード に取り組んでいます。エージェントモードでは、Copilot がワークスペースを自動的に検索し、関連するコンテキストを見つけ、ファイルを編集し、エラーをチェックし、タスクをエンドツーエンドで完了するためにターミナルコマンドを実行します (許可が必要です)。

Copilot Edits ビューのエージェントモードを示すスクリーンショット。

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

設定エディターのエージェントモード設定を示すスクリーンショット。

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

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

VS Code ドキュメントで Copilot Edits のエージェントモード について詳しく学んでください。

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

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

setting(github.copilot.chat.edits.codesearch.enabled) を使用して有効にし、フィードバックを 共有 してください。

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

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

Copilot Chat プロンプトに添付された画像を示すスクリーンショット。画像にホバーするとプレビューが表示されます。

次の方法で画像を添付できるようになりました。

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

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

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

この機能により、再利用可能なプロンプトを作成、保存、および共有できます。プロンプトファイルは .prompt.md Markdown ファイルで、Copilot Chat でプロンプトを書くのと同じ形式に従い、他のファイルやプロンプトへのリンクを含めることができます。タスク固有のガイダンスを提供するためにプロンプトファイルを添付したり、コード生成を支援したり、後で使用するために完全なプロンプトを保持したりできます。

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

VS Code ドキュメントで プロンプトファイル について詳しく学んでください。

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

このマイルストーンでは、一部の Linux ユーザー向けにカスタムタイトルバーを有効にする実験を開始しています。

Linux でのカスタム VS Code タイトルバーを示すスクリーンショット。

実験の対象でない場合は、setting(window.titleBarStyle)custom に手動で設定して試してみることができます。

ネイティブタイトルの装飾に戻すには、カスタムタイトルのコンテキストメニューから、または setting(window.titleBarStyle)native に設定して戻すことができます。

Linux でカスタムタイトルバーを無効にするコンテンツメニューオプションを示すスクリーンショット。

TypeScript 5.8 ベータサポート

このリリースには、TypeScript 5.8 ベータリリースのサポートが含まれています。TypeScript 5.8 のリリースで何が予定されているかについては、TypeScript 5.8 ブログ投稿 を確認してください。

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

より多くのシェルのためのターミナル補完

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

このリリースの主な更新点は次のとおりです。

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

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

多くの Textmate グラマーがメンテナンスされなくなったため、構文ハイライトに Tree-Sitter を使用することを検討しています。フィードバックを提供し、TypeScript チームが自己ホストできるようにするために、TypeScript から始めました。setting(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 でフィードバックをお知らせください。

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

ターミナルシェルタイプ

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

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

エンジニアリング

ハウスキーピング

12 月の年次ハウスキーピングの一環として、すべてのリポジトリで GitHub の issue とプルリクエストのクリーンアップに注力しました。今年は、3,821 件の issue とプルリクエストの純減を達成し、バックログが関連性を保ち、管理可能であることを確認しました。

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

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

過去数年間のオープン issue 数の傾向を示すチャート。チャートは、毎年12 月のハウスキーピング月間中に急激な減少を示しています。

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

大規模な TypeScript ワークスペース (数千の TypeScript ファイルまたはプロジェクト) でファイル監視が持つオーバーヘッドを削減するために、いくつかの最適化が行われました。具体的には、そのようなワークスペースを開いてウォッチャーを初期化する際に、CPU スパイクが発生しないか、CPU 使用率がすぐに安定するはずです。

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

注目の修正

  • 160325 ctrl+D を押した後のターミナル起動失敗を抑制
  • 230438 コードページ 1125 こと cp866u のサポート
  • 238577 デフォルトのウィンドウサイズを増やす
  • 197377 launch.json または tasks.jsonworkspaceFolder 変数の置換は仮想ファイルシステムの URI を使用する必要があります
  • 229857 focus comment on line を実行した後、アクセシビリティビューが空白になる

ありがとう

最後になりましたが、VS Code の貢献者の皆さんに大きな ありがとう を伝えたいと思います。

issue トラッキング

issue トラッキングへの貢献:

プルリクエスト

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