2025 年 1 月 (バージョン 1.97)¶
Visual Studio Code の2025 年1 月リリースへようこそ。このバージョンには多くのアップデートが含まれており、きっと気に入っていただけると思います。主なハイライトは次のとおりです。
- 次の編集候補 (プレビュー) - Copilot が、次に行う可能性のある編集を予測します。
- コマンドパレットの再配置 - コマンドパレットとクイック入力を新しい位置にドラッグします。
- 編集の自動承認 - 設定可能なタイムアウト後、Copilot からの編集を自動的に承認します。
- 拡張機能の発行者の信頼 - 拡張機能の発行者の信頼で、環境を安全に保ちます。
- 複合ログ - 複数のログを単一の集約されたログビューに結合します。
- 出力ログのフィルタリング - 出力パネルの内容をフィルタリングします。
- Git blame 情報 - 豊富な Git blame 情報と GitHub でのオープン。
- デバッグ変数の値を検索 - デバッグ変数内の特定の値でフィルタリングおよび検索します。
- ノートブックのインライン値 - ノートブックのコードセルの変数のインライン値を表示します。
- Python の設定不要デバッグ - 設定なしで Python スクリプトまたはモジュールをすばやくデバッグします。
これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com の Updates にアクセスしてください。 Insiders: 新機能をいち早く試したいですか? nightly Insiders ビルドをダウンロードして、最新のアップデートをすぐに試すことができます。
GitHub Copilot¶
Copilot の次の編集候補 (プレビュー)¶
設定: setting(github.copilot.nextEditSuggestions.enabled)
GitHub Copilot のコード補完はオートコンプリートに優れていますが、ほとんどのコーディングアクティビティは既存のコードの編集であるため、補完の自然な進化として、編集も支援することが考えられます。そこで、新しいプレビュー機能である Copilot の次の編集候補(Copilot NES) をリリースすることになりました。
Copilot NES は、行っている編集に基づいて、次に行いたい編集の場所と、その編集内容を予測します。NES は現在の作業に関連する将来の変更を提案し、kbstyle(Tab)
を使用してすばやく移動し、提案を受け入れることができます。
次の例では、変数を変更すると、ファイルのさらに下にある編集候補がトリガーされることに注目してください。kbstyle(Tab)
キーを使用して、候補を移動して受け入れるだけです。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 はコード編集用に最適化されており、チャットから直接、ワークスペース内の複数のファイルにわたってコードを変更できます。
エディターコントロールの改善¶
編集を個別に承認および破棄できるようになり、より詳細な制御が可能になりました。また、サイドバイサイドビューに切り替えても、編集用のエディターコントロールが表示されたままになるようになりました。これは、より大きな変更を理解するのに役立ちます。
テーマ: 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 ワークスペースドキュメント を参照してください。
リモートワークスペースインデックスの構築¶
リモートワークスペースインデックス は、GitHub によって管理されます。リモートインデックスは、大規模なプロジェクトでも、高品質の結果をすばやく提供できます。また、ユーザーごとに1 回ではなく、GitHub プロジェクトごとに1 回構築するだけで済みます。
これらの利点を考慮して、プロジェクトをリモートインデックスにアップグレードするためのいくつかの新しい方法を追加しました。
- 新しい GitHub Copilot: リモートインデックスの構築 コマンドを実行します。
- ワークスペースインデックスのステータス UI で [インデックスの構築] ボタンを選択します。これは、プロジェクトがリモートインデックス作成の対象となる場合にのみ表示されます。
- 最初に表示される
@workspace
応答で [インデックスの構築] ボタンを選択します。これは、プロジェクトが対象となる場合にのみ表示され、ワークスペースごとに1 回のみ表示されます。
現在、GitHub リモートを持つプロジェクトのみがリモートインデックスを使用できることに注意してください。また、特にプロジェクトが大きい場合は、リモートインデックスの構築に時間がかかる場合があります。ワークスペースインデックスのステータス UI を確認して、リモートインデックス作成が完了したかどうかを確認します。
ワークスペース検索の改善¶
@workspace
および #codebase
のコード検索の最適化も継続しています。ハイライトは次のとおりです。
- リモートインデックス を使用する場合の、ローカルで変更されたファイルの追跡と処理の改善。
@workspace
の質問が更新を待つ必要がないように、ローカルインデックス で変更されたファイルのバックグラウンド更新を追加しました。
- 大規模なプロジェクト向けに 基本インデックス を最適化しました。
Git の変更コンテキスト変数¶
チャットまたは Edits のクエリを作成するときに、#changes
コンテキスト変数を使用して、Git ソース管理で変更されたファイルを参照できるようになりました。たとえば、ワークスペース内の #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)
設定が見つかりませんでした。
また、設定エディターが狭いエディターグループにある場合でも、検索中に目次が表示される問題を修正しました。
拡張機能フィルターの機能強化¶
更新プログラムが利用可能な拡張機能を追跡したり、最近更新された拡張機能を見つけたりするのに役立つように、拡張機能ビューに2 つの新しいフィルターオプション @outdated
と @recentlyUpdated
が追加されました。
SVG 画像プレビューのサポート¶
組み込みの画像プレビューで、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 ステータスバーアイテムはデフォルトで有効になっており、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 の issue およびプルリクエストの参照は、タイムライン、ソース管理グラフ、および git blame エディターの装飾とステータスバーアイテムのホバーでリンクとして表示され、ブラウザーで簡単に開くことができます。
最後に、タイムライン、ソース管理グラフ、および git blame エディターの装飾とステータスバーアイテムのホバーに GitHub アバターも追加しました。setting(github.showAvatar:false)
設定を使用して、GitHub アバターのレンダリングを無効にします。
ソース管理グラフアクション¶
ソース管理グラフビューの機能を拡張し、履歴アイテム参照 (ブランチタグなど) にスコープされたアクションをコンテキストメニューに追加しました。最初に追加したアクションは、チェックアウト、ブランチの削除、および タグの削除 で、ソース管理グラフビューから直接ブランチ/タグを簡単にチェックアウト、削除できます。
今後のマイルストーンでさらに多くのアクションを追加する予定です。
ノートブック¶
セル実行時のインライン値¶
ノートブックエディターは、setting(notebook.inlineValues)
設定を使用して、セル実行後にインライン値を表示することをサポートするようになりました。有効にすると、セル実行が成功した後、登録された InlineValueProvider
の結果に従ってインライン値が表示されます。
プロバイダーがない場合、フォールバックアプローチは、カーネル内の値をセルドキュメントと単純な正規表現マッチングを使用して一致させます。より正確な結果を確保するために、言語拡張機能からのプロバイダーを使用することをお勧めします。
Markdown セルのカスタムフォントファミリー¶
ノートブックエディターは、レンダリングされた Markdown セルのカスタムフォントファミリーを設定することをサポートするようになりました。これは、setting(notebook.markup.fontFamily)
設定で制御できます。空白のままにすると、デフォルトのワークベンチフォントファミリーが使用されます。
ターミナル¶
リガチャのサポート¶
この機能は安定版と見なされるようになりました。前回のバージョン以降の変更点の概要は次のとおりです。
- 有効化設定が
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 ファイルを開いた状態で、ステータスバーの {}
を選択してリンク検証ステータスを表示します。ステータスアイテムを使用して、リンク検証をすばやくオン/オフすることもできます。
新しい 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 に既にログインしているアカウントを活用できるため、より高速です。
この新しいフローに問題がある場合はお知らせください。重大な問題が発生し、古い 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 ビューのドロップダウンで切り替えることができます。ドロップダウンを表示するには、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 に問題の解決を依頼できます。
次の方法で画像を添付できるようになりました。
- OS またはエクスプローラービューから画像をドラッグアンドドロップ
- クリップボードから画像を貼り付け
- VS Code ウィンドウのスクリーンショットを添付 (添付 > ウィンドウのスクリーンショットを選択)
選択したモデルが現在画像を処理できない場合、警告が表示されます。現在サポートされている唯一のモデルは GPT 4o
です。現在サポートされている画像タイプは JPEG/JPG
、PNG
、GIF
、および WEBP
です。
再利用可能なプロンプト (実験的)¶
この機能により、再利用可能なプロンプトを作成、保存、および共有できます。プロンプトファイルは .prompt.md
Markdown ファイルで、Copilot Chat でプロンプトを書くのと同じ形式に従い、他のファイルやプロンプトへのリンクを含めることができます。タスク固有のガイダンスを提供するためにプロンプトファイルを添付したり、コード生成を支援したり、後で使用するために完全なプロンプトを保持したりできます。
プロンプトファイルを有効にするには、setting(chat.promptFiles)
を true
に設定するか、{ "/path/to/folder": boolean }
表記を使用して別のパスを指定します。指定されていない場合、デフォルトで .github/prompts
フォルダーがプロンプトファイル (*.prompt.md
) を見つけるために使用されます。
VS Code ドキュメントで プロンプトファイル について詳しく学んでください。
Linux でのカスタムタイトルバー (実験的)¶
このマイルストーンでは、一部の Linux ユーザー向けにカスタムタイトルバーを有効にする実験を開始しています。
実験の対象でない場合は、setting(window.titleBarStyle)
を custom
に手動で設定して試してみることができます。
ネイティブタイトルの装飾に戻すには、カスタムタイトルのコンテキストメニューから、または setting(window.titleBarStyle)
を native
に設定して戻すことができます。
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)
)。 - コマンドの引数認識の改善、次を含む:
code
、code-insiders
、cd
、ls
、rm
、echo
、mkdir
、rmdir
、touch
。 - 追加の詳細としてコマンドまたはリソースパスを表示。
.
、..
、および../../
などのディレクトリナビゲーションショートカットのサポートを追加。- スクリーンリーダーの使用を有効にしました。
$PATH
から取得されたエントリは、実行可能ファイルである場合にのみ表示されます。Windows にはファイルメタデータに実行可能ビットの概念がないため、拡張子のリストはsetting(terminal.integrated.suggest.windowsExecutableExtensions)
で構成できます。これらは、利用可能な場合に実際のシェル環境を使用して、提案された新しい API を使用します。- 詳細を切り替えるためのキーボードサポートの強化、
kb(workbench.action.terminal.suggestToggleDetails)
および提案の詳細フォーカスを切り替えるkb(workbench.action.terminal.suggestToggleDetailsFocus)
。 - 提案は常にすべてのタイプで表示され、エディターのクイック提案の動作に近づきます。
- PowerShell 固有のグローバル補完 (例:
Get-ChildItem
、Write-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
が表示される¶
OpenDialogOptions
の openLabel
プロパティが、システムファイルピッカー (以前は専用にサポートされていた) に加えて、シンプルファイルピッカー でもサポートされるようになりました。これにより、ファイルピッカーのボタンにカスタムラベルを提供できます。
ファイルレベルのコメント API¶
コメント API は、ファイルレベルのコメントの作成と表示をサポートしています。ファイルレベルのコメントは、ファイルの最初の行の前に表示されます。ファイル内の特定の行や範囲に添付されていません。ファイルレベルのコメントを表示するには、コメントの range
を undefined
に設定します。コメント範囲プロバイダーからファイルレベルのコメントをサポートするには、CommentingRangeProvider
の enableFileComments
プロパティを true
に設定します。
提案された API¶
ターミナル補完プロバイダー¶
ターミナル補完プロバイダーを登録 して、この GitHub issue でフィードバックをお知らせください。
この例は、setting(terminal.integrated.suggest.enabled)
を使用して有効にすると、補完を提供するターミナル提案拡張機能にあります。
ターミナルシェルタイプ¶
拡張機能は、現在アクティブなシェルタイプ情報にアクセス できるようになります。
shellType
フィールドは TerminalState
の一部になります。
このシェルタイプ情報を使用して、必要なシェル固有の操作を実行します。
エンジニアリング¶
ハウスキーピング¶
12 月の年次ハウスキーピングの一環として、すべてのリポジトリで GitHub の issue とプルリクエストのクリーンアップに注力しました。今年は、3,821 件の issue とプルリクエストの純減を達成し、バックログが関連性を保ち、管理可能であることを確認しました。
issue クリーンアップガイドに従って、古い、重複した、もはや関連性のない issue をレビューし、トリアージしました。これにより、効率的な開発ワークフローを維持し、ユーザーのために Visual Studio Code を改善することに集中できます。
コミュニティの継続的な関与とフィードバックに感謝します。皆さんの貢献が VS Code を日々向上させています! 🚀
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
を実行した後、アクセシビリティビューが空白になる
ありがとう¶
最後になりましたが、VS Code の貢献者の皆さんに大きな ありがとう を伝えたいと思います。
issue トラッキング¶
issue トラッキングへの貢献:
- @gjsjohnmurray (John Murray)
- @IllusionMH (Andrii Dieiev)
- @RedCMD (RedCMD)
- @albertosantini (Alberto Santini)
- @starball5 (starball)
プルリクエスト¶
vscode
への貢献:
- @Abrifq (Arda Aydın): ターミナルの場所に応じて
Create New Terminal
をフォーカスするように変更 PR #237404 - @adrianstephens: カスタムエディタープレビュー PR #235533
- @andrewsuzuki (Andrew Suzuki):
new Color
文字列のタイプミスを修正、editorBracketHighlight.unexpectedBracket.foreground
PR #237236 - @aslezar (Shivam Garg)
- GLIBC バージョンの解析の誤りを修正 PR #236082
- カスタム js スイッチケースのインデントをサポート PR #237069
- @atreids (Aaron Donaldson): ちょっとした修正: VSIX 進行状況通知のタイプミスを修正 PR #238845
- @BABA983 (BABA): カスタムエディターを正規リソースで解決 PR #226614
- @congyuandong (scott): 修正:
dependenciesSrc
に重複する!**/*.mk
エントリを削除 PR #236683 - @DetachHead:
javascript.inlayHints.enumMemberValues.enabled
を削除、JavaScript に列挙型がないため PR #236297 - @devm33 (Devraj Mehta): プロキシをサポートするために github-authentication に Electron fetch または Node fetch を使用 PR #238149
- @dmitrysonder (Dmitry Sonder): リファクタリング: イベントに EventType 定数を使用 PR #236941
- @fa0311 (ふぁ):
${unixTime}
プレースホルダーを使用して、markdown.copyFiles.destination の完全なミリ秒タイムスタンプを使用するように修正 PR #239061 - @g122622: ファイルメニューのスクロールバーが [最近開いたファイル] の上に表示される PR #236998
- @gjsjohnmurray (John Murray): [開いているエディター] ビューのオーバーフローメニューに [構成] オプションを追加 PR #237678
- @goodmind (andretshurotshka): #44237 を修正: タスクに列番号を追加 PR #65264
- @HD787 (Henry)
- markdown.copyFiles.destination オプションのために
${unixTime}
プレースホルダーを追加 PR #238027 - 設定ファイルのみが開かれている場合に TypeScript コマンドを有効にする PR #238630
- markdown.copyFiles.destination オプションのために
- @iamdereky (Derek Yang): HTML エスケープされた引用符を使用する場合の CSS エラーを修正 PR #235367
- @jakebailey (Jake Bailey): tsconfig.base.json からパスを削除 PR #238475
- @janajar (Jawad Najar): 修正: 検索エディターに結果がない場合、エラーが発生する PR #235031
- @jaymroy: Issue: #214481 テキスト読み上げでコードブロックを無視するオプションを追加 PR #235697
- @jogibear9988 (Jochen Kühner): 画像プレビューで svg をサポート PR #237217
- @Jules-Bertholet (Jules Bertholet): デフォルトのショートカットで戻るおよび進むキーをサポート PR #237701
- @Legend-Master (Tony): カスタムタスクシェルが "run command" 引数/フラグを手動で渡さずに機能しない問題を修正 PR #236058
- @LemmusLemmus: Markdown の囲むペアに $ を追加 PR #233981
- @leopardracer (leopardracer): 修正: ドキュメントファイルのタイプミス PR #235968
- @misode (Misode): json スキーマの読み込み時に uri をファイルパスに変換するのを忘れないように修正 PR #237275
- @mohankumarelec (mohanram): #236973 を修正 PR #236974
- @notoriousmango (Seong Min Park): Markdown プレビューで画像を開くコンテキストメニューを追加 PR #234649
- @numbermaniac: InlayHintKind ドキュメントのタイプミスを修正 PR #238032
- @oltolm (oltolm): デバッグ: プロセスを停止する際のエラーを無視 PR #236009
- @oxcened (Alen Ajam)
- 修正: ウィジェットのフォーカスが外れたときに _lastFocusedWidget を未定義に設定 PR #234610
- 修正: lastFocusedList が有効かどうかを確認してから割り当て PR #238765
- @pankajk07 (Pankaj Khandelwal): 修正: 拡張機能の Web ワーカーからの同期スクリプト読み込み PR #233175
- @Parasaran-Python (Parasaran)
-
227150 を修正: 再帰的な git クローンボタンを追加 PR #232497¶
-
235221 を修正: 閉じていないタグを閉じることで HTML コンテンツをサニタイズ PR #236145¶
-
- @r3m0t (Tomer Chachamu): デバッガーが停止してアクティブなステートメントを表示する際にノートブックセルを表示する問題を修正 (#225290) PR #225292
- @rcjsuen (Remy Suen): アイコン拡張ポイントのヘルプテキストのタイプミスを修正 PR #238393
- @RedCMD (RedCMD)
- 拡張プレビューのコードブロック言語取得を修正 PR #235880
- 拡張フィルターに
outdated
およびrecentlyUpdated
の提案を追加 PR #235884
- @remcohaszing (Remco Haszing)
- bun.lock を jsonc としてマーク PR #235917
- jsonl 言語のために .ndjson 拡張子を許可 PR #235921
- @RiskyMH (Michael H):
bun.lock
をパッケージマネージャーロックファイルとして追加 PR #236012 - @sunnylost (sunnylost): 修正(settings-editor): キー名の幅が縮小しないようにする PR #229919
- @tcostew: GitHub Copilot チャットを QuickAccess に表示できるようにする PR #210805
- @tmm1 (Aman Karmani)
- ビルド: さらに多くの tsc ボイラープレートを含むように更新 PR #238422
- ビルド:
build/tsconfig.json
をmodule: nodenext
に切り替え PR #238426
- @tobil4sk: 分岐する findExecutable 関数をマージ PR #228373
- @zWingz (zWing): 修正(git-ext): git ステータスの進行状況をブロックする limitWarning を修正 PR #226577
vscode-eslint
への貢献:
- @ShahinSorkh (Shahin Sorkh):
eslint.runtime
およびeslint.execArgv
オプションを設定する場所を明確にする PR #1973
vscode-extension-samples
への貢献:
vscode-js-debug
への貢献:
- @mdh1418 (Mitchell Hwang): BlazorDebugger テレメトリレポートイベントを更新 PR #2158
vscode-jupyter
への貢献:
- @gy-mate (Máté Gyöngyösi): 'URL' を大文字に PR #16340
- @pwang347 (Paul):
onDidStart
イベントにwaitUntil
を追加 PR #16375
vscode-loc
への貢献:
- @NicoWeio (Nicolai Weitkemper): README の文法を改善 PR #1367
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
への貢献:
- @fiji-flo (Florian Dieminger): 長いダウンロードを修正 PR #62
- @tmm1 (Aman Karmani): arm64 Windows の修正 PR #63
vscode-test
への貢献:
- @kamaal111 (Kamaal Farah): ドキュメント: Github Actions リンクをサンプルにポイントするように更新 PR #297
language-server-protocol
への貢献:
- @asukaminato0721 (Asuka Minato): cython-lsp PR #2064
- @catwell (Pierre Chapuis): Teal LSP を追加 PR #2078
- @Enaium (Enaium)
- @g-plane (Pig Fang): 新しい言語サーバー: wasm-language-tools PR #2065
- @jcs090218 (Jen-Chieh Shen): ちょっとした修正(_implementors/servers.md): Ellsp リンクを更新 PR #2073
- @kbwo (Kodai Kabasawa): servers.md に testing-language-server を追加 PR #2076
- @kylebonnici (Kyle Micallef Bonnici): Devicetree LSP をリストに追加 PR #2085
- @ribru17 (Riley Bruins): ts_query_ls (Tree-sitter クエリ言語サーバー) を追加 PR #2068