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

2024年8月 (バージョン 1.93)

更新 1.93.1: この更新では、これらの問題に対処しています。

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


Visual Studio Code の2024年8月リリースへようこそ。このバージョンには多くの更新が含まれており、気に入っていただけることを願っています。主なハイライトの一部を次に示します。

これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.comUpdates にアクセスしてください。Insiders: 新しい機能をできるだけ早く試したいですか? 夜間ビルドのInsidersビルドをダウンロードして、最新の更新をすぐに入手できます。

アクセシビリティ

キーボードによるテーブル列のサイズ変更

新しいコマンドlist.resizeColumnにより、キーボードを使用して列のサイズを変更できます。このコマンドをトリガーすると、サイズを変更したい列を選択し、設定したい幅のパーセンテージを入力します。以下のビデオでは、キーボードショートカットエディターで列のサイズを変更する方法を示しています。

チャット応答の合成に関するスクリーンリーダーのサポート

スクリーンリーダーユーザーが、ariaアラートを受け取る代わりに、シンセサイザーによってアナウンスされるチャット応答を聞くことを選択できるように、accessibility.voice.autoSynthesize設定を更新しました。

デバッグ機能の改善

エディターにフォーカスがある状態でデバッグしているときに、デバッグ: ウォッチに追加コマンドを呼び出すと、スクリーンリーダーユーザーに対して変数の値がアナウンスされるようになりました。

さらに、デバッグ補助ヘルプダイアログがより徹底的に改善されました。

ワークベンチ

新しいプロファイルエディター

新しいプロファイルエディターがVisual Studio Codeのすべてのバージョンで一般提供されるようになりました。新しいプロファイルエディターを使用すると、単一の場所からプロファイルを管理できます。このエクスペリエンスには、新しいプロファイルの作成、既存のプロファイルの編集と削除、プロファイルのインポートとエクスポートによる共有が含まれます。詳細については、プロファイルドキュメントを参照してください。

Screenshot that shows the Profiles editor.

ウィンドウコントロールオーバーレイのLinuxサポート

新しい設定window.experimentalControlOverlayにより、window.titleBarStyle設定でカスタムタイトルバーが有効になっている場合でも、ネイティブウィンドウコントロールが表示されるようになりました。

Screenshot of VS Code on Linux, highlighting the Linux window control overlays in the top-right corner.

既定では、Linuxでカスタムタイトルをまだ有効にしていませんが、最終的にはそうする予定です。カスタムタイトルをオンにすると、ネイティブウィンドウコントロールオーバーレイが自動的に表示されます。この新機能を使用する際に見つけたフィードバックを歓迎します!

コメントのソート

コメントは、ファイル内の位置または日付でソートできるようになりました。

Screenshot that shows the additional comment sorting options.

設定エディターから設定URLをコピー

設定エディターから特定の設定への直接URLをコピーできます。設定URLに移動すると、VS Codeが開き、設定エディターで対応する設定にフォーカスします。

Video that shows how to copy a setting URL in the Settings editor.

エクスプローラーでの逆ソート

追加のソートオプションであるexplorer.sortOrderReverseを追加しました。これにより、様々なエクスプローラーのソート設定を逆順にすることができ、さらにソートの柔軟性が向上します。

エディター

電球の改善

前回のマイルストーンで、コードアクションの電球アイコンが表示される場所を改善しました。今回、editor.lightbulb.enabledをデフォルトでonCodeに設定することにしました。これにより、電球アイコンはカーソルがソースコードのある行にある場合にのみ表示され、表示頻度が少なくなります。

アクションリストの色テーマ

コードアクションメニューなどのアクションリストコントロールの色は、editorActionList.backgroundeditorActionList.foregroundeditorActionList.focusForeground、およびeditorActionList.focusBackgroundキーを使用してテーマで構成できます。デフォルトでは、アクションリストコントロールのテーマはクイックピックおよびコマンドパレットのテーマと一致します。カラーテーマのカスタマイズに関する詳細情報を取得します。

GitHub Copilot

