VS Codeのエージェントモードを拡張するには、を試してください!

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月リリースへようこそ。このバージョンには多くの更新があり、皆様に喜んでいただけると幸いです。主なハイライトは以下のとおりです。

これらのリリースノートをオンラインで読むには、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 Stable では徐々に展開を開始したばかりです。エージェントモードが有効になると、Copilot Edits ビューにモードドロップダウンが表示されます。単にエージェントを選択してください。

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

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

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

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

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

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

Copilot Edits エージェントモードの詳細、またはエージェントモードの発表ブログ記事をご覧ください。

注意: Copilot Business または Enterprise ユーザーの場合、エージェントモードを利用するには、組織の管理者が Copilot の「エディタープレビュー機能」の使用をオプトインする必要があります。

Copilot Edits でのノートブックサポート (プレビュー)

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

注意: この機能は現在、VS Code Insiders で GitHub Copilot Chat のプレリリース版でのみ利用可能です。今後のリリースで VS Code Stable に導入する前に、エクスペリエンスを改善し続けます。

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

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

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

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: に続けてフォルダー名を入力することでもフォルダーを添付できます。

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

設定:

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 が、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 を提供させることもできます。

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 Sonnet および Gemini 2.0 Flash での画像添付のサポートもまもなく展開されます。現在サポートされている画像タイプは JPEG/JPGPNGGIFWEBP です。

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 コマンドのための強化されたコンテキストを実験しています。この実験は現在 Insiders リリースに限定されており、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 設定を有効にすることで、プレビュー機能を試すことができます。

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

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

シンプルなファイルピッカーを使用する際 (リモート接続時またはfiles.simpleDialog.enable 使用時)、「ドットファイルの表示/非表示」ボタンを使用してドットファイルを非表示にできるようになりました。

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

エディター

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

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

テーマ: GitHub Light Colorblind (ベータ) (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 設定を使用してカスタマイズできます。ぜひお試しいただき、ご意見をお聞かせください。

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

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

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

特定の CLI に対してインテリジェントな補完を提供するために、Fig の補完仕様を活用しています。以前はこれらが少数でしたが、今回のイテレーションでは、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 のすべてのブランチが表示されます。

git checkout tyriar/xterm の補完を示すスクリーンショット。クエリに完全に一致しない曖昧な結果を含む、いくつかの結果が表示されています。 テーマ: 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

これまでインライン候補の検出が抱えていた問題の一つは、異なるソースからの候補と競合することによって生じる混乱でした。具体的には、シェルで入力する際によく表示されるインライン候補です。

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

これらの候補は実際にはシェルレベルの機能 (fish/zsh の自動候補、pwsh の予測など) であり、特に IntelliSense と並べて表示されると、ユーザーには明らかではない場合があります。

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

この新しく改善された検出に基づいて、インライン候補がスターアイコン付きの最上位オプションとして表示されるようになりました。これにより、エディターの動作との整合性が高まり、この場合 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 リリースブログをご覧ください。

リモート開発

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

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

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

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

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

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

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

拡張機能への貢献

Python

長い文字列の改行時の引用符自動挿入

Pylance は、長い文字列を改行する際にシームレスなエクスペリエンスを可能にする引用符の自動挿入をサポートするようになりました。

Pylance のメモリ消費量の改善

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

Python シェル統合の改善

python.terminal.shellIntegration.enabled を変更した後、変更を有効にするためにリロードする必要がなくなりました。新しいターミナルを作成するだけで、ターミナルの Python REPL で希望する変更を確認できます。

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

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

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

python.testing.autoTestDiscoverOnSavePattern 設定でグロブパターンを指定することにより、自動テスト検出が行われるファイルを絞り込むことができるようになりました。既定値は **/*.py です。

settings.json からテストデバッグ設定をフォールバックとして読み込む

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

GitHub認証

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

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

拡張機能作成

認証

重要: AuthenticationForceNewSessionOptionsAuthenticationGetSessionPresentationOptions に名前変更し、当面の間は非推奨の AuthenticationForceNewSessionOptions を残します。機能的な違いはないため、これはランタイムにおける破壊的変更ではありませんが、将来的に 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 を使用している場合、それは非推奨としてマークされており、将来のバージョンで AuthenticationForceNewSessionOptions は削除されるため、AuthenticationGetSessionPresentationOptions に置き換える必要があります。

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

さらに、authLearnMore 提案 APIAuthenticationForceNewSessionOptions から 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 は、オブジェクトがガベージコレクションされたときに通知してくれるため、これを利用しています。もしそのようなオブジェクトが、破棄されていない使い捨てオブジェクトを表していた場合、それはリークがあることを意味します。これらは収集され、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への貢献