コンテンツにスキップ

2025 年 2 月 (バージョン 1.98)


Visual Studio Code の 2025 年 2 月リリースへようこそ。今回のリリースでは、多くのアップデートがあり、きっと気に入っていただけると思います。主なハイライトは以下のとおりです。

これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.comUpdates にアクセスしてください。 Insiders: 新機能をいち早く試したいですか?ナイトリー Insiders ビルドをダウンロードして、最新のアップデートをいち早く試すことができます。

GitHub Copilot

Copilot の機能は、さまざまな早期アクセス段階を経る可能性があり、通常は設定によって有効化および構成されます。

Stage Description
Experimental この機能はまだ開発中であり、まだ一般的に使用できる状態ではありません。
試験的な機能 (@tag:experimental) を表示します。
Preview この機能はまだ改良中ですが、使用する準備ができています。フィードバックは歓迎します。
プレビュー機能 (@tag:preview) を表示します。
Stable この機能は一般的に使用する準備ができています。

Copilot Edits

エージェントモードの改善 (試験的)

先月、VS Code Insiders で Copilot Edits の エージェントモード を導入しました。エージェントモードでは、Copilot がワークスペースを自動的に検索して関連するコンテキストを見つけ、ファイルを編集し、エラーをチェックし、ターミナルコマンドを実行して (許可を得て) タスクをエンドツーエンドで完了します。

: エージェントモードは、VS Code Insiders で利用可能であり、VS Code Stable でも段階的に展開を開始しました。エージェントモードが有効になると、Copilot Edits ビューにモードドロップダウンが表示されます。エージェント を選択するだけです。

今月は、ツール使用の UX にいくつかの改善を行いました。

  • ターミナルコマンドがインラインで表示されるようになり、実行されたコマンドを追跡できます。
  • チャット応答で提案されたターミナルコマンドを実行する前に編集できます。
  • kb(workbench.action.chat.acceptTool) ショートカットでターミナルコマンドを確認します。

エージェントモードは、関連するコンテキストを検索するためにコードベースを自律的に検索します。メッセージを展開して、どの検索が行われたかの結果を確認します。

Copilot Edits で検索結果の展開可能なリストを示すスクリーンショット。

また、エージェントモードのプロンプトと動作にさまざまな改善を加えました。

  • チャットでの元に戻すおよびやり直しのアクションは、チャット応答で行われた最後のファイル編集を元に戻すかやり直します。これはエージェントモードに便利で、モデルが行った特定のステップを元に戻すことができ、チャット応答全体をロールバックする必要がありません。
  • エージェントモードは、ビルド タスク を自動的にまたは指示されたときに実行できます。モデルが実行すべきでないときにタスクを実行している場合は、setting(github.copilot.chat.agent.runTasks) 設定を無効にします。

Copilot Edits エージェントモード の詳細を学ぶか、エージェントモードの発表ブログ投稿 を読んでください。

: Copilot Business または Enterprise ユーザーの場合、組織の管理者が 組織で Copilot 機能を有効にする 必要があります。

Copilot Edits での notebook サポート (プレビュー)

VS Code Insiders で Copilot Edits の notebook サポートをプレビュー機能として導入しています。Copilot を使用して、コードファイルを編集するのと同じ直感的な体験で notebook ファイルを編集できます。新しい notebook をゼロから作成し、複数のセルにわたってコンテンツを変更し、セルを挿入および削除し、セルの種類を変更します。このプレビュー機能は、データサイエンスやドキュメント notebook を操作する際のシームレスなワークフローを提供します。

: この機能は現在、VS Code Insiders の GitHub Copilot Chat のプレリリースバージョンでのみ利用可能です。VS Code Stable に導入する前に、引き続きエクスペリエンスを改善していきます。

改良されたエディタ統合

Copilot Edits とコードおよび notebook エディタの統合を改善しました。

  • 変更が適用されている間にスクロールすることはありません。ビューポートはそのままで、変更内容に集中しやすくなります。
  • 編集レビューアクションの名前を「Accept」から「Keep」、「Discard」から「Undo」に変更し、何が起こっているかをより正確に反映します。Copilot Edits の変更はライブであり、変更が行われるとすぐに適用され保存され、ユーザーはそれを保持するか元に戻すかを選択します。
  • ファイルを保持または元に戻した後、次のファイルが自動的に表示されます。

ビデオは、変更が発生するとすぐに適用され保存される様子を示しています。ライブプレビューが更新され、ユーザーは変更を「Keep」することを決定しました。元に戻すことやさらに調整することも引き続き可能です。

リフレッシュされた UI