このマイルストーンでは、エディター、チャットビュー、インラインチャット全体でGitHub Copilotのエクスペリエンスを引き続き改善しました。また、いくつかの実験的な機能も追加し、皆様からのフィードバックをお待ちしております。

テスト生成の改善

GitHub Copilotを使用すると、エディターのコンテンツメニューにあるCopilotを使用してテストを生成アクションを使用するか、インラインチャットで/testsスラッシュコマンドを使用することで、コードのテストを生成できます。

既存のテストファイルを探し、新しいテストをそのファイルの末尾に追加するように、テスト生成フローを改善しました。テストファイルがまだない場合、Copilotは生成されたテスト用に新しいテストファイルを作成します。

テストとドキュメントを生成するコードアクションの名前を変更

メソッド名などの識別子にカーソルを置くと、GitHub Copilotはテストまたはドキュメントを生成するコードアクションを提供します。その目的をよりよく反映させるために、これらのコードアクションの名前をCopilotを使用してテストを生成Copilotを使用してドキュメントを生成に変更しました。以前は、これらはCopilotを使用してテストCopilotを使用してドキュメントと呼ばれていました。

New code action names for test and documentation generation

チャット履歴の改善

チャットビューの上部にあるチャットを表示ボタンから、以前のチャットセッションをチャット履歴から開くことができます。これらのセッションには、AIが生成したよりユーザーフレンドリーな名前が付けられるようになりました。各行の鉛筆アイコンを選択して、手動でセッションの名前を変更することもできます。

これらのチャット履歴エントリも、最後の要求日順にソートされ、日付バケットによってラベル付けおよびグループ化されるようになりました。

The chat history picker shows friendly session names and entries are grouped by age.

注: 新しいチャットセッションのみがAI生成の名前を取得し、既に持っていたチャットセッションは名前が変更されません。

空のウィンドウのチャットセッションを保存

以前は、VS Codeは空のウィンドウ(フォルダーやワークスペースが開かれていないウィンドウ)のチャットセッションを保存しませんでした。現在では、これらのセッションは期待どおりに保存され、空のウィンドウからの以前のチャットはチャットを表示ボタンから読み込むことができます。

: 複数の空のウィンドウで同時に同じチャットセッションを開いて使用することは避けてください。

クイックチャットでコンテキストを添付

クイックチャットを使用する際、ファイルやシンボルなどのコンテキストをCopilotリクエストに添付するために、コンテキストの添付アクションを使用できるようになりました。

低評価フィードバックの詳細

Copilot Chatからの応答が期待したものではなかったですか?チャット応答のツールバーにある低評価ボタンを選択して、私たちを助けてください。これで、問題の詳細を説明するためのいくつかの詳細オプションを含むドロップダウンが表示されます。このメニューから問題レポーターを開くこともできます。

The chat response feedback dropdown, showing extra details on the thumbs down button.

コード生成の指示 (実験的)

設定: github.copilot.chat.experimental.codeGeneration.instructions

Copilotは、リファクタリングの一部として、単体テストの生成、機能の実装など、コードの生成を支援できます。Copilotが生成するコードに、使用したい特定のライブラリや、従いたい特定のコーディングスタイルがある場合があります。

実験的な設定github.copilot.chat.experimental.codeGeneration.instructionsにより、コードを生成するすべてのCopilotリクエストに追加される一連の指示を定義できます。

指示はユーザーまたはワークスペースの設定で定義できますが、ファイルからインポートすることもできます。

次のコードスニペットは、設定と外部ファイルの両方から一連の指示を定義する方法を示しています

  "github.copilot.chat.experimental.codeGeneration.instructions": [
    {
      "text": "Always add a comment: 'Generated by Copilot'."
    },
    {
      "text": "In TypeScript always use underscore for private field names."
    },
    {
      "file": "code-style.md" // import instructions from file `code-style.md`
    }
  ],

myProject/code-style.mdの内容

Always use React functional components.
Always add comments.

スクリーンショットの参照セクションから、指示が使用されていることがわかります。

