に参加して、VS Code の AI 支援開発について学びましょう。

2020年4月 (バージョン 1.45)

更新 1.45.1: この更新では、これらの問題が解決されています。

ダウンロード: Windows: x64 | Mac: Intel | Linux: deb rpm tarball snap


Visual Studio Code の2020年4月リリースへようこそ。このバージョンには、皆様に気に入っていただけることを願う多くの更新があります。主なハイライトをいくつかご紹介します。

これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com更新 にアクセスしてください。

Insiders: 新しい機能をいち早く試したいですか?夜間ビルドのInsidersをダウンロードして、最新のアップデートが利用可能になったらすぐに試すことができます。Visual Studio Codeの最新ニュース、アップデート、コンテンツについては、Twitter @codeをフォローしてください!

アクセシビリティ

このマイルストーンでは、コミュニティから多くのフィードバックをいただき、多くのアクセシビリティの問題を特定し、解決することができました。

  • ワークベンチを簡単にナビゲートできるよう、次の部分にフォーカス (F6) と前の部分にフォーカス (⇧F6 (Windows、Linux Shift+F6)) コマンドを導入しました。
  • ステータスバーがアクセス可能になり、フォーカスするとスクリーンリーダーがその内容を読み上げることができます。
  • 開いているエディター、ブレッドクラム、問題ビューなど、ワークベンチ内のすべてのリストおよびツリーウィジェットに適切なARIAラベルを導入しました。

Visual Studio Code をよりアクセスしやすい製品にし、すべてのユーザーの体験を向上させることは、当社のチームの最優先事項の1つであり、VS Code のアクセシビリティに関する新しい Gitter チャンネルを作成しました。ユーザーの皆様には、参加してフィードバックを提供し、問題提起し、アクセシビリティのプラクティスを共有していただくことをお勧めします。

Workbench

マウスホイールを使ってタブを切り替える

エディタータブの上でマウスホイールをスクロールしても、現在タブを切り替えることはできず、表示されていないタブを表示するだけです。新しい設定 workbench.editor.scrollToSwitchTabs により、動作を変更してアクティブなエディタータブを切り替えることができます。

以下に示すように、エディタータブ領域にカーソルがある状態でユーザーがマウスホイールをスクロールすると、アクティブなエディターが変更されます。

Changing editor tabs using the mouse wheel

注: Shift キーを押しながらスクロールすると、逆の動作が得られます (例えば、scrollToSwitchTabs 設定がオフの場合でもエディタータブを切り替えることができます)。

カスタムウィンドウタイトルセパレーター

新しい設定 window.titleSeparator により、ウィンドウタイトルで使用される区切り文字を変更できます。デフォルトでは、ダッシュ '-' が使用されます。

Window title separator using dash

デフォルトテーマのサイドバーセクションヘッダーを更新

デフォルトのダークテーマとライトテーマのサイドバーセクションヘッダーのスタイルを更新しました。透明な背景を使用し、各ヘッダーに境界線を表示するようになりました。

以下に示すように、開いているエディター セクションヘッダーには背景色がありません。また、VSCODEOUTLINE ヘッダーには上部に境界線があります。

Side Bar section headers

Editor

高速な構文ハイライト

VS Code の構文ハイライトは、Text Mate Grammar の解釈によって実行されます。これらの文法は正規表現で作成されており、oniguruma 正規表現ライブラリを使用して評価できます。これまで、このような正規表現の評価には、VS Code デスクトップ用 (ネイティブのノードモジュール) とブラウザ版 VS Code 用 (Web Assembly バイナリ) の2つの異なるライブラリを使用していました。

TextMate インタープリターでの使用に最適化された専用の Web Assembly バインディングを新たに作成しました。内部ループでのメモリ割り当てを回避し、わずか数ヶ月前に oniguruma に追加された新しい API を採用することで、これまでの両方のアプローチよりも高速で、通常のプログラミングファイルのハイライトで最大3倍のパフォーマンスを提供するバリアントを作成することができました。詳細と測定値については、プルリクエスト #95958 を確認してください。

セマンティックトークンのスタイリング

ユーザー設定でセマンティックテーマのルールをカスタマイズできるようになりました。セマンティックカラーリングは TypeScript と JavaScript で利用可能で、Java と C++ のサポートも開発中です。組み込みテーマではデフォルトで有効になっており、テーマ拡張機能にも採用されつつあります。

editor.semanticTokenColorCustomizations 設定を使用すると、ユーザーはデフォルトのテーマルールを上書きし、テーマをカスタマイズできます。

Semantic token color customization

