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

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ラベルが導入されました。

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

ワークベンチ

マウスホイールでタブを切り替える

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

以下では、カーソルがエディタータブ領域にフォーカスされている場合、ユーザーがマウスホイールをスクロールすると、アクティブなエディターが変更されます。

Changing editor tabs using the mouse wheel

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

カスタムウィンドウタイトルの区切り文字

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

Window title separator using dash

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

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

以下の開いているエディターセクションヘッダーには背景色がなく、VSCODEアウトラインヘッダーには上部境界線があります。

Side Bar section headers

エディター

構文強調表示の高速化

VS Codeの構文強調表示は、Text Mate文法を解釈することによって実行されます。これらの文法は正規表現で作成されており、oniguruma正規表現ライブラリを使用して評価できます。これまで、このような正規表現の評価には、VS Codeデスクトップ用(ネイティブのNodeモジュール)とブラウザ上の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+ テーマでは、書き込み可能な変数とは異なるシェードで定数が着色されるようになりました。

以下で、htmlModerange の定数が result 変数とは異なる色になっていることに注目してください。

Default Dark+ テーマ

Constant color in the Dark+ theme

Default Light+ テーマ

Constant color in the Light+ theme

永続的なUndoを無効にする

前回のマイルストーンでは、Undo/Redoスタックがファイルを閉じたり開いたりしても保持されるように変更されました。誰もがこの新機能を望んでいたわけではないため、永続的な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を追加します。

タスク

高速Quick Pickを無効にする

バージョン1.44では、タスク: タスクを実行コマンドを実行したときに表示されるタスクピッカーを、レイアウトを変更して高速化することで改善しました。ただし、高速Quick Pickは、実行したいタスクによってはタスクピッカーが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プレビューのリンクは、フォルダを指すことができるようになりました。これらのリンクのいずれかをクリックすると、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安定版ではマーケットプレイスからインストールできます。既存の起動構成で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

拡張機能への貢献

リモート開発

リモート開発拡張機能の作業は継続しており、コンテナ、リモートマシン、またはLinux用Windowsサブシステム (WSL) をフル機能の開発環境として使用できます。

1.45の主な機能

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

新しい拡張機能の機能とバグ修正については、リモート開発リリースノートで確認できます。

GitHubプルリクエストと課題

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

課題サポートの内容

  • #-参照の課題と@-言及されたユーザーのホバー。
  • 課題とユーザーのインライン補完候補。
  • カスタムクエリを使用できる課題ビュー。
  • 課題に取り組むためのアクション。これにより、ブランチが作成され、コミットメッセージが入力されます。

新しいリポジトリサポートもあります。

以下の短いビデオは、ファイルを正常にアップロードした後、GitHubでリポジトリを参照するオプション付きで、GitHub上の新しいプライベートリポジトリに公開する様子を示しています。

Publish repository

詳細については、最近のGitHub Issues Integrationブログ記事とWorking with GitHubドキュメントをご覧ください。

GitHub Issue Notebook

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

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

GitHub Issue Notebook

この拡張機能はまだ開発中であり、VS Code Insidersでのみ動作しますが、これによりノートブックを直接体験し、フィードバックを提供することができます。

拡張機能作成

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

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

  • tab.unfocusedInactiveBackground: フォーカスされていないグループ内の非アクティブなタブの背景色
  • tab.hoverForeground: ホバー時のタブの前景色
  • tab.unfocusedHoverForeground: フォーカスされていないグループでホバーしたときのタブの前景色

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

既存の色editorGroupHeader.tabsBorderは、エディタータブの下に、パンくずリストの上にボーダーをレンダリングするように変更されました。新しい色editorGroupHeader.borderを使用すると、エディターグループヘッダーの下(たとえば、有効な場合はパンくずリストの下)にボーダーをレンダリングして、editorGroupHeader.tabsBorderの以前の動作を復元できます。

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

2019年6月、event-stream事件を考慮して、vscodeモジュールを@types/vscodevscode-test分割しました。本日、minimistに関するセキュリティアラートにより、vscodeに依存する拡張機能(mocha@5.2.0、したがってminimist@0.0.8に依存)でセキュリティアラートが発生しました。残念ながら、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は拡張機能がインストールされているURIをExtension.extensionUriおよびExtensionContext.extensionUri経由で公開します。joinユーティリティを使用すると、拡張機能のリソースの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引数が渡され、これにより拡張機能の作成者はより良いユーザーエクスペリエンスを提供できます。

入力テキストのmimetype

ソースコントロールの入力テキストに専用のmimetype: 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<void>を使用してください。

言語サーバープロトコル

仕様の3.16バージョンの作業が開始されました。最初のステップとして、Call Hierarchyのサポートが提案された状態から移動しました。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の値を渡すことで、「動的」ケースのためにvscode.debug.registerDebugConfigurationProviderを介してDebugConfigurationProviderを登録できるようになりました。この新しい登録により、すべてのデバッグ構成のリストがUIに表示されるたびに、VS CodeはprovideDebugConfigurationsメソッドを呼び出します。

この新しいAPIを使用する拡張機能を時間通りにアクティブ化するために、新しいアクティベーションイベントonDebugDynamicConfigurations:<debug type>が導入されました。<debug type>は必須であり、動的デバッグ構成が指定されるデバッガーを示します。

使用例は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

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

Javaトピック

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

GitHub

GitHub 統合の拡張により、VS Code 内から GitHub を使用する方法を示す新しいGitHub の操作のトピックが追加されました。

注目すべき修正点

  • 46886: デバッグサイドバーのブレークポイントセクションのサイズを変更できません
  • 85344: VSCodeでリンクをクリックするとFirefoxがクラッシュします。
  • 86425: 統合ターミナルの幅が狭すぎる
  • 90714: デバッグコンソールフォントサイズ設定を入力フィールドに適用
  • 90734: Windowsターミナルを外部ターミナルとして起動すると、ワークスペースディレクトリで起動しない
  • 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への貢献

800人以上のCloud + AI LocalizationコミュニティメンバーがMicrosoft Localization Community Platform (MLCP) を利用しており、そのうち約170人がVisual Studio Codeに積極的に貢献しています。新しい翻訳の提供、翻訳への投票、プロセス改善の提案など、皆様の貢献に感謝いたします。

貢献者のスナップショットはこちらです。貢献者名リストを含むプロジェクトの詳細については、プロジェクトサイト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.