Copilot Chat using code generation instructions.

チャットビューでのチャット参加者の自動検出 (実験的)

設定: chat.experimental.detectParticipant.enabled

GitHub Copilotには、@workspaceなどのいくつかの組み込みチャット参加者があり、これらもチャットビューにコマンドを提供します。以前は、チャットプロンプトでチャット参加者とコマンドを明示的に指定する必要がありました。

自然言語でチャット参加者を使用しやすくするために、今後数週間で、Copilot Chatが質問を適切な参加者またはチャットコマンドに自動的にルーティングする実験を行います。

Screenshot of Chat view that shows how the '@workspace' participant is automatically detected.

自動選択された参加者が質問に適切でない場合は、チャット応答の上部にある実行せずに再実行リンクを選択して、質問をCopilotに再送信できます。

最近のコーディングファイルをインラインチャットのコンテキストとして使用 (実験的)

設定: github.copilot.chat.experimental.temporalContext.enabled

Copilotにプロンプトを出すとき、多くの場合、つい最近作業していたり、見ていたコードに関連する質問をしているでしょう。インラインチャットは、最近閲覧または編集されたコードをコンテキストとして使用して、より関連性の高い提案を提供できるようになりました。

この機能はまだ実験段階ですが、誰もがテストする価値があります。

現在のエディター行をインラインチャットのプロンプトとして使用 (実験的)

設定: github.copilot.config.experimental.inlineChatCompletionTrigger.enabled

インラインチャットを開いてからチャットプロンプトを入力する代わりに、エディターで入力を開始し、現在の行の内容を直接インラインチャットのプロンプトとして使用できるようになりました。さらにスムーズなチャットエクスペリエンスのために、Copilotはコードを記述する代わりにプロンプトを出していることを検出し、自動的にインラインチャットを開始できます。

現在の行をインラインチャットのプロンプトとして使用するさまざまな方法は次のとおりです。

  • コマンドパレット (⇧⌘P (Windows, Linux Ctrl+Shift+P))からインラインチャット: 現在の行でエディターを開始を入力します。
  • inlineChat.startWithCurrentLineコマンドのキーバインドを設定し、それをinlineChatExpansionコンテキストキーと組み合わせます。
  • github.copilot.config.experimental.inlineChatCompletionTrigger.enabled設定を有効にすると、Copilotが現在の行にソースコードではなくテキストがほとんど含まれていることを検出し、インラインチャットが開始されます。

以下のビデオは、Copilotが現在の行にほとんどテキストが含まれていることを検出した後、インラインチャットを開始するように提案する様子を示しています。

チャットからのデバッグ開始 (実験的)

設定: github.copilot.advanced.startDebugging.experimental.enabled

新しい実験的なスラッシュコマンド/startDebugging@vscodeチャット参加者で利用可能です。このコマンドを使用すると、起動構成を作成してアプリのデバッグを開始できます。

このコマンドは、起動構成を作成クイックピックのGitHub Copilotでデバッグ構成を生成オプションからもアクセスできます。

Generate Debug Configuration with GitHub Copilot is an option in the Create a launch.json file Quick Pick.

テストカバレッジに基づいてテストを生成 (実験的)

設定: github.copilot.chat.experimental.generateTests.codeLens

テストカバレッジ情報が利用可能な場合、GitHub Copilotは、まだテストでカバーされていない関数やメソッドに対して、CodeLensのCopilotを使用してテストを生成を提供できます。

言語

"SQL"を"MS SQL"に名称変更

SQLファイルの言語名が「SQL」から「MS SQL」に名称変更され、Microsoft SQL Server (T-SQL) 構文に焦点を当てていることをよりよく反映するようになりました。この言語モードのファイル拡張子は引き続き.sqlであり、構文強調表示は変更されていません。

vscode.devでのフルプロジェクトIntelliSenseとパッケージ型定義

