2025年1月 (バージョン 1.97)
Update 1.97.1: このアップデートでは、以下のセキュリティの問題に対処しています。
Update 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のアップデートにアクセスしてください。Insider版: 新しい機能をいち早く試したいですか? ナイトリービルドであるInsider版をダウンロードして、最新のアップデートが利用可能になり次第試すことができます。
GitHub Copilot
Copilot 次の編集候補 (プレビュー)
設定: github.copilot.nextEditSuggestions.enabled
GitHub Copilotのコード補完はオートコンプリートに優れていますが、ほとんどのコーディング活動が既存のコードの編集であるため、補完が編集の支援にも進化するのは自然な流れです。そこで、新しいプレビュー機能であるCopilot 次の編集候補 (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 (Beta) (vscode.devでプレビュー)
最後に、設定可能なタイムアウト後に編集候補を自動的に承認する新しい設定を追加しました。その設定はchat.editing.autoAcceptDelayで、変更が承認されるまでの秒数を指定します。カウントダウンは、承認ボタンを操作するか、変更のレビューを開始すると停止します。これは、週末に一気見をする人にはおなじみでしょう。
テーマ: GitHub Light Colorblind (Beta) (vscode.devでプレビュー)
エディターに適用
Copilot Chatでは、コードブロックのツールバーにあるエディターに適用アクションを使用して、任意のコードブロックをワークスペース内のファイルに適用できます。このエクスペリエンスにいくつかの改善を加えました。
-
アクションのホバーに、コードブロックが生成されたファイルが表示されるようになりました。
-
コードブロックが存在しないファイルのものである場合、ファイルの作成場所を尋ねられます。これは、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によって管理されます。リモートインデックスは、大規模プロジェクトでも高品質な結果を迅速に提供できます。また、ユーザーごとではなく、GitHubプロジェクトごとに一度構築するだけで済みます。
これらすべての利点から、プロジェクトをリモートインデックスにアップグレードするいくつかの新しい方法を追加しました。
-
新しいGitHub Copilot: リモートインデックスを構築コマンドを実行します。
-
ワークスペースインデックスステータスUIで「インデックスを構築」ボタンを選択します。これは、プロジェクトがリモートインデックス作成の対象である場合にのみ表示されます。
-
最初に表示される
@workspace
応答の「インデックスを構築」ボタンを選択します。これは、プロジェクトが対象であり、ワークスペースごとに一度しか表示されません。
現在、GitHubリモートを持つプロジェクトのみがリモートインデックスを使用できることに注意してください。また、特にプロジェクトが大きい場合、リモートインデックスの構築には時間がかかる場合があります。ワークスペースインデックスステータスUIで、リモートインデックス作成が完了したかどうかを確認してください。
ワークスペース検索の改善
@workspace
および#codebase
のコード検索も引き続き最適化しています。ハイライトは以下のとおりです。
-
リモートインデックスを使用している場合のローカルで変更されたファイルの追跡と処理が改善されました。
-
ローカルインデックスで変更されたファイルのバックグラウンド更新が追加され、
@workspace
の質問が更新を待つ必要がなくなりました。 -
大規模プロジェクト向けの基本インデックスが最適化されました。
Git変更コンテキスト変数
ChatまたはEditsのクエリを作成する際に、#changes
コンテキスト変数を使用してGitソース管理で変更されたファイルを参照できるようになりました。たとえば、summarize the #changes in my workspace
とプロンプトできます。
モデルの可用性
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
コマンドパレットからヘルプ: 信号サウンドを一覧表示コマンドを実行することで、これらの更新をプレビューできます。
Copilot Editsアクセシビリティヘルプダイアログ
スクリーンリーダーユーザーは、入力ボックス内で⌥F1 (Windows Alt+F1, Linux Shift+Alt+F1)を呼び出すことで、Copilot Editsとの対話に関するガイダンスにアクセスできるようになりました。
さらに、エディターに保留中のCopilot編集が含まれている場合、このステータスがエディターヘルプダイアログに表示されるようになりました。また、次へ⌥F5 (Windows, Linux Alt+F5) / 前へ⇧⌥F5 (Windows, Linux Shift+Alt+F5)のナビゲーション、承認⌘Y (Windows, Linux Ctrl+Y)、破棄⌘N (Windows, Linux Ctrl+N)、および差分ビューの切り替えのキーボードショートカットも導入しました。
ソース管理アクセシビリティヘルプダイアログ
ソース管理ビューがフォーカスされているときに「アクセシビリティヘルプを表示」コマンドを呼び出すと、ソース管理アクセシビリティヘルプダイアログが開き、スクリーンリーダーユーザーにとって重要な情報が提供されます。ダイアログには、現在のソース管理状態の概要と、ビューおよびそれらのナビゲート方法に関する一般情報が含まれています。
スクリーンリーダー通知の改善
スクリーンリーダーが検出された場合、関連する通知に詳細情報へのリンクが含まれるようになり、追加のコンテキストとリソースが提供されます。
テキスト読み上げでコードブロックを無視
以前は、Copilotの応答をテキスト読み上げで読み上げる際、コードブロックも読み上げられていました。設定accessibility.voice.ignoreCodeBlocksを使用することで、テキスト読み上げセッションからコードブロックを無視できるようになりました。
Workbench
コマンドパレットとクイック入力の移動
コマンドパレットやその他のクイック入力を、ウィンドウの上部に固定するのではなく、新しい位置に移動できるようになりました。
機能
- 中央と上部にスナップするコマンドパレットまたはその他のクイック入力のドラッグアンドドロップ
- リロード後も位置が保持され、クイック入力の新しい恒久的な位置を設定できる
- プリセット位置は、レイアウトカスタマイズピッカーで利用可能
拡張機能発行元の信頼
発行元からの拡張機能を初めてインストールする際に、拡張機能発行元の信頼性を評価するのに役立つダイアログが表示されるようになりました。この機能は、信頼できるソースからの拡張機能のみをインストールすることを保証し、開発環境のセキュリティを強化するのに役立ちます。
拡張機能パックまたは依存関係を持つ拡張機能をインストールした場合、発行元を信頼すると、それに伴ってインストールされる拡張機能の発行元も暗黙的に信頼されます。
VS Code 1.97リリースにアップデートすると、現在インストールされている拡張機能の発行元は自動的に信頼されます。信頼済み拡張機能発行元は、拡張機能: 信頼済み拡張機能発行元を管理コマンドで管理できます。このコマンドを使用すると、以前に信頼した発行元の信頼をリセットまたは取り消すことができます。
注: VS Codeウィンドウが開いていない状態でCLIから拡張機能(code-insiders --install-extension pub.name
)をインストールした場合、拡張機能はインストールされますが、発行元は信頼済みリストに追加されません。
詳細については、詳細情報のリンクを参照してください。
出力パネルのフィルタリング
出力パネルのコンテンツをフィルタリングできるようになり、特に大量のログデータを扱う場合に、ログの管理と分析が大幅に改善されます。
- ログレベルでフィルタリング: 重大度レベル(例: エラー、警告、情報)に基づいてログをフィルタリングします。これにより、最も重要な問題にまず焦点を当てることができます。
- カテゴリでフィルタリング: 特定のカテゴリでログを絞り込み、特定のソースまたはコンポーネントからのログを分離できます。カテゴリはログデータから自動的に取得されます。
- テキストでフィルタリング: ログ内の特定のテキストを検索して、関連するエントリをすばやく見つけます。
複合ログ
情報が複数のログにまたがっており、全体像を把握するためにそれらを一緒に表示する必要がある場合があります。これで、単一の複合ログビューで複数のログを表示できるようになりました。これを新しいフィルタリング機能と組み合わせることで、ログの分析がさらに向上しました!
カスタム複合ログを作成するには、出力パネルのオーバーフローメニューにある複合ログを作成...アクションを使用します。
複合ログをエディターまたは新しいVS Codeウィンドウで開いて、柔軟な監視と分析を行うこともできます。この機能は、関連するログの統合ビューを提供することで、問題の診断能力を向上させます。
注: 複合ログビューは現在、VS Codeの再起動後も保持されません。
ログのエクスポートとインポート
出力ビューのオーバーフローメニューのアクションを使用して、ログをエクスポートおよびインポートできるようになりました。この機能により、ログの共有とレビューが容易になり、コラボレーションとログ管理が向上します。
ログをエクスポートまたはインポートするには、出力パネルのオーバーフローメニューで対応するログのエクスポートまたはログのインポートアクションを選択します。
設定エディターの検索修正
今回のイテレーションでは、文字が欠落している検索クエリが期待される結果を表示しないリグレッションを修正しました。たとえば、設定エディターでは、「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
検索と置換の履歴の永続化
前回のマイルストーンで、エディターの検索コントロールに履歴の永続化を導入しました。今回のマイルストーンでは、これを置換入力コントロールにも拡張し、複数のセッションにわたって両方を個別に保持できるようにしました。置換履歴はワークスペースごとに保存され、editor.find.replaceHistory設定で無効にできます。
コメント
未送信のコメントを閉じる際の確認
未送信のコメントがあるコメントコントロールをesc
キーなどで閉じると、確認ダイアログが表示されるようになりました。この確認は、設定comments.thread.confirmOnCollapseで無効にできます。
コメントエディターのクイックアクション
コメントエディターからクイックアクションを使用できます。
ソース管理
Git blame情報
今回のマイルストーンでは、エディターとステータスバーにGit blame情報を表示する機能を引き続き磨き上げました。また、エディターの装飾またはステータスバー項目にホバーしたときに表示される情報も改善しました。
Git blameのステータスバー項目はデフォルトで有効になっており、git.blame.statusBarItem.enabled設定を使用して無効にできます。Git blameエディターの装飾は、git.blame.editorDecoration.enabled設定で有効にしてください。
コマンドパレットまたはキーバインド(Git: Git Blameエディター装飾を切り替え、Git: Git Blameステータスバー項目を切り替え)を使用して、Git blame情報を簡単に切り替えるコマンドも追加しました。
GitHubリポジトリ
GitHubでホストされているリポジトリの場合、タイムラインのコンテキストメニューとホバー、ソース管理グラフのコンテキストメニューとホバー、およびGit blameエディターの装飾とステータスバー項目のホバーに、新しいコマンドGitHubで開くを追加しました。
GitHubのイシューとプルリクエストの参照は、タイムライン、ソース管理グラフ、およびGit blameエディターの装飾とステータスバー項目のホバーでリンクとしてレンダリングされるため、ブラウザーで簡単に開くことができます。
最後に、タイムライン、ソース管理グラフ、およびGit blameエディターの装飾とステータスバー項目のホバーにGitHubアバターも追加しました。github.showAvatar設定を使用して、GitHubアバターのレンダリングを無効にできます。
ソース管理グラフのアクション
ソース管理グラフビューの機能を拡張し、履歴アイテム参照(例: ブランチタグ)にスコープが設定されたアクションをコンテキストメニューに追加しました。最初に追加されたアクションは、チェックアウト、ブランチの削除、およびタグの削除で、ソース管理グラフビューから直接ブランチ/タグのチェックアウト、ブランチの削除、タグの削除を簡単に行えるようにします。
今後のマイルストーンで、さらに多くのアクションを追加する予定です。
ノートブック
セル実行時のインライン値
ノートブックエディターは、設定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ツールが進行状況を報告するために使用します。ターミナルタブで進行状況を表示するには、terminal.integrated.tabs.titleまたはterminal.integrated.tabs.descriptionに${progress}
を追加します。これは通常、進行状況スピナーまたはパーセンテージとして表示されます。
切り捨てられたコマンドのスティッキースクロール
ターミナルのスティッキースクロール(terminal.integrated.stickyScroll.enabled)が、コマンドが末尾に省略記号で切り捨てられた場合に表示されるようになりました。
最後のターミナルが閉じるときの動作を構成
新しいterminal.integrated.hideOnLastClosed設定により、最後のターミナルが閉じられたときにパネルを閉じるかどうかを構成できます。これに伴い、ターミナルが開いていない場合の操作性が改善されました。
タスク
列番号変数
新しい${columnNumber}
変数をtasks.json
とlaunch.json
で使用して、カーソル位置の列番号を参照できるようになりました。VS Codeドキュメントの変数の全リストを参照してください。
デバッグ
値のフィルタリングと検索
変数と監視ビューでビュー内検索(⌥⌘F (Windows, Linux Ctrl+Alt+F))を使用して、名前だけでなく変数と式の値でフィルタリングできるようになりました。
デバッグコンソールでの選択
デバッグコンソールは、より長く信頼性の高いコンテンツ選択をサポートするようになり、コピー&ペーストが容易になりました。
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経由のリモートマシン、リモートトンネル、またはWindows Subsystem for Linux (WSL) をフル機能の開発環境として使用できます。
主なハイライトは次のとおりです。
- Linuxレガシーサーバーへの接続の移行パス
- SSHチャット参加者の改善
- SSH構成の改善
- SSHのデフォルトのリモート拡張機能
これらの機能の詳細については、リモート開発リリースノートをご覧ください。
拡張機能への貢献
Microsoftアカウント
MicrosoftアカウントがMSALを使用するように (WindowsでのWAMサポート付き)
注: 先月展開されたMicrosoft向けMSALベースの認証は、重大なバグのためロールバックする必要がありました。このバグは修正され、展開を進めています。
Microsoft認証の強力なセキュリティベースラインを確保するために、Microsoftアカウント拡張機能でMicrosoft認証ライブラリを採用しました。
この作業の際立った機能の1つは、WAM (Webアカウントマネージャー... 別名Broker) 統合です。簡単に言えば、Microsoft認証フローのためにブラウザにアクセスする代わりに、OSと直接通信するようになりました。これは、Microsoft認証セッションを取得する推奨される方法です。さらに、OSにすでにログインしているアカウントを利用できるため、高速です。
この新しいフローで問題が見つかった場合はお知らせください。重大な問題が見つかり、以前のMicrosoft認証動作に戻す必要がある場合は、microsoft-authentication.implementation(classic
に設定してVS Codeを再起動)で可能ですが、この設定は長くは利用できないことに注意してください。したがって、MSALフローで問題が発生した場合は、issueを開いてください。
Python
ターミナルからネイティブREPLを起動
ターミナルのREPLからVS CodeネイティブREPLを起動できるようになりました。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プルリクエストとイシュー
プルリクエストとイシューの作業、作成、管理を可能にする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のエージェントモードの詳細をご覧ください。
エージェント的コードベース検索 (プレビュー)
クエリに#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ウィンドウのスクリーンショットを添付する(添付 > スクリーンショットウィンドウを選択)
選択したモデルが現在画像を処理する機能を持っていない場合、警告が表示されます。現時点でサポートされているモデルはGPT 4o
のみです。現在サポートされている画像タイプは、JPEG/JPG
、PNG
、GIF
、およびWEBP
です。
再利用可能なプロンプト (実験的)
この機能により、再利用可能なプロンプトを作成、保存、共有できます。プロンプトファイルは、Copilot Chatでプロンプトを作成する際に使用されるのと同じ形式に従う.prompt.md
Markdownファイルであり、他のファイルや他のプロンプトにもリンクできます。タスク固有のガイダンス、コード生成の支援、または後で使用するための完全なプロンプトのために、プロンプトファイルを添付できます。
プロンプトファイルを有効にするには、chat.promptFilesをtrue
に設定するか、異なるパスを指定するために{ "/path/to/folder": boolean }
表記を使用します。他のパスが指定されていない場合、プロンプトファイル(*.prompt.md
)の検索にはデフォルトで.github/prompts
フォルダーが使用されます。
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固有のグローバル補完が提案されるようになりました。
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
が表示される
OpenDialogOptions
のopenLabel
プロパティが、シンプルファイルピッカーでサポートされるようになりました(以前はシステムファイルピッカーでのみサポートされていました)。これにより、ファイルピッカーのボタンにカスタムラベルを提供できます。
ファイルレベルのコメントAPI
コメントAPIは、ファイルレベルのコメントの作成と表示をサポートしています。ファイルレベルのコメントは、ファイルの先頭、最初の行の前に表示されます。ファイル内の特定の行や範囲にはアタッチされません。ファイルレベルのコメントを表示するには、コメントのrange
をundefined
に設定します。コメント範囲プロバイダーからファイルレベルのコメントを残すことをサポートするには、CommentingRangeProvider
のenableFileComments
プロパティをtrue
に設定します。
提案されたAPI
ターミナル補完プロバイダー
これでターミナル補完プロバイダーを登録できるようになりました。このGitHubイシューでご意見をお聞かせください。
これの例は、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 (John Murray)
- @IllusionMH (Andrii Dieiev)
- @RedCMD (RedCMD)
- @albertosantini (Alberto Santini)
- @starball5 (スターボール)
プルリクエスト
vscode
への貢献者
- @Abrifq (Arda Aydın):
Create New Terminal
をターミナル位置に応じてフォーカスするように変更 PR #237404 - @adrianstephens: カスタムエディタープレビュー PR #235533
- @andrewsuzuki (Andrew Suzuki): editorBracketHighlight.unexpectedBracket.foregroundの'new Color'文字列のタイプミスを修正 PR #237236
- @aslezar (Shivam Garg)
- 誤ったGLIBCバージョン解析の修正 PR #236082
- feat: カスタムjs switch-caseインデントのサポート PR #237069
- @atreids (Aaron Donaldson): chore: VSIX進行状況通知のタイプミスを修正 PR #238845
- @BABA983 (BABA): 正準リソースでカスタムエディターを解決 PR #226614
- @congyuandong (scott): fix: dependenciesSrcの重複エントリ
!**/*.mk
を削除 PR #236683 - @DetachHead: javascriptにenumがないため
javascript.inlayHints.enumMemberValues.enabled
を削除 PR #236297 - @devm33 (Devraj Mehta): プロキシをサポートするためにgithub-authenticationにElectron fetchまたはNode fetchを使用 PR #238149
- @dmitrysonder (Dmitry Sonder): refactor: イベントにEventType定数を使用 PR #236941
- @fa0311 (ふぁ): markdown.copyFiles.destinationでの${unixTime}プレースホルダーのミリ秒タイムスタンプ完全使用を修正 PR #239061
- @g122622: ファイルメニューのスクロールバーが「最近開いた項目」の上に表示される PR #236998
- @gjsjohnmurray (John Murray): 開いているエディタービューのオーバーフローメニューに「構成」オプションを追加 PR #237678
- @goodmind (andretshurotshka): Fixes #44237: タスクに列番号を追加 PR #65264
- @HD787 (Henry)
- markdown.copyFiles.destinationオプションに${unixTime}プレースホルダーを追加 PR #238027
- 設定ファイルのみが開いている場合にtypescriptコマンドを有効化 PR #238630
- @iamdereky (Derek Yang): HTMLエスケープされた引用符使用時のCSSエラーを修正 PR #235367
- @jakebailey (Jake Bailey): tsconfig.base.jsonからパスを削除 PR #238475
- @janajar (Jawad Najar): Fix: 検索エディターで結果がない場合にエラーが発生する 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): fix: ドキュメントファイルのタイプミス PR #235968
- @misode (Misode): jsonスキーマ読み込み時のuriからファイルパスへの変換漏れを修正 PR #237275
- @mohankumarelec (mohanram): Fixes #236973 PR #236974
- @notoriousmango (Seong Min Park): Markdownプレビューに「画像を開く」コンテキストを追加 PR #234649
- @numbermaniac: InlayHintKind docsのタイプミスを修正 PR #238032
- @oltolm (oltolm): debug: プロセス停止時のエラーを無視 PR #236009
- @oxcened (Alen Ajam)
- fix: ウィジェットのぼかし時に_lastFocusedWidgetを未定義に設定 PR #234610
- fix: lastFocusedListが割り当てられたときに有効かチェック PR #238765
- @pankajk07 (Pankaj Khandelwal): fix: 拡張機能のウェブワーカーからの同期スクリプト読み込み 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): icon拡張ポイントのヘルプテキストのタイプミスを修正 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: GitHub Copilotチャットがクイックアクセスに表示されるようにする 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): イシュー作成時に常にリポジトリを尋ねるオプトインを追加し、イシューファイルにリポジトリを指定するコメントを追加 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