2024年8月 (バージョン 1.93)
アップデート 1.93.1: このアップデートでは、これらの問題に対処しています。
ダウンロード: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Visual Studio Codeの2024年8月リリースへようこそ。このバージョンには、皆様に気に入っていただける多くのアップデートが含まれており、主なハイライトは以下の通りです:
- プロファイルエディター - 1つの場所からプロファイルの切り替えや管理を行います。
- Django単体テストのサポート - テストエクスプローラーからDjangoの単体テストの検出と実行を行います。
- vscode.devでのIntelliSense - IntelliSenseを使用して、vscode.devでのJSおよびTSのコーディングを強化します。
- ノートブックの差分ビューアー - 変更されていないセルを折りたたむことで、ノートブックの変更を効率的にレビューします。
- キーボードによるテーブル列のサイズ変更 - キーボードを使用してVS Codeのテーブル列のサイズ変更をよりアクセシブルにします。
- ソース管理グラフ - ソース管理グラフの非表示、折りたたみ、移動を簡単に行うことができます。
- GitHub Copilot - クイックチャットでのコンテキストの追加、テスト生成の改善、チャット履歴の改善。
- 実験的機能: カスタムCopilot指示 - Copilot向けに特定のコード生成指示を定義します。
これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com の Updates を参照してください。Insiders: 新機能をいち早く試したいですか?ナイトリービルドのInsiders をダウンロードして、最新のアップデートをいち早く試すことができます。
アクセシビリティ
キーボードによるテーブル列のサイズ変更
新しいコマンド list.resizeColumn により、キーボードを使用して列のサイズを変更できるようになりました。このコマンドを実行すると、サイズを変更したい列を選択し、設定したい幅のパーセンテージを指定します。次の動画は、キーボードショートカットエディターで列のサイズを変更するためにこれを適用する方法を示しています。
チャット応答の合成に関するスクリーンリーダーのサポート
スクリーンリーダーユーザーがariaアラートの代わりにシンセサイザーによるチャット応答のアナウンスを聞くことを選択できるように、accessibility.voice.autoSynthesize設定を更新しました。
デバッグの改善
エディターにフォーカスがある状態でデバッグを行っている際、Debug: Add to Watchコマンドを実行すると、スクリーンリーダーユーザーに対して変数の値がアナウンスされるようになりました。
さらに、デバッグのアクセシビリティヘルプダイアログがより詳細になるように改善されました。
ワークベンチ
新しいプロファイルエディター
新しいプロファイルエディターがVisual Studio Codeのすべてのユーザーに向けて一般提供開始されました。新しいプロファイルエディターを使用すると、1つの場所からプロファイルを管理できます。これには、新しいプロファイルの作成、既存のプロファイルの編集と削除、他の人と共有するためのプロファイルのインポートとエクスポートが含まれます。詳細については、プロファイルのドキュメントを参照してください。

ウィンドウコントロールオーバーレイの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
今マイルストーンでも、エディター、チャットビュー、インラインチャット全体で、VS CodeにおけるGitHub Copilotの体験の改善を続けました。また、お試しいただきフィードバックをいただけるような、いくつかの実験的機能も追加しました。
テスト生成の改善
GitHub Copilotを使用すると、エディターのコンテンツメニューにあるGenerate Tests using Copilotアクションを使用するか、インラインチャットで /tests スラッシュコマンドを使用して、コードのテストを生成できます。
既存のテストファイルを検索してそのファイル内に新しいテストを生成し、末尾に追加するようにテスト生成フローを改善しました。まだテストファイルが存在しない場合、Copilotは生成されたテスト用の新しいテストファイルを作成します。
テストおよびドキュメント生成用のコードアクションの名前変更
メソッド名などの識別子にカーソルを置くと、GitHub Copilotはテストやドキュメントを生成するコードアクションを提供します。その目的に合わせるため、これらのコードアクション名を Generate Tests using Copilot および Generate Documentation using Copilot に変更しました。以前はこれらは Test using Copilot および Document using Copilot と呼ばれていました。

チャット履歴の改善
チャットビューの上部にあるShow Chatsボタンを使用して、チャット履歴から過去のチャットセッションを開くことができます。これらのセッションには、よりユーザーフレンドリーなAI生成の名前が付けられるようになりました。また、各行の鉛筆アイコンを選択して、手動でセッション名を変更することもできます。
これらのチャット履歴エントリは、最後のリクエストの日付順に並べ替えられ、日付バケットごとにラベル付けおよびグループ化されるようになりました。

