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

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

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


Visual Studio Code 2024年8月リリースへようこそ。今回のバージョンでは多くのアップデートがあり、皆様に気に入っていただけることを願っています。主なハイライトは以下のとおりです。

これらのリリースノートをオンラインで読むには、code.visualstudio.com更新情報 にアクセスしてください。Insiders: 新機能をいち早く試したいですか?毎晩更新される Insiders ビルドをダウンロードして、最新のアップデートをすぐにお試しください。

アクセシビリティ

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

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

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

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

デバッグの改善

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

さらに、デバッグのアクセシビリティヘルプダイアログが改善され、網羅性が向上しました。

ワークベンチ

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

新しいプロファイルエディターが 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 チャットから期待どおりの応答が得られませんでしたか?チャット応答のツールバーにある 低評価 ボタンを選択して、ご協力ください。問題点を説明するための詳細なオプションがいくつか含まれるドロップダウンが表示されるようになりました。このメニューから問題報告ツールを開くこともできます。

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 チャットが質問を適切な参加者またはチャットコマンドに自動的にルーティングできるようにする実験を開始します。

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 ファイルの言語名が、Microsoft SQL Server (T-SQL) 構文への言語の焦点をより良く反映するために、"SQL" から "MS SQL" に名前変更されました。この言語モードのファイル拡張子は依然として .sql であり、構文強調表示は変更されていません。

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

VS Code for the Web での 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)

reftable 形式のサポート

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)

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

: Node.js のネットワーク実装はまだ非常に初期段階であり、リクエストとレスポンスに関するほとんどのデータはまだ利用できません。

テスト

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

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

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

インストーラー

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

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

リモート開発

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

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

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

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

VS Code for the Web

git.openDiffOnClick 設定は、https://vscode.dev またはデスクトップ上の GitHub Repositories 拡張機能 で GitHub リポジトリを閲覧する際に尊重されるようになりました。

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 キー (Cmd キー (macOS)) を押しながらクリックすることで、型の定義にさらに簡単に移動できるようになりました。

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

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

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

GitHub Pull Requests and Issues

GitHub Pull Requests 拡張機能の進捗がさらに進んでいます。これにより、プルリクエストと Issue の作業、作成、管理が可能になります。ハイライトについては、拡張機能の 0.96.0 リリースの変更ログ を確認してください。

拡張機能の作成

VS Code の EcmaScript モジュール (ESM) ローディングの影響

VS Code コアでのコードのロード方法を、AMD/CommonJS から ESM に変更するプロセスを進めています。拡張機能は引き続き CommonJS としてロードされますが、この変更には require メソッドの変更が伴います。具体的には、require.main1.94 リリース以降で undefined になります。インストールからファイルにアクセスするユースケースがある場合は、代わりに 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.
}

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

認証アカウント 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の変数およびその他のデータ型にlocationReferencesを追加しました。

VS Code における WebAssembly

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

プレビュー機能

ターミナルIntelliSenseの改善

Experimental PowerShell IntelliSense に今リリースでは以下の改善が加えられました。

  • git checkout に、前のブランチに切り替えるための - の補完が含まれるようになりました。
  • terminal.integrated.suggest.runOnEnter のデフォルト値が ignore に設定されました。これは、Enter キーがIntelliSenseと一切インタラクションしないことを意味します。これは、筋肉の記憶への影響が大きすぎると感じたユーザーからのフィードバックによるものです。
  • PowerShellのキーワードが、コマンド(引数ではなく)の補完として利用できるようになりました。
  • cd の最初のディレクトリの候補が常にそれ自体になるようになりました。これにより、terminal.integrated.suggest.runOnEnter が設定されている場合に操作がよりスムーズになります。cd into docs will present docs as the top result.
  • コマンドライン上の異なる位置で要求された場合でも、候補がより一貫性を持つようになりました。
  • ディレクトリを戻るナビゲーション中に、<path>/../ の補完が提供されるようになりました。cd ..\ will give a suggestion for ..\..\.

Conptyが製品に同梱

Conptyは、ターミナルのバックエンドであり、他のオペレーティングシステムでの疑似端末の動作をエミュレートします。このコンポーネントはWindows自体に同梱されているため、バグ修正はWindows Updateを通じてリリースされます。ユーザーは、これらの修正が届くまでに長い時間待つことになる可能性があります。

今リリースでは、Windows Terminalと同様に、conptyをVS Code自体にバンドルする実験的な設定を用意しました。これにより、ユーザーはWindows Updateを待つのではなく、VS Codeのアップデートをリリースする際にバグ修正を入手できます。

これを有効にするには、次の設定を true に設定してください。

"terminal.integrated.experimental.windowsUseConptyDll": true

これを有効にすることで期待できる改善点は以下のとおりです。

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

現在の既知の問題は、一部のユーザーでプロセスが残り続け、VS Codeのアップデートをブロックしてしまうこと (microsoft/vscode#225719) です。アップデートを有効にするには、プロセスを手動でkillする必要があります。

TypeScript 5.6 のサポート

今後リリース予定の TypeScript 5.6 のサポートを継続的に改善しています。このリリースに含まれる内容の詳細については、TypeScript 5.6 RC のブログ記事をご覧ください。

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

新しいIssue Reporterの実装

今マイルストーンでは、Issue Reporterの新しい実装を試しています。機能は同じままですが、マルチモニターサポートの改善や、VS Code for the WebでのIssue Reporterの利用可能性など、いくつかの改善があるはずです。

新しいバージョンのIssue Reporterはデフォルトで有効になっており、デスクトップ版の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 contribution にメタデータを追加することで、参加者とコマンドを自動的に検出できるようにすることができます。vscode-extension-samples リポジトリを更新し、このAPIの採用方法の を追加しました。テストする際は、chat.experimental.detectParticipant.enabled を設定してください。これは提案中のAPIであり、変更される可能性があることに注意してください。

ウェブサイト

VS Code API ページのいくつかのリンクを修正しました。ジェネリック型と関数へのリンクが再び機能するようになり、プリミティブ型と値がリンクとしてフォーマットされなくなりました。

エンジニアリング

VS Code での ESM 使用の進捗状況

今マイルストーンでは、VS Code Core に ESM を採用するための作業の大部分を完了しました。私たちの目標は、ECMAScript Modules(ESM)ローディングを使用し、AMDを完全に廃止することです。9月にはESM対応のInsiderビルドのリリースを開始し、10月の次期リリースでStable版にESMを搭載する予定です。

ESM リリースの計画は、https://github.com/microsoft/vscode/issues/226260 で公開しています。

注目すべき修正

謝辞

最後になりましたが、VS Codeのコントリビューターの皆様に心から感謝申し上げます。

Issueトラッキング

Issueトラッキングへの貢献

プルリクエスト

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