Copilot Edits を Copilot Chat と統合する準備として、Copilot Edits にフェイスリフトを施しました。添付されてまだ送信されていないファイルは、通常のチャット添付ファイルとしてレンダリングされます。AI で変更されたファイルのみが変更されたファイルリストに追加され、チャット入力部分の上に配置されます。

setting(chat.renderRelatedFiles) 設定を使用して、関連ファイルの提案を取得することができます。関連ファイルの提案は、チャット添付ファイルの下にレンダリングされます。

更新された Copilot Edits の添付ファイルと変更されたファイルのユーザーエクスペリエンスを示すスクリーンショット。

Copilot Edits の制限を削除

以前は、Copilot Edits のプロンプトに添付できるファイルは 10 個に制限されていました。このリリースでは、この制限を削除しました。さらに、10 分間に 14 回のインタラクションというクライアント側のレート制限も削除しました。

サービス側の使用レート制限は引き続き適用されます。

カスタム指示の一般提供

設定: setting(github.copilot.chat.codeGeneration.useInstructionFiles)

カスタム指示を使用すると、GitHub Copilot をカスタマイズして、あなたやチームの作業方法に合わせたチャット応答やコード提案を提供できます。特定の要件を Markdown 形式で記述し、ワークスペース内の .github/copilot-instructions.md ファイルに保存します。

このマイルストーンでは、.github/copilot-instructions.md を使用したカスタム指示を一般提供します。setting(github.copilot.chat.codeGeneration.useInstructionFiles) VS Code 設定が有効になっていることを確認し、Copilot はこれらの指示を使用して応答を生成します。

Copilot のカスタム指示 の詳細を学んでください。

チャットでのスムーズな認証フロー

ソースコードを GitHub リポジトリにホストしている場合、コード検索、@github チャット参加者など、いくつかの機能を活用できます。