注意: AI生成の名前が付けられるのは新しいチャットセッションのみであり、すでに所有しているチャットセッションの名前は変更されません。
空のウィンドウのチャットセッションを保存する
以前は、VS Codeは(フォルダーやワークスペースが開いていない)空のウィンドウのチャットセッションを保存していませんでした。現在は、これらのセッションが期待どおりに保存され、空のウィンドウからの以前のチャットをShow Chatsボタンから読み込むことができます。
注意: 複数の空のウィンドウで同時に同じチャットセッションを開いて使用することは避けてください。
クイックチャットでのコンテキストの添付
クイックチャットを使用する際に、Attach Contextアクションを使用してファイルやシンボルなどのコンテキストをCopilotのリクエストに添付できるようになりました。
低評価(Thumbs down)フィードバックの詳細
Copilot Chatから期待したものではない応答が返ってきましたか?チャット応答のツールバーにあるThumbs down(低評価)ボタンを選択してご協力ください。問題の説明に役立ついくつかの詳細なオプションを含むドロップダウンが表示されるようになりました。このメニューから問題レポーターを開くこともできます。
![]()
コード生成の指示 (実験的)
設定: 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 Chatが質問を適切な参加者またはチャットコマンドに自動的にルーティングできるようにする実験を行います。

自動選択された参加者が質問に適していない場合は、チャット応答の上部にある rerun without リンクを選択して、質問をCopilotに再送信できます。
最近のコーディングファイルをインラインチャットのコンテキストとして使用する (実験的)
設定: github.copilot.chat.experimental.temporalContext.enabled
多くの場合、Copilotにプロンプトを入力する際、直前に作業していたり見ていたりしたコードに関連する質問をしています。インラインチャットは、最近表示または編集したコードをコンテキストとして使用し、より関連性の高い提案を提供できるようになりました。
この機能はまだ実験的ですが、すべてのユーザーにテストしていただくのに適しています。
現在のエディター行をインラインチャットプロンプトとして使用する (実験的)
設定: github.copilot.config.experimental.inlineChatCompletionTrigger.enabled
最初にインラインチャットを開いてからチャットプロンプトを入力する代わりに、エディターでの入力を直接開始し、現在の行の内容をインラインチャットのプロンプトとして直接使用できるようになりました。さらにスムーズなチャット体験のために、Copilotはコードを書いているのではなくプロンプトを入力していることを検出し、自動的にインラインチャットを開始できます。
現在の行をインラインチャットのプロンプトとして使用するさまざまな方法は次のとおりです
- コマンドパレットから Inline Chat: Start in Editor with Current Line を入力する (⇧⌘P (Windows, Linux Ctrl+Shift+P))
- inlineChat.startWithCurrentLine コマンドのキーバインドを設定し、
inlineChatExpansionコンテキストキーと組み合わせる github.copilot.config.experimental.inlineChatCompletionTrigger.enabled設定を有効にすると、Copilotが現在の行にソースコードではなく主にテキストが含まれていることを検出し、インラインチャットを開始します。
次のビデオは、現在の行に主にテキストがあると検出された後、Copilotがインラインチャットの開始を提案する方法を示しています。
チャットからデバッグを開始する (実験的)
設定: github.copilot.advanced.startDebugging.experimental.enabled
@vscode チャット参加者で、新しい実験的なスラッシュコマンド /startDebugging が利用可能になりました。このコマンドを使用すると、起動構成を作成し、アプリのデバッグを開始できます。
また、launch.jsonを作成する際のクイックピックにある Generate Debug Configuration with GitHub Copilot オプションからこのコマンドにアクセスすることもできます。

テストカバレッジに基づくテストの生成 (実験的)
設定: github.copilot.chat.experimental.generateTests.codeLens
テストカバレッジ情報が利用可能な場合、GitHub Copilotは、まだテストでカバーされていない関数やメソッドに対して、CodeLens Generate tests using 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を実装していないため、まだサポートされていません。
ソース管理
ソース管理グラフビュー
ユーザーからのフィードバックに基づき、前マイルストーンで有効になった履歴グラフをソース管理ビューから、Source Control Graphという新しいビューに移動しました。これによりメインビューの情報過多が軽減され、必要に応じて新しいビューの非表示、折りたたみ、移動が可能になります。また、これはフル機能の履歴グラフの基盤となります。
ソース管理グラフビューには現在、現在のブランチのリモート/ベースが表示されます。次のマイルストーンでは、グラフを任意のレポジトリ参照でフィルタリングする機能の追加と、複数のレポジトリを持つワークスペースの体験の改善に取り組んでいます。

