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月リリースへようこそ。今回のバージョンでは多くのアップデートがあり、皆様に気に入っていただけることを願っています。主なハイライトは以下のとおりです。
- プロファイルエディター - プロファイルを一箇所で切り替え、管理できます。
- Django ユニットテストのサポート - テストエクスプローラーから Django ユニットテストを検出して実行できます。
- vscode.dev でのフルプロジェクト IntelliSense とパッケージ型定義 - vscode.dev での JS & TS コーディングを IntelliSense で強化します。
- ノートブック差分ビューアー - 変更のないセルを折りたたむことで、ノートブックの変更を効率的にレビューできます。
- キーボードによるテーブル列のリサイズ - キーボード操作で VS Code のテーブル列のリサイズがよりアクセスしやすくなりました。
- ソース管理グラフ - ソース管理グラフを簡単に非表示、折りたたみ、移動できます。
- GitHub Copilot - クイックチャットでのコンテキストの追加、テスト生成とチャット履歴の改善。
- 実験的機能: カスタム Copilot 指示 - Copilot 用に特定のコード生成指示を定義します。
これらのリリースノートをオンラインで読むには、code.visualstudio.com の 更新情報 にアクセスしてください。Insiders: 新機能をいち早く試したいですか?毎晩更新される Insiders ビルドをダウンロードして、最新のアップデートをすぐにお試しください。
アクセシビリティ
キーボードによるテーブル列のリサイズ
新しいコマンド list.resizeColumn
を使用すると、キーボードを使用して列のサイズを変更できます。このコマンドをトリガーすると、サイズ変更したい列を選択し、設定したい幅のパーセンテージを入力します。次のビデオでは、キーボードショートカットエディターで列のサイズを変更する方法を示しています。
チャット応答の合成に対するスクリーンリーダーのサポート
accessibility.voice.autoSynthesize
設定を更新し、スクリーンリーダーユーザーが aria アラートを受け取る代わりに、シンセサイザーによってアナウンスされるチャット応答を聞くことを選択できるようにしました。
デバッグの改善
エディターにフォーカスがある状態でデバッグ中に、デバッグ: ウォッチ式に追加 コマンドを呼び出すと、スクリーンリーダーユーザー向けに変数の値がアナウンスされるようになりました。
さらに、デバッグのアクセシビリティヘルプダイアログが改善され、網羅性が向上しました。
ワークベンチ
新しいプロファイルエディター
新しいプロファイルエディターが Visual Studio Code のすべてのユーザー向けに一般公開されました。新しいプロファイルエディターを使用すると、プロファイルを一箇所で管理できます。このエクスペリエンスには、新しいプロファイルの作成、既存のプロファイルの編集と削除、他のユーザーと共有するためのプロファイルのエクスポートとインポートが含まれます。詳細については、プロファイルのドキュメントを参照してください。
ウィンドウコントロールオーバーレイの Linux サポート
新しい設定 window.experimentalControlOverlay
を使用すると、window.titleBarStyle
設定でカスタムタイトルバーが有効になっている場合でも、ネイティブウィンドウコントロールを表示できます。
初期設定では、Linux でカスタムタイトルをデフォルトで有効にしていませんが、将来的には有効にする予定です。カスタムタイトルをオンにすると、ネイティブウィンドウコントロールオーバーレイが自動的に表示されます。この新機能を使用する際に気づいたフィードバックをお待ちしております!
コメントの並べ替え
コメントをファイル内の位置または日付で並べ替えられるようになりました。
設定エディターから設定 URL をコピー
設定エディターから特定の設定への直接 URL をコピーできます。設定 URL に移動すると、VS Code が開き、設定エディターで対応する設定にフォーカスが当たります。
エクスプローラーでの逆ソート
追加のソートオプションとして、explorer.sortOrderReverse
を追加しました。これにより、さまざまなエクスプローラーのソート構成を逆順にすることができ、ソートの柔軟性がさらに向上します。
エディター
電球アイコンの改善
以前のマイルストーンでは、コードアクションの電球アイコンが表示される場所を改善しました。今回、editor.lightbulb.enabled
をデフォルトで onCode
に設定することにしました。これは、電球アイコンがソースコードのある行にカーソルがある場合にのみ表示され、表示頻度が低くなることを意味します。
アクションリストのカラーテーマ
コードアクションメニューなどのアクションリストコントロールの色は、editorActionList.background
、editorActionList.foreground
、editorActionList.focusForeground
、および editorActionList.focusBackground
キーを使用してテーマで構成できます。デフォルトでは、アクションリストコントロールのテーマは、クイックピックとコマンドパレットのテーマに一致します。カラーテーマのカスタマイズの詳細をご覧ください。
GitHub Copilot
今回のマイルストーンでは、エディター、チャットビュー、インラインチャット全体で GitHub Copilot のエクスペリエンスを改善し続けました。また、皆様に試していただき、フィードバックをお寄せいただきたい実験的な機能をいくつか追加しました。
テスト生成の改善
GitHub Copilot を使用すると、エディターのコンテキストメニューの Copilot を使用してテストを生成 アクションを使用するか、インラインチャットで /tests
スラッシュコマンドを使用することで、コードのテストを生成できます。
既存のテストファイルを探し、新しいテストをそのファイルに生成して末尾に追加することで、テスト生成フローを改善しました。まだテストファイルがない場合は、Copilot が生成されたテスト用の新しいテストファイルを作成します。
テストとドキュメントを生成するためのコードアクションの名前変更
メソッド名などの識別子にカーソルを置くと、GitHub Copilot はテストまたはドキュメントを生成するためのコードアクションを提供します。目的をより良く反映するために、これらのコードアクションの名前を Copilot を使用してテストを生成 および Copilot を使用してドキュメントを生成 に変更しました。以前は、これらは Copilot を使用してテスト および Copilot を使用してドキュメント と呼ばれていました。
チャット履歴の改善
チャットビューの上部にある チャットを表示 ボタンから、以前のチャットセッションを開くことができます。これらのセッションには、よりユーザーフレンドリーな AI 生成の名前が付けられるようになりました。各行の鉛筆アイコンを選択して、セッションを手動で名前変更することもできます。
これらのチャット履歴エントリは、最後のリクエストの日付でソートされ、日付のバケットでラベル付けおよびグループ化されるようになりました。
注: AI 生成の名前が付けられるのは新しいチャットセッションのみで、既存のチャットセッションは名前変更されません。
空のウィンドウのチャットセッションを保存
以前は、VS Code は空のウィンドウ (フォルダーまたはワークスペースが開いていないウィンドウ) のチャットセッションを保存していませんでした。現在、これらのセッションは期待どおりに保存され、空のウィンドウからの以前のチャットは チャットを表示 ボタンからロードできます。
注: 複数の空のウィンドウで同じチャットセッションを同時に開いて使用することは避けてください。
クイックチャットでコンテキストを添付
クイックチャットを使用する場合、コンテキストを添付 アクションを使用して、ファイルやシンボルなどのコンテキストを Copilot リクエストに添付できるようになりました。
低評価フィードバックの詳細
Copilot チャットから期待どおりの応答が得られませんでしたか?チャット応答のツールバーにある 低評価 ボタンを選択して、ご協力ください。問題点を説明するための詳細なオプションがいくつか含まれるドロップダウンが表示されるようになりました。このメニューから問題報告ツールを開くこともできます。
コード生成指示 (実験的機能)
設定: 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.
スクリーンショットでは、指示が使用されたことが参照セクションからわかります。
チャットビューでの自動チャット参加者検出 (実験的機能)
設定: chat.experimental.detectParticipant.enabled
GitHub Copilot には、@workspace
など、チャットビューにコマンドも提供する組み込みのチャット参加者がいくつかあります。以前は、チャットプロンプトでチャット参加者とコマンドを明示的に指定する必要がありました。
自然言語でチャット参加者を使いやすくするために、今後数週間で、Copilot チャットが質問を適切な参加者またはチャットコマンドに自動的にルーティングできるようにする実験を開始します。
自動的に選択された参加者が質問に適していない場合は、チャット応答の上部にある 再実行 (参加者なし) リンクを選択して、質問を 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 でデバッグ構成を生成 オプションからもこのコマンドにアクセスできます。
テストカバレッジに基づいてテストを生成 (実験的機能)
設定: 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 とほぼ同じように機能します。
TypeScript ファイルでは、package.json
にリストされているパッケージの IntelliSense を提供します。JavaScript ファイルはもう少し柔軟性があり、自動型取得 を使用します。これにより、package.json
にリストされていなくても、現在のファイルにインポートされたすべてのパッケージの IntelliSense が提供されます。
パッケージ IntelliSense のおかげで、JavaScript および TypeScript プロジェクトのフルプロジェクト IntelliSense も有効になりました。これにより、コードのナビゲーションが大幅に改善され、プロジェクト内の任意のシンボルへの正しい 定義へ移動 と すべての参照を検索 が可能になります。また、型エラーレポートも有効になります。コードの記述中に自動インポートもサポートされるようになりました。
パッケージ型定義とフルプロジェクト IntelliSense は、Chrome、Microsoft Edge、および Firefox でサポートされています。Safari は、ReadableByteStreamController
を実装していないため、まだサポートされていません。
ソース管理
ソース管理グラフビュー
ユーザーからのフィードバックに基づいて、前回のマイルストーンで有効にした履歴グラフを、ソース管理ビューから ソース管理グラフ という新しいビューに移動しました。これにより、メインビューからの情報過多が軽減され、必要に応じて新しいビューを非表示/折りたたみ/移動できます。これは、フル機能の履歴グラフの基礎も築きます。
ソース管理グラフビューには現在、現在のブランチのリモート/ベースが表示されています。次のマイルストーンでは、グラフを任意のリポジトリ参照にフィルター処理する機能を追加し、複数のリポジトリを持つワークスペースのエクスペリエンスを向上させることに取り組んでいます。
テーマ: 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
テーマキーを使用してテーマで構成できます。
ノートブック
差分ビューでの変更のないセルの表示/非表示
ノートブック差分ビューは、変更のないセルを非表示にするようになり、変更されたセルに集中できるようになりました。同時に、変更のないすべてのセルの入力は常に折りたたまれています。
差分ビューでの空白の管理
ノートブック差分ビューは、次の設定を尊重するようになりました。
diffEditor.ignoreTrimWhitespace
- 差分を表示するときに、先頭と末尾 (トリム) の空白を無視します。
ノートブック実行カウントのスティッキー スクロール
コードセルの実行カウントは、コードセルを下にスクロールすると画面の下部に固定されるようになりました。これにより、長いコードセルで作業しているときに、実行状態を確認しやすくなり、更新しやすくなります。
タスク
プロセス終了時にタスクターミナルを開いたままにする
タスクのターミナルプロセスがゼロ以外のコードで終了した場合、デバッグを容易にするためにターミナルを開いたままにするようになりました。
デバッグ
変数定義へのジャンプ
デバッグ拡張機能は、変数と式をコード内の場所に関連付けることができるようになりました。このリンク付きのデータは、変数ビュー、ウォッチビュー、およびデバッグコンソールで Ctrl キー (macOS では Cmd キー) で選択可能です。
組み込みの JavaScript デバッガーは、コード内で定義された関数の場所をリンクします。他のデバッグ拡張機能は、この機能を有効にするために対応するプロトコルの変更を採用する必要があります。
検索コントロール
デバッグコンソール (⌥⌘F (Windows、Linux Ctrl+Alt+F)) で検索コントロールを開いて、入力内の結果を検索できるようになりました。出力内の結果の検索のサポートは、今後のマイルストーンで調査されます。
フィルターコントロールの右側のデバッグコンソールのツールバーに表示されるアクション デバッグコンソール: 検索にフォーカス
を介してコントロールにアクセスすることもできます。
起動構成入力キャッシュ
起動構成とタスクで使用される 入力変数 は、それらに依存するデバッグセッションの再実行プロセスを容易にするために、最後に入力された値を保持するようになりました。これは、入力に明示的な default
が定義されていない場合にのみ実行されます。
JavaScript デバッガー
実験的なネットワークビュー
JavaScript デバッガーに、debug.javascript.enableNetworkView
設定がオンになっている場合に利用可能な基本的な実験的ネットワークビューが含まれるようになりました。ビューには、ブラウザーセッションによって行われたリクエストとレスポンスに関する情報が表示されます。
テーマ: 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 を使用して後でパッケージを更新できます。
リモート開発
リモート開発拡張機能 を使用すると、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 リポジトリを閲覧する際に尊重されるようになりました。
拡張機能への貢献
Python
Django ユニットテストのサポート
最も 要望の多かった機能 の 1 つである、テストエクスプローラーを通じて Django ユニットテストを検出して実行できるようになったことを発表できることを嬉しく思います。この機能を有効にする方法の設定手順については、ドキュメント を確認してください。
テーマ: Catppuccin Macchiato (プレビュー: vscode.dev)
この新しく追加された機能を試す際には、vscode-python リポジトリ でフィードバックを提供し、問題を報告するか、Python: 問題を報告 コマンドを使用してください。
ネイティブ REPL の改善
新しいネイティブ REPL エクスペリエンスにさらに改善とバグ修正を加えました。ネイティブ REPL を スマート送信 のデフォルトターゲットとして実験的にロールアウトしていますが、これを試してみたい場合は、ユーザーの settings.json
で python.REPL.sendToNativeREPL
を設定し、VS Code ウィンドウをリロードできます。
Pylance を使用したインレイヒントからの定義へ移動
インレイヒントが有効 になっている場合、Pylance を使用すると、型の上にカーソルを置き、Ctrl キー (Cmd キー (macOS)) を押しながらクリックすることで、型の定義にさらに簡単に移動できるようになりました。
テストのデバッグ時の再起動のサポート
デバッグツールバーコントロールを使用してテストをデバッグするときに、デバッガーを再起動できるようになりました。
GitHub Pull Requests and Issues
GitHub Pull Requests 拡張機能の進捗がさらに進んでいます。これにより、プルリクエストと Issue の作業、作成、管理が可能になります。ハイライトについては、拡張機能の 0.96.0 リリースの変更ログ を確認してください。
拡張機能の作成
VS Code の EcmaScript モジュール (ESM) ローディングの影響
VS Code コアでのコードのロード方法を、AMD/CommonJS から ESM に変更するプロセスを進めています。拡張機能は引き続き CommonJS としてロードされますが、この変更には require
メソッドの変更が伴います。具体的には、require.main
は 1.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
と 拡張機能サンプル を参照してください。
Terminal.shellIntegration
window.onDidChangeTerminalShellIntegration
window.onDidStartTerminalShellExecution
window.onDidEndTerminalShellExecution
認証アカウント API
認証APIは、複数のアカウントを処理する際、より多くの制御が可能になりました。これまで欠けていた機能として、すべてのアカウントを取得し、特定のアカウントのAuthenticationSession
を取得する機能がありました。getAccounts
APIの最終決定により、それが可能になりました。
認証セッションを利用したい拡張機能の作成者は、以下のコードを実行することで、ユーザーがログインしているアカウントのAuthenticationSessionAccountInformation
を取得できます。
const accounts = vscode.authentication.getAccounts('microsoft');
そこから、これらのアカウントを使用して、特定のアカウント専用のセッションを生成できます。
const session = vscode.authentication.getSession('microsoft', scopes, {
account: accounts[0]
});
注記: これが機能するためには、認証プロバイダーは
getSessions
とcreateSession
の両方に渡されるパラメータを処理する必要があります。組み込みの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
が設定されている場合に操作がよりスムーズになります。- コマンドライン上の異なる位置で要求された場合でも、候補がより一貫性を持つようになりました。
- ディレクトリを戻るナビゲーション中に、
<path>/../
の補完が提供されるようになりました。
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つの部分で構成されています。
-
拡張機能がツールを登録する機能。ツールとは、言語モデルで使用されることを意図した機能の一部です。たとえば、ファイルのGit履歴を読み取ることなどです。
-
言語モデルがツールをサポートするメカニズム。たとえば、拡張機能がリクエストを行う際にツールを渡し、言語モデルがツールの呼び出しをリクエストし、拡張機能がツールの呼び出し結果を返信するなどです。
今月の変更点の1つは、ユーザーが特定のツールをチャットリクエストに手動でアタッチできる機能が追加されたことです。この例としては、ユーザーがリクエストで使用したい動的なコンテキストを計算するツールなどが挙げられます。
提案は、vscode.proposed.lmTools.d.ts で確認できます。ツールの登録と呼び出しを実演する tool-user
サンプル拡張機能 をご確認ください。
更新情報やフィードバックについては、issue #213274 をご覧ください。
注記: APIはまだ活発に開発中であり、変更される可能性があります。
テスト機能の強化
コードをテストに関連付け
拡張機能がコードをテストに、またはその逆に、関連付けることを可能にするAPIに取り組んでいます。これにより、ユーザーは両者の間をジャンプでき、実装コードでも カーソル位置でテストを実行 などのアクションが機能するようになります。APIの開発が進むにつれて、さらに多くのエクスペリエンスを構築できると期待しています。
詳細と更新情報については、vscode#126932 をご確認ください。
属性化可能なテストカバレッジ
テストカバレッジをテストごとに属性化するAPIに取り組んでいます。これにより、ユーザーはどのテストがどのコードを実行したかを確認でき、エディターに表示されるカバレッジと、テストカバレッジ ビューに表示されるカバレッジの両方をフィルタリングできます。
詳細と更新情報については、vscode#212196 をご確認ください。
チャット参加者検出API
チャットビューに参加者またはチャットコマンドを提供する拡張機能をオーサリングしている場合、package.json
の chatParticipants
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トラッキングへの貢献
- @gjsjohnmurray (John Murray)
- @IllusionMH (Andrii Dieiev)
- @RedCMD (RedCMD)
- @albertosantini (Alberto Santini)
プルリクエスト
vscode
への貢献
- @akinomyoga (Koichi Murase): PROMPT_COMMAND の
$?
を Bash 統合が上書きする問題を修正 PR #226929 - @andrewbranch (Andrew Branch): [typescript-language-features] autoImportSpecifierExcludeRegexes 設定を追加 PR #226202
- @anton-matosov (Anton Matosov): #171066 のフォローアップで zsh と fish シェルの実装を修正 PR #223421
- @arvid220u (Arvid Lunnemark): クリアされた auxwindow タイムアウトを二度と実行しないように修正 PR #221296
- @BABA983 (BABA)
- 重複コードを削除 PR #224091
- 複数のタブをドラッグした後、元のターミナルタブの順序を維持 PR #224591
- registerWindowTitleVariable コマンドを追加 PR #225408
- @bsShoham (Shoham Ben Shitrit): 単語の先頭でチャット変数の補完をトリガー PR #224174
- @Cecil0o0 (hj): refactor: 同じ名前空間の宣言をマージ PR #219638
- @CGNonofr (Loïc Mangeonjean): node 環境をあらゆる場所で適切に検出 PR #221357
- @cobey (Cody Beyer): python と js 用の ai-inference タグを追加 PR #225098
- @dangerman (Anees Ahee)
- コマンドパレットで "TS サーバーの再起動" コマンドが見つからない問題を修正 PR #223433
- 通知フォーカスのアウトラインを丸める PR #225824
- @Flanker32 (Hanxiao Liu): java ai ライブラリのワークスペースタグを更新 PR #223677
- @gabritto (Gabriela Araujo Britto)
- [typescript-language-features] 利用可能な場合は tsserver からコミット文字を使用 PR #223541
- [typescript-language-features] 診断テレメトリプロパティ名を修正 PR #225079
- @gjsjohnmurray (John Murray)
- mtime もリセットする元に戻す操作後に読み取り専用のファイル名装飾を表示 (fix #221014) PR #221023
- 補完アイテムのステータスバーテキストの不適切な大文字表記を修正 (#_225429) PR #225431
workbench.editor.enablePreview
設定の説明を改善 (fix #225453) PR #225704
- @hron (Aleksei Gusev): fix:
merge.toggleActiveConflict
をショートカットとして設定 PR #225320 - @iisaduan (Isabel Duan): typescript の organizeImports の設定を settings インターフェースに追加 PR #209293
- @jeanp413 (Jean Pierre)
- 検索ビューを別の場所に移動した場合、エディターの変更で検索結果が自動的に更新されない問題を修正 PR #215764
- ターミナルの名前変更の codicon を変更 PR #225444
- "cut" という単語を含むフォルダー/アイテムをエクスプローラーがグレー表示にする問題を修正 PR #225455
- @Jesscha (JessCha): extHostExtensionService.ts のタイプミスを修正 PR #224111
- @m-byte (Matthias B.): Fix: 必要なユーザーにのみ apt ソースを追加 (#_22145) PR #221285
- @mkasenberg: 検索エディターの focusResult を修正 PR #205914
- @mogelbrod (Victor Hallberg): コメントパネルに "更新日時順にソート" オプションを追加 PR #221665
- @NriotHrreion (Norcleeh): fix: アクティブなターミナルがkillされるとコマンドパレットが閉じる問題を修正 PR #225500
- @r3m0t (Tomer Chachamu): ユーザー設定が開いているときに "ワークスペース設定を開く" が機能しない問題を修正 (fixes #148709) PR #225311
- @rbuckton (Ron Buckton): strictBuiltinIteratorReturn をサポートするように更新 PR #222009
- @rehmsen (Ole): ノートブックエディターでmarkdownコメントの通常のテキストを折り返すように変更 PR #224484
- @RichardLuo0 (RichardLuo): fix: ダイアログボタンからツールチップを削除 PR #225772
- @stalematker (Kevin): extensionEnablementService.ts のタイプミスを修正 PR #224145
- @swordensen (Michael Sorensen): Fixes #218626 PR #219148
- @thegecko (Rob Moran): viewContainer contribution point を追加 PR #212499
- @tisilent (xiejialong): scm.compactFolders を追加 PR #221459
- @troy351: fix: multiDiffEditor の背景色名が間違っている問題を修正 PR #224151
- @walter-erquinigo (Walter Erquinigo): Dynamic Debug Configuration プロバイダーからのエラーを処理 PR #202622
- @zkat (Kat Marchán): AutoInstallerFs が永遠にスラッシングするのを停止し、typings インストーラーを修正 PR #225648
vscode-css-languageservice
への貢献
- @wkillerud (William Killerud): fix: sass の pkg での条件付きエクスポートのサポート PR #400
vscode-eslint
への貢献
- @denis-sokolov (Denis Sokolov): Readme の軽微な修正 PR #1903
vscode-flake8
への貢献
- @taesungh (Taesung Hwang):
ignorePatterns
のデフォルトにグローバル設定を使用 PR #327
vscode-generator-code
への貢献
- @spjpgrd (seán patrick john paul george ringo doran): vsc-extension-quickstart.md を更新 PR #486
vscode-hexeditor
への貢献
- @tomilho (Tomás Silva): HexEditor の差分 PR #522
vscode-isort
への貢献
- @iloveitaly (Michael Bianco): fix: ツールパスを追加して、バンドルバージョンなしで isort が動作するように修正 PR #417
- @jicruz96 (J.I. Cruz): ファイルに
skip_file
コメントがある場合、トレースバックをログに記録しないように修正 PR #416
vscode-js-profile-visualizer
への貢献
vscode-json-languageservice
への貢献
- @jeremyfiel (Jeremy Fiel): DocumentSymbols.test.ts の無効な JSON インスタンスを更新 PR #241
- @remcohaszing (Remco Haszing): Thenable を非推奨にし、PromiseLike にエイリアス PR #239
- @ttlopes (Tomás Lopes): microsoft/vscode#209655 を修正: JSON の大文字小文字を区別しないソートエラーを修正 PR #238
vscode-languageserver-node
への貢献
- @DavyLandman (Davy Landman): LSPサーバーからのエラーメッセージを表示 PR #1490
- @sh-cho (Seonghyeon Cho): npm、azure pipeline リンクを修正 PR #1544
vscode-loader
への貢献
- @SimonSiefke (Simon Siefke): feature:
this
が定義されていない場合にamdLoaderGlobal
をglobalThis
に設定 PR #58
vscode-mypy
への貢献
- @hamirmahal (Hamir Mahal)
- @meghprkh (Megh Parikh): mypy を 1.11.0 に更新 PR #311
vscode-pull-request-github
への貢献
vscode-python-debugger
への貢献
vscode-vsce
への貢献
- @BlackHole1 (Kevin Cui): fix: 確率的なトリガーによる v8 クラッシュを修正 PR #1032
- @mark-wiemer (Mark Wiemer): punycode 非推奨警告を修正 PR #1037
language-server-protocol
への貢献
- @asukaminato0721 (Asuka Minato): egglog を追加 PR #1989
- @LPeter1997: Draco.Lsp を .NET の LSP SDK として追加 PR #2001
- @marcoroth (Marco Roth)
- @techee (Jiří Techet): Geany を LSP をサポートするエディターのリストに追加 PR #2008
- @XuechunHHH (Xuechun Hua): PartiQL を servers.md に追加 PR #1985
python-environment-tools
への貢献