🚀 VS Code で しましょう!

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

アップデート 1.98.1: このアップデートでは、以下のissueに対処しています。

アップデート 1.98.2: このアップデートでは、以下のissueに対処しています。

ダウンロード: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap


Visual Studio Code 2025 年 2 月リリースへようこそ。このバージョンには多くのアップデートが含まれており、きっとご満足いただけると思います。主なハイライトをいくつかご紹介します。

これらのリリース ノートをオンラインで読むには、Updates ( code.visualstudio.com) にアクセスしてください。 Insiders の皆様へ: 新機能をできるだけ早く試してみたいですか? 夜間の Insiders ビルドをダウンロードして、最新のアップデートが利用可能になり次第お試しください。

GitHub Copilot

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

段階 説明
試験的 この機能はまだ開発中であり、一般利用の準備ができていません。
試験的な機能 (@tag:experimental) を表示します。
プレビュー この機能はまだ改良中ですが、使用する準備はできています。フィードバックをお待ちしております。
プレビュー機能 (@tag:preview) を表示します。
安定版 この機能は一般利用の準備ができています。

Copilot Edits

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

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

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

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

  • ターミナル コマンドがインラインで表示されるようになり、どのコマンドが実行されたかを追跡できます。
  • ターミナル コマンドは、実行する前にチャット応答で編集できます。
  • ⌘Enter (Windows、Linux Ctrl+Enter) ショートカットでターミナル コマンドを確定します。

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

Screenshot that shows the expandable list of search results in Copilot Edits.

また、エージェント モードのプロンプ​​トと動作についてもさまざまな改善を行いました。

  • チャットの元に戻す操作とやり直し操作で、チャット応答で行われた最後のファイル編集を元に戻したり、やり直したりできるようになりました。これはエージェント モードに役立ちます。モデルが実行した特定の手順を、チャット応答全体をロールバックせずに元に戻すことができるようになったためです。
  • エージェント モードは、ビルド タスク を自動的に、または指示された場合に実行できるようになりました。モデルが実行すべきでないときにタスクを実行している場合は、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 安定版に導入する前に、エクスペリエンスの向上を継続していきます。

洗練されたエディター統合

Copilot Edits とコードおよびノートブック エディターの統合を洗練させました。

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

このビデオでは、編集が適用および保存される様子を示しています。ライブ プレビューが更新され、ユーザーは変更を「保持」することにしました。元に戻したり、さらに微調整したりすることも可能です。

UI の刷新

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

chat.renderRelatedFiles 設定を使用すると、関連ファイルの候補を取得することを有効にできます。関連ファイルの候補は、チャット添付ファイルの下にレンダリングされます。