上記の設定は、Default Dark+ テーマを変更します。これにより、パラメーターに新しいスタイル (斜体と新しい色) が与えられ、デフォルトライブラリ (例えば、PromiseMap、およびそれらのプロパティ) のすべてのシンボルが下線で強調表示されます。

以下の例は、すべてのテーマにセマンティックスタイリングを追加します

"editor.semanticTokenColorCustomizations": {
    "enabled": true, // enable semantic highlighting for all themes
    "rules": {
        // different color for all constants
        "property.readonly": "#35166d",

        // make all symbol declarations bold
        "*.declaration": { "bold": true }
    }
}

セマンティックトークンのテーマ設定については、セマンティックハイライトガイドで詳しく説明されています。

Default Dark+ テーマの定数の新しい色

Default Dark+ および Default Light+ テーマでは、定数が書き込み可能な変数とは異なる色で表示されるようになりました。

以下の例では、htmlMode および range 定数が result 変数とは異なる色で表示されています。

Default Dark+ テーマ

Constant color in the Dark+ theme

Default Light+ テーマ

Constant color in the Light+ theme

永続的なUndoの無効化

前回のマイルストーンで、ファイルを閉じて再度開いたときに元に戻す/やり直しスタックが永続化されるように変更しました。この新機能を望まない人もいたため、永続的なUndoを無効にする設定 files.restoreUndoStack が追加されました。

統合ターミナル

プロンプト関連のいくつかのコマンドの削除

以下のコマンドが削除されました

  • workbench.action.terminal.deleteWordLeft
  • workbench.action.terminal.deleteWordRight
  • workbench.action.terminal.deleteToLineStart
  • workbench.action.terminal.moveToLineStart
  • workbench.action.terminal.moveToLineEnd

これらのコマンドは、ターミナルが使用するコマンドキーバインドに基づいて最善の推測で行われる特定の文字シーケンスをターミナルに送信することで機能していました。これらのコマンドの問題は、それがブラックボックスであり、それらがどのように機能するかを理解するために vscode コードベースを文字通り検索する必要があったことです。それらは、同じことを汎用的に行う workbench.action.terminal.sendSequence コマンドのカスタムキーバインドに置き換えられました。

これらの高度なキーボードショートカットは、引数を含むため、キーボードショートカット UI で完全に表示することはできませんが、設定: デフォルトのキーボードショートカット (JSON) を開く コマンドを実行することで JSON 定義を表示できます。

Terminal sendSequence keybindings JSON

PowerShellでの複数行テキストの貼り付けのサポート

複数行の貼り付けは PowerShell でこれまで機能しませんでした。VS Code は常にテキストをタイピングとまったく同じ方法で送信していたためです。上記で説明したように、いくつかのキーバインドは workbench.action.terminal.sendSequence コマンドを使用するように変更され、Windows のみで新しいキーバインドが追加されたことにお気づきかもしれません。

{ "key": "ctrl+v",                "command": "workbench.action.terminal.sendSequence",
                                     "when": "terminalFocus && !accessibilityModeEnabled && terminalShellType == 'pwsh'",
                                     "args": {"text":"\u0016"} },

この新しいキーバインドは、Ctrl+V を表すテキストを直接 PowerShell に送信し、PSReadLine によって適切に処理されます。

以前

Terminal paste error before

以後

Terminal paste correctly after

テーマ: Sapphire (Dim)

ダブルクリックによる単語選択の制御

新しい設定 terminal.integrated.wordSeparators を使用すると、ターミナルでダブルクリックしたときに単語を区切るために使用される区切り文字をカスタマイズできます。

デフォルトの区切り文字は

  "terminal.integrated.wordSeparators": " ()[]{}',\"`─"

デバッグ

自動デバッグ構成

VS Code でデバッグを設定するのは、ユーザーが新しいデバッグ構成を作成するか (または少なくともテンプレートをニーズに合わせて変更する)、骨の折れる作業になることがあります。デバッグエクスペリエンスを簡素化するための継続的な取り組みとして、現在のプロジェクトを分析し、追加のユーザー構成を必要としない高品質のデバッグ構成を自動的に提供する手段をデバッグ拡張機能の作成者に提供する新機能を追加しました。

ビルドタスクが提供されるのと同様に、自動デバッグ構成は、デバッグビューの構成ドロップダウンとデバッグの選択と開始クイックピックで、適切なデバッガー (フォルダーアイコン) の下にグループ化されます。デバッガーが選択されると、VS Code は利用可能なすべての自動構成を提示します。構成を選択すると、新しいデバッグセッションが開始されます。