Web版VS CodeでJavaScriptとTypeScriptを扱うのが大幅に改善されました。まず、パッケージIntelliSenseを実装し、reactなどのインポートされたパッケージから提案やドキュメントを表示できるようになりました。これは、VS Codeのデスクトップ版とほとんど同じように機能します。

IntelliSense and error reporting for an imported package on vscode.dev.

TypeScriptファイルでは、package.jsonにリストされているパッケージに対してIntelliSenseを提供します。JavaScriptファイルはもう少し柔軟で、自動型取得を使用します。これは、package.jsonにリストされていなくても、現在のファイルにインポートされたすべてのパッケージに対してIntelliSenseを提供します。

パッケージIntelliSenseのおかげで、JavaScriptおよびTypeScriptプロジェクト向けの完全なプロジェクトIntelliSenseも有効にしました。これにより、コードのナビゲーションが大幅に改善され、プロジェクト内の任意のシンボルに対して正しく定義へ移動すべての参照を検索ができるようになりました。また、型エラーの報告も可能になりました。コードを記述中に自動インポートもサポートするようになりました。

Finding all references of a symbol in a TypeScript project.

パッケージ型定義と完全なプロジェクトIntelliSenseは、Chrome、Microsoft Edge、Firefoxでサポートされています。SafariはReadableByteStreamControllerを実装していないため、まだサポートされていません。

ソース管理

ソースコントロールグラフビュー

ユーザーからのフィードバックに基づき、前回のマイルストーンで有効になった履歴グラフをソースコントロールビューからソースコントロールグラフという新しいビューに移動しました。これにより、メインビューからの情報過多が軽減され、新しいビューを好きなように非表示/折りたたみ/移動できるようになりました。これは、全機能搭載の履歴グラフの基礎も築きます。

ソースコントロールグラフビューは現在、現在のブランチのリモート/ベースを表示しています。次のマイルストーンでは、グラフを任意のレポジトリ参照にフィルタリングする機能を追加し、複数のレポジトリを持つワークスペースのエクスペリエンスを改善する作業を行っています。

Source Control Graph view showing a graph visualization of the repository.

テーマ: GitHub Sharp (vscode.devでプレビュー)

リファレンステーブル形式のサポート

Git 2.45では、「reftable」と呼ばれる新しい参照ストレージバックエンドの予備的なサポートが追加されました。このマイルストーンでは、この新しい参照ストレージバックエンドをサポートするように組み込みのGit拡張機能を更新しました。

Git 2.45を使用すると、--ref-format=reftableフラグを使用して、新しい参照ストレージバックエンドを使用するリポジトリを作成またはクローンできます。Git 2.46では、git refs migrateコマンドを使用して、既存のリポジトリを新しい参照ストレージ形式に移行するサポートも追加されました。

新しい参照ストレージバックエンドはまだ実験段階であることに注意してください。

コンパクトフォルダー設定

コミュニティの貢献のおかげで、新しい設定scm.compactFoldersが追加されました。これにより、変更がツリーとして表示されるときに、ソース管理ビューでフォルダーがコンパクトな形式で表示されるかどうかを制御できます。

ターミナル

JuliaとNuShellのサポート

JuliaとNuShellのシェル統合がサポートされるようになりました。これにより、これらのシェルタイプでコマンド装飾最近のコマンドの実行などの機能が有効になります。

複数のターミナルタブを移動

複数のターミナルタブを複数選択し、順番に並んだグループとしてターミナルリスト内で移動できるようになりました。

コマンドガイド設定とカラーテーマ

コマンドガイドは、コマンドとその出力にホバーすると表示されるバーです。コマンドガイドterminal.integrated.shellIntegration.showCommandGuide設定で無効にできるようになり、色はterminalCommandGuide.foregroundテーマキーでテーマによって設定できるようになりました。

ノートブック

差分ビューで変更されていないセルを表示または非表示

ノートブックの差分ビューでは、変更されていないセルが非表示になり、変更されたセルに集中できるようになりました。同時に、変更されていないすべてのセルの入力は常に折りたたまれます。

差分ビューでの空白の管理

ノートブックの差分ビューでは、次の設定が尊重されるようになりました。

