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

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

Update 1.98.1: このアップデートでは、これらの問題に対処しています。

Update 1.98.2: このアップデートでは、これらの問題に対処しています。

ダウンロード: Windows: x64 Arm64 | Mac: ユニバーサル Intel シリコン | Linux: deb rpm tarball Arm snap


Visual Studio Code 2025年2月リリースへようこそ。今回のバージョンでは、皆さんに気に入っていただけるであろう多くの更新があります。主なハイライトは以下の通りです。

これらのリリースノートをオンラインで読みたい場合は、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) ショートカットでターミナルコマンドを確認します。

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

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 Stableに導入する前に、引き続きエクスペリエンスを改善していきます。

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

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

  • 変更が適用されている間、スクロールする必要がなくなりました。ビューポートは元の位置に留まるため、変更点に集中しやすくなります。
  • 編集レビューアクションの名前を「承諾」から「保持」に、「破棄」から「元に戻す」に変更し、何が起こっているかをより正確に反映させました。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: に続けてフォルダ名を入力することでもフォルダを添付できるようになりました。

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

設定:

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ポリシー設定で「エディタープレビュー機能」をオプトインすることにより、組織の特定のモデルを有効にする必要があります。

モデルの可用性

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

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

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

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

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

エディター

Peek references ドラッグ&ドロップ対応

Peek ビューがドラッグ&ドロップに対応しました。参照をPeek実装をPeek、またはその他の Peek コマンドを呼び出し、そのツリーからエントリをドラッグして、別のエディタとして開くことができます。

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

出現箇所強調表示の遅延

エディター内の出現箇所の強調表示の遅延が、デフォルトで0に設定されました。これにより、全体的により応答性の高いエディターの感覚が得られます。遅延は、editor.occurrencesHighlightDelay 設定で引き続き制御できます。

ソース管理

ビュータイトルの更新

Source Control Graph ビューを Source Control ビューに追加した際、Source Control ビュー内のセクションタイトル「Source Control Repositories」、「Source Control」、「Source Control Graph」の重複が強調されました。今回のマイルストーンでは、ビューのタイトルを見直し、短縮してビュータイトルを重複させないようにしました。「Repositories」、「Changes」、「Graph」となります。

未追跡の変更の破棄に関する改善

設定: 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

bash、zsh、fish、PowerShell のターミナルシェル補完を大幅に改善しました。補完仕様 (git など) の追加、より良い提案のためのコマンドライン解析の改良、ファイルとフォルダ補完の強化を行いました。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 のすべてのブランチを表示する機能があります。

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

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 が使用されます。

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 のコマンドエイリアスも検出され、新しい distinct なアイコンが特徴です。

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 またはリモートトンネルを介したリモートマシン、またはLinux 用 Windows サブシステム (WSL) をフル機能の開発環境として使用できます。

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

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

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

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

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

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.jsonlaunch.jsonファイルの両方でテストデバッグ設定を探すようになりました。

GitHub認証

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

GitHub 認証拡張機能は、ウェブ要求を行うために Electron の fetch バージョンを利用するようになりました。これにより、特定のプロキシやファイアウォール設定を持つユーザーが助けられています。プロキシ設定のある環境で実行していて、VS Code 内で GitHub に認証できない場合は、遠慮なく問題を報告してください!

拡張機能作成

認証

重要: AuthenticationForceNewSessionOptionsAuthenticationGetSessionPresentationOptions に名前変更し、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 が削除されるため、AuthenticationGetSessionSessionPresentationOptions に置き換える必要があります。

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

さらに、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 の問題で試してみて、ご意見をお聞かせください。

シェル環境

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

ユーザーは、terminal.integrated.shellIntegration.environmentReporting を使用して、シェル環境情報を報告するかどうかを決定できます。

このGitHubイシューでぜひ試してみて、ご意見をお聞かせください。

エンジニアリング

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の貢献者の皆様に心からの感謝を申し上げます。

問題追跡

問題追跡への貢献者

プルリクエスト

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