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 次の編集候補 (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 は急速に進化しており、リポジトリの issue を通じて皆様からのフィードバックをお待ちしています。NES エクスペリエンスを拡張するにつれて、詳細とシナリオについては、完全な Copilot NES ドキュメントをお読みください。

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

Copilot 編集

Copilot 編集の一般提供

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

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

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

エディターで Copilot 編集から個々の変更を承認する方法を示すスクリーンショット。 テーマ: 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 編集と同じフローと UI が使用されます。各変更を個別に確認、改善、または破棄できます。

時間的コンテキスト

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

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

Copilot にプロジェクト内のコードについて @workspace または #codebase を使用して質問すると、インデックスを使用してコードベースを迅速かつ正確に検索し、コンテキストとして含める関連するコードスニペットを見つけます。このインデックスは、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 のコード検索の最適化も継続しています。主な改善点は次のとおりです。

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

Chat または 編集 のクエリを作成するときに、#changes コンテキスト変数を使用して、Git ソース管理で変更されたファイルを参照できるようになりました。たとえば、「ワークスペース内の #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 ユーザーが利用できるようになります。GitHub ブログ投稿で o3-mini モデルの可用性の詳細をご確認ください。

  • Gemini 2.0 Flash: Google の最新モデルは、コードの提案、ドキュメント、およびコードの説明に高い能力を発揮します。このモデルは、Copilot Free を含むすべての GitHub Copilot 顧客が利用できるようになりました。GitHub ブログ投稿で Gemini 2.0 Flash モデルの可用性の詳細をご確認ください。

アクセシビリティ

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

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

  • accessibility.signals.save
  • accessibility.signals.lineHasFoldedArea
  • accessibility.signals.terminalQuickFix
  • accessibility.signals.lineHasInlineSuggestion

これらのアップデートをプレビューするには、コマンドパレットから ヘルプ: シグナルサウンドの一覧 コマンドを実行します。

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

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

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

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

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

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

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

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

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

ワークベンチ

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

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

機能

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

拡張機能の発行元の信頼

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

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.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: Git Blame エディターの装飾を切り替える および Git: Git Blame ステータスバー項目を切り替える

GitHub リポジトリ

GitHub でホストされているリポジトリの場合、タイムラインコンテキストメニューとホバー、ソース管理グラフコンテキストメニューとホバー、および Git blame エディターの装飾とステータスバー項目ホバーに、新しいコマンド 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 アバターのレンダリングを無効にします。

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

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

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

ノートブック

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

ノートブックエディターで、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.

ターミナル

合字のサポート

この機能は安定版と見なされるようになりました。前バージョンからの変更点の概要を以下に示します。

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

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.json および launch.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文法を取得しています。

リモート開発

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

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

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

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

拡張機能への貢献

Microsoft アカウント

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

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

Microsoft 認証の強力なセキュリティベースラインを確保するために、Microsoft Account 拡張機能で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.implementationclassicに設定し、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 拡張機能の進捗状況がさらに進んでいます。この拡張機能を使用すると、プルリクエストとissueの作業、作成、管理を行うことができます。新機能は次のとおりです。

  • グローバルプルリクエストクエリ。今日からの相対的な時間範囲(${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 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/JPGPNGGIF、および WEBP です。

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

この機能を使用すると、再利用可能なプロンプトを構築、保存、共有できます。プロンプトファイルは、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、重複した 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 のコントリビューターに心から感謝申し上げます。

Issue tracking

Issue tracking への貢献

プルリクエスト

vscode への貢献

vscode-eslint への貢献

vscode-extension-samples への貢献

vscode-js-debug への貢献

vscode-jupyter への貢献

vscode-loc への貢献

vscode-prompt-tsx への貢献

vscode-pull-request-github への貢献

  • @mikeseese (Mike Seese): issue 作成時に常にリポジトリのプロンプ​​トを表示するオプトインを追加し、issue ファイルにリポジトリを指定するコメントを追加 PR #6115
  • @NellyWhads (Nelly Whads): python 言語のユーザーメンション例外を削除 PR #6525
  • @Ronny-zzl (Zhang): jsx および tsx ファイルの JSDocs で @ メンションされたユーザーのホバーカードを表示しないようにする PR #6531

vscode-pylint への貢献

  • @DetachHead: pylint のバグによって引き起こされるメモリリークの回避策 PR #585

vscode-python-debugger への貢献

vscode-ripgrep への貢献

vscode-test への貢献

language-server-protocol への貢献