ノートブック実行カウントのスティッキースクロール

コードセルを下にスクロールすると、コードセルの実行カウントが画面の下部に固定されるようになりました。これにより、長いコードセルで作業しているときに、実行状態と更新を簡単に確認できます。

タスク

プロセス終了時にタスクターミナルを開いたままにする

タスクのターミナルプロセスがゼロ以外のコードで終了した場合、デバッグを容易にするためにターミナルを開いたままにするようになりました。

デバッグ

変数定義にジャンプ

デバッグ拡張機能は、変数と式をコード内の場所とリンクできるようになりました。このリンクが設定されたデータは、変数ビュー、ウォッチビュー、およびデバッグコンソールでCtrlキーを押しながら選択できます (macOSではCmdキー)。

組み込みのJavaScriptデバッガーは、コードで定義された関数の場所をリンクします。他のデバッグ拡張機能は、この機能を有効にするために対応するプロトコル変更を採用する必要があります。

検索コントロール

デバッグコンソール (⌥⌘F (Windows, Linux Ctrl+Alt+F))で検索コントロールを開いて、入力結果を検索できるようになりました。出力結果の検索サポートは今後のマイルストーンで検討されます。

また、フィルターコントロールの右側にあるデバッグコンソールのツールバーに表示されるアクションデバッグコンソール: 検索にフォーカスからもコントロールにアクセスできます。

起動設定入力キャッシュ

起動設定とタスクで使用される入力変数は、依存するデバッグセッションの再実行プロセスを容易にするために、最後に入力された値を保持するようになりました。これは、入力に明示的なdefaultが定義されていない場合にのみ行われます。

JavaScriptデバッガー

実験的なネットワークビュー

JavaScriptデバッガーに基本的な実験的なネットワークビューが追加されました。debug.javascript.enableNetworkView設定がオンの場合に利用可能です。このビューは、ブラウザセッションによって行われた要求と応答に関する情報を表示します。

JavaScriptデバッガーのネットワークビューを示すスクリーンショット。 テーマ: Codesong (vscode.devでプレビュー)

ネットワークビューは、Node.js 22.6.0以降でも機能します。プロセスが引数に--experimental-network-inspectionを指定して起動された場合、例えばnode起動構成に"runtimeArgs": ["--experimental-network-inspection"]を追加した場合などです。

: Nodeのネットワークの実装はまだ非常に初期段階であり、要求と応答に関するほとんどのデータはまだ利用できません。

テスト

メッセージのスタックトレースのサポート

テスト拡張機能は、テストの失敗にスタックトレースを関連付けることができるようになりました。そうすると、テスト結果ビューとエラーピークで、呼び出しスタックの各フレーム周辺のコードが表示されます。ビュー内のコードをCtrlキーを押しながら選択 (macOSではCmdキー) して元の場所に移動したり、ヘッダーのファイルに移動アクションを使用したりできます。

テスト失敗メッセージと、失敗につながった対応するコールスタックを表示するエディター。 テーマ: Codesong (vscode.devでプレビュー)

インストーラー

Debianパッケージは、packages.microsoft.comリポジトリを追加するかどうかを確認するプロンプトを表示するようになりました。これにより、aptを使用してパッケージを後で更新できます。

Terminal showing the prompt for adding the Microsoft packages repo during the install.

リモート開発

リモート開発拡張機能を使用すると、開発コンテナ、SSH経由のリモートマシンまたはリモートトンネル、あるいはLinux用Windowsサブシステム (WSL) をフル機能の開発環境として使用できます。

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

  • Dev Containerテンプレートのオプションパス
  • SSHによるリモートOSとの互換性を拡張

これらの機能に関する詳細情報は、リモート開発リリースノートで確認できます。

Web 用 VS Code

https://vscode.devでGitHubリポジトリを参照している場合、またはGitHub Repositories拡張機能を使用してデスクトップで参照している場合、git.openDiffOnClick設定が尊重されるようになりました。

Open diff by selecting Open Changes for changed resources.