次のスクリーンキャストは、新しいJavaScriptデバッガー(プレビュー版)と教育用のMock Debugの機能を示しています。

Automatic debug configurations

クイックピックは、クイックオープン (⌘P (Windows、Linux Ctrl+P)) で「debug 」(スペース付き) と入力するか、デバッグ: デバッグの選択と開始 コマンドをトリガーすることで開くことができます。

次のマイルストーンでは、さらなる設定のために自動デバッグ構成を launch.json に簡単に追加できるUIを追加する予定です。

タスク

高速クイックピックの無効化

バージョン1.44では、タスク: タスクの実行コマンドを実行したときに表示されるタスクピッカーのレイアウトを変更し、高速化することで改善しました。しかし、高速クイックピックでは、実行したいタスクによってはタスクピッカーが2レベル深くなります。以前のUIに戻したい場合は、task.quickOpen.showAll設定で高速ピッカーを無効にできるようになりました。

実行時に保存

以前は、タスクが実行されると、すべてのダーティエディタが常に保存されていました。タスクの実行時にエディタを保存したくない場合は、task.saveBeforeRun でその動作を設定できるようになりました。

言語

TypeScript ステータスバーエントリの機能強化

TypeScript ファイルにフォーカスすると、VS Code はステータスバーに現在の TypeScript バージョンを表示します。

TypeScript version status bar entry

バージョンをクリックすると、現在のTypeScriptプロジェクトに適切なコマンドが表示されるようになりました。

TypeScript project commands

ユーザーにTypeScriptのワークスペースバージョンへの切り替えを促す

新しい typescript.enablePromptUseWorkspaceTsdk 設定により、ユーザーに TypeScript のワークスペースバージョンに切り替えるかどうかを尋ねるプロンプトが表示されます。

Prompt shown when opening a workspace with local TypeScript version

プロンプトを有効にするには、プロジェクトのワークスペース設定として "typescript.enablePromptUseWorkspaceTsdk": truetypescript.tsdk を含めます。

Markdownファイルの編集者リンクとMarkdownプレビューのリンクがフォルダを指すことができるようになりました。これらのリンクの1つをクリックすると、VS Codeのファイルエクスプローラーにターゲットフォルダが表示されます。

ソース管理

GitHubリポジトリへのGitHub認証

VS Code は、GitHub リポジトリに対する自動 GitHub 認証をサポートするようになりました。これにより、システムに認証マネージャーを構成することなく、パブリックリポジトリとプライベートリポジトリ間でクローン、プル、プッシュを行うことができます。統合ターミナルで呼び出される Git コマンド (例: git push) も、GitHub アカウントに対して自動的に認証されるようになりました。

git.githubAuthentication 設定で GitHub 認証を無効にすることができます。また、git.terminalAuthentication 設定でターミナル認証の統合を無効にすることもできます。

Gitコミット入力ボックスを非表示にする

新しい設定 git.showCommitInput により、Gitリポジトリのコミット入力ボックスを非表示にできます。

インライン差分が編集可能に

ファイル内の変更をプレビューする際、クイック差分エディター内で編集できるようになりました。

Editable inline diff

プレビュー機能

プレビュー機能はリリース準備ができていませんが、使用できる程度には機能しています。開発段階での皆様の早期フィードバックをお待ちしております。

設定の同期

過去数ヶ月間、マシン間で VS Code の設定を同期する作業を進めており、この機能は Insiders リリースでプレビューとして利用可能です。

GitHub アカウントでサインインして、VS Code の設定を同期できるようになりました。

Settings Sync Sign in with GitHub

テーマ: GitHub Sharp (カスタマイズ付き)

グローバルスニペットの同期もサポートされるようになりました。

新しいJavaScriptデバッガー

今月も新しい JavaScript デバッガーの開発が進みました。これは Insiders ではデフォルトでインストールされており、VS Code stable では Marketplace からインストールできます。debug.javascript.usePreview 設定を有効にすることで、既存の起動構成で使い始めることができます。

今月追加された新機能の一部をご紹介します

プロファイリングのサポート

コールスタックビューの新しいプロファイルボタンをクリックするか、デバッグ: パフォーマンスプロファイルの取得コマンドを使用することで、Node.js またはブラウザアプリケーションからCPUプロファイルをキャプチャできます。プロファイルをいつ停止するか(停止するまで、一定時間、別のブレークポイントに到達するまで)を選択できます。