テーマ: 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))を開いて、入力内の結果を検索できるようになりました。出力内の結果を検索するサポートについては、今後のマイルストーンで検討予定です。
また、フィルターコントロールの右側にあるデバッグコンソールのツールバーに表示される Debug Console: Focus Find アクションからもコントロールにアクセスできます。
起動構成の入力キャッシュ
起動構成やタスクで使用される入力変数は、最後に入力された値を保持するようになり、それらに依存するデバッグセッションを再実行するプロセスが容易になりました。これは、入力に明示的な default が定義されていない場合にのみ行われます。
JavaScriptデバッガー
実験的なネットワークビュー
JavaScriptデバッガーに、debug.javascript.enableNetworkView設定がオンになっているときに利用できる、基本的な実験的なネットワークビューが含まれるようになりました。このビューには、ブラウザーセッションによって行われたリクエストとレスポンスに関する情報が表示されます。
テーマ: Codesong (vscode.devでプレビュー)
ネットワークビューは、nodeの起動構成に "runtimeArgs": ["--experimental-network-inspection"] を追加するなどして、プロセスが引数に --experimental-network-inspection を指定して起動された場合、Node.js 22.6.0以降でも機能します。
注意: Nodeのネットワーキング実装はまだ初期段階であり、リクエストおよびレスポンスに関するデータのほとんどはまだ利用できません。
テスト
メッセージでのスタックトレースのサポート
テスト拡張機能で、テストの失敗にスタックトレースを関連付けられるようになりました。関連付けられると、テスト結果ビューおよびエラーのピーク表示で、コールスタックの各フレーム周辺のコードが表示されます。ビュー内のコードを Ctrl を押しながら選択(macOSでは Cmd を押しながら選択)して元の場所に移動したり、ヘッダーのGo to Fileアクションを使用したりできます。
テーマ: Codesong (vscode.devでプレビュー)
インストーラー
Debianパッケージで、packages.microsoft.comリポジトリを追加するかどうかを確認するプロンプトが表示されるようになりました。これにより、後からaptを使用してパッケージを更新できるようになります。

リモート開発
リモート開発拡張機能を使用すると、Dev Container、SSH 経由のリモートマシン、またはリモートトンネル、あるいはWindows Subsystem for Linux (WSL) をフル機能の開発環境として使用できます。
ハイライト
- Dev Containerテンプレートのオプションパス
- SSHを使用したリモートOSの互換性の拡張
これらの機能の詳細については、リモート開発のリリースノートをご覧ください。
Web 版 VS Code
https://vscode.dev またはデスクトップ上でGitHub Repositories拡張機能を使用してGitHubリポジトリを閲覧する際、git.openDiffOnClick設定が尊重されるようになりました。

拡張機能への貢献
Python
Django単体テストのサポート
最も要望の多かった機能の1つであるサポートを発表できることを嬉しく思います。テストエクスプローラーからDjangoの単体テストの検出と実行ができるようになりました!この機能を有効にするための設定手順については、ドキュメントをご確認ください。
テーマ: Catppuccin Macchiato (vscode.devでプレビュー)
この新機能をお試しいただき、フィードバックの提供や、vscode-pythonリポジトリまたはPython: Report Issueコマンドを使用した問題の報告をお願いいたします。
ネイティブREPLの改善
新しいネイティブREPL体験に対して、さらなる改善とバグ修正を行いました。実験として、ネイティブREPLをスマートセンドのデフォルトターゲットとして展開していますが、お試しになりたい場合は、ユーザーの settings.json で python.REPL.sendToNativeREPL を設定し、VS Codeウィンドウを再読み込みしてください。
Pylanceを使用したインレイヒントからの定義へのジャンプ
Pylanceでインレイヒントが有効になっている場合、型にホバーして Ctrl(macOSでは Cmd)を押しながらクリックすることで、型の定義に一層便利に移動できるようになりました。

