2025年2月 (バージョン 1.98)
アップデート 1.98.1: このアップデートでは、これらの問題に対処しています。
アップデート 1.98.2: このアップデートでは、これらの問題に対処しています。
ダウンロード: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Visual Studio Code の2025年2月リリースへようこそ。このバージョンには、気に入っていただけるであろう多くのアップデートが含まれており、主なハイライトは以下のとおりです。
- 次回の編集候補 (プレビュー) - Copilot が次に実行する可能性のある編集を予測します。
- エージェントモード (プレビュー) - Copilot が自律的にタスクを完了します。
- ノートブックの Copilot Edits サポート - ノートブックの編集を迅速に反復処理します。
- Copilot Vision - チャットプロンプトで画像を添付して操作します。
- コード検索 - Copilot がチャットプロンプトに関連するファイルを見つけます。
- ターミナル IntelliSense (プレビュー) - ターミナルで豊富な補完サポート。
- 参照のドラッグ&ドロップ - 新しいエディターでピーク参照をすばやく開きます。
- Linux カスタムタイトルバー - Linux でカスタムタイトルバーのサポートがデフォルトで有効になりました。
- 未解決の診断 (プレビュー) - 未解決の診断がある場合にコミット時にプロンプトを表示します。
- ソース管理でのソフト削除 - トラックされていないファイルを削除する代わりにゴミ箱に移動します。
- カスタム指示 (一般提供) - カスタム指示を使用して Copilot をニーズに合わせて調整します。
これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com の アップデート をご覧ください。インサイダー: 新機能をいち早く試したいですか?夜間の インサイダー ビルドをダウンロードして、最新の更新プログラムが利用可能になり次第すぐに試すことができます。
GitHub Copilot
Copilot の機能は、さまざまな早期アクセス段階を経る可能性があり、通常は設定を通じて有効化および構成されます。
| 段階 | 説明 | 
|---|---|
| 実験的 | この機能はまだ開発中であり、一般使用にはまだ準備ができていません。 実験的な機能 ( @tag:experimental) を表示します。 | 
| プレビュー | この機能はまだ改良中ですが、すぐに使用できます。フィードバックを歓迎します。 プレビュー機能 ( @tag:preview) を表示します。 | 
| 安定版 | この機能は一般使用可能です。 | 
Copilot Edits
エージェントモードの改善 (実験的)
先月、VS Code Insiders で Copilot Edits のエージェントモードを導入しました。エージェントモードでは、Copilot がワークスペース内の関連コンテキストを自動的に検索し、ファイルを編集し、エラーをチェックし、ターミナルコマンドを実行して (許可を得て)、タスクをエンドツーエンドで完了することができます。
注: エージェントモードは現在 VS Code Insiders で利用可能であり、VS Code Stable で徐々に展開を開始しました。エージェントモードが有効になると、Copilot Edits ビューにモードドロップダウンが表示されます。単にエージェントを選択してください。
今月、ツールの使用に関する UX をいくつか改善しました。
- ターミナルコマンドがインラインで表示されるようになり、どのコマンドが実行されたかを追跡しやすくなりました。
- ターミナルコマンドを実行する前に、チャット応答で提案されたターミナルコマンドを編集できます。
- ⌘Enter (Windows, Linux Ctrl+Enter) ショートカットでターミナルコマンドを確定します。
エージェントモードは、関連コンテキストをコードベースで自律的に検索します。メッセージを展開して、実行された検索結果を確認してください。

また、エージェントモードのプロンプトと動作にもさまざまな改善を加えました。
- チャットの元に戻す (undo) およびやり直し (redo) アクションは、チャット応答で行われた最後のファイル編集を元に戻すかやり直すようになりました。これにより、モデルが行った特定のステップをチャット応答全体をロールバックすることなく元に戻すことができるため、エージェントモードで役立ちます。
- エージェントモードは、ビルドタスクを自動的に、または指示があったときに実行できるようになりました。モデルが実行すべきでないときにタスクを実行しているのを見かけた場合は、github.copilot.chat.agent.runTasks 設定でこの機能を無効にしてください。
Copilot Edits エージェントモードの詳細については、またはエージェントモードの発表ブログ投稿をお読みください。
注: Copilot Business または Enterprise ユーザーの場合、エージェントモードを利用するには、組織の管理者が Copilot 「エディタープレビュー機能」の使用を有効にする必要があります。
Copilot Edits でのノートブックサポート (プレビュー)
VS Code Insiders でのプレビュー機能として、Copilot Edits でノートブックのサポートを導入しています。コードファイルを編集するのと同じ直感的な体験で、Copilot を使用してノートブックファイルを編集できるようになりました。ゼロから新しいノートブックを作成したり、複数のセルにわたってコンテンツを変更したり、セルを挿入したり削除したり、セルタイプを変更したりできます。このプレビュー機能は、データサイエンスまたはドキュメントノートブックを扱う際にシームレスなワークフローを提供します。
注: この機能は現在、GitHub Copilot Chat のプレリリース版がインストールされた VS Code Insiders でのみ利用可能です。将来のリリースで VS Code Stable に導入する前に、エクスペリエンスを改善し続けます。
洗練されたエディター統合
Copilot Edits とコードおよびノートブックエディターの統合を洗練しました。
- 変更が適用されている間、スクロールが不要になりました。ビューポートは元の位置に留まり、変更内容に集中しやすくなりました。
- 編集レビューアクションの名前を「承諾」から「維持」に、「破棄」から「元に戻す」に変更し、何が起こっているかをより正確に反映させました。Copilot Edits の変更はライブであり、作成と同時に適用および保存され、ユーザーはそれを維持または元に戻します。
- ファイルを維持または元に戻した後、次のファイルが自動的に表示されます。
このビデオは、編集がどのように適用され、発生と同時に保存されるかを示しています。ライブプレビューが更新され、ユーザーは変更を「維持」することに決定しました。元に戻すことや、さらに調整することも可能です。
刷新されたUI
Copilot Edits と Copilot Chat の統一に向けて、Copilot Edits の外観を刷新しました。添付されたがまだ送信されていないファイルは、通常のチャット添付ファイルとして表示されるようになりました。AI によって変更されたファイルのみが、チャット入力部分の上にある変更済みファイルリストに追加されます。
chat.renderRelatedFiles 設定を使用すると、関連ファイルの候補を取得できるようになります。関連ファイルの候補は、チャット添付ファイルの下に表示されます。

