2023年7月 (バージョン 1.81)

アップデート 1.81.1: このアップデートでは、以下のissueに対処しています。

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


Visual Studio Code 2023年7月リリースへようこそ。今回のバージョンでは多くのアップデートがあり、皆様に気に入っていただけることを願っています。主なハイライトは以下のとおりです。

これらのリリースノートをオンラインで読むには、code.visualstudio.comUpdates にアクセスしてください。

Insiders: 最新機能をいち早く試したいですか? 夜間ビルドの Insiders をダウンロードして、最新のアップデートをすぐにお試しください。

アクセシビリティ

アクセシブルビューの改善

アクセシブルビューを開く (⌥F2 (Windows Alt+F2, Linux Shift+Alt+F2)) コマンドを使用すると、スクリーンリーダーのユーザーはコンテンツを文字ごと、行ごとに検査できます。前回のイテレーションでは、エディターのホバーとチャットパネルの応答にアクセシブルビューを追加しました。

通知、インラインチャットの応答、Jupyter ノートブックの出力、およびワークベンチのホバーにアクセシブルビューが追加されました。

アクセシブルビューを提供する要素がフォーカスされると、ARIA ラベルにヒントが表示されます。このヒントは、accessibility.verbosity 設定で機能ごとに無効にできます。

チャットパネルと通知リスト内の要素間を簡単に移動するための、アクセシブルビューで次を表示 (⌥] (Windows, Linux Alt+])) および アクセシブルビューで前を表示 (⌥[ (Windows, Linux Alt+[)) コマンドがあります。

Breadcrumb シンボル情報

Breadcrumb をフォーカスして選択 (breadcrumbs.focusAndSelect) コマンドを使用した後に、Breadcrumb ナビゲーションにスクリーンリーダー用のシンボル情報が含まれるようになりました。

入力コントロールと結果ナビゲーションの一貫性

入力コントロール (例: 検索またはフィルター入力) とその結果の間を移動する際のエクスペリエンスが、拡張機能ビュー、キーボードショートカットエディター、およびコメント、問題、デバッグコンソールパネル全体で (⌘↓ (Windows, Linux Ctrl+Down)) および (⌘↑ (Windows, Linux Ctrl+Up)) を使用して一貫性を持つようになりました。

アクセシブル差分ビューアー

差分エディターでは、差分レビューパネルアクセシブル差分ビューアー に名前変更されました。アクセシブル差分ビューアーは、差分エディターのアクセシビリティの欠点に対処し、F7 または差分エディターの その他のアクション メニューから アクセシブル差分ビューアーを開く コマンドで開くことができます。この名前変更に伴い、いくつかのバグ修正と、アクセシビリティヘルプダイアログを起動したり、ビューアーから変更されたエディターにジャンプしたりするなどの新機能も追加しました。

プロファイル

部分的なプロファイルのサポート

設定、キーボードショートカット、スニペット、タスク、および拡張機能の一部の構成のみをカスタマイズするプロファイルを作成できるようになりました。たとえば、キーボードショートカットを除くすべての構成を持つプロファイルを作成でき、このプロファイルがアクティブな場合、VS Code はデフォルトプロファイルのキーボードショートカットを適用します。

以下の 新しいプロファイルの作成 スクリーンショットでは、キーボードショートカット がオフになっており、デフォルトプロファイルを使用 というメッセージが表示されています。その VS Code セッション中にアクティブなキーボードショートカットは、新しいプロファイルには適用されません。

Create New Profile dropdown with keyboard shortcuts unchecked

プロファイルテンプレートまたは既存のプロファイルからコピーするときに、コピー元 ドロップダウンメニューを使用して、部分的なプロファイルを作成することもできます。

Create a profile by copying from a Project Template or existing profile

プロファイルの編集 UI でプロファイルを編集することにより、既存のプロファイルをデフォルトプロファイルの構成を使用するように構成することもできます。

Edit Profile dropdown with Keyboard Shortcuts unchecked

部分的なプロファイルをエクスポートする場合、プロファイルでカスタマイズされた構成のみをエクスポートするか、デフォルトプロファイルの構成も含むかを選択できます。

Profile view with Keyboard Shortcuts unchecked and Export button visible

すべてのプロファイルに設定を適用

設定エディターで すべてのプロファイルに設定を適用 オプションを選択することにより、すべてのプロファイルに設定を適用できるようになりました。

Apply Setting to all Profiles context menu item in the Settings editor

これにより、設定の値がすべてのプロファイルに適用されます。任意のプロファイルからのこの設定への更新は、すべてのプロファイルに適用されます。すべてのプロファイルに設定を適用 オプションをオフにすることで、この同期を元に戻すことができます。

すべてのプロファイルに拡張機能を適用

拡張機能ビューで すべてのプロファイルに拡張機能を適用 オプションを選択することにより、すべてのプロファイルに拡張機能を含めることができるようになりました。

Apply Extension to all Profiles context menu item in the Extensions view

これにより、この拡張機能がすべてのプロファイルで使用できるようになります。すべてのプロファイルに拡張機能を適用 オプションをオフにすることで、これを元に戻すことができます。

デフォルト以外のプロファイルで調整された設定 JSON ファイルコマンド ID

基本設定: ユーザー設定を開く (JSON) (workbench.action.openSettingsJson) コマンドは、ユーザーがデフォルト以外のプロファイルを使用している場合、プロファイル固有の設定 JSON ファイルを開くようになりました。アプリケーションスコープの設定を表示するには、代わりに 基本設定: アプリケーション設定を開く (JSON) (workbench.action.openApplicationSettingsJson) コマンドを使用してください。

ワークベンチ

今後のアップデートのリリースノート

毎月の安定版アップデートをインストールする準備が整うと、アクティビティバーの下部にある 管理 メニュー (歯車ボタン) の アップデートリリースノートを表示 コマンドを使用して、リリースノートをプレビューできるようになりました。

エディター

markdown.editor.pasteUrlAsFormattedLink 設定に、新しいオプション smart が追加されました。smart ペースト機能は、自動 Markdown リンクの書式設定を望まないテキストに貼り付ける場合を検出できます。smart ペーストで無視される状況には、Markdown リンク内、別の Markdown リンク上、およびコードブロック内への貼り付けが含まれます。

デフォルトでは、pasteUrlAsFormattedLink 機能は現在オフ (never) ですが、設定を smart または always (常に書式設定された URL リンクを作成) に変更できます。

非同期トークン化のロールアウト

1.76 アップデート では、レンダラープロセスのパフォーマンスを向上させるために、Web ワーカーでエディタードキュメントの非同期トークン化を実装しました。それ以来、まれな競合状態によって引き起こされるいくつかのバグを修正し、今回のリリースでは、この機能を Stable ユーザーにロールアウトし始めています。

待機したくない場合は、editor.experimental.asyncTokenizationtrue に設定すると、非同期トークン化をすぐに利用できます。

差分エディター

今回のイテレーションでは、新しい差分エディターの作業を継続し、Stable ユーザーに段階的にロールアウトする予定です。"diffEditor.experimental.useVersion2": true を設定すると、すぐに試すことができます。新しい差分エディターには、以下で説明するいくつかの新機能とバグ修正が含まれています。

変更のない領域の折りたたみ

新しい差分エディターで変更のない領域を非表示にするには、diffEditor.experimental.collapseUnchangedRegions を使用します。この機能は、変更のない行が多数ある大きな差分を確認する場合に役立ちます。

非表示行ブロックの境界線をドラッグまたはクリックすると、下部または上部からテキストを表示できます。

A screenshot of the "Collapse Unchanged Regions" feature in the new diff editor

差分領域の配置

新しい差分エディターでは、差分領域内のテキストが配置されるようになり、インデントが変更され、行が挿入された差分を確認するのがはるかに簡単になりました。

前 (差分領域の配置と空白の差分が無効)

A side by side diff without diff region alignment

後 (差分領域の配置あり)

A side by side diff with diff region alignment

新しい差分アルゴリズムがデフォルトで有効になりました

新しい差分アルゴリズムのロールアウトが完了し、VS Code でデフォルトになりました。アルゴリズムの改善点の詳細については、過去のリリースノート を参照してください。

差分のノイズリダクション

今回のアップデートでは、新しい差分アルゴリズムに、無関係な単語をマッチングする可能性を減らすためのヒューリスティックを追加しました。

これは、以前の差分エディターの外観です (this が両側で一致していることに注意してください。一致は役に立ちませんが)

Before using the new diff algorithm

これは、ヒューリスティックの改善後の外観です (無関係な一致が少なくなっていることに注意してください)

After using the new diff algorithm heuristics

サイドの切り替え

新しい差分エディターのサイドバイサイドビューを使用する場合、一方のサイドからもう一方のサイドにジャンプできる新しいコマンド 差分エディター: サイドの切り替え が追加されました。サイドを切り替えると、アクティブなエディターのカーソル位置と現在の選択範囲がもう一方のサイドにマップされます。

その他にも

新しい差分エディターの変更点の詳細については、1.80 リリースノート を確認してください!

ターミナル

インラインターミナルタブのカスタムホバー

単一のターミナルがある場合に表示されるパネルインラインターミナルタブで、より一貫した外観と埋め込みリンクのサポートのためにカスタムホバーを使用するようになりました。

Hovering the inline terminal tab will show information about the terminal

ソース管理

コミュニティからのフィードバックに基づいて、バージョン 2.31rev-parse Git コマンドに追加された --path-format オプションを使用して、パスにシンボリックリンクを持つ Git リポジトリのサポートが追加されました。今回のリリース以降、すべてのソース管理機能 (たとえば、ソース管理 ビュー、リポジトリの検出、追加/変更/削除された行のエディター装飾など) は、そのようなリポジトリを開いたときに期待どおりに動作するはずです。

デバッグ

JavaScript デバッガー

Fast Node (Version) Manager のサポート

JavaScript デバッガーが、ランタイムバージョンで Fast Node Manager (fnm) をサポートするようになりました。fnm のユーザーは、launch.jsonruntimeVersion プロパティを設定して Node.js のバージョンを選択できるようになりました。

ノートブック

閉じられたノートブックの豊富なコンテンツ検索

以前のリリースでは、開いているノートブックの豊富なコンテンツワークスペース検索を導入しました。閉じられたノートブックの豊富なコンテンツ結果も表示するプレビューサポートが追加されました。

検索ビューでテキストを検索すると、ノートブックからの結果プレビューは、ノートブックエディターを開いたときの文字列の外観と一致する必要があります。これは、ノートブックが閉じている場合の入力の結果のみを表示することに注意してください。これを試すには、設定で search.experimental.closedNotebookRichContentResults を有効にします。

大規模なストリーミング出力のパフォーマンスの向上

実行中にストリーミングされる大規模なセル出力のパフォーマンスが向上しました。これにより、レンダリングアクティビティの量が削減されますが、現在はスクロール可能なセル出力にのみ適用されます。

ノートブックのスティッキー スクロール

今回のリリースでは、ノートブックエディターの「スティッキー スクロール」の最初のイテレーションが導入されました。ノートブックエディターの上部に表示されるスティッキー スクロールは、現在表示されているセルまたはセル出力の Markdown ヘッダーを示します。スティッキー スクロール「ライン」を選択すると、そのセルにフォーカスが移動し、ノートブックをすばやくナビゲートできます。この機能は、notebook.stickyScroll.enabled 設定または 表示: ノートブックのスティッキー スクロールを切り替える コマンドで有効になります。

VS Code for the Web

常に最新バージョンの組み込み拡張機能をロード

vscode.dev は、常に最新バージョンの組み込み拡張機能をロードするようになりました。これは、vscode.dev を開いたときに、組み込み拡張機能を最新バージョンに更新するための「再読み込みが必要」通知が表示されなくなることを意味します。

リモート開発

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

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

  • VS Code から Remote Tunnels をサービスとしてインストール。
  • 簡素化された @devcontainers/cli インストール。
  • ロックファイルに Dev Container Feature の依存関係を記録。

新しい拡張機能とバグ修正の詳細については、リモート開発リリースノート を参照してください。

拡張機能への貢献

GitHub Copilot

クイックチャット UX の改善

今回のイテレーションでは、クイックチャットのエクスペリエンスが刷新されました。

以前と同様に、⇧⌥⌘L (Windows, Linux Ctrl+Shift+Alt+L) でこのビューを切り替えることができます。具体的な改善点は次のとおりです。

  • 会話型チャット: クイックチャットのエクスペリエンスで、会話全体が表示されるようになり、最後の質問と回答に引き続きフォーカスが当てられます。
  • スラッシュコマンドの補完: / を入力すると、スラッシュコマンドの補完が表示されるようになりました。

さらに、チャットのどの部分を表示するかを制御する実験的な設定 chat.experimental.defaultMode があります。これには 3 つのオプションがあります。

  • chatView - アクティビティバーにチャットアイコンを表示して、チャットビューでチャットを起動します (デフォルト)。
  • quickQuestion - タイトルバーにチャットアイコンを表示して、クイックチャットを起動します。
  • both - チャットアイコンの両方が表示され、どちらかのチャット UI を開くことができます。

この設定とクイックチャットのエクスペリエンス全般に関するご意見をお待ちしておりますので、issue でフィードバックをお寄せください。

スラッシュコマンドの改善

パネル、インライン、およびクイックチャットのスラッシュコマンドに、次のユーザビリティの改善を加えました。

  1. スラッシュコマンドがブロックとしてレンダリングされるようになり、1 回のバックスペースで削除できます。
  2. /clear/help などの候補リストからスラッシュコマンドを受け入れると、コマンドが実行されるようになり、補完を受け入れた後にチャットリクエストを明示的に送信する必要がなくなりました。
  3. /createWorkspace パネルチャットスラッシュコマンドは、質問で最初に使用された後、チャット入力に再入力されるため、ワークスペースに関するフォローアップの質問を簡単にすることができます。

次の記録は、3 つの改善点をすべて示しています。

反復的な修正

/fix コマンドを使用している間、設定 github.copilot.editor.iterativeFixing で反復的な修正を有効にできます。反復的な修正が有効になっている場合、最初の修正後も選択範囲に診断エラーが残っている場合は、修正が 2 回実行されます。この設定はデフォルトで有効になっています。

ノートブック生成の改善

ノートブックを生成する際に、生成されたコードの品質を向上させ、言語拡張機能によって検出された生成されたコードの診断を修正するための追加手順があります。これはデフォルトでは無効になっていますが、次の設定で有効にできます。

"github.copilot.notebook": {
  "iterativeFixing": true,
  "iterativeImproving": true
}

インラインチャット

インラインチャットを使用している間、設定 inlineChat.showDiff を使用して差分ビューを有効または無効にできるようになりました。インラインチャットを右クリックしてコンテキストメニューを表示し、この設定を変更できます。

ターミナルコンテキスト

Copilot Chat は、アクティブなターミナルのバッファーと選択範囲を認識するようになりました。

Python

エラー耐性のある pytest 検出

新しいテストアーキテクチャのロールアウトの一環として、テストエクスプローラーパネルがエラー耐性のある pytest 検出をサポートするようになりました。pytest による検出中に、不明なインポートからのエラーなど、処理できるエラーがスローされると、エラーのあるファイルの外にある他のすべてのテストは引き続き検出されます。この機能は、まだ実験段階にある新しいテスト書き換えでのみ利用できます。書き換えは現在、Insiders の 100% と Stable ユーザーの 25% でアクティブになっていますが、まもなく普遍的に採用される予定です。それまでの間、pythonTestAdapter 設定でオプトインまたはオプトアウトできます。

引数付きファイルを実行するためのデバッガー構成

新しい Debugpy 拡張機能は、引数付き Python ファイル launch.json 構成を提供するようになりました。これは、コードやデバッガー構成を実行するたびに変更せずに、Python ファイルにさまざまな入力値を指定する場合に役立ちます。

この構成を使用するには、Debugpy 拡張機能がインストールされていることを確認してください。実行とデバッグ ビューを ⇧⌘D (Windows, Linux Ctrl+Shift+D) を押して開き、launch.json ファイルを作成 または歯車アイコンを選択して launch.json ファイルにアクセスします。Debugpy を選択し、使用可能な構成から Python: 引数付きファイル を選択します。

コマンドライン引数を必要とする Python ファイルをデバッグ (F5) する場合、Python ファイルに渡す目的の引数を入力できるプロンプトが表示されます。

引数を入力したら、Enter を押すとデバッガーが開始され、コードをステップ実行できます。

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

Python 拡張機能 API 用の npm パッケージ

Python 拡張機能が、他の拡張機能の作成者が Python 拡張機能 API にアクセスして変更を追跡しやすくするための npm パッケージを提供するようになりました。ユーザーのマシンで使用可能な Python 環境を操作するには、@vscode/python-extension npm モジュールを確認してください。

Python 拡張機能用の Dev Container

Microsoft 公式 Node.js イメージを使用した Python 拡張機能用の Dev Container が追加されました。この カスタム Dev Container を使用すると、ユーザーは Python 拡張機能リポジトリGitHub Codespace で開き、インストール不要で Python 拡張機能の開発とテストをすぐに開始できます。Python バージョン 3.7、3.8、3.9、3.10、および 3.11 がプリインストールされているため、ユーザーは pyenv を使用して Python バージョンを簡単に切り替えることができます。

Jupyter

Codespace 上の Jupyter サーバーに接続

github.dev で Jupyter ノートブックを使用している場合、カーネルピッカーを通じて GitHub Codespace インスタンスで実行されている Jupyter サーバーに接続できるようになりました。

コミットされていない変更で続行

ノートブックツールバーの 続行 ボタンを選択すると、基になる Codespace に切り替えることができ、ワークスペース内のコミットされていない変更は Codespace に反映されます。

GitHub Pull Requests and Issues

GitHub Pull Requests and Issues 拡張機能でさらに進捗がありました。この拡張機能を使用すると、プルリクエストと issue の作業、作成、および管理を行うことができます。今回のイテレーションでは、作成 ビューをよりクリーンで便利にするために重点を置きました。

作成 ビューの改善点は次のとおりです。

  • ビューは、常にデフォルトブランチを使用するのではなく、プルリクエストに最適なベースブランチを検出しようとします。
  • 作成 ビューから、レビュー担当者、担当者、ラベル、およびマイルストーンをプルリクエストに追加できます。
  • デフォルトでは、最後の「作成オプション」(例: ドラフトまたは自動マージ) が記憶されます。
  • ビューのパフォーマンスが大幅に向上しました。
  • ブランチを公開する前に差分を表示できます。
  • ブランチが公開されると、コミットを表示することもできます (これは未公開ブランチでは近日公開予定です)。

GitHub Pull Request and Issues extension Create view

その他のハイライトについては、拡張機能の 0.70.0 の変更ログ を確認してください。

GitHub 認証

サインアウト時の GitHub OAuth トークンの取り消し

以前は、VS Code で GitHub アカウントからサインアウトすると、OAuth トークンがシークレットストレージから削除されるだけでした。トークンは引き続き有効であり、GitHub の API にリクエストを行うことができます。トークン管理のセキュリティを向上させるために、バックエンドで トークンを削除 しようとするようになり、サインアウト後にトークンは無効になります。

拡張機能の作成

IOpenSettingsActionOptions に revealSetting と focusSearch を追加

拡張機能は、IOpenSettingsActionOptions 引数を受け入れる workbench.action.openSettingsJson などのコマンドに、revealSetting オブジェクトと focusSearch ブール値を渡せるようになりました。

たとえば、次のコマンド

vscode.commands.executeCommand('workbench.action.openSettingsJson', {
  revealSetting: { key: 'editor.renderWhitespace' }
});

ユーザー設定 JSON ファイルを開き、editor.renderWhitespace 設定が存在する場合はそれを表示します。

新しい TestController.invalidateTestResults メソッド

テスト拡張機能は、新しいメソッド TestController.invalidateTestResults を呼び出して、1 つ以上のテストの結果がもはや適用できない可能性があることをユーザーに通知できます。たとえば、拡張機能は次のようなことを行う可能性があります。

onFileChange(uri => {
  // invalidate tests in a file when a file changes:
  testController.invalidateTestResults(getTestsInFile(uri));
});
onConfigurationChange(() => {
  // invalidate results for all tests:
  testController.invalidateTestResults();
});

ネットワークプロキシの Kerberos 認証

https Node.js モジュールを使用する拡張機能は、Kerberos 認証を必要とするネットワークプロキシを使用できるようになりました。ローカルマシンに Kerberos が構成されている必要がありますが、拡張機能はこれを使用するために何もする必要はありません。

自動的に選択されたサービスプリンシパル名が機能しない場合は、ユーザーは http.proxyKerberosServicePrincipal 設定でサービスプリンシパル名を提供できます。

Kerberos Service Principal setting

QuickPickItem でのアイコンの確定

QuickPickItem のアイコンの API が確定しました。iconPath プロパティを使用して、QuickPickItem にアイコンを表示できるようになりました。

A quick pick with GitHub avatars as the item icons

エンジニアリング

名前マングリングによる VS Code の縮小

最近のエンジニアリングの取り組みにより、VS Code の出荷用 JavaScript のサイズが 20% 削減されました。名前マングリングによる VS Code の縮小 ブログ投稿では、VS Code エンジニアの Matt BiernerJohannes Rieken が、コードサイズを最適化するために識別子名マングリングを調査し、TypeScript を使用した効果的なソリューションを思いついた方法について学ぶことができます。

pty ホストのさらなる改善

先月の改善 に引き続き、pty ホストに次の改善が加えられました。

  • パフォーマンス
    • pty ホストは必要な場合にのみ起動するようになったため、ターミナルをまったく開かないユーザーは約 50〜100 MB 節約できます。
    • ターミナルの再接続のさらなる並列化により、ターミナルの初期化時間が短縮されました。
    • ターミナル出力メッセージがバッファリングされるようになり、pty ホストとターミナルをホストするウィンドウ間のトラフィックが削減されました。
  • 診断
    • トレースログレベルの場合、各プロセス間のレイテンシ統計がログに記録されます。
    • ウィンドウ ID が ターミナル 出力チャネルのすべてのログに記録されます。
    • Pty ホスト RPC ロギングで、例外の結果として失敗した応答がログに記録されるようになりました。

注目すべき修正

  • 133542 間違ったターミナルに再接続された
  • 168021 JavaScript デバッガーでのオブジェクト補完の改善
  • 184894 ターミナルでスクロールバーをクリックしてドラッグできない

謝辞

最後になりましたが、VS Code に貢献してくださった皆様に感謝申し上げます。

Issue トラッキング

Issue トラッキングへの貢献

プルリクエスト

vscode への貢献

vscode-extension-samples への貢献

vscode-hexeditor への貢献

  • @lorsanta
    • fix: Home キーを押したときに先頭までスクロール PR #448
    • Fix: タブグループを切り替えると選択数が更新される。 PR #449

vscode-js-debug への貢献

vscode-pull-request-github への貢献

vscode-vsce への貢献

inno-updater への貢献

language-server-protocol への貢献

monaco-editor への貢献