拡張機能への貢献

Python

Django 単体テストのサポート

最も要望の多かった機能の1つである、Django 単体テストの検出とテストエクスプローラーからの実行のサポートを発表できることを嬉しく思います!この機能を有効にするための設定手順については、ドキュメントを確認してください

テストエクスプローラーで検出され、実行されたDjango単体テスト。 テーマ: Catppuccin Macchiato (vscode.devでプレビュー)

この新しく追加された機能を試す際には、vscode-pythonリポジトリまたはPython: 問題を報告コマンドを使用して、フィードバックと問題の報告をお願いします。

ネイティブREPLの改善

新しいネイティブREPLエクスペリエンスにさらなる改善とバグ修正を加えました。ネイティブREPLは、実験としてスマート送信のデフォルトターゲットとして展開されていますが、これを試してみたい場合は、ユーザーのsettings.jsonpython.REPL.sendToNativeREPLを設定し、VS Codeウィンドウを再読み込みすることで試すことができます。

Pylanceによるインレイヒントからの定義への移動

Pylanceでインレイヒントが有効になっている場合、Ctrlキー (macOSではCmdキー) を押しながらホバーしてクリックすることで、より便利に型の定義に移動できるようになりました。

Go to Definition supported by using Ctrl/Cmd + click when hovering over a Python type on an inlay hint.

テストデバッグ時の再起動サポート

デバッグツールバーコントロールを通じてテストをデバッグする際に、デバッガーを再起動できるようになりました。

GitHubプルリクエストと課題

プルリクエストや課題の作業、作成、管理を可能にするGitHub Pull Requests拡張機能の進捗がありました。ハイライトについては、拡張機能の0.96.0リリースの変更履歴を確認してください。

拡張機能作成

VS CodeのEcmaScriptモジュール(ESM)読み込みの影響

現在、VS Codeコアにおけるコードの読み込み方法を、AMD/CommonJSからESMに変更する作業を進めています。拡張機能は引き続きCommonJSとして読み込まれますが、この変更にはrequireメソッドの変更が伴います。具体的には、1.94リリース以降、require.mainundefinedになります。インストールからのファイルへのアクセスにユースケースがある場合は、代わりにvscode.env.appRootを検討するか、当社にご連絡ください

ターミナルシェル統合API

ターミナルシェル統合APIが利用可能になりました。この強力なAPIにより、拡張機能はターミナルで実行されるコマンドをリッスンし、その生の出力、終了コード、コマンドラインを読み取ることができます。

window.onDidEndTerminalShellExecution(event => {
  if (event.execution.commandLine.value.startsWith('git')) {
    if (event.exitCode === 0) {
      // React to a successful git command
    } else {
      // React to a failing git command
    }
  }
});

また、コマンドを実行するより信頼性の高い方法も提供します。これにより、コマンドを送信する前にプロンプトが開始されるのを待ち、コマンドがターミナルに余分にエコーされるのを防ぎます。

const commandLine = 'echo "Hello world"';
if (term.shellIntegration) {
  const execution = shellIntegration.executeCommand({ commandLine });
  window.onDidEndTerminalShellExecution(event => {
    if (event.execution === execution) {
      console.log(`Command exited with code ${event.exitCode}`);
    }
  });
} else {
  term.sendText(commandLine);
  // Without shell integration, we can't know when the command has finished or what the
  // exit code was.
}

詳細については、vscode.d.tsのAPIと拡張機能サンプルを参照してください。

認証アカウントAPI

認証APIは、複数のアカウントを処理する際に、より詳細な制御ができるようになりました。これまで常に不足していたのは、すべてのアカウントを取得し、特定のアカウントのAuthenticationSessionを取得する機能でした。それが、getAccounts APIの最終化により可能になりました。

認証セッションを使用しようとしている拡張機能の作成者は、以下のコードを実行して、ユーザーがログインしているアカウントのAuthenticationSessionAccountInformationを取得できます。

const accounts = vscode.authentication.getAccounts('microsoft');

