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

2024年4月 (バージョン 1.89)

バージョン 1.89.1 の更新: この更新は、これらの問題に対処します。

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


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

これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.comの「更新」にアクセスしてください。 Insiders: 新機能をいち早く試したいですか?毎晩のInsidersビルドをダウンロードして、最新の更新が利用可能になり次第お試しいただけます。

アクセシビリティ

進行状況アクセシビリティ信号

設定accessibility.signals.progressは、スクリーンリーダーユーザーがユーザーインターフェースにプログレスバーが表示される場所で進行状況を聞くことを可能にします。この信号は3秒経過後に再生され、プログレスバーが完了するまで5秒ごとにループします。信号が再生される例としては、ワークスペースの検索時、チャット応答が保留中の間、ノートブックセルが実行中の場合などがあります。

エディターのアクセシビリティ信号の改善

行にエラーや警告がある場合、またはカーソルがエラーや警告上にある場合に、個別のアクセシビリティ信号が利用できるようになりました。

エディターで線と列の間を移動する際のアクセシビリティ信号の遅延を個別にカスタマイズできるようになりました。また、ARIAアラート信号は、オーディオキュー信号よりも再生されるまでの遅延が長くなります。

サジェストコントロールが表示されている間、インラインサジェストはアクセシビリティ信号をトリガーしなくなりました。

アクセシブルビュー