プロファイルが終了すると、ワークスペースフォルダに保存され、VS Codeで開かれます。安定版ビルドを実行している場合は、ビジュアライザー拡張機能をインストールして表示することをお勧めします。Insiders版では、拡張機能がすでに組み込まれています。プロファイルを開くと、関数レベルおよび特定の「ホット」行のパフォーマンス情報を含むCodeLensがファイルに追加されます。他の多くのツールでキャプチャされたプロファイルとは異なり、記録されたプロファイルはソースマップ対応です。

Animation showing the process of taking a profile

テーマ: Earthsong、フォント: Fira Code

自動アタッチの統合

debug.javascript.usePreview がオンになっている場合、VS Code の 自動アタッチ は、すべてのターミナルがデバッグターミナルと同様に機能できるようにする js-debug によって提供される新しいメソッドを使用します。

既存のデバッガーに対する自動アタッチの改善点

  • デバッガーはすぐにアタッチされ、プログラムの早い段階でブレークポイントにヒットできます。
  • 子プロセスは自動的にデバッグされます。
  • 自動アタッチ中にプロセスポーリングのオーバーヘッドはありません。

変数ビューからの複雑な値のコピー

これまで、VS Code の変数ビューからオブジェクトのような複雑な値をコピーしようとすると、データが切り捨てられたり、不完全になったりすることがよくありました。VS Code と js-debug の変更により、完全な値をコピーできるようになりました。

Animation showing copying and pasting a very large array

製品アイコンテーマ

Visual Studio Code には、ビューやエディターで使用される組み込みアイコンのセットが含まれており、ホバー、ステータスバー、拡張機能でも使用できます。これらのアイコンは、UI 全体のファイル名の横に表示されるファイルアイコンとは対照的に、製品アイコンです。

VS Code に付属の製品アイコンは、Codicon アイコンフォントに含まれており、デフォルトの製品アイコンテーマとして使用されます。拡張機能は、これらのアイコンを再定義し、VS Code に新しい外観を与えるための新しい製品アイコンテーマを提供できるようになりました。

Custom product icon themes

製品アイコンテーマのドキュメントに詳細があり、製品アイコンテーマのサンプルがあります。

開いているすべてのプロジェクトでTypeScript/JavaScriptシンボルを検索

TypeScript 3.9+を使用する場合、VS Codeのワークスペースシンボル検索は、デフォルトですべての開いているJavaScriptおよびTypeScriptプロジェクトの結果を含むようになりました。以前は、現在アクティブなファイルのプロジェクトのみを検索していました。

これは新しい "typescript.workspaceSymbols.scope" 設定によって制御されます。以前の動作に戻すには、"typescript.workspaceSymbols.scope": "currentProject" と設定してください。

ターミナル内のリンクは大幅に改善され、より堅牢な実装のための基盤となるシステムが変更され、次のことが可能になりました。

  • Webおよび file:// リンクの検出を向上させるために、エディターのリンク検出を使用する。
  • フォルダリンクのサポート、エクスプローラーでフォルダを開くか、新しいVS Codeウィンドウを開くかを選択できます。
  • 異なるリンクタイプに対する異なるリンクアクション。ワークスペースを検索する「単語」リンクにフォールバックします (terminal.integrated.wordSeparators 設定に基づく)。
  • エディターと同様のリンクハイライトとホバーエクスペリエンス。

Terminal with various links

テーマ: Topaz (Dim)

既知の問題のリストは、このクエリで確認できます。

動的なビューアイコンとタイトル

このマイルストーンでは、レイアウトをより柔軟にするための作業を継続しました。ワークベンチでビューを移動すると、アクティビティバーに新しいアイコンを作成したり、パネルに新しいタブを作成したりできます。新しく作成されたビューコンテナーに何が格納されているかを理解しやすくするために、ロジックを更新して理解しやすくしました。

カスタムコンテナがある場合、最初の可視ビューからタイトルとアイコンが継承されるようになりました。これにより、ビューを再配置することで変更できます。組み込みまたは拡張機能のコンテナの場合、このアイコンを可能な限り保持しようとします。以下に示すように、新しいビューがビューコンテナの最上部に配置されると、そのアイコンとタイトルが更新されます。

Dynamic icons and titles

最後に、カスタムコンテナを、含まれているすべてのビューを一度に移動できるようになりました。以下の短いビデオは、ターミナルと出力ビューの組み合わせをアクティビティバーにドラッグする様子を示しています。

Moving whole View Containers

拡張機能への貢献

リモート開発

リモート開発拡張機能の作業が続けられています。これにより、コンテナ、リモートマシン、または Windows Subsystem for Linux (WSL) をフル機能の開発環境として使用できます。