テストのデバッグ時の再起動サポート
デバッグツールバーコントロールを使用して、テストのデバッグ時にデバッガーを再起動できるようになりました。
GitHub Pull Requests and Issues
プルリクエストやIssueの作成、管理、作業を可能にするGitHub Pull Requests拡張機能の進捗がありました。ハイライトについては、拡張機能のバージョン0.96.0の変更履歴をご確認ください。
拡張機能の作成
VS CodeのECMAScriptモジュール(ESM)ローディングの影響
VS Codeコアにおけるコードのロード方法を、AMD/CommonJSからESMに変更する作業を進めています。拡張機能は引き続きCommonJSとしてロードされますが、この変更に伴い require メソッドに変更が加わります。具体的には、1.94リリース以降、require.main は 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.
}
詳細については、vscode.d.ts のAPIおよび拡張機能のサンプルを参照してください。
Terminal.shellIntegrationwindow.onDidChangeTerminalShellIntegrationwindow.onDidStartTerminalShellExecutionwindow.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プロバイダーはすでにこれを取り入れています。
これが、複数の認証セッションを処理し、これまでサポートできなかったさまざまなシナリオを処理する最も明確な方法であると考えています。
デバッグアダプタープロトコル
ソースの場所を関連付けられるようにするため、デバッグアダプタープロトコル の変数やその他のデータ型に locationReferences を追加しました。
VS CodeにおけるWebAssembly
wasm-wasi-core 拡張機能の1.0バージョンが、@vscode-wasm-wasi および @vscode/wasm-component-model npmモジュールとともにリリースされました。使用方法のサンプルは、vscode-extension-samplesリポジトリの wasm-* サブフォルダーにあります。また、VS Codeブログには、VS Code拡張機能内でWebAssemblyコードを使用する方法についてのいくつかの投稿もあります。
プレビュー機能
ターミナルIntelliSenseの改善
実験的な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のアップデートを待たずに、VS Codeのアップデートの配信に合わせてバグ修正を受け取ることができます。
これを有効にするには、次の設定を true に設定します
"terminal.integrated.experimental.windowsUseConptyDll": true
これを有効にすることで期待できる改善の種類は次のとおりです
- パフォーマンスの向上
- より信頼性の高いシェル統合
- より多くのエスケープシーケンスのサポート(例:間もなくWindowsでのsixelサポート)
現在知られている唯一の問題は、一部のユーザーでプロセスが残り続けてVS Codeのアップデートをブロックしてしまうケースがあることであり(microsoft/vscode#225719)、アップデートを有効にするにはプロセスを手動で終了させる必要があります。
TypeScript 5.6のサポート
近日リリース予定のTypeScript 5.6のサポートを引き続き改善しました。このリリースに含まれるものの詳細については、TypeScript 5.6 RCのブログ記事をご覧ください。
TypeScript 5.6のプレビュービルドの使用を開始するには、TypeScript Nightly拡張機能をインストールしてください。
新しい問題レポーターの実装
今マイルストーンでは、問題レポーターの新しい実装を実験しています。機能は同じですが、マルチモニターのサポート向上や、VS Code for the Webでの問題レポーターの利用可能化など、いくつかの改善が含まれています。
新バージョンの問題レポーターはデフォルトで有効になっており、VS Codeのデスクトップ版では issueReporter.experimental.auxWindow 設定で構成できます。
提案API
言語モデルのツール
LanguageModelTool APIの反復改良を続けています。このAPIには2つの主要な部分があります
-
拡張機能がツールを登録する機能。ツールとは、言語モデルによって使用されることを目的とした機能の単位です。例えば、ファイルのGit履歴の読み取りなどです。
-
拡張機能がリクエスト時にツールを渡す、言語モデルがツールの呼び出しを要求する、拡張機能がツールの呼び出しの結果を返すといった、言語モデルがツールをサポートするための仕組み。
今月追加された変更の1つは、ユーザーが特定のツールをチャットリクエストに手動で添付できる機能です。これの例としては、ユーザーがリクエストで使用したい動的なコンテキストを計算するツールがあります。
提案内容は vscode.proposed.lmTools.d.ts にあります。ツールの登録と呼び出しを示す tool-user サンプル拡張機能をご確認ください。
更新情報の確認やフィードバックの提供には、issue #213274 をウォッチしてください。
注意: APIはまだ活発に開発中であり、変更される可能性があります。
テストの機能強化
コードとテストの関連付け
拡張機能がコードをテストに関連付け、その逆も可能にするAPIに取り組んでいます。これにより、ユーザーは両者の間をジャンプできるようになり、Run Tests at Cursor などのアクションを実装コード内でも機能させることができます。APIの発展に伴い、さらに多くの体験を構築することを予定しています。
詳細と更新情報については、vscode#126932 をご確認ください。
属性付け可能なテストカバレッジ
テストごとにテストカバレッジを帰属させるためのAPIに取り組んでいます。これにより、ユーザーはどのテストがどのコードを実行したかを確認でき、エディターに表示されるカバレッジとTest Coverageビューの両方をフィルタリングできるようになります。
詳細と更新情報については、vscode#212196 をご確認ください。
チャット参加者検出API
チャットビューに参加者やチャットコマンドを提供する拡張機能を開発している場合は、package.json の chatParticipants 貢献にメタデータを追加することで、参加者やコマンドが自動的に検出されるようにすることができます。このAPIの採用方法の例を含むように vscode-extension-samples リポジトリを更新しました。テストする際は、必ず chat.experimental.detectParticipant.enabled を設定してください。これは変更される可能性のある提案段階のAPIであることに注意してください。
ウェブサイト
VS Code API ページ内のいくつかのリンクを修正しました。ジェネリック型や関数へのリンクが再び機能するようになり、プリミティブ型や値がリンクとしてフォーマットされなくなりました!
エンジニアリング
VS CodeでのESM使用に向けた進捗
今マイルストーンの期間中、VS CodeコアへのESM採用に向けた作業の大半を完了しました。私たちの目標は、ECMAScriptモジュール(ESM)のローディングを使用し、AMDを完全に廃止することです。9月にESMが有効なInsiderビルドのリリースを開始し、10月の次期リリースでStable版にESMを出荷する予定です。
ESMリリースの計画は https://github.com/microsoft/vscode/issues/226260 に記載されています。
注目すべき修正
ありがとうございます
最後になりましたが、VS Code への貢献者の方々に心から感謝いたします。
イシュートラッキング
イシュートラッキングへの貢献
- @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): zshおよびfishシェルの実装を修正する#171066のフォローアップ 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): リファクター: 同一の名前空間宣言を統合 PR #219638
- @CGNonofr (Loïc Mangeonjean): すべての場所でnode envを適切に検出する PR #221357
- @cobey (Cody Beyer): pythonおよびjs向けのai-inferenceタグを追加 PR #225098
- @dangerman (Anees Ahee)
- コマンドパレットで「Restart TS Server」コマンドが表示されない不具合を修正 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もリセットする元に戻す操作(revert)の後に読み取り専用のファイル名装飾を表示する(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
- ターミナルの名前変更用コードアイコンを変更 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: アクティブなターミナルが強制終了されたときにコマンドパレットが閉じてしまう問題を修正 PR #225500
- @r3m0t (Tomer Chachamu): ユーザー設定が開いているときに「ワークスペース設定を開く」が機能しない不具合を修正(fixes #148709) PR #225311
- @rbuckton (Ron Buckton): strictBuiltinIteratorReturnをサポートするように更新 PR #222009
- @rehmsen (Ole): ノートブックエディターでマークダウンコメント内の通常のテキストを折り返すようにする PR #224484
- @RichardLuo0 (RichardLuo): fix: ダイアログボタンからツールチップを削除 PR #225772
- @stalematker (Kevin): extensionEnablementService.tsのタイポを修正 PR #224145
- @swordensen (Michael Sorensen): #218626を修正 PR #219148
- @thegecko (Rob Moran): viewContainer貢献ポイントを追加 PR #212499
- @tisilent (xiejialong): scm.compactFoldersを追加 PR #221459
- @troy351: fix: multiDiffEditorの背景色名が誤っている問題を修正 PR #224151
- @walter-erquinigo (Walter Erquinigo): 動的デバッグ構成プロバイダーからのエラーを処理する PR #202622
- @zkat (Kat Marchán): AutoInstallerFsが無限にスワッシングし続けるのを停止し、型インストーラーを修正 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パイプラインのリンクを修正 PR #1544
vscode-loader への貢献
- @SimonSiefke (Simon Siefke): 機能:
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: .NETのLSP SDKとしてDraco.Lspを追加 PR #2001
- @marcoroth (Marco Roth)
- @techee (Jiří Techet): LSPをサポートするエディターのリストにGeanyを追加 PR #2008
- @XuechunHHH (Xuechun Hua): servers.mdにPartiQLを追加 PR #1985
python-environment-tools への貢献