アクセシブルビュー (⌥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拡張機能について示されているように、言語モデルリクエストの数を確認できます。

Screenshot of the Runtime Status for the Copilot Chat extension, showing the number of language model requests.

ローカルワークスペース拡張機能

ローカルワークスペース拡張機能は、VS Code 1.88 リリースで初めて導入され、一般提供されるようになりました。ワークスペースに直接拡張機能を含め、そのワークスペースにのみインストールできるようになりました。この機能は、特定のワークスペースのニーズに対応し、よりカスタマイズされた開発エクスペリエンスを提供するために設計されています。

この機能を使用するには、ワークスペース内の.vscode/extensionsフォルダーに拡張機能を配置する必要があります。そうすると、VS CodeはExtensionsビューのワークスペース推奨セクションにこの拡張機能を表示し、そこからユーザーがインストールできます。VS Codeはこの拡張機能をそのワークスペースにのみインストールします。ローカルワークスペース拡張機能は、ユーザーがこの拡張機能をインストールして実行する前にワークスペースを信頼する必要があります。

例えば、VS Codeリポジトリ内のvscode-selfhost-test-provider拡張機能を検討してください。この拡張機能はテスト機能を追加し、貢献者がワークスペース内で直接テストを表示および実行できるようにします。以下のスクリーンショットは、Extensionsビューのワークスペース推奨セクションに表示されるvscode-selfhost-test-provider拡張機能と、それをインストールする機能を示しています。

Screenshot showing a local workspace extension available in the .vscode folder in the Explorer view.

.vscode/extensionsフォルダーには展開された拡張機能を含めるべきであり、VSIXファイルではないことに注意してください。拡張機能のソースのみを含め、ワークスペース設定の一部としてビルドすることもできます。

クイックオープンでのカスタムエディターラベル

先月、エディタータブのラベルをパーソナライズできるカスタムラベルを導入しました。この機能は、index.tsxファイルのように、同じ名前のファイルに対するタブをより簡単に区別できるように設計されています。

それに基づいて、カスタムラベルの使用をクイックオープン(⌘P (Windows, Linux Ctrl+P))にまで拡張しました。これにより、作成したカスタムラベルを使用してファイルを検索できるようになり、ファイルのナビゲーションがより直感的になります。

Screenshot showing the use of custom labels in Quick Open to distinguish between multiple 'index.jsx' files.

キーバインディングのカスタマイズ

ユーザーインターフェースアクションのキーバインディングをより簡単にカスタマイズできるようになりました。ワークベンチ内の任意のアクション項目を右クリックし、キーバインディングをカスタマイズを選択します。アクションにwhen句がある場合、それは自動的に含まれるため、必要な方法でキーバインディングを設定しやすくなります。

ツリー内検索のキーバインディング

ツリーコントロールで意図せず検索コントロールが頻繁に開いてしまう問題に対処しました。例えば、エディターで検索する代わりに、エクスプローラービューに検索コントロールが表示される場合です。

これらの誤操作を減らすため、ツリーコントロールで検索コントロールを開くデフォルトのキーバインディングを⌥⌘F (Windows, Linux Ctrl+Alt+F)に変更しました。以前の設定を希望する場合は、キーボードショートカットエディターを使用してlist.findコマンドの元のキーバインディングに簡単に戻すことができます。

システムカラーモードの自動検出の改善

テーマをシステムのカラーモードに合わせたい場合は、設定window.autoDetectColorSchemeを有効にすることで既に可能でした。

有効にすると、現在のテーマは、ダークモードではworkbench.preferredDarkColorTheme設定によって、ライトモードではworkbench.preferredLightColorTheme設定によって定義されます。

その場合、workbench.colorTheme設定は考慮されなくなります。これはwindow.autoDetectColorSchemeが無効の場合にのみ使用されます。

このマイルストーンでの新機能は、テーマピッカーダイアログ(設定: 色のテーマコマンド)がシステムカラーモードを認識するようになったことです。システムがダークモードの場合、テーマ選択がダークテーマのみを表示していることに注目してください。

Screenshot showing the theme selection dialog configuring the theme for Dark mode.

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

Screenshot showing the theme selection dialog, highlighting the button to configure the autoDetectColorScheme setting.

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

Screenshot of Comments control, showing the paste link context menu.

ソース管理

ブランチ切り替え時の開いているエディターの保存/復元

このマイルストーンで、ソース管理ブランチを切り替える際にエディターを保存および復元するという長年の機能リクエストに対応しました。この機能を有効にするには、設定scm.workingSets.enabledを使用します。

初めてブランチに切り替える際の開いているエディターを制御するには、scm.workingSets.default設定を使用できます。開いているエディターなし(empty)を選択するか、現在開いているエディターを使用する(current、デフォルト値)かを選択します。

変更を表示するための専用コマンド

マルチファイル差分エディターで特定の種類の変更をより簡単に表示できるように、コマンドパレットに新しいコマンドセットを追加しました: Git: ステージングされた変更を表示Git: 変更を表示、およびGit: 未追跡の変更を表示

ノートブック

最小限のエラーレンダラー

ノートブックのエラーレンダラーに新しいレイアウトを、設定notebook.output.minimalErrorRenderingで使用できます。この新しいレイアウトは、エラーとメッセージのみを表示し、完全なエラーコールスタックを展開して表示するためのコントロールを備えています。

大規模ノートブックのバックアップを無効化

大規模なノートブックファイルに対する定期的なファイルバックアップは、ディスクへの書き込み時間を短縮するために無効になりました。制限は、設定notebook.backup.sizeLimitで調整できます。また、notebook.experimental.remoteSaveを使用してノートブックファイルを保存する際にレンダラーがブロックされるのを避けるオプションも実験中です。これにより、パフォーマンスを損なうことなく自動保存が行われるようになります。

アウトライン/スティッキースクロールのパフォーマンス低下の修正

ここ数ヶ月、ノートブックエディターのパフォーマンス低下に関するフィードバックが寄せられています。これらの低下は特定が難しく、容易に再現できません。コミュニティが継続的にログとフィードバックを提供してくれたおかげで、これらの低下は、新機能を追加したアウトライン機能とスティッキースクロール機能に起因することが特定できました。これらの問題は本リリースで修正されています。

コミュニティの皆様からのフィードバックとご忍耐に感謝いたします。今後もノートブックエディターのパフォーマンス向上に努めてまいります。引き続きパフォーマンスの問題が発生する場合は、VS Codeリポジトリに新しい問題を報告してください。

クイック検索を使用すると、ワークスペースファイル全体でテキスト検索をすばやく実行できます。クイック検索はもはや実験的な機能ではないため、コマンドパレット(⇧⌘P (Windows, Linux Ctrl+Shift+P))で検索: クイック検索コマンドを使用して試してみてください!✨🔍

テーマ: Night Owl Light (vscode.devでプレビュー)

すべてのクイック検索コマンドと設定の識別子に「experimental」キーワードが含まれなくなったことに注意してください。例えば、コマンドIDworkbench.action.experimental.quickTextSearchworkbench.action.quickTextSearchになりました。古いIDを使用している設定やキーバインディングがある場合に、これは関連する可能性があります。

検索ツリーの再帰的展開

検索ツリー内で選択したツリーノードを再帰的に開くことができる新しいコンテキストメニューオプションが追加されました。

テーマ: Night Owl Light (vscode.devでプレビュー)

ターミナル

Git Bash シェル統合がデフォルトで有効に

Git Bash のシェル統合が自動的に有効になりました。これにより、コマンドナビゲーションスティッキースクロールクイックフィックスなど、Git Bashに多くの機能が追加されます。

中央クリック貼り付けの設定

ほとんどのLinuxディストリビューションでは、中央クリックで選択範囲が貼り付けられます。同様の動作は、terminal.integrated.middleClickBehaviorpasteに設定することで、他のオペレーティングシステムでも有効にできるようになりました。これにより、中央クリックで通常のクリップボードコンテンツが貼り付けられます。

OSC 8エスケープシーケンスを介して作成されたANSIハイパーリンクは、以前はhttpおよびhttpsプロトコルのみをサポートしていましたが、現在は任意のプロトコルで動作します。デフォルトでは、セキュリティ上の理由からfilehttphttpsmailtovscodevscode-insidersプロトコルのリンクのみがアクティブになりますが、terminal.integrated.allowedLinkSchemes設定を介してさらに追加できます。

ターミナルの新しいアイコンピッカー

ターミナルタブのコンテキストメニューからアイコン変更を選択すると、プロファイル用に構築された新しいアイコンピッカーが開くようになりました。

Screenshot showing the new icon picker shows a preview and the id of the icon as well as a filter box

テーマ: 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内のリンクと画像のパス補完を提供します。画像またはビデオファイルのパスを補完する際に、補完の詳細内に小さなプレビューが直接表示されるようになりました。これにより、探している画像やビデオをより簡単に見つけることができます。

Screenshot showing a preview of an image in Markdown path completions

Markdownの画像とビデオにカーソルを合わせてプレビュー

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

Screenshot showing hovering over an image's path to preview it

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
...

両方のリンクが自動的に更新され、両方とも有効なままであることに注目してください!

リモート開発

Remote Development拡張機能を使用すると、開発コンテナー、SSHまたはRemote Tunnels経由のリモートマシン、またはWindows Subsystem for Linux(WSL)をフル機能の開発環境として使用できます。

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

  • SSH経由でWSLに接続

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

拡張機能への貢献

GitHub Copilot

ターミナルインラインチャット

ターミナルインラインチャットは、ターミナルでのデフォルトのエクスペリエンスになりました。ターミナルがフォーカスされているときに⌘I (Windows, Linux Ctrl+I)キーボードショートカットを使用して起動します。

Screenshot showing opening terminal inline chat opens and focuses an input box similar to inline chat in the editor

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

Screenshot showing that you can ask complex questions like "list the top 5 largest files in the src dir"

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

Screenshot showing that complex queries are OS and shell-specific

Copilotによる名前変更の提案ボタン

Copilotによる名前変更の提案は、名前変更コントロールのキラキラアイコンを使用してトリガーできるようになりました。

コンテンツの除外

GitHub Copilotのコンテンツ除外は、すべてのCopilot for BusinessおよびCopilot Enterpriseのお客様向けにCopilot Chatでサポートされるようになりました。コンテンツ除外の設定に関する情報は、GitHub Docsで確認できます。

ファイルがコンテンツ除外によって除外されると、Copilot Chatはそのファイルの内容やパスを見ることができず、LLMの提案の生成には使用されません。

Screenshot showing a file which has been excluded in panel chat, displaying a warning about decreased suggestion quality

Screenshot showing a file which has been excluded in inline chat, showing an error that inline chat cannot be used

プレビュー: ノートブックエディターで生成

ノートブックエディターでインラインチャットが自動的にアクティブ化された新しいセルを挿入できるようになりました。notebook.experimental.generate設定がtrueに設定されている場合、ノートブックツールバーとセル間の挿入ツールバーに生成ボタンが表示されます。フォーカスがノートブックリストまたはセルコンテナにあるときに、macOSではCmd+I(Windows/LinuxではCtrl+I)を押すことでもトリガーできます。この機能は、言語モデルの助けを借りて新しいセルにコードを生成するプロセスを簡素化するのに役立ちます。

Python

「継承されたすべての抽象クラスを実装」コードアクション

Pylanceを使用すると、抽象クラスの操作がより簡単になります。抽象クラスを継承する新しいクラスを定義する際に、継承されたすべての抽象クラスを実装コードアクションを使用して、親クラスのすべての抽象メソッドとプロパティを自動的に実装できるようになりました。

テーマ: Catppuccin Macchiato (vscode.devでプレビュー)

新しい自動インデント設定

以前は、Pylanceの自動インデント動作はeditor.formatOnType設定によって制御されていました。これは、自動インデントを無効にし、他のサポートされているツールで入力時のフォーマットを有効にしたい場合に問題となることがありました。この問題を解決するため、Pylanceは独自の自動インデント動作を制御する設定としてpython.analysis.autoIndent(デフォルトで有効)を持っています。

Screenshot showing Python Analysis Auto Indent setting to control auto indentation with Pylance

Python Debugger拡張機能に有利な形でPython拡張機能からDebugpyが削除されました。

デバッグ機能がPython Debugger拡張機能によって処理されるようになったため、Python拡張機能からdebugpyを削除しました。

この変更の一環として、launch.jsonファイルで指定された"type": "python""type": "debugpy"の両方がPython Debugger拡張機能へのパスを参照するようになり、効果的に実行およびデバッグするためにlaunch.jsonファイルに変更を加える必要がなくなりました。今後、Python Debugger拡張機能に直接対応するため、"type": "debugpy"を使用することをお勧めします。

テスト中にソケットの無効化が可能に

Python Testing RewriteのテストUIからソケットを無効にしたテストを実行できるようになりました。これは、Python拡張機能とテスト実行サブプロセス間の通信が名前付きパイプを使用するように切り替わったことで可能になりました。

細かなテストバグの更新

テストビューは、unittestとパラメーター化されたテストをネストされたクラス内で使用するプロジェクトを正しく表示するようになりました。さらに、テストエクスプローラーは、シンボリックリンクを持つワークスペース(特にシンボリックリンクされたパスの子であるワークスペースルート)内のテストを処理するようになりました。これはWSLシナリオで特に役立ちます。

Pylanceのパフォーマンス改善

Pylanceチームは、Pylanceのパフォーマンスが過去数回のリリースで低下しているというフィードバックを受けています。報告されたさまざまな問題に対処するため、メモリ消費とインデックス作成パフォーマンスに関していくつかの小さな改善を行いました。しかし、Pylanceで引き続きパフォーマンスの問題が発生する可能性がある方々には、コマンドパレットからPylance: 問題を報告コマンドを通じて、理想的にはログ、コードサンプル、および/または作業環境にインストールされているパッケージとともに問題を報告していただくようお願いしております。

Hexエディター

Hexエディターは、長年存在した「置換」モードに加えて、新たに挿入モードを備えました。挿入モードでは、ファイル内およびファイルの最後に新しいバイトを追加でき、Insertキーまたはステータスバーから切り替えることができます。

Hexエディターは、現在ホバーしているバイトもステータスバーに表示するようになりました。

GitHubプルリクエスト

プルリクエストやイシューの作業、作成、管理を可能にするGitHub Pull Requests拡張機能に関して、さらに多くの進捗がありました。新機能には以下が含まれます。

  • 非チェックアウトPRの実験的な競合解決は、隠し設定"githubPullRequests.experimentalUpdateBranchWithGitHub": trueを有効にすると利用できます。この機能により、ローカルでブランチをチェックアウトすることなくPRの競合を解決できます。この機能はまだ実験段階であり、すべての場合に動作するわけではありません。
  • プルリクエストおよびイシュービューからアクセシビリティヘルプを開くがトリガーされたときに表示されるアクセシビリティヘルプダイアログがあります。
  • 十分なスペースがある場合、すべてのレビューアクションボタンがアクティブプルリクエストサイドバービューに表示されます。

拡張機能の0.88.0リリースの変更ログを確認して、その他のハイライトについて学びましょう。

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.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は、VS Codeのメインエディターと同様にTextDocumentに裏打ちされた簡易的なテキストエディターを作成します。今回のイテレーションでは、これらのコメントテキストエディターでいくつかの追加API機能を有効にしました。これには以下が含まれます。

  • ワークスペース編集のサポート。
  • 診断のサポート。
  • 提案されたAPI「paste-as」のサポート。

コメントテキストドキュメントは、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 Pull Request拡張機能のイシュービューおよびPRビューで使用されています。

言語モデルとチャットAPI

言語モデルの名前空間(vscode.lm)は、言語モデル情報を取得し、与えられた文字列のトークンを数えるための新しい関数をエクスポートします。それらはそれぞれgetLanguageModelInformationcomputeTokenLengthです。これらの関数を使用して、言語モデルの制限内のプロンプトを構築する必要があります。

: インラインチャットは、今後登場するチャット参加者APIによって提供されるようになりました。これはまた、registerInteractiveEditorSessionProviderが非推奨となり、間もなく削除されることを意味します。

ドキュメント貼り付け提案の更新

ドキュメント貼り付け提案APIのイテレーションを継続しました。このAPIにより、拡張機能はテキストドキュメントでのコピー/貼り付け操作にフックできるようになります。

APIへの注目すべき変更点には以下が含まれます。

  • 新しいresolveDocumentPasteEditメソッドは、貼り付け操作時に編集を補完します。編集の計算に時間がかかる場合にこれを使用すべきです。これは、貼り付け編集が実際に適用される必要がある場合にのみ呼び出されるためです。

  • すべての貼り付け操作は、DocumentDropOrPasteEditKindによって識別されるようになりました。これは既存のCodeActionKindと非常によく似ており、貼り付け操作のキーバインディングと設定で使用されます。

ドキュメント貼り付け拡張機能サンプルには、最新のAPI変更がすべて含まれているため、APIをテストできます。変更点と全体的なAPI設計についてフィードバックを共有してください。

ホバーの詳細レベル

今回のイテレーションでは、ホバーの縮小/展開を行う新しい提案APIとしてeditorHoverVerbosityLevelを追加しました。これは、VerboseHoverという新しい型を導入します。この型には、ホバーの詳細レベルを増減できることを示す2つのブール値フィールド: canIncreaseHoverVerbositycanDecreaseHoverVerbosityがあります。いずれかがtrueに設定されている場合、ホバーは+および-アイコンとともに表示され、これらを使用してホバーの詳細レベルを増減できます。

提案されたAPIは、provideHoverメソッドの新しいシグネチャも導入します。これは、HoverContext型の追加パラメーターを受け取ります。ユーザーからホバー詳細レベルのリクエストが送信されると、ホバーコンテキストには以前のホバーと、ユーザーが詳細レベルを増やすか減らすかを示すHoverVerbosityActionが入力されます。

拡張機能トリガーのテスト実行におけるpreserveFocus

拡張機能によってトリガーされるテスト実行におけるpreserveFocusブール値の提案があります。以前は、拡張機能APIからトリガーされたテスト実行では、フォーカスがテスト結果ビューに移動することがなく、一部の拡張機能ではユーザーエクスペリエンスの互換性を維持するために独自の解決策を考案する必要がありました。この新しいオプションはTestRunRequestに設定でき、あたかもエディター内から実行がトリガーされたかのようにフォーカスを移動するようエディターに要求します。

注目すべき修正点

  • 209917 補助ウィンドウ: 最大化された状態を復元(Linux、Windows)

ありがとうございます

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

問題追跡

問題追跡への貢献者

プルリクエスト

vscodeへの貢献者

vscode-css-languageserviceへの貢献者

vscode-emmet-helperへの貢献

vscode-eslintへの貢献者

vscode-hexeditorへの貢献

vscode-json-languageserviceへの貢献

vscode-languageserver-nodeへの貢献者

vscode-python-debuggerへの貢献者

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

language-server-protocolへの貢献者

monaco-editorへのコントリビューション