そこから、これらのアカウントを使用して、それらのアカウント専用のセッションを発行できます。

const session = vscode.authentication.getSession('microsoft', scopes, {
  account: accounts[0]
});

: これが機能するには、認証プロバイダーがgetSessionscreateSessionの両方に渡されるパラメーターを処理する必要があります。組み込みのGitHubおよびMicrosoftプロバイダーは既にこれを採用しています。

これにより、複数の認証セッションを処理し、以前はサポートできなかったさまざまなシナリオを処理する最も明確な方法であると考えています。

デバッグアダプタプロトコル

Debug Adapter ProtocolのVariablesおよびその他のデータ型にlocationReferencesを追加し、ソースロケーションを関連付けられるようにしました。

VS CodeのWebAssembly

wasm-wasi-core拡張機能と@vscode-wasm-wasiおよび@vscode/wasm-component-modelnpmモジュールの1.0バージョンがリリースされました。使用例は、vscode-extension-samplesリポジトリのwasm-*サブフォルダーで見つけることができます。また、VS Code拡張機能内でWebAssemblyコードを使用する方法に関するいくつかの投稿がVS Codeブログにあります。

プレビュー機能

ターミナルIntelliSenseの改善

実験的なPowerShell IntelliSenseは、今回のリリースで以下の改善がされました。

  • git checkoutには、前のブランチに切り替えるための-の補完が含まれるようになりました。
  • terminal.integrated.suggest.runOnEnterのデフォルト値がignoreに設定され、EnterキーがIntelliSenseとまったくやり取りしないようになりました。これは、筋肉の記憶への影響が大きすぎると感じたユーザーからのフィードバックでした。
  • PowerShellキーワードがコマンド(引数ではない)の補完として利用可能になりました。
  • cdの最初のディレクトリ提案が常にそれ自体になり、terminal.integrated.suggest.runOnEnterが設定されている場合にスムーズになりました。docsにcdすると、docsが最上位の結果として表示されます。
  • コマンドラインの異なる位置で要求された場合の提案がより一貫性を持つようになりました。
  • ディレクトリを戻る際に、/../の補完が提供されます。cd ..\は ..\..\.の提案を提供します。

製品に同梱されるConpty

Conptyは、他のオペレーティングシステムでの擬似端末の動作をエミュレートするターミナルのバックエンドです。このコンポーネントはWindows自体に同梱されており、バグ修正はWindows Updateを通じてリリースされます。ユーザーはこれらの修正が到着するまで長い間待つことになるかもしれません。

このリリースでは、Windows Terminalと同様に、ConptyをVS Code自体にバンドルする実験的な設定があります。これにより、ユーザーはWindows Updateを待つことなく、VS Codeの更新としてバグ修正を取得できます。

これを有効にするには、次の設定をtrueに設定します。

"terminal.integrated.experimental.windowsUseConptyDll": true

これを有効にすることで期待できる改善の種類は次のとおりです。

  • パフォーマンスの向上
  • より信頼性の高いシェル統合
  • より多くのエスケープシーケンスサポート (例: sixelのWindowsでの近日サポート)

