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月リリースへようこそ。今回のバージョンでは、皆さんに気に入っていただけるであろう多くの更新があります。主なハイライトは以下の通りです。
- 次回の編集候補 (プレビュー) - Copilot が次に作成する可能性のある編集を予測します。
- コマンドパレットの再配置 - コマンドパレットとクイック入力の新しい位置にドラッグできます。
- 編集の自動承認 - 設定可能なタイムアウト後に Copilot からの編集を自動的に承認します。
- 拡張機能発行者の信頼 - 拡張機能発行者の信頼により、環境を安全に保ちます。
- 複合ログ - 複数のログを単一の集計ログビューに結合します。
- 出力ログのフィルター処理 - 出力パネルの内容をフィルター処理します。
- Git blame 情報 - 豊富な Git blame 情報と GitHub でのオープン。
- デバッグ変数内の値を検索 - デバッグ変数内の特定の値をフィルター処理および検索します。
- ノートブックのインライン値 - ノートブック内のコードセル変数にインライン値を表示します。
- Python の設定なしデバッグ - 設定なしで Python スクリプトまたはモジュールを迅速にデバッグできます。
これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com の更新にアクセスしてください。 Insiders: 新しい機能をできるだけ早く試したいですか? 夜間ビルドのInsidersをダウンロードして、最新の更新が利用可能になったらすぐに試すことができます。
GitHub Copilot
Copilot 次回の編集候補 (プレビュー)
設定: github.copilot.nextEditSuggestions.enabled
GitHub Copilot のコード補完はオートコンプリートに優れていますが、ほとんどのコーディングアクティビティは既存のコードの編集であるため、補完が編集にも役立つのは自然な進化です。そこで、新しいプレビュー機能であるCopilot Next Edit Suggestions (Copilot NES) をリリースできることを嬉しく思います。
行っている編集に基づいて、Copilot NES は次に作成したい編集の場所と、その編集がどのようなものであるべきかを予測します。NES は現在の作業に関連する将来の変更を提案し、Tab キーを押すだけで提案をすばやく移動して受け入れることができます。
次の例では、変数を変更すると、ファイルの下の方で編集候補がトリガーされることに注目してください。Tab キーを使用するだけで、提案をナビゲートして受け入れることができます。ガターインジケーターは、次の編集候補に案内します。
VS Code の設定github.copilot.nextEditSuggestions.enabledで Copilot NES を有効にします。
編集のサイズと種類に応じて、提案のレンダリングは、並列から現在の行の下に動的に変更される場合があります。editor.inlineSuggest.edits.renderSideBySide設定を構成して、常に現在の行の下に提案をレンダリングします。
Copilot NES は急速に進化しており、弊社のリポジトリでのフィードバックをお待ちしております。NES エクスペリエンスを拡大するにつれて、詳細とシナリオについては、Copilot NES の完全なドキュメントをお読みください。
注: Copilot Business または Enterprise ユーザーの場合、組織の管理者は、エディターでgithub.copilot.nextEditSuggestions.enabledを設定することに加えて、Copilot の「エディタープレビュー機能」の使用をオプトインする必要があります。
Copilot Edits
Copilot Edits の一般提供
VS Code 10月リリースで Copilot Edits のプレビューを発表しました。本日、Copilot Edits の一般提供を発表します! Copilot Edits はコード編集に最適化されており、チャットから直接、ワークスペース内の複数のファイルにわたるコード変更を行うことができます。
改善されたエディターコントロール
編集を個別に承認および破棄できるようになり、より詳細な制御が可能になりました。また、サイドバイサイドビューに切り替えても、編集のエディターコントロールが表示されたままになるようになりました。これは、より大きな変更を理解するのに役立ちます。
テーマ: GitHub Light Colorblind (ベータ版) (vscode.devでプレビュー)
最後に、設定可能なタイムアウト後に編集候補を自動的に承認する新しい設定を追加しました。その設定はchat.editing.autoAcceptDelayで、変更が承認されるまでの秒数を指定します。カウントダウンは、承認ボタンを操作するか、変更の確認を開始すると停止します。これは、週末に一気見する人なら誰でもおなじみでしょう。
テーマ: GitHub Light Colorblind (ベータ版) (vscode.devでプレビュー)
エディターで適用
Copilot Chat では、コードブロックのツールバーにあるApply to Editorアクションを使用して、任意のコードブロックをワークスペース内のファイルに適用できます。このエクスペリエンスにいくつかの改善を行いました。
-
アクションのホバーに、コードブロックが生成されたファイルが表示されるようになりました。
-
コードブロックが既存しないファイルのものである場合、ファイルの作成場所を尋ねられます。これは、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のステータスバーにある{}
アイコンを選択するだけです。
ワークスペースインデックスの種類とそれらを切り替える方法の詳細については、Copilotワークスペースドキュメントをご覧ください。
リモートワークスペースインデックスの構築
リモートワークスペースインデックスはGitHubによって管理されます。リモートインデックスは、大規模なプロジェクトでも高品質な結果を迅速に提供できます。また、ユーザーごとに1回ではなく、GitHubプロジェクトごとに1回だけ構築すれば済みます。
これらの利点を踏まえ、プロジェクトをリモートインデックスにアップグレードするためのいくつかの新しい方法を追加しました。
-
新しいGitHub Copilot: Build Remote Indexコマンドを実行します。
-
ワークスペースインデックスの状態UIで「Build Index」ボタンを選択します。これは、プロジェクトがリモートインデックス化の対象である場合にのみ表示されます。
-
最初に表示される
@workspace
の応答で「Build Index」ボタンを選択します。これは、プロジェクトが対象であり、ワークスペースごとに1回のみ表示されます。
GitHubリモートを持つプロジェクトのみが現在リモートインデックスを使用できることに注意してください。リモートインデックスの構築には時間がかかる場合があり、特にプロジェクトが大きい場合はそうです。ワークスペースインデックスの状態UIでリモートインデックス化が完了したかどうかを確認してください。
ワークスペース検索の改善
@workspace
と#codebase
のコード検索も引き続き最適化しました。ハイライトは以下のとおりです。
-
リモートインデックスを使用している場合のローカルで変更されたファイルの追跡と処理を改善しました。
-
ローカルインデックス内の変更されたファイルのバックグラウンド更新を追加したため、
@workspace
の質問が更新を待つ必要がなくなりました。 -
大規模プロジェクト向けに基本インデックスを最適化しました。
Git変更コンテキスト変数
チャットまたは編集のクエリを作成するときに、#changes
コンテキスト変数を使用してGitソース管理で変更されたファイルを参照できるようになりました。たとえば、my workspaceの#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ブログ記事で詳しく説明されています。
アクセシビリティ
アクセシビリティサウンドの強化
ユーザーからのフィードバックに基づいて、いくつかのアクセシビリティサウンドを改善し、明瞭さと区別を向上させました。以下のサウンドが更新されました。
- accessibility.signals.save
- accessibility.signals.lineHasFoldedArea
- accessibility.signals.terminalQuickFix
- accessibility.signals.lineHasInlineSuggestion
これらの更新は、コマンドパレットから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)、diff ビューの切り替えのキーボードショートカットも導入されました。
ソース管理アクセシビリティヘルプダイアログ
ソース管理ビューにフォーカスがある状態でShow Accessibility Helpコマンドを呼び出すと、ソース管理アクセシビリティヘルプダイアログが開き、スクリーンリーダーユーザーにとって重要な情報が提供されます。このダイアログには、現在のソース管理状態の概要と、ビューおよびその操作方法に関する一般情報が含まれています。
スクリーンリーダー通知の改善
スクリーンリーダーが検出されると、関連する通知に詳細情報へのリンクが含まれるようになり、追加のコンテキストとリソースが提供されます。
テキスト読み上げでコードブロックを無視する
以前は、Copilot の応答をテキスト読み上げで読み上げると、コードブロックも読み上げられました。accessibility.voice.ignoreCodeBlocks設定を使用すると、テキスト読み上げセッションからコードブロックを無視できます。
ワークベンチ
コマンドパレットとクイック入力を移動する
コマンドパレットやその他のクイック入力を、ウィンドウの上部に固定する代わりに、新しい位置に移動できるようになりました。
機能
- コマンドパレットやその他のクイック入力を、中央と上部にスナップするようにドラッグアンドドロップできます。
- リロードしても位置が保持されるため、クイック入力の新しい永続的な位置を設定できます。
- カスタマイズレイアウトピッカーでプリセット位置を利用できます。
拡張機能発行者の信頼
初めて発行元から拡張機能をインストールする際に、その拡張機能発行元の信頼性を評価するためのダイアログが表示されるようになりました。この機能は、信頼できるソースからの拡張機能のみをインストールすることを保証し、開発環境のセキュリティを強化するのに役立ちます。
拡張機能パックまたは依存関係を持つ拡張機能をインストールする場合、発行元を信頼すると、一緒にインストールされる拡張機能の発行元も暗黙的に信頼されます。
VS Code 1.97 リリースに更新すると、現在インストールされている拡張機能の発行元が自動的に信頼されます。信頼できる拡張機能発行元は、Extensions: Manage Trusted Extensions Publishers コマンドで管理できます。このコマンドを使用すると、以前に信頼した発行元の信頼をリセットまたは取り消すことができます。
注: VS Code ウィンドウが開いていない状態で CLI (code-insiders --install-extension pub.name
) から拡張機能をインストールした場合、拡張機能はインストールされますが、発行元は信頼リストに追加されません。
詳細については、詳細を学ぶリンクをご覧ください。
出力パネルのフィルタリング
出力パネルの内容をフィルタリングできるようになり、特に大量のログデータを扱う場合に、ログの管理と分析を大幅に改善できます。
- ログレベルでフィルタリング: ログを重要度レベル (例: エラー、警告、情報) に基づいてフィルタリングします。これにより、最も重要な問題に最初に集中できます。
- カテゴリでフィルタリング: 特定のカテゴリでログを絞り込み、特定のソースまたはコンポーネントからのログを分離できます。カテゴリはログデータから自動的に取得されます。
- テキストでフィルタリング: ログ内で特定のテキストを検索して、関連するエントリをすばやく見つけます。
複合ログ
情報が複数のログにまたがっていて、全体像を把握するためにそれらを一緒に表示する必要がある場合があります。これで、単一の複合ログビューで複数のログを表示できます。これを新しいフィルタリング機能と組み合わせることで、ログの分析がはるかに改善されました!
カスタム複合ログを作成するには、出力パネルのオーバーフローメニューにあるCreate Compound Log...アクションを使用します。
複合ログをエディターまたは新しいVS Codeウィンドウで開いて、柔軟な監視と分析を行うこともできます。この機能は、関連するログの統合ビューを提供することで、問題の診断能力を向上させます。
注: 複合ログビューは、現在のところVS Codeの再起動後も保持されません。
ログのエクスポートとインポート
出力ビューのオーバーフローメニューのアクションを使用して、ログをエクスポートおよびインポートできるようになりました。この機能により、ログの共有とレビューが容易になり、コラボレーションとログ管理が向上します。
ログをエクスポートまたはインポートするには、出力パネルのオーバーフローメニューにある対応するExport LogsまたはImport Logアクションを選択します。
設定エディターの検索修正
今回のイテレーションでは、欠落した文字を含む検索クエリが期待される結果を表示しないというリグレッションを修正しました。たとえば、設定エディターでは、「editor formonpast」で検索してもeditor.formatOnPaste設定が見つかりませんでした。
また、設定エディターが狭いエディターグループにある場合でも、検索中に目次を表示する問題を修正しました。
テーマ: Light Pink (vscode.devでプレビュー)
拡張機能フィルターの強化
利用可能な更新がある拡張機能を追跡したり、最近更新された拡張機能を見つけたりするのに役立つように、拡張機能ビューに新しい2つのフィルターオプションが追加されました: @outdated
と@recentlyUpdated
。
SVG画像プレビューのサポート
組み込みの画像プレビューは、SVGファイルのプレビューを基本サポートするようになりました。
より高度なSVGプレビュー拡張機能については、Visual Studio Marketplaceをご覧ください。
CLIからワークスペースからルートフォルダーを削除する
以前は、--add
コマンドラインオプションを使用して、ルートフォルダーをマルチルートワークスペースに追加できました。
新しい--remove
コマンドラインオプションを使用して、マルチルートワークスペースからルートフォルダーを削除する機能も追加しました。
code --remove /path/to/rootfolder
エディター
検索と置換の履歴を保持
前回のマイルストーンで、エディターの検索コントロールに履歴の永続化を導入しました。今回のマイルストーンでは、これを置換入力コントロールにも拡張し、複数のセッションにわたって両方を個別に保持できるようにしました。置換履歴はワークスペースごとに保存され、editor.find.replaceHistory設定で無効にできます。
コメント
未送信コメントを閉じる際の確認
未送信のコメントがあるコメントコントロールをesc
などで閉じようとすると、確認ダイアログが表示されるようになりました。この確認は、設定comments.thread.confirmOnCollapseで無効にできます。
コメントエディターでのクイックアクション
コメントエディターからクイックアクションを使用できます。
ソース管理
Git blame情報
今回のマイルストーンでは、エディターとステータスバーにGit blame情報を表示する機能を引き続き洗練させました。また、エディターのデコレーションやステータスバーの項目にホバーしたときに表示される情報も改善しました。
Git blameステータスバー項目はデフォルトで有効になっており、git.blame.statusBarItem.enabled設定を使用して無効にすることができます。Git blameエディターのデコレーションは、git.blame.editorDecoration.enabled設定で有効にします。
また、コマンドパレットやキーバインドを使用してGit blame情報を簡単に切り替えるコマンドも追加しました: Git: Toggle Git Blame Editor DecorationとGit: Toggle Git Blame Status Bar Item。
GitHubリポジトリ
GitHubでホストされているリポジトリ向けに、タイムラインのコンテキストメニューとホバー、ソース管理グラフのコンテキストメニューとホバー、Git blameエディターの装飾とステータスバーの項目ホバーに、新しいコマンドOpen on GitHubを追加しました。
GitHubのissueとプルリクエストの参照は、タイムライン、ソース管理グラフ、Git blameエディターの装飾とステータスバーの項目ホバーでリンクとしてレンダリングされるため、ブラウザで簡単に開くことができます。
最後に、タイムライン、ソース管理グラフ、Git blameエディターの装飾とステータスバーの項目ホバーにGitHubのアバターも追加しました。github.showAvatar設定を使用してGitHubのアバターのレンダリングを無効にできます。
ソース管理グラフアクション
ソース管理グラフビューの機能を拡張し、履歴項目参照 (例: ブランチタグ) にスコープを設定したアクションをコンテキストメニューに追加しました。最初に追加されたアクションはCheckout、Delete Branch、Delete Tagで、ソース管理グラフビューから直接、ブランチ/タグのチェックアウト、ブランチの削除、タグの削除を簡単に行うことができます。
今後のマイルストーンでさらに多くのアクションを追加する予定です。
ノートブック
セル実行時のインライン値
ノートブックエディタは、notebook.inlineValuesの設定でセル実行後のインライン値表示をサポートするようになりました。有効にすると、セルの実行が成功した後、登録されたInlineValueProvider
の結果に従ってインライン値が表示されます。
プロバイダがない場合、フォールバックアプローチは、単純な正規表現マッチングにより、カーネルで見つかった値をセルドキュメントと照合します。より正確な結果を確保するために、言語拡張機能からのプロバイダを使用することをお勧めします。
Markdown セルのカスタムフォントファミリー
ノートブックエディターは、レンダリングされた Markdown セルにカスタムフォントファミリーを設定できるようになりました。これは、notebook.markup.fontFamily設定で制御できます。空白のままにすると、デフォルトのワークベンチフォントファミリーが使用されます。
ターミナル
合字サポート
この機能は現在安定していると見なされています。前バージョンからの変更点の概要は以下のとおりです。
- 有効化設定が
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ツールで進捗を報告するために使用されます。ターミナルタブで進捗を表示するには、${progress}
をterminal.integrated.tabs.titleまたはterminal.integrated.tabs.descriptionに追加します。これは通常、進捗スピナーまたはパーセンテージとして表示されます。
切り詰められたコマンドの固定スクロール
ターミナルの固定スクロール (terminal.integrated.stickyScroll.enabled) が、コマンドが末尾に省略記号で切り詰められたときに表示されるようになりました
最後のターミナルが閉じられたときの動作を構成する
新しいterminal.integrated.hideOnLastClosed設定により、最後のターミナルが閉じられたときにパネルを閉じるかどうかを構成できます。これに加えて、ターミナルが開いていない場合のエクスペリエンスが改善されました。
タスク
列番号変数
新しい${columnNumber}
変数は、カーソル位置の列番号を参照するためにtasks.json
およびlaunch.json
で使用できます。VS Codeドキュメントの変数の全リストを参照してください。
デバッグ
値のフィルタリングと検索
変数とウォッチビューでビュー内検索 (⌥⌘F (Windows, Linux Ctrl+Alt+F)) が可能になり、名前だけでなく変数と式の値でフィルタリングできるようになりました。
デバッグコンソールでの選択
デバッグコンソールは、より長く信頼性の高いコンテンツ選択をサポートするようになり、コピーアンドペーストが容易になりました。
JavaScriptデバッガー
スクリプトは、デバッガーが現在一時停止しているソースでなくても、コマンドパレットまたはエディターのアクションからDebug: Pretty print for debuggingコマンドを使用して整形出力できるようになりました。
言語
TypeScript 5.7.3
このリリースには、TypeScript 5.7.3リカバリリリースが含まれています。このマイナーアップデートでは、いくつかのインポートバグと回帰が修正されています。
Markdown プレビューから画像を右クリックして開く
Markdown プレビューでワークスペースの画像を右クリックし、Open Image を選択して新しいエディターで開くことができるようになりました。
これは、現在のワークスペースの一部であるすべての画像でサポートされています。
Markdownリンク検証ステータス項目
VS Codeの組み込みMarkdown機能は、ファイルや画像へのローカルリンクの自動検証をサポートしています。これは、名前が変更されたヘッダーやディスク上に存在しなくなったファイルへのリンクなど、一般的な間違いを検出するのに非常に役立ちます。
この機能を見つけやすくするために、リンク検証用の新しい言語ステータス項目を追加しました。
Markdownファイルを開いた状態で、ステータスバーの{}
を選択してリンク検証ステータスを表示します。ステータス項目を使用して、リンク検証をすばやくオン/オフに切り替えることもできます。
新しいRuby構文強調表示文法
古い、メンテナンスされていないRuby文法であるtextmate/ruby.tmbundle
から移行し、現在はShopify/ruby-lsp
からRuby文法を取得しています。
リモート開発
リモート開発拡張機能を使用すると、開発コンテナ、SSH経由のリモートマシンまたはリモートトンネル、またはLinux用Windowsサブシステム (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 認証動作に戻す必要がある場合は、microsoft-authentication.implementation (classic
に設定し、VS Codeを再起動) で行うことができますが、この設定は長くは存在しないことに注意してください。したがって、MSALフローで問題が発生している場合は、イシューをオープンしてください。
Python
ターミナルからネイティブREPLを起動する
ターミナルのREPLからVS CodeネイティブREPLを起動できるようになりました。python.terminal.shellIntegration.enabledをtrue
に設定すると、ターミナルのPython REPLにクリック可能なリンクが表示され、ターミナルから直接VS CodeネイティブREPLを開くことができます。
設定なしデバッグ
新しい設定なしデバッグ機能の一部として、ターミナルから直接、Pythonスクリプトまたはモジュールをセットアップなしでデバッグできるようになりました!機能に関するすべての詳細とトラブルシューティングのヒントについては、Wikiページをご覧ください。
テスト検出のキャンセル
テストエクスプローラーUIからテスト検出をトリガーすると、現在進行中のテスト検出呼び出しをキャンセルできるようになりました。検出中に更新ボタンの代わりに表示されるキャンセルボタンを使用します。
実装へ移動
PylanceがGo to Implementationをサポートするようになり、関数やメソッドの利用箇所から直接、その実装にすばやく移動できるようになりました。これは、継承されたクラスを扱う場合に特に便利な機能です。
AIコードアクション: シンボルの生成 (実験的)
Pylance と Copilot を使用してシンボルを生成するための新しい実験的な AI コードアクションがあります。試すには、次の設定を有効にします。
"python.analysis.aiCodeActions": {"generateSymbol": true}
そして、新しいシンボル(たとえば、クラスや関数)を定義したら、Generate Symbol with Copilot コードアクションを選択し、Copilot に実装を任せることができます!必要に応じて、Pylance のMove Symbol コードアクションを活用して、別のファイルに移動することもできます。
GitHubプルリクエストとイシュー
GitHubプルリクエスト拡張機能にはさらなる進歩があり、プルリクエストやイシューの作業、作成、管理が可能になります。新機能は次のとおりです。
- 今日の相対的な期間を指定する変数 (
${today-7d}
) を使用したグローバルなプルリクエストクエリ。 :<emoji-name>:
形式の絵文字がコメントでサポートされるようになりました。- チェックアウトされていないプルリクエストの説明を開くと、古くなっていないすべてのコメントがコメントパネルに表示されます。
その他のハイライトについては、拡張機能の0.104.0リリースの変更ログをご覧ください。
プレビュー機能
エージェントモード (実験的)
Copilot Edits の新しいエージェントモードの開発を進めています。エージェントモードでは、Copilot はワークスペース内の関連するコンテキストを自動的に検索し、ファイルを編集し、エラーをチェックし、ターミナルコマンド (許可を得て) を実行して、タスクをエンドツーエンドで完了することができます。
Copilot Edits ビューのドロップダウンで、数か月間利用可能だった現在の編集モードとエージェントモードを切り替えることができます。ドロップダウンを表示するには、chat.agent.enabled設定を有効にします。エージェントモードは、本日よりVS Code Insidersで利用開始できます。VS Code Stable ユーザーには段階的に展開されます。Stable で設定が表示されない場合は、まだ有効になっていません。
エージェントモードでは、Copilot は自律的に実行されますが、現在のワークスペース内のファイルのみを編集できます。ターミナルコマンドを実行したい場合は、そのコマンドを表示し、続行する前にレビューして続行を選択するまで待機します。
注: エージェントモードでは Copilot Edits が多くのチャットリクエストを使用する可能性があるため、定期的に一時停止し、続行するかどうかを尋ねます。これはchat.agent.maxRequestsでカスタマイズできます。これは Copilot 有料ユーザーの場合はデフォルトで 15、Copilot 無料ユーザーの場合は 5 です。
VS CodeドキュメントのCopilot Editsにおけるエージェントモードの詳細をご覧ください。
Agentic codebase search (プレビュー)
クエリに#codebase
を追加すると、Copilot Editsはタスクに関連するファイルを検出します。ファイルやテキスト検索、Gitリポジトリの状態、ディレクトリ読み取りなどの追加ツールを使用して、関連ファイルを検出する実験的なサポートを追加しました。以前は、#codebase
はセマンティック検索のみを実行していました。
github.copilot.chat.edits.codesearch.enabledで有効にできます。フィードバックがあればぜひお寄せください。
VS Code Insiders の Copilot Vision (プレビュー)
VS Code Insiders の GitHub Copilot Chat のプレリリース版で、エンドツーエンドのビジョンサポートを導入しています。これにより、画像を添付して Copilot Chat プロンプトで画像と対話できます。たとえば、デバッグ中にエラーに遭遇した場合、VS Code のスクリーンショットをすばやく添付して Copilot に問題の解決を依頼できます。
画像を添付する方法はいくつかあります。
- OS またはエクスプローラービューから画像をドラッグアンドドロップ
- クリップボードから画像を貼り付け
- VS Code ウィンドウのスクリーンショットを添付 (Attach > Screenshot Window を選択)
選択したモデルが現在画像を処理する機能を持っていない場合、警告が表示されます。現在サポートされているモデルはGPT 4o
のみです。現在、サポートされている画像タイプはJPEG/JPG
、PNG
、GIF
、WEBP
です。
再利用可能なプロンプト (実験的)
この機能を使用すると、再利用可能なプロンプトを構築、保存、共有できます。プロンプトファイルは、Copilot Chat でプロンプトを作成する際に使用されるのと同じ形式に従う.prompt.md
Markdown ファイルであり、他のファイルや他のプロンプトにリンクすることもできます。タスク固有のガイダンス、コード生成の補助、または後で使用するための完全なプロンプトを添付できます。
プロンプトファイルを有効にするには、chat.promptFilesをtrue
に設定するか、{ "/path/to/folder": boolean }
表記を使用して別のパスを指定します。他のパスが指定されていない場合、.github/prompts
フォルダーがデフォルトでプロンプトファイル (*.prompt.md
) を見つけるために使用されます。
VS Codeのドキュメントでプロンプトファイルについて詳しく学ぶことができます。
Linuxのカスタムタイトルバー (実験的)
今回のマイルストーンでは、Linuxユーザーの一部を対象にカスタムタイトルバーを有効にする実験を開始します。
実験に参加していない場合でも、window.titleBarStyleをcustom
に手動で設定して試すことができます。
カスタムタイトルコンテキストメニューから、またはwindow.titleBarStyleをnative
に設定することで、いつでもネイティブのタイトル装飾に戻すことができます。
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) は、コンテキストに応じたアクションと情報を提供します。
code
、code-insiders
、cd
、ls
、rm
、echo
、mkdir
、rmdir
、touch
など、コマンドの引数認識を改善しました。- コマンドまたはリソースのパスを詳細情報として表示します。
.
、..
、../../
などのディレクトリナビゲーションショートカットのサポートを追加しました。- スクリーンリーダーの使用を有効にしました。
$PATH
から取得されたエントリは、実行可能ファイルの場合にのみ表示されるようになりました。Windowsにはファイルメタデータに実行可能ビットの概念がないため、拡張子のリストはterminal.integrated.suggest.windowsExecutableExtensionsで構成できます。これらは、今後の提案APIを使用して利用可能な場合は実際のシェル環境も使用するようになりました。- 詳細の切り替え ( ⌃Space (Windows, Linux Ctrl+Space) ) と、提案の詳細フォーカスの切り替え ( ⌃⌥Space (Windows, Linux Ctrl+Alt+Space) ) のキーボードサポートが強化されました。
- サジェストは常にすべてのタイプに表示されるようになり、エディターでのクイックサジェストの動作に近づきました。
Get-ChildItem
、Write-Host
などのPowerShell固有のグローバル補完が提案されるようになりました。
Tree-Sitter ベースの TypeScript 構文ハイライト
多くの Textmate 文法はもはやメンテナンスされていないため、構文ハイライトに Tree-Sitter を使用することを検討しています。まず TypeScript から始め、チームがそれをセルフホストしてフィードバックを提供できるようにしました。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でお知らせください。
この例は、terminal.integrated.suggest.enabledを介して有効にすると補完を提供する、当社のターミナルサジェスト拡張機能にあります。
ターミナルシェルタイプ
拡張機能は現在アクティブなシェルタイプ情報にアクセスできるようになります。shellType
フィールドはTerminalState
の一部になります。
このシェルタイプ情報を使用して、必要なシェル固有の操作を実行します。
エンジニアリング
整理整頓
12月に行った年次整理活動の一環として、私たちはすべてのリポジトリにわたるGitHubのイシューとプルリクエストのクリーンアップに注力しました。今年は、イシューとプルリクエストを3,821件純減し、バックログが関連性を保ち、管理しやすい状態であることを確認しました。
イシュークリーンアップガイドに従い、古い、重複した、もはや関連性のないイシューを確認し、トリアージしました。これにより、効率的な開発ワークフローを維持し、ユーザーのためにVisual Studio Codeを改善することに集中できます。
コミュニティの継続的な関与とフィードバックに感謝します。皆様の貢献がVS Codeを日々より良いものにしています!🚀
TypeScriptワークスペースでのファイル監視のリソース最適化
大規模なTypeScriptワークスペース(数千のTypeScriptファイルまたはプロジェクト)でファイル監視がもたらすオーバーヘッドを軽減するために、いくつかの最適化が行われました。特に、このようなワークスペースを開いてウォッチャーを初期化する際に、CPUの急増が見られなくなったり、CPU使用率がすぐに安定したりするはずです。
詳細については、このVS Codeの問題を参照してください。
注目すべき修正点
- 160325 ctrl+Dが押された後のターミナル起動失敗を抑制する
- 230438 コードページ
1125
、別名cp866u
のサポート - 238577 デフォルトのウィンドウサイズを増やす
- 197377 launch.jsonまたはtasks.jsonにおけるworkspaceFolder変数置換は、仮想ファイルシステムにURIを使用すべき
- 229857
focus comment on line
実行後、a11yビューが空白になる
ありがとうございます
最後に、VS Codeの貢献者の皆様に心からの感謝を申し上げます。
問題追跡
問題追跡への貢献者
- @gjsjohnmurray (ジョン・マレー)
- @IllusionMH (アンドリー・ディエイエフ)
- @RedCMD (RedCMD)
- @albertosantini (アルベルト・サンティーニ)
- @starball5 (スターボール)
プルリクエスト
vscode
への貢献者
- @Abrifq (アルダ・アイディン):
Create New Terminal
をターミナル位置に合わせてフォーカスするように変更 PR #237404 - @adrianstephens: カスタムエディタプレビュー PR #235533
- @andrewsuzuki (アンドリュー・スズキ): editorBracketHighlight.unexpectedBracket.foreground の 'new Color' 文字列の誤字を修正 PR #237236
- @aslezar (シヴァム・ガージ)
- 不正なGLIBCバージョン解析を修正PR #236082
- feat: カスタムjs switch-caseインデントをサポートPR #237069
- @atreids (アーロン・ドナルドソン): chore: VSIX進行通知のタイプミスを修正 PR #238845
- @BABA983 (BABA): Canonicalリソースでカスタムエディタを解決 PR #226614
- @congyuandong (スコット): fix: dependenciesSrcから重複する
!**/*.mk
エントリを削除 PR #236683 - @DetachHead: javascriptには列挙型がないため、
javascript.inlayHints.enumMemberValues.enabled
を削除 PR #236297 - @devm33 (デヴラージ・メータ): プロキシをサポートするためにgithub-authenticationにElectron fetchまたはNode fetchを使用 PR #238149
- @dmitrysonder (ドミトリー・ソンダー): リファクタリング: イベントにEventType定数を使用 PR #236941
- @fa0311 (ふぁ): ${unixTime} プレースホルダーがmarkdown.copyFiles.destinationで完全なミリ秒タイムスタンプを使用するように修正 PR #239061
- @g122622: ファイルメニューのスクロールバーが「最近開いたファイル」の上に表示される PR #236998
- @gjsjohnmurray (ジョン・マレー): Open Editorsビューのオーバーフローメニューに「設定」オプションを追加 PR #237678
- @goodmind (andretshurotshka): Fixes #44237: タスクに列番号を追加 PR #65264
- @HD787 (ヘンリー)
- markdown.copyFiles.destination オプションに ${unixTime} プレースホルダーを追加 PR #238027
- 設定ファイルのみが開いている場合にtypescriptコマンドを有効にするPR #238630
- @iamdereky (デレク・ヤン): HTMLエスケープされた引用符を使用した場合のCSSエラーを修正 PR #235367
- @jakebailey (ジェイク・ベイリー): tsconfig.base.jsonからパスを削除 PR #238475
- @janajar (ジャワド・ナジャル): 修正: 検索エディターで結果がない場合にエラーが発生する PR #235031
- @jaymroy: 問題: #214481 テキスト読み上げでコードブロックを無視するオプションを追加 PR #235697
- @jogibear9988 (ヨッヘン・キューナー): 画像プレビューでSVGをサポート PR #237217
- @Jules-Bertholet (ジュールズ・ベルトレ): デフォルトのショートカットで戻る/進むキーをサポート PR #237701
- @Legend-Master (トニー): カスタムタスクシェルが手動で"run command"引数/フラグを渡さないと動作しない問題を再修正 PR #236058
- @LemmusLemmus: Markdownの囲むペアに$を追加 PR #233981
- @leopardracer (leopardracer): fix: ドキュメントファイルのタイプミス PR #235968
- @misode (Misode): JSONスキーマ読み込み時にファイルパスへのuri変換が欠落していた問題を修正 PR #237275
- @mohankumarelec (モハンラム): Fixes #236973 PR #236974
- @notoriousmango (パク・ソンミン): Markdownプレビューに「開く画像」コンテキストを追加 PR #234649
- @numbermaniac: InlayHintKindドキュメントのタイプミスを修正 PR #238032
- @oltolm (oltolm): デバッグ: プロセス停止時のエラーを無視 PR #236009
- @oxcened (アレン・アジャム)
- 修正: ウィジェットがぼやけるときに_lastFocusedWidgetを未定義に設定 PR #234610
- 修正: lastFocusedListが割り当てられたときに有効かどうかを確認する PR #238765
- @pankajk07 (Pankaj Khandelwal): fix: 拡張機能のWeb Workerからの同期スクリプト読み込み PR #233175
- @Parasaran-Python (Parasaran)
- fix 227150: 再帰的なgitクローンボタンを追加 PR #232497
- fix 235221: 閉じられていないタグを閉じることでHTMLコンテンツをサニタイズ PR #236145
- @r3m0t (Tomer Chachamu): デバッガからのノートブックセルの表示が、アクティブなステートメントの停止と表示を修正 (Fixes #225290) PR #225292
- @rcjsuen (Remy Suen): アイコン拡張ポイントのヘルプテキストのtypoを修正 PR #238393
- @RedCMD (RedCMD)
- 拡張機能のプレビューコードブロック言語ゲッターを修正 PR #235880
- 拡張機能フィルターに
outdated
とrecentlyUpdated
の提案を追加 PR #235884
- @remcohaszing (レムコ・ハズイング)
- bun.lockをjsoncとしてマーク PR #235917
- jsonl言語の.ndjson拡張子を許可 PR #235921
- @RiskyMH (Michael H):
bun.lock
をパッケージマネージャーのロックファイルとして PR #236012 - @sunnylost (sunnylost): fix(settings-editor): キー名の幅が縮まないようにする PR #229919
- @tcostew: QuickAccessでGithub Copilot chatを表示できるようにする PR #210805
- @tmm1 (Aman Karmani)
- build: より多くのtscボイラープレートを含むように更新 PR #238422
- build:
build/tsconfig.json
をmodule: nodenext
に切り替え PR #238426
- @tobil4sk: 発散するfindExecutable関数をマージ PR #228373
- @zWingz (zWing): fix(git-ext): limitWarningがgit statusの進捗をブロックする問題を修正 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): docs: 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): chore(_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 query language server)を追加 PR #2068