ただし、プライベート GitHub リポジトリの場合、VS Code が GitHub 上のリポジトリと対話するための権限を持っている必要があります。しばらくの間、これは通常の VS Code 認証フローで提示され、特定の機能を呼び出すときにモーダルダイアログが表示されました (たとえば、@workspace@github に質問する、または #codebase ツールを使用する場合)。

このエクスペリエンスをスムーズにするために、チャットでこの確認を導入しました。

チャットでの認証確認ダイアログを示すスクリーンショット。続行するための 3 つのオプションが表示されています。

モーダルダイアログほど衝撃的ではないだけでなく、新しい機能も備えています。

  1. Grant: 通常の認証フローを経て (モーダルを介して) 進みます。
  2. Not Now: VS Code は選択を記憶し、次の VS Code ウィンドウセッションまで再度通知しません。唯一の例外は、@github のようにこの追加の権限が必要な機能です。
  3. Never Ask Again: VS Code は選択を記憶し、setting(github.copilot.advanced.authPermissions) 設定を介して永続化します。この追加の権限が必要な機能は失敗します。

この確認は、Copilot (サービス) がリポジトリにアクセスすることを確認または拒否するものではないことに注意してください。これは、VS Code の Copilot エクスペリエンスがどのように認証されるかに関するものです。Copilot がアクセスできる内容を構成するには、コンテンツの除外 に関するドキュメントを読んでください。

Copilot Chat でのより高度なコードベース検索

設定: setting(github.copilot.chat.codesearch.enabled)

Copilot Chat クエリに #codebase を追加すると、Copilot がチャットプロンプトに関連するワークスペース内のコードを見つけるのを支援します。#codebase は、テキスト検索やファイル検索などのツールを実行して、ワークスペースから追加のコンテキストを取得できるようになりました。

この動作を有効にするには、setting(github.copilot.chat.codesearch.enabled) を設定します。ツールの完全なリストは次のとおりです。

  • 埋め込みベースのセマンティック検索
  • テキスト検索
  • ファイル検索
  • Git 変更ファイル
  • プロジェクト構造
  • ファイルの読み取り
  • ディレクトリの読み取り
  • ワークスペースシンボル検索

問題をチャットコンテキストとして添付

ワークスペース内のコードやその他の問題を修正するのに役立つように、問題パネルからチャットに問題をコンテキストとして添付できるようになりました。

問題パネルからチャットビューにアイテムをドラッグするか、プロンプトに #problems と入力するか、クリップ📎ボタンを選択します。特定の問題、ファイル内のすべての問題、またはコードベース内のすべてのファイルを添付できます。

フォルダをコンテキストとして添付

以前は、エクスプローラービューからドラッグアンドドロップを使用してフォルダをコンテキストとして添付できました。今では、クリップ📎アイコンを選択するか、チャットプロンプトに #folder: とフォルダ名を入力することで、フォルダを添付することもできます。

Next Edit Suggestions の折りたたみモード (プレビュー)

設定:

  • setting(github.copilot.nextEditSuggestions.enabled)
  • setting(editor.inlineSuggest.edits.showCollapsed:true)

NES の折りたたみモードを追加しました。このモードを有効にすると、左側のエディターマージンに NES 提案インジケーターのみが表示されます。コード提案自体は、kb(editor.action.inlineSuggest.jump) を押してナビゲートすると表示されます。連続する提案は、提案が受け入れられるまで直ちに表示されます。

折りたたみモードはデフォルトでは無効になっており、setting(editor.inlineSuggest.edits.showCollapsed:true) を設定することで有効にできます。または、NES ガターインジケーターメニューで有効または無効にすることもできます。

エディター左マージンの Next Edit Suggestions コンテキストメニューを示すスクリーンショット。Show Collapsed オプションが強調表示されています。

補完モデルの変更

Copilot Chat および Copilot Edits の言語モデルを変更できるようになりましたが、インライン提案のモデルも変更できるようになりました。

代わりに、コマンドパレットの Change Completions Model コマンドまたはタイトルバーの Copilot メニューの Configure Code Completions アイテムを使用して、コード補完に使用されるモデルを変更できます。

: 利用可能なモデルのリストは時間とともに変わる可能性があります。Copilot Business または Enterprise ユーザーの場合、管理者が GitHub.com の Copilot ポリシー設定Editor Preview Features にオプトインすることで、特定のモデルを組織に対して有効にする必要があります。

モデルの利用可能性

このリリースでは、Copilot を使用する際に選択できるモデルが増えました。次のモデルが Visual Studio Code および github.com チャットのモデルピッカーで利用可能になりました。

  • GPT 4.5 (プレビュー): OpenAI の最新モデル GPT-4.5 が、Copilot Enterprise ユーザー向けに GitHub Copilot Chat で利用可能になりました。GPT-4.5 は、直感、文体、および広範な知識において高度な能力を備えた大規模な言語モデルです。GitHub ブログ投稿 で GPT-4.5 モデルの利用可能性について詳しく学んでください。
  • Claude 3.7 Sonnet (プレビュー): Claude 3.7 Sonnet は、有料の Copilot プランのすべての顧客に利用可能になりました。この新しい Sonnet モデルは、Copilot の思考モードと非思考モードの両方をサポートします。初期テストでは、特にエージェントシナリオでの大幅な改善が見られました。GitHub ブログ投稿 で Claude 3.7 Sonnet モデルの利用可能性について詳しく学んでください。

Copilot Vision (プレビュー)

このバージョンの Copilot Chat では、エンドツーエンドのビジョンサポートを迅速に展開しています。これにより、画像を添付し、チャットプロンプトで画像と対話できるようになります。たとえば、デバッグ中にエラーが発生した場合、VS Code のスクリーンショットを添付し、Copilot に問題の解決を依頼できます。また、UI モックアップを添付し、Copilot に HTML および CSS を提供してモックアップを実装させることもできます。

Copilot Chat プロンプトに添付された画像を示すアニメーション。画像の上にカーソルを合わせるとプレビューが表示されます。

画像を添付する方法は複数あります。

  • OS またはエクスプローラービューから画像をドラッグアンドドロップ
  • クリップボードから画像を貼り付ける
  • VS Code ウィンドウのスクリーンショットを添付する (クリップ📎ボタン > Screenshot Window を選択)

選択したモデルが現在ファイルタイプを処理できない場合、警告が表示されます。現在サポートされている唯一のモデルは GPT 4o ですが、Claude 3.5 Sonnet および Gemini 2.0 Flash での画像添付のサポートも近日中に展開される予定です。現在サポートされている画像タイプは JPEG/JPGPNGGIF、および WEBP です。

Copilot ステータス概要 (試験的)

設定: setting(chat.experimental.statusIndicator.enabled)

Copilot ステータスと主要なエディター設定の概要をすばやく提供する新しい集中化された Copilot ステータス概要を試験的に導入しています。

  • Copilot Free ユーザーの場合、クォータ情報
  • コード補完などのエディター関連設定
  • 他の Copilot 機能を使用するための便利なキーボードショートカット

この Copilot ステータス概要は、ステータスバーの Copilot アイコンからアクセスできます。

ステータスバーの Copilot ステータス概要を示すスクリーンショット。

setting(chat.experimental.statusIndicator.enabled) 設定を使用して Copilot ステータス概要を有効にします。

インライン補完の TypeScript コンテキスト (試験的)

設定: setting(chat.languageContext.typescript.enabled)

TypeScript ファイルのインライン補完および /fix コマンドのコンテキストを強化する実験を行っています。この実験は現在 Insider リリースに限定されており、setting(chat.languageContext.typescript.enabled) 設定を有効にすることで有効にできます。

プルリクエストのタイトルと説明のカスタム指示

setting(github.copilot.chat.pullRequestDescriptionGeneration.instructions) 設定を使用して、プルリクエストのタイトルと説明を生成するためのカスタム指示を提供できます。この設定をワークスペース内のファイルにポイントするか、設定内にインラインで指示を提供できます。VS Code で Copilot をカスタマイズする についての詳細を取得してください。

次のサンプルは、設定内にインラインでカスタム指示を提供する方法を示しています。

{
  "github.copilot.chat.pullRequestDescriptionGeneration.instructions": [
    {
      "text": "すべての PR タイトルの前に絵文字を付けます。"
    }
  ]
}

タイトルと説明を生成するには、GitHub Pull Requests 拡張機能がインストールされている必要があります。

アクセシビリティ

Copilot Edits のアクセシビリティ

Copilot Edits のアクセシビリティを大幅に向上させました。

  • 変更されたファイルや変更された領域 (挿入、変更、削除) に対してオーディオ信号が追加されました。
  • 変更されたファイルのアクセシブルな差分ビューアーが利用可能になりました。差分エディターと同様に、kb(chatEditor.action.showAccessibleDiffView) を選択して有効にします。

activeEditorState ウィンドウタイトル変数

エディター情報 (変更状態、問題の数、保留中の Copilot Edits がある場合など) を示す新しい setting(window.title) 変数 activeEditorState を追加しました。スクリーンリーダーユーザー向けに、スクリーンリーダー最適化モードではデフォルトで追加され、setting(accessibility.windowTitleOptimized:false) を設定して無効にできます。

ワークベンチ

Linux のカスタムタイトルバー

カスタムタイトルバーが Linux でデフォルトで有効になりました。カスタムタイトルバーにより、レイアウトコントロール、Copilot メニューなどにアクセスできます。

Linux 上のカスタム VS Code タイトルバーを示すスクリーンショット。

カスタムタイトルのコンテキストメニューから、または setting(window.titleBarStyle)native に設定することで、ネイティブタイトルの装飾に戻すことができます。

Linux でカスタムタイトルバーを無効にするコンテンツメニューオプションを示すスクリーンショット。

このエクスペリエンスに関するフィードバックを引き続きお待ちしており、既存のフィードバックに基づいて将来のマイルストーンでこれを改善するためにすでに取り組んでいます。

セカンダリサイドバーのビューにラベルを使用

セカンダリサイドバーのビューの外観を変更し、アイコンの代わりにラベルを表示することにしました。これにより、パネル領域と同様に、異なるビュー (たとえば Copilot EditsCopilot Chat) を区別しやすくなります。setting(workbench.secondarySideBar.showLabels) を設定することで、いつでもアイコンの表示に戻すことができます。

アイコンの代わりにラベルを表示するセカンダリサイドバーを示すスクリーンショット。

新しい設定エディターのキー一致アルゴリズム (プレビュー)

設定: setting(workbench.settings.useWeightedKeySearch:true)

設定エディターの新しい検索アルゴリズムを追加し、より関連性の高いキー一致を優先します。検索アルゴリズムは、設定 ID とラベルを以前よりも多くの方法で一致させようとしますが、最も適切な一致タイプのみを表示するように結果を絞り込みます。

setting(workbench.settings.useWeightedKeySearch:true) 設定を有効にしてプレビュー機能を試してみてください。

テーマ: Light Pink (プレビュー vscode.dev)

シンプルなファイルピッカーでドットファイルを非表示にするオプション

シンプルなファイルピッカー を使用する場合 (リモートに接続している場合や setting(files.simpleDialog.enable:true) を使用している場合)、Show/Hide dot files ボタンを使用してドットファイルを非表示にできるようになりました。

ドットファイルを表示または非表示にするボタンを強調表示したシンプルなファイルピッカーを示すスクリーンショット。

エディター

ピークリファレンスのドラッグアンドドロップサポート

ピーク ビューがドラッグアンドドロップをサポートするようになりました。Peek ReferencesPeek Implementation、または他のピークコマンドを呼び出し、そのツリーからエントリをドラッグして別のエディターとして開きます。

テーマ: GitHub Light Colorblind (Beta) (プレビュー vscode.dev)

出現ハイライトの遅延

エディター内の出現ハイライトの遅延がデフォルトで 0 に設定されました。これにより、全体的により応答性の高いエディターの感触が得られます。setting(editor.occurrencesHighlightDelay) 設定を使用して遅延を制御できます。

ソース管理

更新されたビュータイトル

ソース管理ビューに Source Control Graph ビューを追加したとき、ソース管理ビューのセクションタイトルの重複が強調されました: "Source Control Repositories"、"Source Control"、および "Source Control Graph"。このマイルストーンでは、ビューのタイトルを見直し、短くし、ビュータイトルを重複させないようにしました: "Repositories"、"Changes"、および "Graph"。

追跡されていない変更の破棄の改善

設定: setting(git.discardUntrackedChangesToTrash)

長年にわたり、追跡されていないファイルを破棄するとファイルが完全に削除されるため、データ損失に関する複数の報告がありました。VS Code はファイルが完全に削除されることを明確に示すモーダルダイアログを表示しますが、それでも問題が発生していました。

このマイルストーンから、追跡されていないファイルを破棄すると、可能な場合はファイルがリサイクルビン/ゴミ箱に移動されるため、ファイルを簡単に回復できます。この機能は setting(git.discardUntrackedChangesToTrash) 設定を使用して無効にできます。

追跡されていないファイルを破棄するときに表示されるモーダルダイアログのスクリーンショット。

診断コミットフック (試験的)

設定:

  • setting(git.diagnosticsCommitHook.Enabled:true)
  • setting(git.diagnosticsCommitHook.Sources)

このマイルストーンでは、変更されたファイルに未解決の診断がある場合にプロンプトを表示する新しいコミットフックを導入しました。これは現在試験的な機能であり、setting(git.diagnosticsCommitHook.Enabled:true) 設定を使用して有効にできます。

デフォルトでは、エラーレベルの診断に対してプロンプトが表示されますが、診断ソースとレベルは setting(git.diagnosticsCommitHook.Sources) 設定を使用してカスタマイズできます。試してみて、フィードバックをお聞かせください。

変更されたファイルに未解決の診断がある場合に表示されるモーダルダイアログのスクリーンショット。

ノートブック

インラインノートブック差分ビュー (試験的)

設定: setting(notebook.diff.experimental.toggleInline:true)

ノートブックのインライン差分ビューを有効にできるようになりました。この機能により、ノートブックセル内の変更を従来のサイドバイサイド比較ではなく、単一のインラインビューで表示できます。

この機能を有効にするには、setting(notebook.diff.experimental.toggleInline:true)true に設定します。エディターメニューの右上隅を使用して差分ビューをインラインに切り替えることができます。

ノートブックインライン値ホバー

ノートブックのインライン値は、ビューポートの幅に合わせて装飾が切り詰められ、完全な値を表示するリッチホバーが追加されました。これにより、データフレームなどの変数の形状が維持され、一目で値を読みやすくなります。

データフレームオブジェクトのインライン装飾の上にカーソルを合わせたスクリーンショット。リッチ値ホバーが表示されます。

ターミナル IntelliSense (プレビュー)

設定: setting(terminal.integrated.suggest.enabled:true)

bash、zsh、fish、および PowerShell のターミナルシェル補完を大幅に改善し、補完スペック (git など) を追加し、コマンドライン解析を改善してより良い提案を提供し、ファイルおよびフォルダの補完を強化しました。この機能を有効にするには、setting(terminal.integrated.suggest.enabled:true) を設定します。

強化された Fig 補完サポート

Fig 補完スペック を活用して、特定の CLI のインテリジェントな補完を提供します。以前は少数のスペックしかありませんでしたが、このイテレーションでは次の CLI を VS Code に追加しました。

  • 基本ツール: catchmodchowncpcurldfduechofindgrepheadlesslsmkdirmoremvpwdrmrmdirtailtoptouchuname
  • プロセスツール: killkillallps
  • パッケージマネージャー: aptbrew
  • Node.js エコシステム: nodenpmnpxnvmpnpmyarn
  • SCM、言語、エディター: gitnanopythonpython3vim
  • ネットワーク: scpsshwget

新しいスペックに加えて、ジェネレーター もサポートしており、リクエストされたときにコマンドを実行して動的に補完を生成します。これの一例として、git checkout のすべてのブランチを表示することが挙げられます。

「git checkout tyriar/xterm」の補完を示すスクリーンショット。いくつかの結果が表示され、クエリと完全に一致しないファジー結果も含まれています。 テーマ: Sapphire (プレビュー vscode.dev)

舞台裏では、これが git --no-optional-locks branch -a --no-color --sort=-committerdate を実行してブランチのリストを取得し、それを補完に処理します。同様のアプローチを使用してタグも取得します。

設定可能なクイック提案

設定: setting(terminal.integrated.suggest.quickSuggestions)

エディターと同様に、クイック提案 は、特定の文字 (たとえば \-) を使用する代わりに、何か を入力すると自動的に IntelliSense を表示します。新しい setting(terminal.integrated.suggest.quickSuggestions) 設定を使用して、クイック提案を表示するタイミングを正確に制御できます。

デフォルト値は、コマンドと引数に対してクイック提案を有効にし、パスに対しては無効にします。これはデフォルトです。

"terminal.integrated.suggest.quickSuggestions": {
  "commands": "on",
  "arguments": "on",
  "unknown": "off"
}

インライン提案の検出

設定: setting(terminal.integrated.suggest.inlineSuggestion)

これまでのインライン提案検出の問題の 1 つは、異なるソースからの提案と競合することによって引き起こされる混乱でした。具体的には、シェルで入力するときに表示されるインライン提案です。

fish シェルが提案を表示する様子を示すスクリーンショット。以前の git コミットコマンドの提案が表示されています。

これらの提案は実際にはシェルレベルの機能です (fish/zsh の自動提案、pwsh の予測など)。特に IntelliSense と一緒に表示される場合、ユーザーには明らかではないかもしれません。

IntelliSense 機能は、このインライン提案を検出する必要がありますが、以前は faint または italics SGR 属性でスタイル設定されたテキストをチェックするだけの単純な実装を使用していました。これでは不十分であり、特にユーザーがスタイルをカスタマイズした場合や、fish シェルがデフォルトでこれらのスタイルを使用しない場合に問題が発生しました。現在では、コマンドラインコンテキストとカーソル位置を分析することで、ほとんどのケースを検出しています。

この新しく改善された検出に基づいて、インライン提案はトップオプションとして表示され、星アイコンが付いており、エディターの動作により近づけ、kstyle(Tab) がこの場合に何を行うかをより明確にします。

インライン提案が表示されると、検出され、IntelliSense のトップに星アイコンと一緒に表示される様子を示すスクリーンショット。

デフォルトでは、この提案は常にトップ提案として表示されますが、setting(terminal.integrated.suggest.inlineSuggestion) を使用して構成できます。

詳細なコマンド補完

bash および zsh の組み込みコマンドおよび PowerShell コマンドの補完が詳細になり、利用可能な引数に関する詳細情報が提供されます。この情報は、シェルのドキュメントまたはヘルプコマンドから取得されます。

bash では、help <command> を使用して基本的な説明を取得します。

履歴補完を示す bash のスクリーンショット。使用方法情報と説明が表示されています。

zsh では、man zshbuiltins を使用して詳細な説明を取得します。

補完を示す zsh のスクリーンショット。man ページからの詳細情報が表示されています。

PowerShell では、Get-Command のプロパティの詳細が補完に表示されます。

Get-ChildItem の補完を示すスクリーンショット。モジュール Microsoft.PowerShell.Management とそのバージョンが表示されています。

ConvertTo-Json の補完を示すスクリーンショット。コマンドのシグネチャが表示されています。

改善されたソート

コマンド補完には、特に次の点で改善されたソートが特徴です。

  • より詳細な補完は、一般的に詳細の少ない補完の上に表示されます
  • 組み込みコマンドは $PATH からのパスよりも優先されます

zsh でより有用なエイリアスおよび自動ロードコマンドが他のコマンドの前に表示される様子を示すスクリーンショット。

パスについては、次の改善が行われました。

  • _ で始まるパスはペナルティを受けます。これは通常、特別であり、あまり変更されるべきではないことを示す指標です (たとえば、__init__.py)。
  • ソート時に句読点が無視されるため、. で始まるファイルは他のファイルと混在します。

__init__.py が他のファイルの下に表示され、.build ディレクトリが build ファイルのすぐ上に表示される様子を示すスクリーンショット。

CDPATH サポート

設定: setting(terminal.integrated.suggest.cdPath)

$CDPATH 環境変数は、$PATH と同様にコロン区切りのパスのリストを含む一般的なシェル機能であり、現在の作業ディレクトリに関係なく相対的にナビゲートできます。fish は実際に cd タブ補完で CDPATH エントリを表示します。

fish でのタブ補完を示すスクリーンショット。CDPATH からのエントリが表示されています。

cd を使用する際に $CDPATH エントリを補完として表示することができるようになりました。

CDPATH エントリが IntelliSense に表示される様子を示すスクリーンショット。

この機能は Windows (; セパレータ) でも動作し、シェルがネイティブにサポートしていなくても、デフォルトで絶対パスを使用します。

CDPATH に 2 つのパスがセミコロンで区切られて含まれている様子を示すスクリーンショット。PowerShell でも CDPATH がネイティブにサポートされていない場合でも、すべてのサブディレクトリが表示されます。

setting(terminal.integrated.suggest.cdPath) を使用してこの機能を構成します。

絶対パス

絶対パスがサポートされるようになりました。

「cd c:\Github\mi」と入力すると、絶対パスに一致するすべてのフォルダが表示される様子を示すスクリーンショット。

cd を使用して絶対パスに移動することも Unix スタイルのパスで動作する様子を示すスクリーンショット。

エイリアスサポート

bash、zsh、および fish のコマンドエイリアスが検出され、新しい独自のアイコンが表示されるようになりました。

エイリアス c->code-insiders が検出され、コマンドアイコンの隅に小さな矢印が表示される様子を示すスクリーンショット。

オプションとフラグの区別

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

--help のようなフラグがフラグアイコンで表示され、--diff のようなオプションが異なるアイコンで表示される様子を示すスクリーンショット。

タスク

タスク再実行アクション

ターミナル用の新しい 再実行 タスクアクション kb(workbench.action.tasks.rerunForActiveTerminal) を追加しました。このアクションは、ターミナルタブのインラインツールバーおよびターミナルのコンテキストメニューに表示されます。

デバッグ

デバッグインライン値ホバー

setting(debug.inlineValues) 設定が有効になっている場合、インライン値の装飾にインラインホバーが追加され、長い値を一目で読みやすくなります。

アクティブなデバッグセッションでデータフレームオブジェクトのインライン装飾の上にカーソルを合わせたスクリーンショット。リッチ値ホバーが表示されます。

言語

TypeScript 5.8

VS Code には TypeScript 5.8.2 が含まれています。この主要なアップデートには、条件式からの型のチェックの改善Node の新しい --experimental-strip-types オプションに準拠するコードの記述サポート などの新しい言語の改善が含まれています。また、多くのツールの改善やバグ修正も含まれています。

このアップデートの詳細については、TypeScript 5.8 リリースブログ をご覧ください。

リモート開発

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

ハイライトには次のものが含まれます。

  • Linux レガシーサーバーの EOL
  • プロキシ構成の拡張

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

エンタープライズサポート

許可された拡張機能の複数行サポート

許可された拡張機能を Windows のグループポリシーで構成する際に、複数行の文字列を使用できるようになりました。これにより、許可された拡張機能の構成がより柔軟で広範になります。許可された拡張機能の構成 について詳しく学んでください。

拡張機能への貢献

Python

長い文字列を分割する際の自動引用符挿入

Pylance は、長い文字列を分割する際に引用符を自動挿入する機能をサポートするようになりました。

Pylance のメモリ消費の改善

特に大規模なワークスペースで作業する際に、Pylance のメモリ消費を改善するための最適化が行われました。この改善 は、Pylance の言語サーバー機能を支える静的型チェッカー Pyright に対して行われました。

Python シェル統合の改善

setting(python.terminal.shellIntegration.enabled) を変更した後、変更が反映されるまでにリロードする必要がなくなりました。新しいターミナルを作成するだけで、ターミナル内の Python REPL に希望の変更が反映されます。

Windows Git Bash の正しいワークスペースプロンプト

Windows で Git Bash を使用する Python ユーザーは、ターミナルプロンプトに正しい作業ディレクトリが表示されるようになりました。 これらの変更は、pythonTerminalEnvVarActivation 実験にオプトインしているユーザーに適用されます。

自動テスト検出ファイルパターンの新しい設定

setting(python.testing.autoTestDiscoverOnSavePattern) 設定でグロブパターンを指定することで、自動テスト検出が行われるファイルを絞り込むことができます。デフォルト値は **/*.py に設定されています。

settings.json からのテストデバッグ構成の読み取り

テストデバッグ構成を settings.json および launch.json ファイルの両方で検索するようになり、これらの構成を定義できる場所が拡張されました。

GitHub 認証

Electron fetch 採用によるプロキシサポートの改善

GitHub 認証拡張機能は、Web リクエストを行うために Electron のバージョンの fetch を活用するようになりました。これにより、特定のプロキシおよびファイアウォール設定を持つユーザーが支援されました。プロキシ設定がある環境で GitHub に認証できない場合は、問題を作成することを躊躇しないでください。

拡張機能の作成

認証

重要: AuthenticationForceNewSessionOptionsAuthenticationGetSessionPresentationOptions に名前を変更し、現在のところ AuthenticationForceNewSessionOptions を非推奨として残します。機能的な違いはないため、ランタイムでの破壊的変更ではありませんが、将来的に削除されるため、AuthenticationForceNewSessionOptions の代わりに AuthenticationGetSessionPresentationOptions を使用するようにコードを更新する必要があります。

次の 2 つの認証呼び出しを見てみましょう。

vscode.authentication.getSession(provider, scopes, { createIfNone: options });
vscode.authentication.getSession(provider, scopes, { forceNewSession: options });

createIfNone および forceNewSession は、boolean または AuthenticationGetSessionPresentationOptions のいずれかを受け取るようになります。

/**
 * インタラクティブなオプション `forceNewSession` および `createIfNone` を使用して {@link authentication.getSession} を呼び出す際に使用されるオプション。
 */
export interface AuthenticationGetSessionPresentationOptions {
    /**
     * 再認証を求める際にユーザーに表示されるオプションのメッセージ。再認証を求める理由を追加のコンテキストとして提供することで、ユーザーが受け入れる可能性が高まります。
     */
    detail?: string;
}
完全な型定義はこちら...

これは createIfNone にとって新しい追加ですが、forceNewSession にとっては AuthenticationForceNewSessionOptions を受け取るように変更されたものであり、これは AuthenticationGetSessionPresentationOptions と同じシグネチャを持っています。

AuthenticationForceNewSessionOptions を明示的に使用している場合、それが非推奨としてマークされていることがわかり、AuthenticationForceNewSessionOptions が将来のバージョンで削除されるため、AuthenticationGetSessionPresentationOptions に置き換える必要があります。

ここで重要なのは、変更されるのは型だけであり、ランタイムの変更はないため、ランタイムの観点からは破壊的変更ではないということです。

さらに、authLearnMore 提案 APIAuthenticationForceNewSessionOptions から AuthenticationGetSessionPresentationOptions に更新されました。

detaillearnMore 提案を活用する例を次に示します。

認証モーダルダイアログを示すスクリーンショット。「より関連性の高い Copilot Chat の結果を得るために、GitHub 上のリポジトリの内容を読み取る権限が必要です。」というメッセージと、詳細を学ぶためのボタンが表示されています。

改良されたスニペット API

スニペットを挿入する際の空白の正規化を制御できるようになりました。これは insertSnippet-API および SnippetTextEdit-API に適用され、スニペットの追加行のインデントが調整されるかどうかを制御します。

const snippet = `This is an indented
    snippet`;

// keepWhitespace: false, undefined
function indentedFunctionWithSnippet() {
    return `This is an indented
        snippet`; // 調整されたインデント
}

// keepWhitespace: true
function indentedFunctionWithSnippet() {
    return `This is an indented
    snippet`; // 元のインデント
}

提案された API

テキストエンコーディング

VS Code で テキストエンコーディング を操作するための新しい提案 API を追加しました。

具体的には、この新しい API により次のことが可能になります。

  • TextDocument の現在の encoding を取得する
  • 特定の encodingTextDocument を開く
  • 特定の encodingstringUint8Array にエンコードする
  • 特定の encoding を使用して Uint8Arraystring にデコードする

試してみて、この GitHub issue でフィードバックをお聞かせください。

シェル環境

拡張機能は、VS Code 統合ターミナルから開かれた pwsh、zsh、bash、および fish シェルの現在アクティブなシェル環境情報にアクセスできます。これは setting(terminal.integrated.shellIntegration.enabled) が有効な場合にのみ利用可能です。

ユーザーは setting(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 を利用して、オブジェクトがガベージコレクトされたときに通知を受け取ります。このようなオブジェクトが破棄されていないディスポーザブルを表している場合、これはリークを意味します。これらは収集され、VS Code の開発者に表示されるため、進行中にクリーンアップできます。

注目の修正

ありがとう

最後になりましたが、VS Code の貢献者の皆さんに大きな ありがとう を伝えたいと思います。

問題追跡

問題追跡への貢献:

プルリクエスト

vscode への貢献:

vscode-css-languageservice への貢献:

vscode-eslint への貢献:

vscode-hexeditor への貢献:

vscode-jupyter への貢献:

vscode-languageserver-node への貢献:

vscode-mypy への貢献:

vscode-pull-request-github への貢献:

vscode-python-debugger への貢献:

vscode-vsce への貢献:

debug-adapter-protocol への貢献:

language-server-protocol への貢献:

python-environment-tools への貢献: