2024年4月 (バージョン 1.89)
更新 1.89.1: この更新では、これらの問題に対処しています。
ダウンロード: Windows: x64 Arm64 | Mac: ユニバーサル Intel シリコン | Linux: deb rpm tarball Arm snap
Visual Studio Code の2024年4月リリースへようこそ。このバージョンには多くのアップデートがあり、気に入っていただけることを願っています。主なハイライトの一部を以下に示します。
- Markdownの画像と動画をプレビュー - リンクにカーソルを合わせると、Markdownの画像と動画をプレビューできます。
- ブランチ切り替えの強化 - ブランチ間を切り替える際に開いているエディターをシームレスに復元します。
- ミドルクリックペーストのサポート - マウスのミドルクリックを使用してターミナルにテキストを素早くペーストします。
- Remote - SSH経由のWSL - Remote - SSH経由でリモートマシンに接続しているときにWSLを使用します。
- アクセシブルビュー - アクセシブルビューからコメント、チャットコードブロック、ターミナルコマンドをナビゲートします。
- UIアクションのキーボードショートカット - UIアクションのキーバインディングを右クリックで直接カスタマイズします。
- クイック検索 - クイック検索でワークスペース全体のテキストを検索します。
- AIによる名前変更候補 - Copilotを使ってエディターでインテリジェントな名前変更候補を取得します。
- Copilotコンテンツ除外 - Copilotコンテキストで使用されるファイルを除外します。
- ローカルワークスペース拡張機能 - ワークスペースに直接拡張機能を含めてインストールします。
これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com の アップデート をご覧ください。インサイダー: 新機能をいち早く試したいですか?夜間の インサイダー ビルドをダウンロードして、最新の更新プログラムが利用可能になり次第すぐに試すことができます。
アクセシビリティ
進捗状況アクセシビリティ信号
設定accessibility.signals.progressは、スクリーンリーダーユーザーがユーザーインターフェースにプログレスバーが表示される場所ならどこでも進捗状況を聞くことができるようにします。信号は3秒経過後に再生され、プログレスバーが完了するまで5秒ごとにループします。信号が再生される例としては、ワークスペースの検索時、チャット応答の保留中、ノートブックセルの実行中などがあります。
エディターのアクセシビリティ信号の改善
行にエラーや警告がある場合、またはカーソルがエラーや警告上にある場合に、それぞれ個別のアクセシビリティ信号が提供されるようになりました。
エディターで線と列の間を移動する際のアクセシビリティ信号の遅延を個別にカスタマイズできるようになりました。また、ariaアラート信号は、オーディオキュー信号よりも再生までの遅延が長くなっています。
提案コントロールが表示されている間、インライン提案はアクセシビリティ信号をトリガーしなくなりました。
Accessible View
アクセシブルビュー(⌥F2 (Windows Alt+F2, Linux Shift+Alt+F2))は、スクリーンリーダーユーザーがワークベンチの機能を検査できるようにします。
ターミナルの改善
ターミナルのアクセシブルビューで次のコマンド(⌥↓ (Windows, Linux Alt+Down))または前のコマンド(⌥↑ (Windows, Linux Alt+Up))に移動すると、現在のコマンドが失敗したかどうかを聞くことができます。この機能は、設定accessibility.signals.terminalCommandFailedで切り替えることができます。
シェル統合が有効なターミナルからこのビューが開かれると、VS Codeはターミナルのコマンドラインでアラートを表示し、体験を向上させます。
チャットコードブロックのナビゲーション
チャット応答のアクセシブルビューにいるとき、次のコードブロック(⌥⌘PageDown (Windows, Linux Ctrl+Alt+PageDown))と前のコードブロック(⌥⌘PageUp (Windows, Linux Ctrl+Alt+PageUp))の間を移動できるようになりました。
コメントビュー
コメントを提供する拡張機能がインストールされており、コメントビューにフォーカスがある場合、アクセシブルビュー内からビュー内のコメントを検査し、移動できます。コメントで利用可能な拡張機能提供のアクションもアクセシブルビューから実行できます。
Workbench
言語モデル使用状況レポート
言語モデルを使用する拡張機能の場合、Extension EditorおよびRuntime Extensions Editorで言語モデルの使用状況を追跡できるようになりました。たとえば、以下のスクリーンショットのCopilot Chat拡張機能で示されているように、言語モデルリクエストの数を表示できます。

ローカルワークスペース拡張機能
VS Code 1.88リリースで初めて導入されたローカルワークスペース拡張機能が一般公開されました。ワークスペースに拡張機能を直接含め、そのワークスペース専用にインストールできるようになりました。この機能は、特定のワークスペースのニーズに対応し、よりパーソナライズされた開発体験を提供するために設計されています。
この機能を使用するには、ワークスペース内の.vscode/extensionsフォルダに拡張機能がある必要があります。VS Codeは、ExtensionsビューのWorkspace Recommendationsセクションにこの拡張機能を表示し、そこからユーザーがインストールできます。VS Codeはこの拡張機能をそのワークスペース専用にインストールします。ローカルワークスペース拡張機能は、ユーザーがワークスペースを信頼してからこの拡張機能をインストールして実行する必要があります。
たとえば、VS Codeリポジトリ内のvscode-selfhost-test-provider拡張機能を考えてみましょう。この拡張機能はテスト機能を提供し、コントリビューターがワークスペース内で直接テストを表示および実行できるようにします。以下のスクリーンショットは、ExtensionsビューのWorkspace Recommendationsセクションにあるvscode-selfhost-test-provider拡張機能と、それをインストールする機能を示しています。

.vscode/extensionsフォルダには、VSIXファイルではなく、展開された拡張機能を含める必要があることに注意してください。拡張機能のソースのみを含め、ワークスペースのセットアップの一部としてビルドすることもできます。
Quick Openでのカスタムエディターラベル
先月、エディタータブのラベルをパーソナライズできるカスタムラベルを導入しました。この機能は、index.tsxファイルなどの同じ名前のファイルのタブをより簡単に区別できるように設計されています。
これを基に、カスタムラベルの使用範囲をQuick Open(⌘P (Windows, Linux Ctrl+P))にも拡大しました。作成したカスタムラベルを使用してファイルを検索できるようになり、ファイルのナビゲーションがより直感的になりました。

キーバインディングのカスタマイズ
ユーザーインターフェースアクションのキーバインディングをカスタマイズするのがより簡単になりました。ワークベンチの任意のアクション項目を右クリックし、Customize Keybindingを選択します。アクションにwhen句がある場合、それが自動的に含まれるため、必要な方法でキーバインディングを簡単に設定できます。
ツリー内検索キーバインディング
ツリーコントロールで意図せずに検索コントロールが頻繁に開かれてしまう問題に対処しました。たとえば、エディターで検索する代わりに、エクスプローラービューに検索コントロールが表示される場合などです。
これらの偶発的なアクティベーションを減らすために、ツリーコントロールで検索コントロールを開くためのデフォルトのキーバインディングを⌥⌘F (Windows, Linux Ctrl+Alt+F)に変更しました。以前の設定を好む場合は、キーボードショートカットエディターを使用してlist.findコマンドの元のキーバインディングに簡単に戻すことができます。
システムカラーモードの自動検出の改善
テーマをシステムのカラーモードに合わせたい場合、window.autoDetectColorScheme設定を有効にすることで既に可能でした。
有効にすると、ダークモードではworkbench.preferredDarkColorTheme設定、ライトモードではworkbench.preferredLightColorTheme設定によって現在のテーマが定義されます。
この場合、workbench.colorTheme設定は考慮されなくなります。これはwindow.autoDetectColorSchemeが無効の場合にのみ使用されます。
このマイルストーンで新しいのは、テーマピッカーダイアログ(Preferences: Color Themeコマンド)がシステムカラーモードを認識するようになったことです。システムがダークモードの場合、テーマ選択がダークテーマのみを表示する方法に注目してください。

ダイアログには、window.autoDetectColorScheme設定に直接移動する新しいボタンも追加されました。

コメントにMarkdownリンクを貼り付け
コメントコントロールの入力エディターでは、リンクを貼り付けると、Markdownファイルにリンクを貼り付けるのと同じ動作になります。貼り付けオプションが表示され、コピーした元のリンクではなくMarkdownリンクを貼り付けることができます。

ソース管理
ブランチ切り替え時に開いているエディターを保存/復元
このマイルストーンでは、ソース管理ブランチを切り替える際にエディターを保存および復元するという長年の機能リクエストに対応しました。この機能を有効にするには、scm.workingSets.enabled:true設定を使用します。
初めてブランチに切り替える際に開いているエディターを制御するには、scm.workingSets.default設定を使用できます。開いているエディターなし(empty)を選択するか、現在開いているエディターを使用(current、デフォルト値)を選択できます。
変更を表示するための専用コマンド
マルチファイル差分エディターで特定の種類の変更を簡単に表示できるように、コマンドパレットに新しいコマンドセットが追加されました: Git: View Staged Changes、Git: View Changes、およびGit: View Untracked Changes。
ノートブック
最小エラーレンダラー
notebook.output.minimalErrorRendering:true設定を使用して、ノートブックエラーレンダラーの新しいレイアウトを使用できます。この新しいレイアウトは、エラーとメッセージ、および完全なエラースタックを表示するためのコントロールのみを表示します。
大規模ノートブックのバックアップ無効化
大規模なノートブックファイルの場合、ディスクへのファイル書き込みにかかる時間を短縮するため、定期的なファイルバックアップが無効になりました。制限はnotebook.backup.sizeLimit設定で調整できます。また、notebook.experimental.remoteSave:trueを使用してノートブックファイルの保存中にレンダラーをブロックしないオプションも試しており、これにより自動保存がパフォーマンス低下なしに行われるようになります。
アウトライン/スティッキースクロールのパフォーマンス回帰の修正
過去数ヶ月間、ノートブックエディターのパフォーマンス回帰に関するフィードバックを受け取っていました。これらの回帰は特定が難しく、簡単に再現できません。コミュニティからの継続的なログとフィードバックのおかげで、新しい機能を追加したことでアウトラインとスティッキースクロール機能から回帰が発生していることを特定できました。このリリースで問題は修正されました。
コミュニティからのフィードバックと忍耐に感謝し、ノートブックエディターのパフォーマンス向上に継続的に取り組んでいます。パフォーマンスの問題が引き続き発生する場合は、遠慮なくVS Codeリポジトリに新しい問題を報告してください。
検索
クイック検索
クイック検索を使用すると、ワークスペースファイル全体でテキスト検索をすばやく実行できます。クイック検索はもはや実験的なものではないので、コマンドパレット(⇧⌘P (Windows, Linux Ctrl+Shift+P))でSearch: Quick Searchコマンドを使用して試してみてください!✨🔍
テーマ: Night Owl Light (vscode.devでプレビュー)
すべてのQuick Searchコマンドと設定には、識別子に「experimental」というキーワードが含まれなくなったことに注意してください。例えば、コマンドID workbench.action.experimental.quickTextSearchはworkbench.action.quickTextSearchになりました。これは、これらの古いIDを使用する設定やキーバインディングがある場合に重要になる可能性があります。
検索ツリーの再帰的展開
検索ツリーで選択したツリーノードを再帰的に開くことができる新しいコンテキストメニューオプションを追加しました。
テーマ: Night Owl Light (vscode.devでプレビュー)
ターミナル
Git Bashシェル統合がデフォルトで有効
Git Bashのシェル統合が自動的に有効になりました。これにより、コマンドナビゲーション、スティッキースクロール、クイックフィックスなど、多くの機能がGit Bashに提供されます。
ミドルクリックで貼り付けを設定
ほとんどのLinuxディストリビューションでは、ミドルクリックで選択範囲が貼り付けられます。同様の動作を他のオペレーティングシステムでも有効にできるようになりました。terminal.integrated.middleClickBehaviorをpasteに設定すると、ミドルクリックで通常のクリップボードの内容が貼り付けられます。
ANSIハイパーリンクサポートの拡張
OSC 8エスケープシーケンスを介して作成されたANSIハイパーリンクは、以前はhttpおよびhttpsプロトコルのみをサポートしていましたが、現在は任意のプロトコルで動作します。デフォルトでは、セキュリティ上の理由から、file、http、https、mailto、vscode、およびvscode-insidersプロトコルを持つリンクのみがアクティブになりますが、terminal.integrated.allowedLinkSchemes設定を介してさらに追加できます。
ターミナル用の新しいアイコンピッカー
ターミナルタブのコンテキストメニューからアイコンの変更を選択すると、プロファイル用に構築された新しいアイコンピッカーが開きます。

テーマ: Sapphire (vscode.dev でプレビュー)
ウィンドウサイズレポートのサポート
ターミナルは以下のエスケープシーケンスリクエストに応答するようになりました。
- CSI 14 tはターミナルのウィンドウサイズをピクセル単位で報告します。
- CSI 16 tはターミナルのセルサイズをピクセル単位で報告します。
- CSI 18 tはターミナルのウィンドウサイズを文字数で報告します。
⚠️ キャンバスレンダラーの非推奨化
ターミナルには、DOMレンダラー、WebGLレンダラー、キャンバスレンダラーの3つの異なるレンダラーがあります。しばらくの間キャンバスレンダラーを削除したいと考えていましたが、DOMレンダラーの許容できないパフォーマンスとWebKitがwebgl2を実装していないためにブロックされていました。これらの問題は両方とも解決されました!
このリリースでは、キャンバスレンダラーがフォールバックチェーンから削除され、terminal.integrated.gpuAcceleration設定が明示的に"canvas"に設定されている場合にのみ有効になります。次回のリリースではキャンバスレンダラーを完全に削除する予定です。terminal.integrated.gpuAccelerationが"on"または"off"の両方に設定されている場合に問題が発生した場合はお知らせください。
デバッグ
JavaScriptデバッガー
JavaScriptデバッガは、runtimeExecutable設定でnode_modules/.binフォルダに表示されるバイナリを自動的に検索するようになりました。これにより、名前で自動的に解決されます。
次の例では、バイナリへのフルパスを指定せずにmochaを参照できることに注目してください。
{
	"name": "Run Tests",
	"type": "node",
	"request": "launch",
-	"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/mocha",
-	"windows": {
-		"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/mocha.cmd"
-	},
+	"runtimeExecutable": "mocha",
}
言語
Markdownパス補完での画像プレビュー
VS Codeの組み込みMarkdownツールは、Markdown内のリンクや画像のパス補完を提供します。画像や動画ファイルのパスを補完する際に、補完の詳細に小さなプレビューが直接表示されるようになりました。これにより、探している画像や動画をより簡単に見つけることができます。

Markdownでの画像と動画のプレビューにホバー
完全なMarkdownプレビューを開かずに、Markdown内の画像や動画を素早くプレビューしたいですか?画像や動画のパスにカーソルを合わせると、その小さなプレビューが表示されるようになりました。

Markdownヘッダー名の変更の改善
VS Codeの組み込みMarkdownサポートがF2を使用してヘッダー名を変更できることをご存知でしたか?これは、そのヘッダーへのすべてのリンクも自動的に更新されるため便利です。このイテレーションでは、Markdownファイルに重複するヘッダーがある場合の名前変更の処理を改善しました。
Markdownファイルを考慮してください。
# Readme
- [Example 1](#_example)
- [Example 2](#_example-1)
## Example
...
## Example
...
2つの## Exampleヘッダーは同じテキストを持っていますが、それぞれ一意のID(#exampleと#example-1)を使用して個別にリンクできます。以前は、最初の## Exampleヘッダーを## First Exampleに名前変更すると、#exampleリンクは正しく#first-exampleに変更されますが、#example-1リンクは変更されませんでした。しかし、名前変更後、重複する## Exampleヘッダーがなくなったため、#example-1はもはや有効なリンクではありません。
このシナリオを正しく処理できるようになりました。たとえば、上記のドキュメントで最初の## Exampleヘッダーを## First Exampleに名前変更すると、新しいドキュメントは次のようになります。
# Readme
- [Example 1](#_first-example)
- [Example 2](#_example)
## First Example
...
## Example
...
両方のリンクが自動的に更新され、両方が有効なままであることに注目してください!
リモート開発
リモート開発拡張機能を使用すると、開発コンテナー、SSH 経由のリモートマシン、リモートトンネル、またはWindows 用 Linux サブシステム (WSL) をフル機能の開発環境として使用できます。
主なハイライトは次のとおりです。
- SSH経由でWSLに接続
これらの機能の詳細については、リモート開発リリースノートをご覧ください。
拡張機能への貢献
GitHub Copilot
ターミナルインラインチャット
ターミナルインラインチャットは、ターミナルでデフォルトのエクスペリエンスになりました。ターミナルにフォーカスがあるときに、キーボードショートカット⌘I (Windows, Linux Ctrl+I)を使用して起動します。

ターミナルインラインチャットは、統合ターミナルのシェルとその内容に関するコンテキストを持つ@terminalチャット参加者を使用します。

コマンドが提案されたら、⌘Enter (Windows, Linux Ctrl+Enter)でターミナルでコマンドを実行するか、⌥Enter (Windows, Linux Alt+Enter)でコマンドをターミナルに挿入します。コマンドは、実行前にCopilotの応答で直接編集することもできます(現在、WindowsとLinuxではCtrl+down、Tab、Tab、macOSではCmd+down、Tab、Tab)。

Copilotによる名前変更候補ボタン
Copilotによる名前変更候補は、名前変更コントロールのきらめきアイコンを使用してトリガーできるようになりました。
コンテンツの除外
GitHub Copilotコンテンツ除外が、Copilot for BusinessおよびCopilot Enterpriseのすべての顧客向けにCopilot Chatでサポートされるようになりました。コンテンツ除外の設定に関する情報は、GitHub Docsにあります。
ファイルがコンテンツ除外によって除外されると、Copilot Chatはそのファイルの内容やパスを見ることができなくなり、LLMの提案生成には使用されません。


プレビュー: ノートブックエディターで生成
ノートブックエディターでインラインチャットが自動的にアクティブ化された新しいセルを挿入できるようになりました。notebook.experimental.generate設定がtrueに設定されている場合、ノートブックツールバーとセルの間の挿入ツールバーにGenerateボタンが表示されます。また、ノートブックリストまたはセルコンテナにフォーカスがあるときに、macOSでCmd+I(またはWindows/LinuxでCtrl+I)を押すことでもトリガーできます。この機能は、言語モデルの助けを借りて新しいセルにコードを生成するプロセスを簡素化するのに役立ちます。
Python
「継承されたすべての抽象クラスを実装する」コードアクション
Pylanceを使用している場合、抽象クラスの操作がより簡単になりました。抽象クラスから継承する新しいクラスを定義する際に、Implement all inherited abstract classesコードアクションを使用して、親クラスからすべての抽象メソッドとプロパティを自動的に実装できるようになりました。
テーマ: Catppuccin Macchiato (vscode.devでプレビュー)
新しい自動インデント設定
以前は、Pylanceの自動インデント動作はeditor.formatOnType設定によって制御されていましたが、自動インデントを無効にしつつ、他のサポートされているツールで入力時のフォーマットを有効にしたい場合には問題がありました。この問題を解決するために、Pylanceは独自の自動インデント動作を制御する設定python.analysis.autoIndentを持つようになりました(デフォルトで有効です)。

Python拡張機能からDebugpyが削除され、Python Debugger拡張機能に移行
デバッグ機能はPython Debugger拡張機能で処理されるようになったため、debugpyはPython拡張機能から削除されました。
この変更の一環として、launch.jsonファイルで指定された"type": "python"と"type": "debugpy"の両方がPython Debugger拡張機能へのパスを参照するようになり、効果的に実行およびデバッグするためにlaunch.jsonファイルを変更する必要はありません。今後は、Python Debugger拡張機能に直接対応するため、"type": "debugpy"を使用することをお勧めします。
テスト中のソケット無効化が可能に
Python Testing Rewriteでは、テストUIからソケットを無効にした状態でテストを実行できるようになりました。これは、Python拡張機能とテスト実行サブプロセスの間の通信が名前付きパイプを使用するように切り替わったことで可能になりました。
マイナーなテストバグが更新されました
テストビューで、testscenariosとunittestを使用したプロジェクト、およびネストされたクラス内のパラメータ化されたテストが正しく表示されるようになりました。さらに、テストエクスプローラーは、シンボリックリンクを持つワークスペース、特にシンボリックリンクされたパスの子であるワークスペースルート内のテストを処理できるようになり、WSLシナリオで特に役立ちます。
Pylanceによるパフォーマンス改善
Pylanceチームは、過去数回のリリースでPylanceのパフォーマンスが低下したというフィードバックを受けています。報告された様々な問題に対処するために、メモリ消費量とインデックス作成パフォーマンスに関していくつかの小さな改善を行いました。しかし、Pylanceでパフォーマンスの問題が引き続き発生している可能性がある方には、できればログ、コードサンプル、および/または作業環境にインストールされているパッケージとともに、コマンドパレットからPylance: Report Issueコマンドを通じて問題を報告していただくようお願いしています。
Hexエディター
ヘックスエディターには、長年ある「置換」モードに加え、「挿入」モードが追加されました。挿入モードでは、ファイル内およびファイルの最後に新しいバイトを追加でき、Insertキーまたはステータスバーから切り替えることができます。
ヘックスエディターは、現在ホバーしているバイトもステータスバーに表示するようになりました。
GitHubプルリクエスト
GitHub Pull Requests 拡張機能は、プルリクエストや課題の作業、作成、管理を可能にし、さらなる進歩を遂げました。新しい機能には以下が含まれます。
- チェックアウトされていないPRの実験的な競合解決は、隠し設定"githubPullRequests.experimentalUpdateBranchWithGitHub": trueを有効にすると利用可能です。この機能により、ローカルでブランチをチェックアウトせずにPRの競合を解決できます。この機能はまだ実験段階であり、すべてのケースで機能するわけではありません。
- Pull RequestsビューとIssuesビューからOpen Accessibility Helpがトリガーされると、アクセシビリティヘルプダイアログが表示されます。
- 十分なスペースがある場合、すべてレビューアクションボタンがアクティブなプルリクエストサイドバービューに表示されます。
その他のハイライトについては、拡張機能の0.88.0リリース向けchangelogを確認してください。
TypeScript
VS Codeコアによるファイル監視の処理
新しい実験的な設定typescript.tsserver.experimental.useVsCodeWatcherは、TS拡張機能がファイル監視のニーズにVS Codeのコアファイル監視サポートを使用するかどうかを制御します。TSはファイル監視を広範に使用しており、通常は独自のnode.jsベースの実装を使用しています。VS Codeのファイルウォッチャーを使用することで、監視はより効率的で信頼性が高く、リソース消費も少なくなります。この機能は5月にユーザー向けに徐々に有効にし、回帰を監視する予定です。
プレビュー機能
PowerShell用のVS CodeネイティブIntelliSense
ターミナル内でPowerShell IntelliSenseのプロトタイプをしばらく前から用意していましたが、最近になって磨き上げる時間ができました。見た目は次のようになります。
現在、-文字を押すか、Ctrl+Spaceを押すとトリガーされます。この機能を有効にするには、settings.jsonファイルで"terminal.integrated.shellIntegration.suggestEnabled": trueを設定してください(現在は設定UIには表示されません)。
この機能はまだ初期段階ですが、皆様からのフィードバックをお待ちしております。計画されている大きな改善点としては、トリガーの信頼性向上(#211222)、ポップアップがトリガーされた場所に関わらず提案の一貫性向上(#211364)、エディターのIntelliSense体験にできるだけ近づけること(#211076、#211194)などがあります。
貼り付け時にMarkdownリンクを自動更新
Markdownドキュメントを作成していて、ドキュメントのあるセクションが実際には別の場所にあることに気づいたとします。そこで、それをコピーして別のファイルに貼り付けます。これで問題ないですよね?もしコピーしたテキストに相対パスリンク、参照リンク、または画像が含まれていた場合、これらはおそらく壊れてしまい、手動で修正する必要があります。これは本当に面倒ですが、幸いにも新しい「貼り付け時にリンクを更新」機能が役立ちます!
この機能を有効にするには、"markdown.experimental.updateLinksOnPaste": trueを設定するだけです。有効にすると、現在のエディターでMarkdownファイル間でテキストをコピーして貼り付けると、VS Codeはすべての相対パスリンク、参照リンク、および相対パスを持つすべての画像/ビデオを自動的に修正します。
貼り付け後、コピーしたテキストを正確に挿入したい場合は、貼り付けコントロールを使用して通常のコピー/貼り付け動作に戻すことができます。
TypeScript 5.5のサポート
TypeScript 5.5ベータ版をサポートするようになりました。このリリースに関する詳細については、TypeScript 5.5ベータブログ投稿とイテレーション計画をご覧ください。
エディターのハイライトには以下が含まれます。
- 正規表現の構文チェック。
- ファイル監視の改善。
TypeScript 5.5ベータ版の使用を開始するには、TypeScript Nightly拡張機能をインストールしてください。フィードバックを共有し、TypeScript 5.5でバグに遭遇した場合はお知らせください。
API
コメント入力エディターでの言語機能サポートの改善
新しいコメントを作成する際、VS Codeはメインエディターと同様にTextDocumentに裏打ちされた簡易版のテキストエディターを作成します。このイテレーションでは、これらのコメントテキストエディターで追加のAPI機能が有効になりました。これには以下が含まれます。
- ワークスペース編集のサポート。
- 診断のサポート。
- 提案された「名前を付けて貼り付け」APIのサポート。
コメントテキストドキュメントは、commentスキームを持つURIで識別できます。
この新しい機能で拡張機能が何を作成するか楽しみです!
ウィンドウアクティビティAPIの確定
ウィンドウアクティビティAPIが確定されました。このAPIは、ウィンドウが最近操作されたかどうかを判断するために拡張機能が使用できる、単純な追加のWindowState.activeブール値を提供します。
vscode.window.onDidChangeWindowState(e => console.log('Is the user active?', e.active));
提案されたAPI
ビューのアクセシビリティヘルプダイアログ
アクセシビリティヘルプダイアログは、accessibilityHelpContentプロパティを介して、任意の拡張機能が提供するビューに追加できます。ビューにフォーカスがある場合、スクリーンリーダーユーザーはダイアログを開くためのヒント(⌥F1 (Windows Alt+F1, Linux Shift+Alt+F1))を聞くことができ、そこには概要と役立つコマンドが含まれています。
このAPIは、GitHubプルリクエスト拡張機能のIssuesおよびPRビューで使用されます。
言語モデルとチャットAPI
言語モデルの名前空間(vscode.lm)は、言語モデル情報を取得したり、指定された文字列のトークン数をカウントしたりするための新しい関数をエクスポートします。それぞれgetLanguageModelInformationとcomputeTokenLengthです。これらの関数を使用して、言語モデルの制限内のプロンプトを構築する必要があります。
注: インラインチャットは、今後のチャット参加者APIによって提供されます。これは、
registerInteractiveEditorSessionProviderが非推奨となり、間もなく削除されることも意味します。
ドキュメント貼り付け提案の更新
ドキュメント貼り付け提案APIについて、引き続き反復処理を行っています。このAPIにより、拡張機能はテキストドキュメントでのコピー/貼り付け操作にフックできるようになります。
APIの注目すべき変更点には以下が含まれます。
- 
新しい resolveDocumentPasteEditメソッドは、貼り付け操作時に編集を埋めます。これは、編集の計算に時間がかかる場合にのみ、実際に貼り付け編集を適用する必要があるときに呼び出されるため、使用する必要があります。
- 
すべての貼り付け操作は、 DocumentDropOrPasteEditKindによって識別されるようになりました。これは、既存のCodeActionKindとよく似ており、貼り付け操作のキーバインディングと設定で使用されます。
ドキュメント貼り付け拡張機能サンプルには最新のAPI変更がすべて含まれているため、APIをテストできます。変更点とAPI全体の設計についてフィードバックを共有してください。
ホバー詳細レベル
このイテレーションでは、ホバーを展開/縮小するための新しい提案APIであるeditorHoverVerbosityLevelを追加しました。これは、VerboseHoverという新しい型を導入し、canIncreaseHoverVerbosityとcanDecreaseHoverVerbosityという2つのブール型フィールドを持ち、ホバーの詳細レベルを増減できることを示します。どちらか一方がtrueに設定されている場合、ホバーは+と-アイコンとともに表示され、これらを使用してホバーの詳細レベルを増減できます。
提案されたAPIは、provideHoverメソッドの新しいシグネチャも導入しています。これは、HoverContext型の追加パラメータを受け取ります。ユーザーによってホバー詳細レベルのリクエストが送信されると、ホバーコンテキストには以前のホバーと、ユーザーが詳細レベルを増減したいかを示すHoverVerbosityActionが入力されます。
拡張機能がトリガーするTestRunsでのpreserveFocus
拡張機能によってトリガーされるテスト実行要求にpreserveFocusブール値を設定する提案があります。以前は、拡張機能APIからトリガーされるテスト実行では、フォーカスがテスト結果ビューに移動することはなく、一部の拡張機能ではユーザーエクスペリエンスの互換性を維持するために独自の実装が必要でした。この新しいオプションはTestRunRequestに設定でき、実行がエディター内からトリガーされたかのようにエディターにフォーカスを移動するように要求できます。
注目すべき修正点
- 209917 Auxウィンドウ: 最大化状態を復元(Linux、Windows)
ありがとうございます
最後に、VS Codeの貢献者の皆様に心からの感謝を申し上げます。
問題追跡
問題追跡への貢献者
- @gjsjohnmurray (John Murray)
- @IllusionMH (Andrii Dieiev)
- @RedCMD (RedCMD)
- @starball5 (スターボール)
- @ArturoDent (ArturoDent)
プルリクエスト
vscodeへの貢献者
- @4-tel: fix: debug console で「!」で始まる行を検索する #174146 PR #210178
- @CareyJWilliams (Carey Williams): fix: タスクテンプレートが空の tasks.json に書き込む問題を修正 PR #210675
- @cpendery (Chapman Pendery)
- fix: バンドルエラーによりターミナル提案が失敗する PR #208822
- feat: シェル統合にgit-bashサポートを追加 PR #208960
- fix: Windowsでのターミナルマーカー配置を改善 PR #209136
- fix: 補完候補がない場合、ターミナル提案はモーダルを非表示にするべき PR #210289
- fix: git bash で分割が失敗する PR #210513
 
- @Ditoo29 (Diogo Pinto): fix: 改行文字のシリアライズ PR #209703
- @frankli0324 (Frank): npm view 実行時の corepack auto pin 機能を無効にする PR #210601
- @g-plane (Pig Fang): すべてのファイルがステージングまたはコミットされたときにGitマルチ差分エディターを自動的に閉じる PR #210327
- @gjsjohnmurray (John Murray)
- workbench.activityBar.iconClickBehaviorおよび- workbench.activityBar.location設定の説明を改善 PR #210574
- アクティビティバーアイコンバッジを正しくクリアする (fix #210640) PR #210645
 
- @grgar (George Garside)
- ウェブでwindow.customTitleBarVisibility設定を使用しない PR #209162
- Fix color picker command title PR #210349
- cmd start escape をプロンプトの最後に移動 PR #210443
 
- @hsfzxjy (Xie Jingyi): デバッグのためのナビゲーション可能なコンテナイベントのログ記録 PR #209357
- @jswillard (John Willard): クイックオープンにカスタムラベルを表示 PR #209681
- @marvinthepa (Martin Sander): ターミナルでミドルクリックペースト PR #136633
- @mmastrac (Matt Mastracci): ESC [18tを動作させるためにxtermTerminalにwindowOptionsを追加 PR #209310
- @nopeless (nopeless): fix: シェル統合bashファイルでcmdをローカルにする PR #208364
- @pagict (Premium): feat. 検索ビューでサブツリーを展開するためのメニュー項目 'expand-select' を追加 PR #206033
- @pisv (Vladimir Piskarev): OpenJsDocLinkCommand_Argsの不正な型定義を修正 PR #209872
- @qirong77: Monaco-Editorのインラインサジェストツールバーにクラスが欠落しており、CSS変数が無効になる問題を修正 PR #207582
- @r-sargento (Rafael Sargento): #201247 を修正(統合ターミナルがデフォルトプロファイルから環境変数を設定しない) PR #209711
- @ScriptBloom (alviner): fix: minimapセクションヘッダーが初回読み込み時に不完全に表示される:#209603 PR #209605
- @sheetalkamat (Sheetal Nandi): tsserverにvscodeウォッチを使用 PR #193848
- @telamon (Tony Ivanov): #114425を修正 インストール時のMIME汚染を防止 PR #209510
- @timorthi (Timothy Ng): 行番号表示モードが変更されたときにスティッキースクロールを再レンダリング PR #210815
- @WardenGnaw (Andrew Wang): selectAndStartDebuggingコマンドに'noDebug'を追加 PR #209893
- @zWingz (zWing): fix: execCommand workbench.extensions.installExtension 時の予期せぬエラー PR #210135
- @ale-dg: ノートブックエディタとjupyterの複数のパフォーマンス問題を診断するために、継続的にフィードバックとログを提供してください。
vscode-css-languageserviceへの貢献者
- @liaoyinglong (vigoss): ネストされた@containerのサポート PR #390
vscode-emmet-helperへの貢献
vscode-eslintへの貢献者
- @hyoban (Stephen Zhou): fix: eslint.probeのデフォルトオプションに json, jsonc を追加 PR #1830
vscode-hexeditorへの貢献
- @tomilho (Tomás Silva)
- @veger (Maarten Bezemer): スワップされたエントリを修正 PR #515
vscode-json-languageserviceへの貢献
- @michaeltlombardi (Mikey Lombardi (He/Him)): パーサーがminContains/maxContainsにerrorMessageを使用するように保証 PR #229
vscode-languageserver-nodeへの貢献者
- @werat (Andy Hippo): 存在しない機能を登録解除してもクラッシュしないようにする PR #1460
vscode-python-debuggerへの貢献者
- @DavidArchibald (David Archibald): WSL上で実行中のプロセスにデバッガーをアタッチする問題を修正 PR #267
vscode-vsceへのコントリビューション
- @yutotnh (yutotnh): feat: git worktree addで生成された.gitを無視する PR #943
language-server-protocolへの貢献者
- @asukaminato0721 (Asuka Minato): lspを2つ追加 PR #1918
- @MariaSolOs (Maria José Solano): マークアップ診断メッセージの明確化を追加 PR #1917
- @practicalli-johnny (Practicalli Johnny): servers: clojure-lspリポジトリとメンテナを更新 PR #1921
- @sz3lbi (szelbi): SAP CDSサーバーを追加 PR #1924
- @unvalley (unvalley): docs: lspサーバーにbiomeを追加 PR #1923
- @Wilfred (Wilfred Hughes): RequestCancelled docコメントのタイプミスを修正 PR #1922
monaco-editorへのコントリビューション
- @timotheeguerin (Timothee Guerin): TypeSpec言語のサポートを追加 PR #4450