2020年4月 (バージョン 1.45)
更新 1.45.1: この更新は、これらの問題を解決します。
ダウンロード: Windows: x64 | Mac: Intel | Linux: deb rpm tarball snap
Visual Studio Code の2020年4月リリースへようこそ。このバージョンには、気に入っていただけるであろう多数の更新が含まれており、主なハイライトは以下の通りです。
- アクセシビリティの改善 - ワークベンチをナビゲートするためのフォーカスコマンド、ステータスバーのアクセシビリティ。
- マウスホイールでエディタータブを切り替える - マウスホイールを使用してエディターでファイルをすばやく切り替えます。
- 高速な構文強調表示 - プログラミング言語のカラー化が最大3倍高速になりました。
- カスタムセマンティックカラー - ユーザー設定を通じてセマンティックトークンカラーを変更します。
- GitHubリポジトリのGitHub認証 - GitHubリポジトリの自動GitHub認証。
- GitHub Issues統合 - GitHub Issuesおよびユーザーのインラインホバーと候補。
- リモート開発 - コンテナ構成の推奨事項、WSL 2のサポート。
- JavaScriptデバッガープレビュー - CPUプロファイリング、Node.jsプロセスへの自動アタッチの改善。
- 新しいDocker Composeトピック - Docker Composeを使用して複数のコンテナを操作する方法を学びます。
これらのリリースノートをオンラインで読みたい場合は、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
を使用すると、アクティブなエディタータブを切り替えるように動作を変更できます。
以下では、カーソルがエディタータブ領域にフォーカスされている場合、ユーザーがマウスホイールをスクロールすると、アクティブなエディターが変更されます。
注: Shift
キーを押しながらスクロールすると、逆の動作(たとえば、scrollToSwitchTabs
設定がオフの場合でもエディタータブを切り替えることができる)を実行することもできます。
カスタムウィンドウタイトルの区切り文字
新しい設定window.titleSeparator
を使用すると、ウィンドウタイトルで使用される区切り文字を変更できます。デフォルトでは、ダッシュ'-'
が使用されます。
デフォルトテーマのサイドバーセクションヘッダーの更新
デフォルトのダークテーマとライトテーマのサイドバーセクションヘッダーのスタイルを更新しました。現在は透明な背景を使用し、各ヘッダーに境界線を表示しています。
以下の開いているエディターセクションヘッダーには背景色がなく、VSCODEとアウトラインヘッダーには上部境界線があります。
エディター
構文強調表示の高速化
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
設定を使用すると、ユーザーはデフォルトのテーマルールを上書きし、テーマをカスタマイズできます。
上記の設定は、Default Dark+テーマを変更します。パラメータに新しいスタイル(イタリックと新しい色)を与え、デフォルトライブラリのすべてのシンボル(例: Promise
、Map
、およびそのプロパティ)に下線を追加します。
以下の例は、すべてのテーマにセマンティックスタイルを追加します。
"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+ テーマ
Default Light+ テーマ
永続的な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定義を表示できます。
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によって適切に処理されます。
以前
以後
テーマ: Sapphire (Dim)
ダブルクリックによる単語選択の制御
新しいterminal.integrated.wordSeparators
設定では、ターミナルでダブルクリックしたときに単語を区切るために使用される区切り文字をカスタマイズできます。
デフォルトの区切り文字は次のとおりです。
"terminal.integrated.wordSeparators": " ()[]{}',\"`─"
デバッグ
自動デバッグ構成
VS Codeでデバッグを設定するのは、ユーザーが新しいデバッグ構成を作成するか(または少なくともテンプレートをニーズに合わせて変更する)、困難な作業になる場合があります。デバッグエクスペリエンスを簡素化するための継続的な取り組みとして、現在のプロジェクトを分析し、追加のユーザー構成を必要としない高品質なデバッグ構成を自動的に提供する手段をデバッグ拡張機能の作成者に提供する新機能を追加しました。
ビルドタスクが提供される方法と同様に、自動デバッグ構成は、デバッグビューの構成ドロップダウンおよびデバッグの選択と開始クイックピックで適切なデバッガー(フォルダアイコン)の下にグループ化されます。デバッガーが選択されると、VS Codeは利用可能なすべての自動構成を表示します。構成を選択すると、新しいデバッグセッションが開始されます。
以下のスクリーンキャストは、新しいJavaScriptデバッガー(プレビュー版)と教育用のMock Debugの機能を示しています。
デバッグクイックピックは、クイックオープン (⌘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プロジェクトに適したコマンドが表示されます。
ユーザーにワークスペース版のTypeScriptへの切り替えを促す
新しいtypescript.enablePromptUseWorkspaceTsdk
設定は、ユーザーにワークスペース版のTypeScriptに切り替えるかどうかを尋ねるプロンプトを表示します。
プロンプトを有効にするには、プロジェクトのワークスペース設定として"typescript.enablePromptUseWorkspaceTsdk": true
とtypescript.tsdk
を含めます。
フォルダへのMarkdownリンク
Markdownファイルの編集者リンクとMarkdownプレビューのリンクは、フォルダを指すことができるようになりました。これらのリンクのいずれかをクリックすると、VS Codeのファイルエクスプローラーに対象のフォルダが表示されます。
ソース管理
GitHubリポジトリのGitHub認証
VS CodeはGitHubリポジトリに対する自動GitHub認証をサポートするようになりました。システムに認証情報マネージャーを設定することなく、パブリックおよびプライベートリポジトリからのクローン、プル、プッシュが可能になりました。統合ターミナルで実行されるGitコマンド、たとえばgit push
も、GitHubアカウントに対して自動的に認証されます。
git.githubAuthentication
設定でGitHub認証を無効にすることができます。また、git.terminalAuthentication
設定でターミナル認証統合を無効にすることもできます。
Gitコミット入力ボックスを非表示にする
新しい設定git.showCommitInput
を使用すると、Gitリポジトリのコミット入力ボックスを非表示にできます。
インライン差分が編集可能に
ファイルの変更をプレビューする際に、クイック差分エディター内で編集できるようになりました。
プレビュー機能
プレビュー機能はリリース準備ができていませんが、使用できる程度には機能しています。開発段階での皆様の早期フィードバックをお待ちしております。
設定の同期
この数ヶ月間、VS Codeの設定をマシン間で同期させるための作業を進めており、この機能はInsidersリリースでプレビューとして利用可能です。
GitHubアカウントでサインインして、VS Codeの設定を同期できるようになりました。
テーマ: GitHub Sharp (カスタマイズ付き)
グローバルスニペットの同期もサポートされるようになりました。
新しいJavaScriptデバッガー
今月も新しいJavaScriptデバッガーの開発が進みました。これはInsidersではデフォルトでインストールされており、VS Code安定版ではマーケットプレイスからインストールできます。既存の起動構成でdebug.javascript.usePreview
設定を有効にすることで、これを使用し始めることができます。
今月追加された新機能は以下の通りです。
プロファイリングサポート
コールスタックビューの新しいプロファイルボタンをクリックするか、デバッグ: パフォーマンスプロファイルの取得コマンドを使用することで、Node.jsまたはブラウザアプリケーションからCPUプロファイルをキャプチャできます。その後、プロファイルを実行する期間を選択できます。停止するまで、一定期間、または別のブレークポイントに到達するまでです。
プロファイルが終了すると、ワークスペースフォルダに保存され、VS Codeで開かれます。安定版ビルドを実行している場合は、ビジュアライザー拡張機能をインストールして表示することをお勧めします。Insidersでは、拡張機能がすでに組み込まれています。プロファイルを開くと、関数レベルおよび特定の「ホット」な行のパフォーマンス情報を含むCodeLensがファイルに追加されます。他の多くのツールでキャプチャされたプロファイルとは異なり、記録されたプロファイルはソースマップに対応しています。
テーマ: Earthsong、フォント: Fira Code
自動アタッチ統合
debug.javascript.usePreview
が有効になっている場合、VS Codeの自動アタッチは、すべてのターミナルがデバッグターミナルと同様に機能するようにするjs-debug
によって提供される新しいメソッドを使用します。
既存のデバッガーに対する自動アタッチの改善点
- デバッガーがすぐにアタッチされるため、プログラムの早い段階でブレークポイントにヒットできます。
- 子プロセスは自動的にデバッグされます。
- 自動アタッチ中にプロセスポーリングのオーバーヘッドがありません。
変数ビューから複雑な値をコピー
以前は、VS Codeの変数ビューからオブジェクトのような複雑な値をコピーしようとすると、データが途中で切れたり不完全になったりすることがよくありました。VS Codeとjs-debugの変更により、完全な値をコピーできるようになりました。
プロダクトアイコンのテーマ
Visual Studio Codeには、ビューやエディターで使用される一連の組み込みアイコンが含まれていますが、ホバー、ステータスバー、および拡張機能でも使用できます。これらのアイコンは、UI全体でファイル名の横に表示されるファイルアイコンとは異なり、プロダクトアイコンです。
VS Codeに同梱されている製品アイコンは、Codiconアイコンフォントに含まれており、デフォルトの製品アイコンテーマとして使用されています。拡張機能は、これらのアイコンを再定義し、VS Codeに新しい外観を与える新しい製品アイコンテーマを提供できるようになりました。
製品アイコンテーマのドキュメントに詳細があり、製品アイコンテーマのサンプルがあります。
すべての開いているプロジェクトでのTypeScript/JavaScriptシンボル検索
TypeScript 3.9+を使用している場合、VS Codeのワークスペースシンボル検索には、デフォルトで開いているすべてのJavaScriptおよびTypeScriptプロジェクトの結果が含まれるようになりました。以前は、現在アクティブなファイルのプロジェクトのみを検索していました。
これは新しい"typescript.workspaceSymbols.scope"
設定によって制御されます。古い動作に戻すには、"typescript.workspaceSymbols.scope": "currentProject"
を設定します。
ターミナル内のリンクの改善
ターミナル内のリンクは大幅に改善され、以下の機能を可能にする、より堅牢な実装のためにバックエンドシステムが変更されました。
- より良いWebおよび
file://
リンクの検出のためのエディターのリンク検出の使用。 - フォルダリンクのサポート。エクスプローラーでフォルダを開くか、新しいVS Codeウィンドウを開きます。
- 異なるリンクタイプに対する異なるリンクアクション。ワークスペースを検索する「単語」リンクにフォールバックします(
terminal.integrated.wordSeparators
設定に基づく)。 - エディターと同様のリンク強調表示とホバーエクスペリエンス。
テーマ: Topaz (Dim)
既知の問題のリストはこちらのクエリで入手できます。
動的ビューアイコンとタイトル
このマイルストーンでは、レイアウトをより柔軟にするための作業を継続しました。ビューをワークベンチ内で移動させると、アクティビティバーに新しいアイコンを作成したり、パネルに新しいタブを作成したりできます。これらの新しく作成されたビューコンテナに何が保持されているかを理解しやすくするために、ロジックを更新し、より分かりやすくしました。
これで、カスタムコンテナがある場合、最初の表示ビューからタイトルとアイコンを継承します。これにより、ビューを再配置することで変更できます。組み込みまたは拡張機能からのコンテナの場合、可能な限りこのアイコンを保持しようとします。以下に示すように、新しいビューがビューコンテナの最上部に配置されると、そのアイコンとタイトルが更新されます。
最後に、カスタムコンテナを、含まれているすべてのビューを一度に移動できるようになりました。以下の短いビデオは、ターミナルと出力ビューの組み合わせをアクティビティバーにドラッグする様子を示しています。
拡張機能への貢献
リモート開発
リモート開発拡張機能の作業は継続しており、コンテナ、リモートマシン、または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でリポジトリを参照するオプション付きで、GitHub上の新しいプライベートリポジトリに公開する様子を示しています。
詳細については、最近のGitHub Issues Integrationブログ記事とWorking with GitHubドキュメントをご覧ください。
GitHub Issue Notebook
VS Codeチームは、ノートブックのネイティブサポートに取り組んでいます。現在最も人気のあるノートブックはJupyter Notebooksであり、これらを調査する中で、偏りのない、さまざまなスタイルのノートブックをサポートするノートブックソリューションを構築する方法を検討し始めました。
それらのノートブックの1つがGitHub Issue Notebooks拡張機能で、これにより課題とプルリクエストの検索を管理し、結果をインラインでレンダリングできます。
この拡張機能はまだ開発中であり、VS Code Insidersでのみ動作しますが、これによりノートブックを直接体験し、フィードバックを提供することができます。
拡張機能作成
エディタータブの新しいテーマカラー
ワークベンチエディタータブをさらにテーマ設定するために、新しい色が追加されました。
tab.unfocusedInactiveBackground
: フォーカスされていないグループ内の非アクティブなタブの背景色tab.hoverForeground
: ホバー時のタブの前景色tab.unfocusedHoverForeground
: フォーカスされていないグループでホバーしたときのタブの前景色
エディタータイトル枠の新しいテーマカラー
既存の色editorGroupHeader.tabsBorder
は、エディタータブの下に、パンくずリストの上にボーダーをレンダリングするように変更されました。新しい色editorGroupHeader.border
を使用すると、エディターグループヘッダーの下(たとえば、有効な場合はパンくずリストの下)にボーダーをレンダリングして、editorGroupHeader.tabsBorder
の以前の動作を復元できます。
vscode NPMモジュールの非推奨化とアーカイブ化
2019年6月、event-stream
事件を考慮して、vscode
モジュールを@types/vscode
とvscode-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
グループへのコントリビューションをサポートするようになりました。このグループに貢献されたコマンドは、ユーザーがデバッグセッション要素にホバーしたときに、コールスタックにインラインでレンダリングされます。
新しいデバッグテーマカラー
デバッグビューのスタイル設定のための新しい色が追加されました。
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拡張機能の例を以下に示します。
認証情報プロバイダー
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を適用し、磨きをかけることに重点が置かれました。「古い」環境を持つターミナルには警告アイコンが表示されるようになり、何が変更されるかを示す豊富なホバーが表示され、便利なターミナル再起動アクションが含まれています。変更がアクティブな場合は情報アイコンも利用できますが、これはデフォルトでは無効になっています。
デバッグ構成を動的に提供する
デバッグ拡張機能のAPIを更新し、デバッグ拡張機能の開発者がワークスペースまたはプロジェクトで見つかった情報に基づいて、デバッグ構成を動的に追加できる方法を提供しました。これらのデバッグ構成は、launch.json
からの静的デバッグ構成が表示されるのと同じUIの場所に表示されます。
このリリースでは、動的なデバッグ構成は、デバッグビューの構成ドロップダウンとデバッグを選択して開始クイックピックに表示されます。将来のリリースでは、「ようこそ」ビューにも表示することを検討しています。
新しいAPIは、既存のDebugConfigurationProvider
のprovideDebugConfigurations
メソッドに基づいています。このリリースまでは、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進ダンプなどのバイナリファイル形式に拡張します。
この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をさらに良くするために協力してくれた以下の方々に、心からの感謝を申し上げます!
問題追跡への貢献者
- ジョン・マレー (@gjsjohnmurray)
- アンドリー・ディエイエフ (@IllusionMH)
- サイモン・チャン (@yume-chan)
- アルトゥーロ・デント (@ArturoDent)
- アレクサンダー (@usernamehw)
- マルコ・ツェーエ (@MarcoZehe)
- ジョーンマリー (@joanmarie)
- ホセ・ビルマー・エスタシオ・デ・ソウザ (@jvesouza)
- ミハウ・ゼガン (@webczat)
vscode
への貢献者
- アンドリュー・ケイシー (@amcasey)
- アンソニー・ファン・デ・ゲジシュテ (@avdg): gitにページャーを使用させない PR #95549
- リチャード・ウィリス (@badsyntax): vscode.d.tsを更新 - Pseudoterminal.onDidCloseのコードコメントブロックを修正 PR #96206
- @bkis: git拡張機能の設定説明のtypoを修正 PR #94993
- @bolinfest: Monarch文法で@rematchとnextEmbeddedを併用できるようにする PR #95742
- ボルハ・ザルコ (@bzarco): 特定の変数を条件付きで解決する場合、
folderUri
に加えてargument
を使用する。 PR #95483 - クリストス・パパス (@ChrisPapp)
- コナー・スキー (@connorskees)
- エドガー・クンブレラス (@cumbreras): Feat: #94285 タスク実行前の保存オプション PR #94466
- ダンカン・ウォルター (@DuncanWalter): TS: ワークスペースtsdkについてユーザーにプロンプトを表示する設定を追加 PR #95566
- ダスティ・ポメルロー (@dustypomerleau):
wordHighligher
のすべてのインスタンスをwordHighlighter
に変更 PR #95830 - エヴァン・クラウス (@evangrayk): CPUを節約するため、ステータスバースピナーのアニメーションをスロットルする PR #96096
- ジョナサン・フレッケンシュタイン (@fleck): 重複するgit.pullFromコマンドを削除 PR #95780
- フィル・マーシャル (@flurmbo): git.showCommitInput設定オプションを追加 (#_79074) PR #81982
- ガウラヴ・マヘチャ (@gauravmak): スペル修正 PR #94687
- @Git-Lior: バグ修正 - 複数のプロパティ修飾子がある場合、typescriptコード補完が認識しない PR #94165
- ジョン・マレー (@gjsjohnmurray): #95510 'サイドバーで表示' がファイルシステムのケースセンシティブに混乱する問題を修正 PR #95555
- グスタボ・カッセル (@GustavoASC): 検索ウィジェットでドキュメントの最初または最後から検索をループする設定を開発 PR #92243
- イリア・ポズニャコフ (@iliazeus)
- アンドリー・ディエイエフ (@IllusionMH)
- ジャン・ピエール (@jeanp413)
- 問題フィルターの入力ボックスをクリックすると問題パネルが折りたたまれる問題を修正 PR #96203
- コマンド
scm.mainPane.focus
がソースコントロールプロバイダービューにフォーカスしない問題を修正 PR #96515 - デバッグコンソールのフォントサイズ設定を入力フィールドに適用する問題を修正 PR #91261
- scmビューレットの追跡されない変更グループの下にgitフォルダアクションが不足している問題を修正 PR #91872
- MarkersView構築時にmarkersViewModelを更新 PR #95653
- デバッグビューレットドロップダウンのアウトラインを改善 PR #95935
- 名前変更プレビュー「ファイルをグループ化して変更」ビューに参照タイプアイコン情報が表示されない問題を修正 PR #94968
- エディターが最初に開かれたときに「実行」と「デバッグ」が常にグレー表示される問題を修正 PR #94853
- jedwards (@jheiv): 「ターミナル:クリア」コマンドパレットアクションの後にターミナルにフォーカス PR #92100
- ジョン・ボックホルスト (@jmbockhorst)
- ジョン・ブラックボーン (@johnbillion):
.gitignore_global
をデフォルトで無視ファイルとして扱う。 PR #96080 - 中村剛大 (@kdnk): クエリエディターウィジェットにフォーカスするアクションを追加 PR #94799
- レニー・アンダース (@lennyanders): 要素をドラッグする際にbackdrop-filterにトランジションを追加 PR #95217
- ルーカス・シュピーツ (@lumaxis): keytarを最新の公開バージョンに更新 PR #95351
- ヤシャル・ユルドゥズ (@MonoLizard): #90734 を修正 新しいWindowsターミナル用の開始ディレクトリパラメータを追加 PR #90773
- マービン・ハイレマン (@muuvmuuv): Feature: ウィンドウタイトルの区切り文字プロパティを追加 PR #94371
- @NickDebug: 欠落している単語を追加 PR #95043
- リチャード・タウンゼント (@richard-townsend-arm): gulpターゲットを追加し、Windows on Armのビルドを修正。 PR #85326
- ロバート・ロスマン (@robertrossmann)
- ドミトリー・シャーシャコフ (@sh7dm): タイムラインの今後のイベントを正しく表示する PR #94459
- トビアス (@Shegox): 自動化された課題管理アクションリポジトリのリンクを更新 PR #96568
- ジョシュ・スミス (@smithjosh115): Issue #93589: 'renameShorthandProperties' 設定を 'useAliasesForRenames' に名前変更 PR #94480
- トーマス・ワインガルトナー (@Thoemmeli): 「相対リンクのMarkdownプレビューでパスから'host'が失われる」の修正 PR #95092
- タイラー・ジェームズ・レオンハルト (@TylerLeonhardt): PowerShell herestringの自動閉じペアを追加 PR #95245
- アレクサンダー (@usernamehw): OSでのファイル表示はsettings.jsonのような特殊ファイルでも機能するべき… PR #95193
- クリストファー・マカレム (@x24git): CodeLens CSSセレクタ名が無効にならないようにする PR #95005
- @xisui-MSFT: launch.json、workspace.json、または.code-workspaceにconfigurationsフィールドが存在しない場合に追加 PR #95488
vscode-json-languageservice
への貢献
- アレックス・クレイダー (@alexkreidler): 基本的なカバレッジ情報を追加 PR #54
- アナンタ・クマラン (@ananthakumaran): textDocument/definitionのサポートを追加 PR #50
vscode-html-languageservice
への貢献
- リアム・ニューマン (@bitwiseman): js-beautifyを1.11.0に更新 PR #82
language-server-protocol
への貢献者
- サム・マッコール (@sam-mccall): didSaveサーバー機能名を一貫性のあるものにする PR #958
- 森本 空 (@imbsky): lsif-utilへのリンクを修正 PR #971
debug-adapter-protocol
への貢献者
- ニック・バトル (@nickbattle): アダプターリストにVDMJ-LSPを追加 PR #109
vscode-generator-code
への貢献者
- ニラジ・カシャップ (@nkashy1): コメントアウトされたmyExtensionインポートを更新 PR #199
vscode-textmate
への貢献
- ヤン・パシュコフスキー (@Yanpas): 文法パフォーマンス警告を追加 PR #128
vscode-vsce
へのコントリビューション
- イリア・ポズニャコフ (@iliazeus): 失敗したprepublishスクリプトの出力を表示 PR #442
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.