1.45の注目機能は以下の通りです。

  • 開発コンテナー: コンテナー構成の推奨を提供します。
  • 開発コンテナー: WSL 2 Docker および Podman エンジンのサポート。
  • 開発コンテナー: ローカルおよびコンテナーフォルダー用の新しい devcontainer.json 変数。

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

GitHub Pull Requests and Issues

以前は「GitHubプルリクエスト」という名前でしたが、GitHubプルリクエストとイシュー拡張機能は、1年以上前からVS Code内でプルリクエストを管理およびレビューできるようにしてきました。現在、この拡張機能はGitHubイシューのサポートを含むように拡張されました。

問題のサポートには以下が含まれます。

  • #-参照の問題と@-メンションされたユーザーへのホバー。
  • 問題とユーザーに対するインライン補完候補。
  • カスタムクエリを使用できるイシュービュー。
  • ブランチを作成し、コミットメッセージを入力するイシューでの作業を開始するアクション。

新しいリポジトリのサポートも提供されています。

以下の短いビデオは、GitHub に新しいプライベートリポジトリを公開する様子を示しています。ファイルが正常にアップロードされた後、GitHub でリポジトリを閲覧するオプションもあります。

Publish repository

詳細については、最近のGitHub Issues Integrationブログ投稿とWorking with GitHubドキュメントを参照してください。

GitHubイシューノートブック

VS Code チームは Notebook のネイティブサポートに取り組んでいます。現在最も人気のある Notebook は Jupyter Notebook であり、それらを調査する中で、偏りのない、さまざまなスタイルの Notebook をサポートする Notebook ソリューションを構築する方法を検討し始めました。

そのノートブックの1つがGitHub Issue Notebooks拡張機能です。これにより、イシューとプルリクエストの検索を管理し、結果をインラインでレンダリングできます。

GitHub Issue Notebook

この拡張機能はまだ開発中であり、VS Code Insiders でのみ動作しますが、これを使って Notebook を直接体験し、フィードバックを提供できます。

拡張機能作成

エディタータブの新しいテーマカラー

ワークベンチエディタータブをさらにテーマ設定するための新しい色が追加されました。

  • tab.unfocusedInactiveBackground: フォーカスされていないグループの非アクティブなタブの背景色
  • tab.hoverForeground: ホバー時のタブのフォアグラウンド色
  • tab.unfocusedHoverForeground: フォーカスされていないグループのホバー時のタブのフォアグラウンド色

エディタタイトル境界線の新しいテーマカラー

既存のカラー editorGroupHeader.tabsBorder は、エディタータブの下、ブレッドクラムの上に境界線を描画するように変更されました。新しいカラー editorGroupHeader.border を使用すると、エディターグループヘッダーの下 (例えば、有効な場合はブレッドクラムの下) に境界線を描画して、editorGroupHeader.tabsBorder の以前の動作を復元できます。

vscode NPMモジュールの非推奨化とアーカイブ化

2019年6月、event-stream 事件を受けて、vscode モジュールを @types/vscodevscode-test分割しました。今日、minimist のセキュリティ警告により、mocha@5.2.0、したがって minimist@0.0.8 に依存する vscode に依然として依存する拡張機能に対してセキュリティ警告が発生しました。残念ながら、mocha@5.2.0 は更新されなくなり、新しい mocha バージョンにアップグレードすると既存の機能が壊れてしまいます。

不要な依存関係を削除した vscode の新しいバージョンを公開しました。また、リポジトリをアーカイブし、NPM の vscode モジュールを非推奨にしました。@types/vscode および vscode-test への移行をお願いします。

新しい完了項目種別

vscode.CompletionItemKind に、課題とユーザーを表す2つの新しいエントリが追加されました。これらは、例えばTODOタグを追加するときにユーザー名を提案するために使用できます。

URIの操作

vscode.Uri.joinPath ユーティリティを追加しました。これは、既存の URI にパスセグメントを結合することで新しい URI を作成するファクトリ関数です。Node.js の path.join ユーティリティの URI 版だと考えてください。

拡張機能の場合、VS Code は Extension.extensionUriExtensionContext.extensionUri を介して拡張機能がインストールされている URI を公開します。結合ユーティリティを使用すると、拡張機能のリソースの URI を作成できるようになりました。

const fileUri = vscode.Uri.joinPath(context.extensionUri, './file.png');
const bytes = await vscode.workspace.fs.readFile(fileUri);

debug/callstack/context メニューのインライングループ

VS Code は debug/callstack/context メニューの inline グループへの貢献をサポートするようになりました。このグループに貢献されたコマンドは、ユーザーがデバッグセッション要素にホバーしたときにコールスタックにインラインでレンダリングされます。