現在知られている唯一の問題は、一部のユーザーでプロセスが残り続け、VS Codeの更新をブロックすることです (microsoft/vscode#225719)。これにより、更新を有効にするにはプロセスを手動で強制終了する必要があります。

TypeScript 5.6のサポート

TypeScript 5.6の今後のリリースに対するサポートを改善し続けました。このリリースに含まれる詳細については、TypeScript 5.6 RCブログ投稿を確認してください。

TypeScript 5.6のプレビュービルドの使用を開始するには、TypeScript Nightly拡張機能をインストールしてください。

新しい問題報告ツール実装

このマイルストーンでは、問題報告ツールの新しい実装を実験しています。機能は変わりませんが、マルチモニターサポートの改善や、Web版VS Codeでの問題報告ツールの利用可能性など、いくつかの改善点があるはずです。

新しいバージョンの問題報告ツールはデフォルトで有効になっており、デスクトップ版VS CodeのissueReporter.experimental.auxWindow設定で構成できます。

提案されたAPI

言語モデル用ツール

当社は引き続きLanguageModelTool APIを改善しています。このAPIには主に2つの部分があります。

  1. 拡張機能がツールを登録する機能。ツールとは、言語モデルによって使用されることを意図した機能の一部です。たとえば、ファイルのGit履歴を読み取るなど。

  2. 言語モデルがツールをサポートするメカニズム。例えば、拡張機能がリクエストを行う際にツールを渡す、言語モデルがツール呼び出しを要求する、拡張機能がツール呼び出しの結果を返すといったものです。

今月追加された変更の1つは、ユーザーが特定のツールをチャットリクエストに手動で添付できる機能です。これの例は、ユーザーがリクエストで使用したい動的なコンテキストを計算するツールです。

提案はvscode.proposed.lmTools.d.tsとして見つけることができます。ツールの登録と呼び出しを示すtool-userサンプル拡張機能を確認してください。

更新やフィードバックについては、issue #213274をご覧ください。

: このAPIはまだ活発に開発中であり、変更される可能性があります。

テストの拡張

コードをテストに関連付ける

拡張機能がコードをテストに関連付け、その逆も可能にするAPIを開発中です。これにより、ユーザーは両方を切り替えることができ、カーソル位置でテストを実行などのアクションも実装コードで機能するようになります。APIの開発に伴い、より多くのエクスペリエンスを構築する予定です。

詳細と更新については、vscode#126932をご覧ください。

属性付きテストカバレッジ

テストごとにテストカバレッジを割り当てるAPIを開発中です。これにより、ユーザーはどのテストがどのコードを実行したかを確認でき、エディターに表示されるカバレッジとテストカバレッジビューに表示されるカバレッジの両方をフィルタリングできます。

詳細と更新については、vscode#212196をご覧ください。

チャット参加者検出API

チャットビューに、参加者またはチャットコマンドを提供する拡張機能を作成している場合、package.jsonchatParticipantsの貢献にメタデータを追加することで、参加者とコマンドを自動的に検出させることができます。このAPIを採用する方法のを含むようにvscode-extension-samplesリポジトリを更新しました。テスト時には、chat.experimental.detectParticipant.enabledを設定することを忘れないでください。これは提案されているAPIであり、変更される可能性があることに注意してください。

ウェブサイト

VS Code APIページの下のいくつかのリンクを修正しました。汎用型や関数へのリンクが再び機能するようになり、プリミティブ型や値はリンクとして書式設定されなくなりました!

エンジニアリング

VS CodeでのESM使用の進捗

このマイルストーンでは、VS CodeコアにESMを採用するための作業のほとんどを完了しました。私たちの目標は、ECMAScript Modules (ESM) の読み込みを使用し、AMDを完全に廃止することです。9月にESM対応のInsiderビルドをリリースし始め、10月の次回のリリースでESMをStableにリリースする予定です。

ESMのリリース計画は、https://github.com/microsoft/vscode/issues/226260に記載されています。

注目すべき修正点

ありがとうございます

最後に、VS Codeの貢献者の皆様に心からの感謝を申し上げます。

問題追跡

問題追跡への貢献者

プルリクエスト

vscodeへの貢献者

vscode-css-languageserviceへの貢献者

vscode-eslintへの貢献者

vscode-flake8への貢献

vscode-generator-codeへの貢献者

vscode-hexeditorへの貢献

vscode-isortへの貢献

vscode-js-profile-visualizerへの貢献

vscode-json-languageserviceへの貢献

vscode-languageserver-nodeへの貢献者

vscode-loaderへの貢献

vscode-mypyへの貢献

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

  • @jmg-duarte (José Duarte)
    • 差分にエディターフォントを使用 PR #6148
    • コードブロックがデフォルトでエディターのフォントファミリーを使用するようにする PR #6149

vscode-python-debuggerへの貢献者

vscode-vsceへのコントリビューション

language-server-protocolへの貢献者

python-environment-toolsへの貢献