2024年4月 (バージョン 1.89)
バージョン 1.89.1 の更新: この更新は、これらの問題に対処します。
ダウンロード: Windows: x64 Arm64 | Mac: Universal 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の「更新」にアクセスしてください。 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拡張機能について示されているように、言語モデルリクエストの数を確認できます。
ローカルワークスペース拡張機能
ローカルワークスペース拡張機能は、VS Code 1.88 リリースで初めて導入され、一般提供されるようになりました。ワークスペースに直接拡張機能を含め、そのワークスペースにのみインストールできるようになりました。この機能は、特定のワークスペースのニーズに対応し、よりカスタマイズされた開発エクスペリエンスを提供するために設計されています。
この機能を使用するには、ワークスペース内の.vscode/extensions
フォルダーに拡張機能を配置する必要があります。そうすると、VS CodeはExtensionsビューのワークスペース推奨セクションにこの拡張機能を表示し、そこからユーザーがインストールできます。VS Codeはこの拡張機能をそのワークスペースにのみインストールします。ローカルワークスペース拡張機能は、ユーザーがこの拡張機能をインストールして実行する前にワークスペースを信頼する必要があります。
例えば、VS Codeリポジトリ内のvscode-selfhost-test-provider
拡張機能を検討してください。この拡張機能はテスト機能を追加し、貢献者がワークスペース内で直接テストを表示および実行できるようにします。以下のスクリーンショットは、Extensionsビューのワークスペース推奨セクションに表示されるvscode-selfhost-test-provider
拡張機能と、それをインストールする機能を示しています。
.vscode/extensions
フォルダーには展開された拡張機能を含めるべきであり、VSIX
ファイルではないことに注意してください。拡張機能のソースのみを含め、ワークスペース設定の一部としてビルドすることもできます。
クイックオープンでのカスタムエディターラベル
先月、エディタータブのラベルをパーソナライズできるカスタムラベルを導入しました。この機能は、index.tsx
ファイルのように、同じ名前のファイルに対するタブをより簡単に区別できるように設計されています。
それに基づいて、カスタムラベルの使用をクイックオープン(⌘P (Windows, Linux Ctrl+P))にまで拡張しました。これにより、作成したカスタムラベルを使用してファイルを検索できるようになり、ファイルのナビゲーションがより直感的になります。
キーバインディングのカスタマイズ
ユーザーインターフェースアクションのキーバインディングをより簡単にカスタマイズできるようになりました。ワークベンチ内の任意のアクション項目を右クリックし、キーバインディングをカスタマイズを選択します。アクションにwhen
句がある場合、それは自動的に含まれるため、必要な方法でキーバインディングを設定しやすくなります。
ツリー内検索のキーバインディング
ツリーコントロールで意図せず検索コントロールが頻繁に開いてしまう問題に対処しました。例えば、エディターで検索する代わりに、エクスプローラービューに検索コントロールが表示される場合です。
これらの誤操作を減らすため、ツリーコントロールで検索コントロールを開くデフォルトのキーバインディングを⌥⌘F (Windows, Linux Ctrl+Alt+F)に変更しました。以前の設定を希望する場合は、キーボードショートカットエディターを使用してlist.find
コマンドの元のキーバインディングに簡単に戻すことができます。
システムカラーモードの自動検出の改善
テーマをシステムのカラーモードに合わせたい場合は、設定window.autoDetectColorScheme
を有効にすることで既に可能でした。
有効にすると、現在のテーマは、ダークモードではworkbench.preferredDarkColorTheme
設定によって、ライトモードではworkbench.preferredLightColorTheme
設定によって定義されます。
その場合、workbench.colorTheme
設定は考慮されなくなります。これはwindow.autoDetectColorScheme
が無効の場合にのみ使用されます。
このマイルストーンでの新機能は、テーマピッカーダイアログ(設定: 色のテーマコマンド)がシステムカラーモードを認識するようになったことです。システムがダークモードの場合、テーマ選択がダークテーマのみを表示していることに注目してください。
このダイアログには、window.autoDetectColorScheme
設定に直接移動できる新しいボタンも追加されました。
コメントにMarkdownリンクを貼り付け
コメントコントロールの入力エディターでは、リンクを貼り付けるとMarkdownファイルにリンクを貼り付けるのと同じ動作になります。貼り付けオプションが表示され、コピーした生のリンクの代わりにMarkdownリンクを貼り付けることができます。
ソース管理
ブランチ切り替え時の開いているエディターの保存/復元
このマイルストーンで、ソース管理ブランチを切り替える際にエディターを保存および復元するという長年の機能リクエストに対応しました。この機能を有効にするには、設定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.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
...
両方のリンクが自動的に更新され、両方とも有効なままであることに注目してください!
リモート開発
Remote Development拡張機能を使用すると、開発コンテナー、SSHまたはRemote Tunnels経由のリモートマシン、またはWindows Subsystem for Linux(WSL)をフル機能の開発環境として使用できます。
主なハイライトは次のとおりです。
- SSH経由でWSLに接続
これらの機能の詳細については、Remote Developmentリリースノートを参照してください。
拡張機能への貢献
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
に設定されている場合、ノートブックツールバーとセル間の挿入ツールバーに生成ボタンが表示されます。フォーカスがノートブックリストまたはセルコンテナにあるときに、macOSではCmd+I(Windows/LinuxではCtrl+I)を押すことでもトリガーできます。この機能は、言語モデルの助けを借りて新しいセルにコードを生成するプロセスを簡素化するのに役立ちます。
Python
「継承されたすべての抽象クラスを実装」コードアクション
Pylanceを使用すると、抽象クラスの操作がより簡単になります。抽象クラスを継承する新しいクラスを定義する際に、継承されたすべての抽象クラスを実装コードアクションを使用して、親クラスのすべての抽象メソッドとプロパティを自動的に実装できるようになりました。
テーマ: Catppuccin Macchiato (vscode.devでプレビュー)
新しい自動インデント設定
以前は、Pylanceの自動インデント動作はeditor.formatOnType
設定によって制御されていました。これは、自動インデントを無効にし、他のサポートされているツールで入力時のフォーマットを有効にしたい場合に問題となることがありました。この問題を解決するため、Pylanceは独自の自動インデント動作を制御する設定としてpython.analysis.autoIndent
(デフォルトで有効)を持っています。
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ドキュメントを作成していて、ドキュメントのあるセクションが実際には別の場所に属していることに気づいたとします。そこで、そのセクションを別のファイルにコピーして貼り付けます。問題ないですよね?しかし、コピーしたテキストに相対パスリンク、参照リンク、または画像が含まれていた場合、それらは壊れてしまう可能性が高く、手動で修正する必要があります。これは本当に手間がかかる作業ですが、ありがたいことに新しい「貼り付け時にリンクを更新」機能が役立ちます!
この機能を有効にするには、"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
)は、言語モデル情報を取得し、与えられた文字列のトークンを数えるための新しい関数をエクスポートします。それらはそれぞれgetLanguageModelInformation
とcomputeTokenLength
です。これらの関数を使用して、言語モデルの制限内のプロンプトを構築する必要があります。
注: インラインチャットは、今後登場するチャット参加者APIによって提供されるようになりました。これはまた、
registerInteractiveEditorSessionProvider
が非推奨となり、間もなく削除されることを意味します。
ドキュメント貼り付け提案の更新
ドキュメント貼り付け提案APIのイテレーションを継続しました。このAPIにより、拡張機能はテキストドキュメントでのコピー/貼り付け操作にフックできるようになります。
APIへの注目すべき変更点には以下が含まれます。
-
新しい
resolveDocumentPasteEdit
メソッドは、貼り付け操作時に編集を補完します。編集の計算に時間がかかる場合にこれを使用すべきです。これは、貼り付け編集が実際に適用される必要がある場合にのみ呼び出されるためです。 -
すべての貼り付け操作は、
DocumentDropOrPasteEditKind
によって識別されるようになりました。これは既存のCodeActionKind
と非常によく似ており、貼り付け操作のキーバインディングと設定で使用されます。
ドキュメント貼り付け拡張機能サンプルには、最新のAPI変更がすべて含まれているため、APIをテストできます。変更点と全体的なAPI設計についてフィードバックを共有してください。
ホバーの詳細レベル
今回のイテレーションでは、ホバーの縮小/展開を行う新しい提案APIとしてeditorHoverVerbosityLevel
を追加しました。これは、VerboseHover
という新しい型を導入します。この型には、ホバーの詳細レベルを増減できることを示す2つのブール値フィールド: canIncreaseHoverVerbosity
とcanDecreaseHoverVerbosity
があります。いずれかがtrueに設定されている場合、ホバーは+
および-
アイコンとともに表示され、これらを使用してホバーの詳細レベルを増減できます。
提案されたAPIは、provideHover
メソッドの新しいシグネチャも導入します。これは、HoverContext
型の追加パラメーターを受け取ります。ユーザーからホバー詳細レベルのリクエストが送信されると、ホバーコンテキストには以前のホバーと、ユーザーが詳細レベルを増やすか減らすかを示すHoverVerbosityAction
が入力されます。
拡張機能トリガーのテスト実行におけるpreserveFocus
拡張機能によってトリガーされるテスト実行におけるpreserveFocus
ブール値の提案があります。以前は、拡張機能APIからトリガーされたテスト実行では、フォーカスがテスト結果ビューに移動することがなく、一部の拡張機能ではユーザーエクスペリエンスの互換性を維持するために独自の解決策を考案する必要がありました。この新しいオプションはTestRunRequest
に設定でき、あたかもエディター内から実行がトリガーされたかのようにフォーカスを移動するようエディターに要求します。
注目すべき修正点
- 209917 補助ウィンドウ: 最大化された状態を復元(Linux、Windows)
ありがとうございます
最後に、VS Codeの貢献者の皆様に心からの感謝を申し上げます。
問題追跡
問題追跡への貢献者
- @gjsjohnmurray (John Murray)
- @IllusionMH (Andrii Dieiev)
- @RedCMD (RedCMD)
- @starball5 (スターボール)
- @ArturoDent (ArturoDent)
プルリクエスト
vscode
への貢献者
- @4-tel: 修正: デバッグコンソールで「!」で始まる行を検索する #174146 PR #210178
- @CareyJWilliams (Carey Williams): タスクテンプレートが空のtasks.jsonに書き込むのを修正 PR #210675
- @cpendery (Chapman Pendery)
- 修正: バンドルエラーによりターミナルサジェストが失敗する PR #208822
- 機能: シェル統合にgit-bashサポートを追加 PR #208960
- 修正: Windowsでのターミナルマーカーの配置を改善 PR #209136
- 修正: 補完がない場合、ターミナルサジェストはモーダルを非表示にするべき PR #210289
- 修正: git bashで分割が失敗する PR #210513
- @Ditoo29 (Diogo Pinto): 修正: 改行文字のシリアル化 PR #209703
- @frankli0324 (Frank): npm view実行時にcorepackの自動ピン機能を無効化 PR #210601
- @g-plane (Pig Fang): すべてのファイルがステージングまたはコミットされたときにGitマルチ差分エディターを自動的に閉じる PR #210327
- @gjsjohnmurray (John Murray)
workbench.activityBar.iconClickBehavior
とworkbench.activityBar.location
設定の説明を改善 PR #210574- アクティビティバーアイコンバッジを正しくクリア(修正 #210640) PR #210645
- @grgar (George Garside)
- Web上でwindow.customTitleBarVisibility設定を使用しない PR #209162
- カラーピッカーコマンドのタイトルを修正 PR #210349
- プロンプトの最後にcmd開始エスケープを移動 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): 修正: シェル統合bashファイルで
cmd
をローカルにする PR #208364 - @pagict (Premium): 機能: 検索ビューでサブツリーを展開するためのメニュー項目「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): 修正: 最初の読み込み時にミニマップセクションヘッダーが不完全に表示される問題:#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): 修正: 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): 修正:
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): 機能:
git worktree add
によって生成された.gitを無視する PR #943
language-server-protocol
への貢献者
- @asukaminato0721 (Asuka Minato): 2つのLSPを追加 PR #1918
- @MariaSolOs (Maria José Solano): マークアップ診断メッセージの明確化を追加 PR #1917
- @practicalli-johnny (Practicalli Johnny): サーバー: clojure-lspリポジトリとメンテナーを更新 PR #1921
- @sz3lbi (szelbi): SAP CDSサーバーを追加 PR #1924
- @unvalley (unvalley): ドキュメント: lspサーバーにbiomeを追加 PR #1923
- @Wilfred (Wilfred Hughes): RequestCancelledドキュメントコメントのタイプミスを修正 PR #1922
monaco-editor
へのコントリビューション
- @timotheeguerin (Timothee Guerin): TypeSpec言語のサポートを追加 PR #4450