Call Stack inline contribution

新しいデバッグテーマカラー

デバッグビューをスタイリングするための新しい色が追加されました。

  • debugView.exceptionLabelForeground: デバッガーが例外で中断されたときに CALL STACK ビューに表示されるラベルのフォアグラウンド色
  • debugView.exceptionLabelBackground: デバッガーが例外で中断されたときに CALL STACK ビューに表示されるラベルの背景色
  • debugView.stateLabelForeground: CALL STACK ビューで現在のセッションまたはスレッドの状態を示すラベルのフォアグラウンド色
  • debugView.stateLabelBackground: CALL STACK ビューで現在のセッションまたはスレッドの状態を示すラベルの背景色
  • debugView.valueChangedHighlight: デバッグビュー (例えば、変数ビュー) での値の変更をハイライトするために使用される色
  • debugTokenExpression.name: デバッグビュー (例えば、変数ビューまたは監視ビュー) に表示されるトークン名のフォアグラウンド色
  • debugTokenExpression.value: デバッグビューに表示されるトークン値のフォアグラウンド色
  • debugTokenExpression.string: デバッグビューの文字列のフォアグラウンド色
  • debugTokenExpression.boolean: デバッグビューのブール値のフォアグラウンド色
  • debugTokenExpression.number: デバッグビューの数値のフォアグラウンド色
  • debugTokenExpression.error: デバッグビューの式エラーのフォアグラウンド色

ソース管理

リソースコマンドを開くための新しい preserveFocus 引数

SourceControlResourceState.command コマンドを呼び出す際に、追加の preserveFocus: boolean 引数が渡されるようになり、拡張機能の作成者がより良いユーザーエクスペリエンスを提供できるようになりました。

入力テキストの MIME タイプ

ソース管理の入力テキストに、専用の MIME タイプ text/x-scm-input が追加されました。

入力ボックスの表示を制御する

拡張機能は、SourceControlInputBox.visible プロパティを使用して、各リポジトリのソース管理入力ボックスの表示を制御できるようになりました。

Git

リモートソースプロバイダー

Git 拡張 API が拡張され、他の拡張機能がリモートソースを提供して、Git: クローン コマンドに参加できるようになりました。

これはGitHub Pull Requests and Issues拡張機能の例です

Clone from GitHub

認証情報プロバイダー

Git 拡張機能 API が拡張され、拡張機能がワークベンチ内および統合ターミナル内で HTTPS Git リポジトリに対して呼び出される Git コマンドを認証するために、認証情報を提供できるようになりました。

SignatureInformation.activeParameter

SignatureInformation の新しい activeParameter プロパティを使用すると、すべてのシグネチャに対してアクティブなパラメーターを個別に指定できます。指定された場合、これはトップレベルの SignatureHelp.activeParameter プロパティを上書きします。

EventEmitterの厳密なnullチェックの修正

VS Code 1.44 以前では、EventEmitter.fire の引数はオプションでした。

// Valid in VS Code 1.44
const emitter = new EventEmitter<number>();

emitter.event((x: number) => console.log(x));

// Calling fire with no argument was valid but resulted in the `x` above being `undefined`
emitter.fire();

これは厳密なnullチェックに違反していましたが、コンパイルエラーは発生しませんでした。

VS Code 1.45 では、fire に引数が必要になりました。ソースコードで引数なしで .fire() を呼び出せるようにしたい場合は、new EventEmitter を使用してください。

Language Server Protocol

仕様のバージョン 3.16 の作業が開始されました。最初のステップとして、呼び出し階層サポートが提案状態から移動しました。3.16 仕様はまだ最終決定されておらず、フィードバックによっては変更される可能性があることに注意してください。

提案された拡張API

すべてのマイルストーンには新しい提案APIが付属しており、拡張機能の作成者はそれらを試すことができます。いつものように、皆様からのフィードバックをお待ちしております。提案APIを試すには、次の手順を実行する必要があります。

  • 提案APIは頻繁に変更されるため、Insiders版を使用する必要があります。
  • 拡張機能のpackage.jsonファイルに次の行が必要です: "enableProposedApi": true
  • 最新バージョンのvscode.proposed.d.tsファイルをプロジェクトのソース場所にコピーします。

提案APIを使用する拡張機能は公開できないことに注意してください。次のリリースで破壊的変更がある可能性があり、既存の拡張機能を壊したくありません。

ターミナル環境への貢献