Screenshot that shows the updated Copilot Edits attachments and changed files user experience.

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 上のリポジトリと対話する許可を持っている必要があります。しばらくの間、これは通常の VS Code 認証フローで提示されていました。特定の機能 (たとえば、@workspace または @github に質問したり、#codebase ツールを使用したりするなど) を呼び出すと、モーダル ダイアログが表示されました。

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

Screenshot that shows the authentication confirmation dialog in Chat, showing the three options to continue.

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

  1. 許可: 以前と同様に、通常の認証フロー (モーダル経由) が実行されます。
  2. 今はしない: VS Code は選択を記憶し、次回の VS Code ウィンドウ セッションまで再度通知することはありません。唯一の例外は、機能がこの追加の権限を必要とする場合 (@github など) です。
  3. 二度と尋ねない: 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: に続けてフォルダー名を入力することでもフォルダーを添付できます。

次編集候補の折りたたみモード (プレビュー)

設定:

  • github.copilot.nextEditSuggestions.enabled
  • editor.inlineSuggest.edits.showCollapsed

NES に折りたたみモードを追加しました。このモードを有効にすると、NES 候補インジケーターのみが左エディター マージンに表示されます。コード候補自体は、Tab を押して移動したときにのみ表示されます。候補が受け入れられるまで、連続する候補がすぐに表示されます。

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

Screenshot that shows the Next Edit Suggestions context menu in the editor left margin, highlighting the Show Collapsed option.

補完モデルの変更

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 が、Copilot Enterprise ユーザー向けの GitHub Copilot Chat で利用できるようになりました。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 では、エンドツーエンドの Vision サポートを迅速に展開しています。これにより、画像を添付して、チャット プロンプトで画像を操作できます。たとえば、デバッグ中にエラーが発生した場合は、VS Code のスクリーンショットを添付して、Copilot に問題の解決を依頼してください。また、UI モックアップを添付して、Copilot にモックアップを実装するための HTML および CSS を提供させることもできます。

Animation that shows an attached image in a Copilot Chat prompt. Hovering over the image shows a preview of it.

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

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

選択したモデルが現在、ファイル タイプを処理する機能を備えていない場合、警告が表示されます。現在サポートされているモデルは GPT 4o のみですが、Claude 3.5 SonnetGemini 2.0 Flash による画像添付のサポートも間もなくロールアウトされます。現在、サポートされている画像タイプは JPEG/JPGPNGGIF、および WEBP です。

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

設定: chat.experimental.statusIndicator.enabled

Copilot のステータスと主要なエディター設定の概要をすばやく確認できる、新しい集中型 Copilot ステータス概要を試験的に導入しています。

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

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

Screenshot that shows the Copilot status overview in the Status Bar.

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 で無効にできます。

ワークベンチ

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

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

Screenshot that shows the custom VS Code title bar on Linux.

カスタム タイトル コンテキスト メニューから、または window.titleBarStylenative に構成することで、常にネイティブ タイトル デコレーションに戻すことができます。

Screenshot that shows the content menu option to disable the custom title bar on Linux.

このエクスペリエンスに関する継続的なフィードバックをお待ちしており、既存のフィードバックに基づいて今後のマイルストーンに向けて改善に取り組んでいます。

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

パネル領域にあるものと同様に、セカンダリ サイド バーのビューの外観をアイコンではなくラベルを表示するように変更することにしました。これにより、たとえば Copilot Edits ビューと Copilot Chat ビューなど、さまざまなビューを区別しやすくなります。workbench.secondarySideBar.showLabels を構成することで、いつでもアイコンの表示に戻すことができます。

Screenshot that shows Secondary Side Bar with labels instead of icons.

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

設定: workbench.settings.useWeightedKeySearch

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

workbench.settings.useWeightedKeySearch 設定を有効にすることで、プレビュー機能を試すことができます。

テーマ: ライト ピンク (vscode.dev でプレビュー)

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

簡易ファイル ピッカーを使用する場合 (リモートに接続している場合、または files.simpleDialog.enable を使用している場合)、[ドット ファイルの表示/非表示] ボタンを使用してドット ファイルを非表示にできるようになりました。

Screenshot that shows the simple file picker, highlighting the button to show or hide dot files.

エディター

参照のピークをドラッグ アンド ドロップでサポート

ピーク ビューがドラッグ & ドロップをサポートするようになりました。[参照のピーク][実装のピーク]、またはその他のピーク コマンドのいずれかを呼び出して、そのツリーからエントリをドラッグして、別のエディターとして開きます。

テーマ: GitHub ライト カラーブラインド (ベータ) (vscode.dev でプレビュー)

出現箇所の強調表示の遅延

エディター内の出現箇所の強調表示の遅延が、デフォルトで 0 に設定されるようになりました。これにより、全体的にエディターの応答性が向上します。editor.occurrencesHighlightDelay 設定を使用して、遅延を制御することもできます。

ソース管理

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

[ソース管理グラフ] ビューを [ソース管理] ビューに追加した際、[ソース管理] ビューのセクション タイトル ("ソース管理リポジトリ"、"ソース管理"、"ソース管理グラフ") の重複が強調されました。このマイルストーンでは、ビューのタイトルを見直し、ビュー タイトルが短くなり、重複しなくなりました: "リポジトリ"、"変更"、"グラフ"。

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

設定: git.discardUntrackedChangesToTrash

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

このマイルストーンから、追跡されていないファイルを破棄すると、可能な場合はファイルがごみ箱に移動され、ファイルを簡単に復元できるようになります。git.discardUntrackedChangesToTrash 設定を使用して、この機能を無効にできます。

Screenshot of the modal dialog shown when discarding an untracked file.

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

設定:

  • git.diagnosticsCommitHook.Enabled
  • git.diagnosticsCommitHook.Sources

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

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

Screenshot of the modal dialog shown when there are unresolved diagnostics for the changed files.

ノートブック

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

設定: notebook.diff.experimental.toggleInline

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

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

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

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

Screenshot that shows the cursor hovering above a dataframe object's inline decoration. A rich value hover is shown.

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

設定: terminal.integrated.suggest.enabled

bash、zsh、fish、PowerShell 全体のターミナル シェル補完を大幅に改善しました。具体的には、補完仕様 (git など) を追加し、より適切な候補を得るためにコマンドライン パースを改良し、ファイルとフォルダーの補完を強化しました。terminal.integrated.suggest.enabled でこの機能を有効にします。

拡張された Fig 補完サポート

Fig 補完仕様を活用して、特定の CLI のインテリジェントな補完を実現しています。以前はごくわずかでしたが、今回のイテレーションでは、次の CLI を VS Code に同梱するリストに追加しました。

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

新しい仕様に加えて、ジェネレーターもサポートするようになりました。ジェネレーターは、要求されたときにコマンドを実行して補完を動的に生成します。この動作の 1 つの例は、git checkout のすべてのブランチを表示することです。

Screenshot that shows completions for "git checkout tyriar/xterm", showing several results, including fuzzy results that don't match the query exactly. テーマ: サファイア (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つは、異なるソースからのサジェストと競合することによって生じる混乱でした。具体的には、シェルで入力する際によく表示されるインラインサジェストです。

Screenshot that shows fish shell showing suggestions, such as previous git commit commands when typing a prefix.

これらのサジェストは実際にはシェルレベルの機能(fish/zshの自動サジェスト、pwshの予測など)であり、特にIntelliSenseと並んで表示される場合、ユーザーには分かりにくいかもしれません。

IntelliSense機能では、このインラインサジェストを検出する必要があります。以前は、テキストがfaintまたはitalics SGR属性でスタイルされているかどうかのみをチェックする単純な実装を使用していました。しかし、ユーザーがスタイルをカスタマイズした場合だけでなく、fish shellがデフォルトでこれらのスタイルのいずれも使用していなかった場合にも、これでは不十分であることが判明しました。現在では、コマンドラインのコンテキストとカーソル位置を分析することで、ほとんどのケースを検出できるようになりました。

この新しく改善された検出に基づいて、インラインサジェストは、エディターの動作との整合性を高め、kstyle(Tab)がこのケースで何をするのかをより明確にするために、スターアイコン付きの最上位のオプションとして表示されるようになりました。

Screenshot that shows when an inline suggestion shows up, it will be detected and put beside a star icon at the top of IntelliSense.

デフォルトでは、このサジェストは常に最上位のサジェストとして表示されますが、terminal.integrated.suggest.inlineSuggestionで設定できます。

詳細なコマンド補完

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

bashの場合、基本的な説明を取得するためにhelp <command>が使用されます。

Screenshot that shows the history completion in bash, showing usage information and description.

zshの場合、詳細な説明を取得するためにman zshbuiltinsが使用されます。

Screenshot that shows completions in zsh, displaying detailed information from the manpage.

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

Screenshot that shows the completion for Get-ChildItem, showing the module Microsoft.PowerShell.Management and its version.

Screenshot that shows the completion for ConvertTo-Json, showing the signature of the command.

ソートの改善

コマンド補完には、具体的に以下の点で改善されたソート機能が搭載されました。

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

Screenshot that shows the more useful alias and autoload commands showing before others in zsh.

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

  • _で始まるパスは、特殊なパスであることが多く、一般的にあまり変更すべきではないことを示す指標であるため(例:__init__.py)、ペナルティが課せられます。
  • 句読点はソート時に無視されるため、.で始まるファイルは他のファイルと混在します。

Screenshot that shows init.py will show below other files, while a .build dir will show immediately above a build file.

CDPATHのサポート

設定: terminal.integrated.suggest.cdPath

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

Screenshot that shows tab completion in fish, displaying entries from CDPATH.

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

Screenshot that shows CDPATH entries now show up in IntelliSense.

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

Screenshot that shows a CDPATH containing 2 paths separated by a semi-colon, including all sub-directories even on PowerShell which does not support CDPATH natively.

この設定はterminal.integrated.suggest.cdPathで行います。

絶対パス

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

Screenshot that shows "cd c:\Github\mi" will show results for all absolute folders matching that term.

Screenshot that shows cd to absolute paths also works with Unix-style paths.

エイリアスのサポート

コマンドエイリアスがbash、zsh、fishでも検出されるようになり、新しい独自のアイコンが特徴です。

Screenshot that shows the alias c->code-insiders will now be detected and show with the command icon with a little arrow in the corner.

オプションとフラグの差別化

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

Screenshot that shows flags like --help will show a flag icon, options like --diff will show a different icon.

タスク

タスクの再実行アクション

ターミナルに新しい再実行タスクアクションが追加されました。⌃⇧R (Windows、Linux Ctrl+Shift+R)。このアクションは、ターミナルタブのインラインツールバーとターミナルのコンテキストメニューに表示されます。

デバッグ

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

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

Screenshot that shows the cursor hovering above a dataframe object's inline decoration in an active debugging session. Rich value hover is shown.

言語

TypeScript 5.8

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

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

リモート開発

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

ハイライトは次のとおりです。

  • LinuxレガシーサーバーのEOL
  • 拡張されたプロキシ設定

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

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

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

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でglobパターンを指定することにより、自動テスト検出が発生するファイルを絞り込むことができるようになりました。デフォルト値は**/*.pyに設定されています。

settings.jsonからフォールバックとしてテストデバッグ構成を読み取る

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

GitHub認証

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

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

拡張機能の作成

認証

重要: AuthenticationForceNewSessionOptionsの名前をAuthenticationGetSessionPresentationOptionsに変更し、非推奨のAuthenticationForceNewSessionOptionsを当面の間残します。機能的な違いはないため、ランタイムでの破壊的な変更はありませんが、AuthenticationForceNewSessionOptionsは将来削除される予定ですので、コードを更新してAuthenticationGetSessionPresentationOptionsを使用するようにしてください。

これらの2つの認証呼び出しを見てください。

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

createIfNoneforceNewSessionは、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の変更であり、以前は新しいAuthenticationGetSessionPresentationOptionsと同じシグネチャを持つAuthenticationForceNewSessionOptionsを受け入れていました。

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

ここで変更されているのは型のみであることに注意することが重要です。ランタイムの変更はないため、この観点からは破壊的な変更ではありません。

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

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

Screenshot that shows the authentication modal dialog, featuring a message that says 'To get more relevant Copilot Chat results, we need permission to read the contents of your repository on GitHub.' and a button to learn more.

洗練されたスニペット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を取得する
  • 特定のencodingTextDocumentを開く
  • 特定のencodingstringUint8Arrayにエンコードする
  • 特定のencodingを使用してUint8Arraystringにデコードする

ぜひお試しいただき、こちらのGitHub issueでご意見をお聞かせください。

シェル環境

拡張機能は、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のコントリビューターに感謝申し上げます。

Issue追跡

Issue追跡への貢献

プルリクエスト

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への貢献