Copilot Edits の制限を解除
以前は、Copilot Edits でプロンプトに添付できるファイルは 10 個に制限されていました。このリリースでは、この制限を解除しました。さらに、10 分あたり 14 回のインタラクションというクライアント側のレート制限も解除しました。
サービス側の使用量レート制限は引き続き適用されることに注意してください。
カスタム命令の一般提供
設定: github.copilot.chat.codeGeneration.useInstructionFiles
カスタム命令を使用すると、GitHub Copilot がチャット応答とコード候補を、あなたとあなたのチームの作業方法に合わせて提供するように調整できます。ワークスペース内の .github/copilot-instructions.md ファイルに、Markdown 形式で具体的な要件を記述してください。
このマイルストーンで、.github/copilot-instructions.md を使用したカスタム命令を一般提供します。github.copilot.chat.codeGeneration.useInstructionFiles VS Code 設定が有効になっていることを確認してください。そうすれば、Copilot は応答を生成する際にこれらの命令を使用します。
Copilot のカスタム命令の詳細については、こちらをご覧ください。
チャットでの認証フローをよりスムーズに
ソースコードを GitHub リポジトリでホストしている場合、高度なコード検索、@github チャット参加者などの機能を活用できます!
ただし、プライベートな GitHub リポジトリの場合、VS Code は GitHub 上のリポジトリとやり取りする権限が必要です。以前は、特定の機能 (例えば、@workspace や @github に質問したり、#codebase ツールを使用したり) を呼び出したときにモーダルダイアログが表示される、通常の VS Code 認証フローでこれが提示されていました。
このエクスペリエンスをよりスムーズにするために、チャットにこの確認を導入しました。

モーダルダイアログほど耳障りではないだけでなく、新しい機能も備わっています。
- 付与: 以前と同様に通常の認証フロー (モーダル経由) が行われます。
- 今はしない: VS Code はあなたの選択を記憶し、次の VS Code ウィンドウセッションまで再度表示しません。ただし、@githubのように、機能がこの追加の権限を必要とする場合は例外です。
- 今後尋ねない: VS Code はあなたの選択を記憶し、github.copilot.advanced.authPermissions 設定を通じて永続化します。この追加の権限を必要とする機能は失敗します。
この確認は、Copilot (サービス) がリポジトリにアクセスすることを承認または拒否するものではないことに注意することが重要です。これは、VS Code の Copilot エクスペリエンスが認証する方法にすぎません。Copilot がアクセスできるものを設定するには、コンテンツ除外に関するドキュメントをお読みください。
Copilot Chat でのより高度なコードベース検索
設定: github.copilot.chat.codesearch.enabled
Copilot Chat クエリに #codebase を追加すると、Copilot がチャットプロンプトに関連するコードをワークスペース内で見つけるのに役立ちます。#codebase は、テキスト検索やファイル検索などのツールを実行して、ワークスペースから追加のコンテキストを取り込むことができるようになりました。
github.copilot.chat.codesearch.enabled を設定して、この動作を有効にします。ツールの完全なリストは次のとおりです。
- 埋め込みベースのセマンティック検索
- テキスト検索
- ファイル検索
- Git 変更済みファイル
- プロジェクト構造
- ファイルの読み取り
- ディレクトリの読み取り
- ワークスペースシンボル検索
問題をチャットコンテキストとして添付
ワークスペース内のコードやその他の問題を修正するために、[問題] パネルからチャットに問題をコンテキストとして添付できるようになりました。
[問題] パネルからチャットビューにアイテムをドラッグするか、プロンプトに #problems と入力するか、紙クリップ 📎 ボタンを選択します。特定のファイル内の特定の問題、すべての問題、またはコードベース内のすべてのファイルを添付できます。
フォルダーをコンテキストとして添付
以前は、エクスプローラービューからドラッグアンドドロップを使用してフォルダーをコンテキストとして添付できました。今回、紙クリップ 📎 アイコンを選択するか、チャットプロンプトに #folder: の後にフォルダー名を入力することでもフォルダーを添付できるようになりました。
次回の編集候補の折りたたみモード (プレビュー)
設定:
NES に折りたたみモードを追加しました。このモードを有効にすると、左側のエディター余白に NES 候補インジケーターのみが表示されます。Tab キーを押して移動した場合にのみ、コード候補自体が表示されます。候補が受け入れられるまで、連続する候補がすぐに表示されます。
折りたたみモードはデフォルトで無効になっており、editor.inlineSuggest.edits.showCollapsed を設定することで有効にできます。または、NES ガッターインジケーターメニューで有効/無効を切り替えることができます。

補完モデルの変更
Copilot Chat および Copilot Edits の言語モデルはすでに変更できましたが、インライン候補のモデルも変更できるようになりました。
または、コマンドパレットの補完モデルの変更コマンド、またはタイトルバーの Copilot メニューのコード補完の設定項目から、コード補完に使用されるモデルを変更することもできます。
注: 利用可能なモデルのリストは時間の経過とともに変化する可能性があります。Copilot Business または Enterprise ユーザーの場合、管理者は GitHub.com のCopilot ポリシー設定で「Editor Preview Features」をオプトインすることで、組織に対して特定のモデルを有効にする必要があります。
モデルの可用性
このリリースでは、Copilot を使用する際に選択できるモデルを追加しました。Visual Studio Code と github.com チャットのモデル選択器で、以下のモデルが利用可能になりました。
- 
GPT 4.5 (プレビュー): OpenAI の最新モデルである GPT-4.5 が、GitHub Copilot Chat で Copilot Enterprise ユーザーに利用可能になりました。GPT-4.5 は、直感、文章スタイル、幅広い知識において高度な機能を備えた大規模言語モデルです。GPT-4.5 モデルの利用可能性に関する詳細については、GitHub ブログの投稿をご覧ください。 
- 
Claude 3.7 Sonnet (プレビュー): Claude 3.7 Sonnet が、有料の Copilot プランをご利用のすべてのお客様に利用可能になりました。この新しい Sonnet モデルは、Copilot の思考モードと非思考モードの両方をサポートしています。初期テストでは、エージェントシナリオにおいて特に大きな改善が見られました。Claude 3.7 Sonnet モデルの利用可能性に関する詳細については、GitHub ブログの投稿をご覧ください。 
Copilot Vision (プレビュー)
このバージョンの Copilot Chat では、エンドツーエンドのビジョンサポートを迅速に展開しています。これにより、チャットプロンプトで画像を添付したり、画像とやり取りしたりすることができます。たとえば、デバッグ中にエラーが発生した場合、VS Code のスクリーンショットを添付し、Copilot に問題の解決を依頼することができます。また、UI モックアップを添付して、Copilot にモックアップを実装するための HTML と CSS を提供させることもできます。

画像を添付する方法は複数あります。
- OSまたはエクスプローラービューから画像をドラッグ&ドロップする
- クリップボードから画像を貼り付ける
- VS Code ウィンドウのスクリーンショットを添付する (紙クリップ 📎 ボタン > スクリーンショットウィンドウを選択)
現在選択されているモデルがそのファイルタイプを処理する能力を持っていない場合、警告が表示されます。現在サポートされているモデルは GPT 4o のみですが、Claude 3.5 Sonnet および Gemini 2.0 Flash による画像添付のサポートもまもなく開始されます。現在、サポートされている画像タイプは JPEG/JPG、PNG、GIF、および WEBP です。
Copilot ステータス概要 (実験的)
設定: chat.experimental.statusIndicator.enabled
私たちは、Copilot のステータスと主要なエディター設定の概要を素早く提供する、新しい集中型の Copilot ステータス概要を実験しています。
- Copilot Free ユーザーの場合のクォータ情報
- コード補完などのエディター関連設定
- その他の Copilot 機能を使用するための便利なキーボードショートカット
この Copilot ステータス概要は、ステータスバーの Copilot アイコンからアクセスできます。

chat.experimental.statusIndicator.enabled 設定で Copilot ステータス概要を有効にします。
インライン補完のための TypeScript コンテキスト (実験的)
設定: chat.languageContext.typescript.enabled
TypeScript ファイルのインライン補完および /fix コマンドの強化されたコンテキストを実験しています。この実験は現在、Insider リリースに限定されており、chat.languageContext.typescript.enabled 設定で有効にできます。
プルリクエストのタイトルと説明のカスタム指示
github.copilot.chat.pullRequestDescriptionGeneration.instructions の設定で、プルリクエストのタイトルと説明を生成するためのカスタム指示を提供できます。設定でワークスペース内のファイルを指定することも、設定でインラインで指示を提供することもできます。VS Code で Copilot をカスタマイズすることに関する詳細をご覧ください。
次のサンプルは、設定でカスタム指示をインラインで提供する方法を示しています。
{
  "github.copilot.chat.pullRequestDescriptionGeneration.instructions": [
    {
      "text": "Prefix every PR title with an emoji."
    }
  ]
}
タイトルと説明の生成には、GitHub Pull Requests 拡張機能がインストールされている必要があります。
アクセシビリティ
Copilot Edits アクセシビリティ
Copilot Edits のアクセシビリティを大幅に向上させました。
- 変更のあるファイルや変更された領域 (挿入、変更、削除) に対して、音声信号が追加されました。
- アクセシブルな差分ビューアが変更されたファイルで利用可能になりました。差分エディターと同様に、F7 を選択して有効にするだけです。
activeEditorState ウィンドウタイトル変数
新しいwindow.title変数、activeEditorStateが追加されました。これは、スクリーンリーダーユーザーに対して、変更状態、問題数、ファイルに保留中のCopilot Editsがあるかどうかなどのエディター情報を示します。スクリーンリーダー最適化モードの場合、これはデフォルトで追加され、accessibility.windowTitleOptimizedで無効にできます。
Workbench
Linux のカスタムタイトルバー
カスタムタイトルバーが Linux でデフォルトで有効になりました。カスタムタイトルバーを使用すると、レイアウトコントロール、Copilot メニューなどにアクセスできます。

カスタムタイトルコンテキストメニューから、またはwindow.titleBarStyleをnativeに設定することで、いつでもネイティブタイトルデコレーションに戻すことができます。

このエクスペリエンスに対する継続的なフィードバックを歓迎し、既存のフィードバックに基づいて将来のマイルストーンに向けて改善に取り組んでいます。
セカンダリサイドバービューのラベルを使用
パネル領域と同様に、セカンダリサイドバーのビューの表示をアイコンの代わりにラベルを表示するように変更することにしました。これにより、Copilot Edits と Copilot Chat ビューなど、異なるビューを区別しやすくなります。workbench.secondarySideBar.showLabels を設定することで、いつでもアイコン表示に戻すことができます。

新しい設定エディターキーマッチングアルゴリズム (プレビュー)
設定: workbench.settings.useWeightedKeySearch
より関連性の高いキーの一致を優先する、新しい設定エディター検索アルゴリズムを追加しました。この検索アルゴリズムは、以前よりも多くの方法で設定 ID とラベルを一致させようとしますが、結果を絞り込み、最適な一致タイプのみが表示されるようにします。
workbench.settings.useWeightedKeySearch 設定を有効にすることで、このプレビュー機能を試すことができます。
テーマ: Light Pink (vscode.dev でプレビュー)
シンプルなファイルピッカーでドットファイルを非表示にするオプション
シンプルなファイルピッカー (リモートに接続している場合、またはfiles.simpleDialog.enableを使用している場合) を使用している場合、ドットファイルの表示/非表示ボタンを使用してドットファイルを非表示にできるようになりました。

Editor
ピーク参照のドラッグ&ドロップサポート
ピークビューがドラッグ&ドロップをサポートするようになりました。参照をピーク、実装をピーク、またはその他のピークコマンドを呼び出し、そのツリーからエントリをドラッグして、個別のエディターとして開きます。
テーマ: GitHub Light Colorblind (Beta) (vscode.devでプレビュー)
出現箇所のハイライト遅延
エディター内での出現箇所のハイライトの遅延が、デフォルトで 0 に設定されました。これにより、エディター全体の応答性が向上します。遅延は、editor.occurrencesHighlightDelay 設定で引き続き制御できます。
ソース管理
更新されたビュータイトル
ソース管理グラフビューをソース管理ビューに追加したとき、「ソース管理リポジトリ」、「ソース管理」、「ソース管理グラフ」というセクションタイトルの重複が強調されました。このマイルストーンでは、ビューのタイトルを見直し、短くし、ビュータイトルを重複させないようにしました。「リポジトリ」、「変更」、「グラフ」となります。
トラッキングされていない変更の破棄の改善
設定: git.discardUntrackedChangesToTrash
長年にわたり、トラッキングされていないファイルを破棄するとファイルが完全に削除されるため、データ損失に関する複数の報告を受けてきました。VS Code はファイルが完全に削除されることを明確に示すモーダルダイアログを表示するにもかかわらずです。
このマイルストーンから、トラッキングされていないファイルを破棄すると、可能な場合はファイルがごみ箱/ゴミ箱に移動されるようになり、簡単にファイルを回復できるようになります。この機能は、git.discardUntrackedChangesToTrash 設定を使用して無効にすることができます。

診断コミットフック (実験的)
設定:
このマイルストーンで、変更されたファイルに未解決の診断がある場合にプロンプトを表示する新しいコミットフックを導入しました。これは現在実験的な機能であり、git.diagnosticsCommitHook.Enabled 設定を使用して有効にできます。
デフォルトでは、コミットフックはエラーレベルの診断についてプロンプトを表示しますが、診断ソースとレベルはgit.diagnosticsCommitHook.Sources設定を使用してカスタマイズできます。試してみて、フィードバックをお知らせください。

ノートブック
ノートブックインライン差分ビュー (実験的)
設定: notebook.diff.experimental.toggleInline
ノートブックのインライン差分ビューを有効にできるようになりました。この機能を使用すると、従来の並列比較ではなく、単一のインラインビューでノートブックセル内の変更を表示できます。
notebook.diff.experimental.toggleInline を true に設定することで、この機能を有効にします。その後、右上のエディターメニューを使用して、差分ビューをインラインに切り替えることができます。
ノートブックインライン値ホバー
ノートブックのインライン値の装飾は、ビューポートの幅に合わせて切り詰められるようになり、完全な値を示すリッチホバーが表示され、空白の書式が維持されます。これにより、データフレームのような変数の形状が維持され、値が一目で読みやすくなります。

ターミナル IntelliSense (プレビュー)
設定: terminal.integrated.suggest.enabled
Bash、Zsh、Fish、PowerShell 全体でターミナルシェル補完を大幅に改善しました。具体的には、補完仕様 (例えば git) の追加、より良い候補のためのコマンドライン解析の洗練、ファイルとフォルダーの補完の強化を行いました。terminal.integrated.suggest.enabled でこの機能を有効にします。
強化された Fig 補完サポート
Fig 補完仕様を活用して、特定の CLI のインテリジェントな補完を強化しています。以前はこれらの数が少なかったのですが、今回のイテレーションでは、VS Code に同梱されるリストに以下の CLI を追加しました。
- 基本ツール: cat,chmod,chown,cp,curl,df,du,echo,find,grep,head,less,ls,mkdir,more,mv,pwd,rm,rmdir,tail,top,touch,uname
- プロセスツール: kill,killall,ps
- パッケージマネージャー: apt,brew
- Node.js エコシステム: node,npm,npx,nvm,pnpm,yarn
- SCM、言語、エディター: git,nano,python,python3,vim
- ネットワーク: scp,ssh,wget
新しい仕様に加えて、リクエスト時にコマンドを実行して補完を動的に生成するジェネレーターもサポートするようになりました。この動作の一例として、git checkout のすべてのブランチを表示する機能があります。
 テーマ: Sapphire (vscode.devでプレビュー)
 テーマ: Sapphire (vscode.devでプレビュー)
裏では、git --no-optional-locks branch -a --no-color --sort=-committerdate を実行してブランチのリストを取得し、それらを補完に処理しています。同様のアプローチでタグもフェッチされます。
設定可能なクイックサジェスト
設定: terminal.integrated.suggest.quickSuggestions
エディターと同様に、クイックサジェストは、\ や - のような特定の文字が使用されたときに表示されるトリガー文字とは対照的に、何かを入力したときに IntelliSense を自動的に表示するものです。新しいterminal.integrated.suggest.quickSuggestions設定により、クイックサジェストが表示されるタイミングを正確に制御できます。
デフォルト値はコマンドと引数にクイック候補を有効にしますが、以前はパスにも有効になっており、適用できないことが多いため煩わしいというフィードバックがあったため、パスに対するクイック候補はデフォルトで無効になりました。これがデフォルトです。
"terminal.integrated.suggest.quickSuggestions": {
  "commands": "on",
  "arguments": "on",
  "unknown": "off"
}
インライン候補の検出
設定: terminal.integrated.suggest.inlineSuggestion
インライン候補検出がこれまでに抱えていた問題の 1 つは、異なるソースからの候補と競合することで生じる混乱でした。特に、シェルで入力しているときによく表示されるインライン候補です。

これらの候補は実際にはシェルレベルの機能 (fish/zsh の自動候補、pwsh の予測など) であり、ユーザーには、特に IntelliSense と並んで表示される場合、明らかではないかもしれません。
IntelliSense 機能では、このインライン候補を検出する必要があります。以前は、テキストがかすれたまたは斜体の SGR 属性でスタイル設定されているかどうかのみをチェックする素朴な実装を使用していました。しかし、これはユーザーがスタイルをカスタマイズした場合だけでなく、fish シェルがこれらのスタイルのどちらもデフォルトで使用していなかったため、不十分であることが判明しました。現在では、コマンドラインコンテキストとカーソル位置を分析することで、ほとんどのケースを検出しています。
この新しい改良された検出に基づいて、インライン候補は、エディターの動作とより密接に連携し、この場合 kstyle(Tab) が何をするのかをより明確にするために、星アイコンが付いた最上位のオプションとして表示されるようになりました。

デフォルトでは、この候補を常に最上位の候補として表示しますが、terminal.integrated.suggest.inlineSuggestion で設定できます。
詳細なコマンド補完
Bash および Zsh の組み込みコマンドと PowerShell コマンドの補完がより詳細になり、利用可能な引数の詳細が提供されるようになりました。この情報は、シェルのドキュメントまたはヘルプコマンドから取得されます。
Bash の場合、help <command> を使用して基本的な説明を取得します。

zshの場合、man zshbuiltinsを使用して詳細な説明を取得します。

PowerShell の場合、Get-Command のプロパティが補完でより多く表示されます。


ソートの改善
コマンド補完のソートが改善されました。具体的には、
- より詳細な補完は、通常、詳細の少ない補完よりも上に表示されます。
- 組み込みコマンドは $PATHからのパスよりも優先されます。

パスについては、以下の改善が行われました。
- _で始まるパスにはペナルティが課されます。これは、それらが特殊であり、通常はあまり変更すべきではないことを示す指標となることが多いためです (例:- __init__.py)。
- ソート時に句読点は無視されるため、.で始まるファイルは他のファイルと混ざって表示されます。

CDPATH サポート
設定: terminal.integrated.suggest.cdPath
$CDPATH 環境変数は、$PATH と同様に、コロン区切りのパスリストを含む一般的なシェル機能であり、現在の作業ディレクトリに関係なく、それらに相対的に移動できます。Fish は実際に cd タブ補完で CDPATH エントリを表示します。

cd を使用する際に、$CDPATH エントリを補完として表示する機能をサポートするようになりました。

この機能は Windows (; 区切り) でも動作し、デフォルトが絶対パスを使用するため、シェルがネイティブでこの機能をサポートする必要はありません。

terminal.integrated.suggest.cdPath でこれを設定します。
絶対パス
絶対パスがサポートされるようになりました。


エイリアスサポート
コマンドエイリアスも Bash、Zsh、Fish で検出されるようになり、新しい異なるアイコンで表示されます。

オプションとフラグの区別
CLI オプション (値を持つもの) とフラグ (値を持たないもの) は、UI で異なるアイコンで区別されるようになりました。

タスク
タスク再実行アクション
ターミナルに新しい再実行タスクアクション⌃⇧R (Windows, Linux Ctrl+Shift+R)が追加されました。このアクションは、ターミナルタブのインラインツールバーとターミナルのコンテキストメニューに表示されます。
デバッグ
デバッグインライン値ホバー
debug.inlineValues 設定が有効になっている場合、インライン値の装飾にインラインホバーが表示され、長い値でも一目で読みやすくなりました。

言語
TypeScript 5.8
VS Code には TypeScript 5.8.2 が含まれるようになりました。この主要なアップデートには、条件式からの型の改善されたチェックやNode の新しい --experimental-strip-types オプションに準拠するコードの作成のサポートなど、新しい言語改善が含まれています。また、いくつかのツール改善とバグ修正も含まれています。
このアップデートの詳細については、TypeScript 5.8 リリースブログをご覧ください。
リモート開発
リモート開発拡張機能を使用すると、開発コンテナー、SSH 経由のリモートマシン、リモートトンネル、またはWindows 用 Linux サブシステム (WSL) をフル機能の開発環境として使用できます。
主なハイライトは次のとおりです。
- Linux レガシーサーバーのEOL
- プロキシ構成の拡張
これらの機能の詳細については、Remote Development リリースノートをご覧ください。
Enterprise support
許可された拡張機能の複数行サポート
Windows のグループポリシーで、許可された拡張機能を複数行文字列で設定できるようになりました。これにより、許可された拡張機能をより柔軟かつ広範に設定できます。許可された拡張機能の設定に関する詳細をご覧ください。
拡張機能への貢献
Python
長い文字列を分割する際の自動引用符挿入
Pylance が、長い文字列を分割する際にシームレスな体験を可能にするために、引用符の自動挿入をサポートするようになりました。
Pylance のメモリ消費量の改善
特に大規模なワークスペースで作業する際の Pylance のメモリ消費量を改善するために、いくつかの最適化が行われました。この強化は、Pylance の言語サーバー機能を強化する静的型チェッカーである Pyright に行われました。
Python シェル統合の改善
python.terminal.shellIntegration.enabled を変更した後、変更を有効にするために再ロードする必要がなくなりました。新しいターミナルを作成するだけで、ターミナル内の Python REPL に希望の変更が反映されます。
Windows Git Bash の正しいワークスペースプロンプト
Windows の Git Bash を使用している Python ユーザーは、ターミナルプロンプトで正しい作業ディレクトリを確認できるようになります。これらの変更は、pythonTerminalEnvVarActivation 実験をオプトインしたユーザーに適用されます。
自動テスト検出ファイルパターン用の新しい設定
python.testing.autoTestDiscoverOnSavePattern 設定でグロブパターンを指定することで、自動テスト検出が行われるファイルを絞り込むことができるようになりました。デフォルト値は **/*.py に設定されています。
設定.json からテストデバッグ設定をフォールバックとして読み込む
テストデバッグ設定を settings.json と launch.json の両方のファイルで検索するようになり、これらの設定を定義できる場所が広がりました。
GitHub認証
Electron fetch の採用によるプロキシサポートの改善
GitHub 認証拡張機能は、Web リクエストを行うために Electron の fetch バージョンを活用するようになりました。これにより、特定のプロキシおよびファイアウォール設定を使用しているユーザーを支援しました。プロキシ設定があり、VS Code 内で GitHub に認証できない環境で実行していることがわかっている場合は、遠慮なく問題を報告してください!
拡張機能作成
認証
重要:
AuthenticationForceNewSessionOptionsをAuthenticationGetSessionPresentationOptionsに名前変更し、AuthenticationForceNewSessionOptionsは当面非推奨として残します。機能上の違いはないため、これはランタイムでの破壊的変更ではありませんが、将来削除されるため、コードをAuthenticationForceNewSessionOptionsの代わりにAuthenticationGetSessionPresentationOptionsを使用するように更新する必要があります。
次の 2 つの認証呼び出しを見ると、
vscode.authentication.getSession(provider, scopes, { createIfNone: options });
vscode.authentication.getSession(provider, scopes, { forceNewSession: options });
createIfNone と forceNewSession は、boolean または AuthenticationGetSessionPresentationOptions のいずれかを受け取るようになりました。
/**
 * Optional options to be used when calling {@link authentication.getSession} with interactive options `forceNewSession` & `createIfNone`.
 */
export interface AuthenticationGetSessionPresentationOptions {
  /**
   * An optional message that will be displayed to the user when we ask to re-authenticate. Providing additional context
   * as to why you are asking a user to re-authenticate can help increase the odds that they will accept.
   */
  detail?: string;
}
これは createIfNone にとっての新しい追加ですが、forceNewSession にとっての変更です。forceNewSession は以前、新しい AuthenticationGetSessionPresentationOptions と同じシグネチャを持つ AuthenticationForceNewSessionOptions を受け取っていました。
AuthenticationForceNewSessionOptions を明示的に使用している場合、それは非推奨としてマークされており、将来のバージョンで AuthenticationForceNewSessionOptions が削除されるため、AuthenticationGetSessionPresentationOptions に置き換える必要があります。
ここで変更されているのは型のみであることに注意することが重要です。ランタイムの変更はないため、その観点からの破壊的変更ではありません。
さらに、authLearnMore 提案された API が AuthenticationForceNewSessionOptions から AuthenticationGetSessionPresentationOptions に更新されました。
detail と learnMore の提案を活用した例を次に示します。

洗練されたスニペット API
スニペットを挿入する際の空白の正規化を制御できるようになりました。これはinsertSnippet-API およびSnippetTextEdit-API に適用され、スニペットの追加行のインデントを調整するかどうかを制御します。
const snippet = `This is an indented
    snippet`;
// keepWhitespace: false, undefined
function indentedFunctionWithSnippet() {
  return `This is an indented
        snippet`; // adjusted indentation
}
// keepWhitespace: true
function indentedFunctionWithSnippet() {
  return `This is an indented
    snippet`; // original indentation
}
提案されたAPI
テキストエンコーディング
VS Code でテキストエンコーディングを扱うための新しい提案 API を追加しました。
具体的には、この新しい API を使用すると、次のことができます。
- TextDocumentの現在の- encodingを取得する
- 特定の encodingでTextDocumentを開く
- 特定の encodingでstringをUint8Arrayにエンコードする
- 特定の encodingを使用してUint8Arrayをstringにデコードする
この GitHub の問題で試してみて、ご意見をお聞かせください。
シェル環境
拡張機能は、VS Code 統合ターミナルから開かれた pwsh、zsh、bash、fish シェルのユーザーの現在アクティブなシェル環境情報にアクセスできます。これは、terminal.integrated.shellIntegration.enabled が有効になっている場合にのみ利用可能です。
ユーザーは、terminal.integrated.shellIntegration.environmentReporting を使用して、シェル環境情報を報告するかどうかを決定できます。
この GitHub Issueで試してみて、ご意見をお聞かせください。
エンジニアリング
Electron 34 のアップデート
このマイルストーンでは、Electron 34 のアップデートを安定版リリースのユーザーに提供しています。このアップデートには Chromium 132.0.6834.196 と Node.js 20.18.2 が含まれています。Insiders ビルドで自己ホストし、早期フィードバックを提供してくださったすべての方に感謝いたします。
macOS 10.15 のサポート終了
VS Code 1.97 が macOS 10.15 (macOS Catalina) をサポートする最後のリリースです。詳細については、FAQ を参照してください。
開発時におけるリークした使い捨てオブジェクトの追跡
VS Code は、明示的なリソース管理のために使い捨てパターンを使用します。例えば、ファイルを閉じたり、DOM 要素をクリーンアップしたり、イベントリスナーを削除したりする場合です。リソースを解放しないと、メモリが無駄になり、時間の経過とともにメモリ使用量が増加します。
私たちは常にこのようなリークを探しており、これを検出するための別のツールを追加しました。FinalizationRegistry API を利用して、オブジェクトがガベージコレクションされたときに通知を受け取ります。もしそのようなオブジェクトが解放されていない disposable を表していた場合、それはリークがあることを意味します。これらは収集され、VS Code の開発者に表示されるため、随時クリーンアップすることができます。
注目すべき修正点
ありがとうございます
最後に、VS Codeの貢献者の皆様に心からの感謝を申し上げます。
問題追跡
問題追跡への貢献者
- @gjsjohnmurray (John Murray)
- @albertosantini (Alberto Santini)
- @IllusionMH (Andrii Dieiev)
- @RedCMD (RedCMD)
プルリクエスト
vscodeへの貢献者
- @a-stewart (Anthony Stewart): Diff selection indicator line should use menu.separatorBackground instead of menu.border PR #228825
- @bchu1 (Bryan Chu): Fix to header misplacement in minimap PR #217581
- @cassidoo (Cassidy Williams): Fix #241903: Add override for GitHub in settingsLayout.ts PR #241911
- @cdce8p (Marc Mueller): Add panelTitleBadge color variables PR #240645
- @cenviity (Vincent Ging Ho Yim): Fix typos in editorOptions.tsPR #239929
- @cmbrose (Caleb Brose): Update chat's newEditSessioncommand to take an input prompt PR #241796
- @devm33 (Devraj Mehta): fix: add electron as an external for webpack PR #239134
- @dmotte (Motte): Fix behavior of terminal.integrated.confirmOnExit PR #240074
- @dvangonen (Daniil Vangonen): Remove unnecessary classes from body PR #240633
- @gabritto (Gabriela Araujo Britto): Revert "[typescript-language-features] Expandable hover (#_228255)" PR #240011
- @gjsjohnmurray (John Murray)
- Supply multiselects to scm/resourceGroup/contextmenu commands (fix #92337) PR #192172
- Add scmResourceGroupStatecontext key (#_192009) PR #194804
- SCM - Briefer titles on SCM views PR #230693
- Fix `Show User Keybindings' option on Keyboard Shortcuts editor (fix #240068) PR #240085
- Bad 'OK' capitalization on 'Add Triggered Breakpoint...' (fix #240490) PR #240492
 
- Supply multiselects to 
- @hickford (M Hickford): Log provider in "tunnel user show" PR #240692
- @ihavecoke (ihavecoke): Clamp tab_size setting between 1 and 16 PR #228957
- @jakebailey (Jake Bailey): Preserve --disable-extensions in extension host development PR #240415
- @jamestut (James Nugraha): Compute TextModel limits before initializing the tokenizer PR #240919
- @jeanp413 (Jean Pierre)
- Fix terminal split view disposable leaked PR #241597
- Fix broken terminal link hover, hides before being able to hover over the contents PR #241599
- Fix timeline view leaks event listeners PR #241607
 
- @KexyBiscuit (Kexy Biscuit a.k.a. るる): Allow detection of powershell-preview snap PR #240054
- @klaussner (Christian Klaussner): Fix traffic light centering on macOS PR #212471
- @naman108 (Natha Paquette): Typo in storage URI docs PR #241600
- @nknguyenhc (Nguyen): Extension detail content escapes container PR #240134
- @notoriousmango (Seong Min Park)
- Make Command Center debug launcher offer most recently used configuration first PR #240744
- Adopt Markdown to use vscode log output channel PR #241342
 
- @pouyakary (Pouya Kary ✨): Feat: Custom Minimap Section Header Marker Detection RegExp ✨ PR #210271
- @rgrunber (Roland Grunberg): Expose adjustWhitespace to TextEditor API. PR #234858
- @silamon (Simon Lamon): Diff editor: Correct 1 filesto1 filePR #240092
- @simon-id (simon-id): fix: workbench search use correct findMatch colors (fix #237909) PR #237910
- @SimonSiefke (Simon Siefke): fix: memory leak in settings indicators PR #236417
- @ssigwart (Stephen Sigwart): Fix unexpected tab completion when attempting to indent PR #136572
- @SunsetTechuila (Grigory): feat(commands): add insertFinalNewLinePR #241126
- @tcvdh (Thijs van den Heuvel): Fix: Wait for clear command to execute before reusing terminal PR #240970
- @terrymun (Terry Mun-Andersen): fix: remove extraneous backtick in CONTRIBUTING.md PR #240305
- @tmm1 (Aman Karmani): tsb: fix for deleted and re-added source file not being re-generated PR #238409
- @xymopen (xymopen_Official)
- Add node as npm script runner PR #236967
- Add node as npm script runner (2nd) PR #240527
 
- @zardoy (Vitaly): [Git] Migrate to git autostash when pulling for better performance PR #187850
vscode-css-languageserviceへの貢献者
- @GauravB159 (Gaurav Bhagchandani): lab() and lch() color previews added PR #306
vscode-eslintへの貢献者
- @edemaine (Erik Demaine): Probing support for Civet PR #1965
- @mustevenplay (mustevenplay): Add Typescript configuration files detection PR #1968
vscode-hexeditorへの貢献
- @tomilho (Tomás Silva): Moved Hex Compare Selected below Compare Selected PR #561
vscode-jupyterへの貢献者
- @thesuperzapper (Mathew Wicks): Fix reading JUPYTER_RUNTIME_DIRandXDG_RUNTIME_DIRPR #16451
vscode-languageserver-nodeへの貢献者
- @MariaSolOs (Maria José Solano)
- @mciccale (Marco Ciccalè Baztán): minor typo semaphore.ts PR #1618
- @yf-yang: fix: avoid dispose unmatched handlers PR #1614
vscode-mypyへの貢献
- @DetachHead
- @hamirmahal (Hamir Mahal): fix: usage of node12 which is deprecatedin CI PR #336
- @ivirabyan (Ivan Virabyan): Add dmypy status file setting PR #347
vscode-pull-request-githubへの貢献者
- @christianvuerings (Christian Vuerings): Fix Copy GitHub Permalink with custom SSH PR #6669
vscode-python-debuggerへの貢献者
- @TCPsoftware (tcpsoft): Make "args": "${command:pickArgs}" as default debug configuration PR #548
vscode-vsceへのコントリビューション
- @mohankumarelec (mohanram): Updated the semver comparison PR #1078
- @stevedlawrence (Steve Lawrence): Allow for reproducible .vsix packages PR #1100
debug-adapter-protocolへの貢献者
- @angelozerr (Angelo): Add IntelliJ / LSP4IJ DAP support PR #529
- @samisalreadytaken: Add Squirrel Debugger to adapters.md PR #530
- @SpartanJ (Martín Lucas Golini): Update tools.md adding a new DAP client: ecode PR #526
- @sssooonnnggg (Song): chore: add luau debugger PR #516
- @theIDinside (Simon Farre): Add Midas to Debug Adapter list, w/ VSCode PR #528
language-server-protocolへの貢献者
- @ind1go (Ben Cox): Typo in workspace diagnostics PR #2086
- @MariaSolOs (Maria José Solano)
- @MuntasirSZN (Muntasir Mahmud): feat: copilot language server in server list PR #2107
- @Szasza (Szasza Palmer): adding Wing language server to server list PR #2101
- @the-mikedavis (Michael Davis): Clarify that $0should not use any other snippet syntax PR #2087
- @yassun7010 (yassun7010): add Tombi to LSP list. PR #2089
python-environment-toolsへの貢献
- @pantheraleo-7: Add support for detecting $VIRTUAL_ENVPR #181