この新しい提案された API は先月導入され、拡張機能の作成者がターミナル環境に貢献できるようになりました。今月は主に、この機能に UI を適用し、磨きをかけることに重点が置かれました。「古い」環境を持つターミナルには警告アイコンが表示され、何が変更されるのかを説明する豊富なホバーと、便利なターミナル再起動アクションが含まれています。変更がアクティブな場合は情報アイコンも利用できますが、これはデフォルトでは無効になっています。

Terminal stale environment warning

デバッグ構成の動的な提供

デバッグ拡張機能 API を更新し、デバッグ拡張機能の作成者がワークスペースまたはプロジェクトで見つかった情報に基づいてデバッグ構成を動的に追加できる方法を提供しました。これらのデバッグ構成は、launch.json の静的デバッグ構成が表示されるのと同じ UI の場所に表示されます。

このリリースでは、動的なデバッグ構成はデバッグビューの構成ドロップダウンとデバッグの選択と開始クイックピックに表示されます。今後のリリースでは、「ウェルカム」ビューにも表示することを検討しています。

新しい API は、既存の DebugConfigurationProviderprovideDebugConfigurations メソッドに基づいています。このリリースまでは、provideDebugConfigurations は VS Code によって呼び出され、新しく作成された launch.json にコピーされる初期の「静的」デバッグ構成を提供していました。新しい API では、新しいオプションの triggerKind 引数に DebugConfigurationProviderTriggerKind.Dynamic の値を渡すことで、「動的」ケースの DebugConfigurationProvidervscode.debug.registerDebugConfigurationProvider を介して登録できるようになりました。この新しい登録により、すべてのデバッグ構成のリストが UI に表示されようとするときに、VS Code は provideDebugConfigurations メソッドを呼び出します。

この新しい API を利用する拡張機能を期日通りにアクティブにするために、新しいアクティベーションイベント onDebugDynamicConfigurations: が導入されました。 は必須であり、どのデバッガーに対して動的なデバッグ構成が指定されているかを示します。

使用例は Mock Debug で確認できます。

バイナリカスタムエディターAPI

このイテレーションでは、バイナリカスタムエディターの提案されたAPIを安定化に向けて準備するために再設計しました。カスタムエディターは、VS Codeの通常のテキストエディターの代わりに、拡張機能が独自のエディターユーザーインターフェイスを提供できるようにするものです。すでにテキストベースファイルのカスタムエディターのサポートは安定化しています。提案されたAPIは、カスタムエディターを画像や16進ダンプなどのバイナリファイル形式に拡張します。

A custom editor for binary files

このAPIに関するフィードバックを求めており、次回のイテレーションで最終決定できることを願っています。バイナリファイルのカスタムエディターの実装例を確認するために、カスタムエディター拡張機能のサンプルをご覧ください。カスタムエディターAPIドキュメントも、バイナリファイルのカスタムエディターについて説明しています。

この API が機能するかどうか、またはカスタムエディターの実装で問題が発生した場合は、お知らせください

エンジニアリング

ネイティブイテレータ

パフォーマンスを高速化するために、ネイティブの ES6 イテレーターを使用するようになりました。詳細については、issue #94540 を参照してください。

コンパイルデーモン

deemon ユーティリティのおかげで、セルフホストのコンパイルタスクをバックグラウンドプロセスとして実行するようになりました。VS Code を再起動しても実行し続けます。

自動イシュー分類

イシューのトリアージフローを GitHub Actions に移行する作業を継続し、自動イシュー分類のための Actions を作成しました。これらの Actions は、すべてのイシューを自動的にダウンロードし、機械学習モデルを生成して、スケジュールに基づいてイシューを機能領域に分類することで機能します。すべての Actions の完全な実装は、当社のGitHub Triage Actions リポジトリにあります。

新しいドキュメント

Docker Compose

Microsoft の Docker 拡張機能が、プロジェクトに Docker Compose ファイルを追加して複数の Docker コンテナーを簡単に操作するのにどのように役立つかを説明する、新しい Docker Compose トピックがあります。

Java トピック

Java トピックが更新され、Java 拡張機能を使用した Java ソースコードのリンティングリファクタリングに関する新しいトピックが追加されました。

GitHub

GitHub連携が拡張されたことで、VS Code内からGitHubを使用する方法を示す新しいGitHubとの連携に関するトピックが追加されました。

注目すべき修正点

  • 46886: デバッグサイドバーのブレークポイントセクションのサイズを変更できない
  • 85344: VSCode のリンクをクリックすると Firefox がクラッシュする。
  • 86425: 統合ターミナルの幅が狭すぎる
  • 90714: デバッグコンソールのフォントサイズ設定を入力フィールドに適用する
  • 90734: 外部ターミナルとしての Windows Terminal がワークスペースディレクトリで起動しない
  • 93973: [SSH] サイドバーでの自動表示が機能しない
  • 94574: 中央揃えレイアウト: 差分エディターの表示時に全幅を使用する
  • 94982: Bash デバッグがバージョン 1.44.0 で開始されない
  • 95108: serverReadyAction debugWithChrome が突然機能しなくなった
  • 95319: getWordRangeAtPosition が拡張機能ホストをフリーズさせる可能性がある

ありがとうございます

最後に、そしてもちろん最も重要なこととして、Visual Studio Codeをさらに良くするために協力してくれた以下の方々に、心からの感謝を申し上げます!

問題追跡への貢献者

vscodeへの貢献者

vscode-json-languageserviceへの貢献

vscode-html-languageserviceへの貢献

language-server-protocolへの貢献者

debug-adapter-protocolへの貢献者

vscode-generator-codeへの貢献者

vscode-textmateへの貢献

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

localizationへの貢献

Microsoft Localization Community Platform (MLCP) を利用する Cloud + AI Localization コミュニティメンバーは 800 人を超え、Visual Studio Code には約 170 人のアクティブなコントリビューターがいます。新しい翻訳の提供、翻訳への投票、プロセス改善の提案など、皆様のご貢献に感謝いたします。

貢献者の概要はこちらです。貢献者名リストを含むプロジェクトの詳細については、https://aka.ms/vscodeloc のプロジェクトサイトをご覧ください。

  • 中国語 (簡体字、中国) Tingting Yi, Yizhi Gu, Charles Dong, Justin Liu, Joel Yang, Tony Xia, 朱知阳, meng shao, 普鲁文, paul cheung, 张锐, Yiting Zhu, Nong Zhichao, Liam Kennedy, 武 健, Zhao Liguo, 宁 倬, Bochen Wang, 一斤瓜子, 顺 谭, 云 何, Yun Liu, yungkei fan, 杨 越鹏。
  • 中国語 (繁体字、台湾) 船長, Winnie Lin, 予 恆, TingWen Su。
  • チェコ語 David Knieradl。
  • デンマーク語 (デンマーク) Javad Shafique, Lasse Stilvang。
  • 英語 (英国) Martin Littlecott, Oren Recht, Faris Ansari。
  • フィンランド語 (フィンランド) Teemu Sirkiä。
  • フランス語 (フランス) Antoine Griffard, Thierry DEMAN-BARCELÒ, Rodolphe NOEL, Nathan Bonnemains。
  • ヘブライ語 (イスラエル) Chayim Refael Friedman, Asaf Amitai。
  • ハンガリー語 Bucsai László。
  • インドネシア語 (インドネシア) Gerry Surya, Laurensius Dede Suhardiman。
  • イタリア語 (イタリア) Alessandro Alpi, Riccardo Cappello。
  • 日本語 (日本) 芦嶺 一晃, 徳良 亜矢, 不破 隆行, きさらぎ ちゃん, 住吉 貴志, 牧野 浩一, 尾崎 義久, 天明 正和。
  • 韓国語 (韓国) Kyunghee Ko, June Heo。
  • ノルウェー語 (ノルウェー) Torbjørn Viem Ness。
  • ポーランド語 (ポーランド) Makabeus Orban, Kacper Łakomski, Karol Szapsza。
  • ポルトガル語 (ブラジル) Alessandro Trovato, Marcelo Fernandes, Arthur Lima, Luciana de Melo, Luiz Gustavo Nunes。
  • ポルトガル語 (ポルトガル) Pedro Filipe, António Pereira。
  • ロシア語 (ロシア) Andrey Veselov, Vadim Svitkin, ミナコフ・アントン。
  • スペイン語 (スペイン、国際ソート) Sifredo Da Silva, Ariel Costas Guerrero, David Roa, Abdón Rodríguez P., Luis Manuel, Carlos A. Echeverri V, A. Jesus Flores A., Ricardo Estrada Rdez, Alfonso Jesus Flores。
  • スウェーデン語 (スウェーデン) Per Ragnar Edin。
  • タミル語 (インド) krishnakoumar c。
  • トルコ語 (トルコ) Umut Can Alparslan, Mehmet Yönügül。
  • ウクライナ語 (ウクライナ) Nikita Potapenko, igor oleynik。
  • ベトナム語 (ベトナム) Hieu Nguyen Trung, LN Quang。

© . This site is unofficial and not affiliated with Microsoft.