2021年7月 (バージョン 1.59)
Update 1.59.1: このアップデートでは、これらの問題に対処しています。
このリリースでは、CVE-2021-26437にも対処しています。
ダウンロード: Windows: x64 Arm64 | Mac: Universal Intel シリコン | Linux: deb rpm tarball Arm snap
Visual Studio Code の2021年7月リリースへようこそ。このバージョンでは、皆様に気に入っていただけることを願って、多くのアップデートが行われました。主なハイライトをいくつかご紹介します。
- 拡張機能ビューの改善 - 豊富な拡張機能詳細ホバー、新しいランタイムステータスタブ。
- 設定エディターの検証 - オブジェクトベースの設定における編集エラーをすばやく見つけることができます。
- ターミナルのドラッグアンドドロップ - ターミナルをウィンドウ間でエディターとパネルの両方の領域に移動します。
- テーマカスタマイズ構文の拡張 - 複数のカラーテーマを一度にカスタマイズできます。
- Jupyter Notebooks の組み込みサポート -
.ipynb
ファイルを VS Code で直接開きます。 - Notebook UI の改善 - 折りたたまれたセルの最初の行を表示、セルごとの元に戻す/やり直し。
- テスト API の完成 - 組み込みのテストエクスプローラーを使用して VS Code でテストを実行するためのネイティブサポート。
- デバッグ逆アセンブリビューのプレビュー - VS Code で逆アセンブルされた C++ コードを表示します。
- Live Preview 拡張機能 - JavaScript デバッグサポート付きの VS Code 内でのライブ HTML プレビュー。
- Dev Containers devcontainer CLI - 開発コンテナを操作するためのコマンドラインインターフェース。
これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com の 更新 にアクセスしてください。
太平洋時間8月10日(火)午前8時(ロンドン時間午後4時)に開催されるVS Code チームのライブストリームにぜひご参加ください。このリリースの新機能のデモをご覧いただき、ライブで質問をすることができます。
Insiders: 新機能をいち早く試したいですか?夜間ビルドのInsidersをダウンロードして、利用可能になり次第、最新の更新を試すことができます。
ワークベンチ
拡張機能
サイズ変更時の拡張機能ビューの改善。以下の短いビデオでは、デフォルトの幅を持つ拡張機能ビューがすべての詳細を表示しています(以前はアイコン、評価、インストール数が表示されていませんでした)。ビューが縮小すると、より小さな拡張機能アイコンが表示され、さらに幅が縮小すると、アイコンと評価が非表示になります。
テーマ: GitHub Light Theme
拡張機能ビューは、拡張機能のカスタムホバーを表示するようになりました。この豊富なホバーには、拡張機能の完全な説明と、拡張機能が無効または推奨される理由などの有用な情報が含まれています。
テーマ: GitHub Light Theme
拡張機能ペインの新しいランタイムステータスタブで、拡張機能のランタイムステータスを確認できるようになりました。ステータス情報には、アクティベーション時間、起動時にアクティベートされるかどうか、および警告またはエラーがあるかどうかが含まれます。この情報の一部は、拡張機能ビューとそのホバー(上の画像に表示)に表示されます。
テーマ: GitHub Light Theme
拡張機能ペインの「詳細」タブには、カテゴリ、リソースリンク、および拡張機能のリリース日や更新日などのその他の情報が表示されるようになりました。カテゴリを選択すると、そのカテゴリの他の拡張機能が拡張機能ビューに表示されます。
テーマ: GitHub Light Theme
設定エディター
設定エディターは、オブジェクトの検証をサポートするようになりました。この検証は、JSONファイルを直接編集するときに発生する可能性のある型エラーをチェックします。
配列設定は、非編集モードでドラッグアンドドロップをサポートするようになりました。さらに、uniqueItems
プロパティがtrue
に設定されたenum配列設定は、ドロップダウンにすべてのオプションではなく、残りのオプションのみを表示するようになりました。
設定エディターは、複数行の文字列設定もサポートするようになりました。この場合、値は単一行の入力ボックスではなく、複数行のテキストエリアでレンダリングされます。
拡張テーマカスタマイズ構文
以下のカラーカスタマイズ設定により、現在のテーマの色をカスタマイズできます
workbench.colorCustomizations
editor.tokenColorCustomizations
editor.semanticTokenColorCustomizations
複数のテーマを一度にカスタマイズするための新しい構文があります
"workbench.colorCustomizations": {
"[Abyss][Red]": {
"activityBar.background": "#ff0000"
},
"[Monokai*]": {
"activityBar.background": "#ff0000"
}
},
複数のテーマをリストすることができ、名前の先頭と末尾に*
ワイルドカード文字を使用できます。
Jupyter Notebookのサポート
今月、*.ipynb
ファイルの読み込みを処理するコードをJupyter Notebook 拡張機能から新しい組み込み拡張機能に移動しました。これにより、完全な Jupyter 拡張機能をインストールすることなく、VS Code のクリーンインストールで Jupyter Notebook を開くことができるようになりました。ただし、ipywidgets やその他の複雑なレンダラータイプを使用するセルを実行したり、出力を表示したりする場合は、Jupyter 拡張機能をインストールする必要があります。
ノートブックのレイアウトの改善
今回のイテレーションでは、ノートブックのレイアウトにいくつかの改善を加えました。
- セルが折りたたまれたときに、セルの入力の最初の行がレンダリングされるようになりました。
- ウィンドウの幅がすべてのプライマリアクションをレンダリングするのに十分でない場合、ノートブックエディターのツールバー上のアクションはオーバーフローメニュー (...) に移動します。
notebook.undoRedoPerCell
のデフォルト値がtrue
に変更されました。
また、コードセルのデフォルトスタイルを更新し、セルを区別しやすくするために背景色を表示するようになりました。テーマは notebook.cellEditorBackground
を使用してこの色をカスタマイズできます。
最後に、設定 notebook.globalToolbarShowLabel
を使用してノートブックツールバーのテキストラベルを切り替えることができるようになりました。
相対パスのコピーのパス区切り文字を設定する
新しい設定 explorer.copyRelativePathSeparator
により、相対パスのコピーアクションを呼び出すときに、パス区切り文字を明示的に設定できるようになりました。
使用可能な区切り文字オプションは次のとおりです。
auto
(デフォルト) - オペレーティングシステム固有のパス区切り文字を使用します。/
- スラッシュをパス区切り文字として使用します。\\
- バックスラッシュをパス区切り文字として使用します。
エディターグループ間でビューの状態を共有する
エディタービューの状態(例えば、エディターのスクロール位置)をエディターグループ間でどのように共有するかを設定するために、新しい設定 workbench.editor.sharedViewState
が追加されました。
デフォルトでは、この設定は現在の動作を維持するために無効になっています。エディターをサイドで開き、後でそのエディターグループを閉じ、再度サイドでエディターを開くと、新しいエディターグループを開くため、ビューの状態は復元されません。しかし、この設定を有効にすると、最も新しいエディタービューの状態がすべてのエディターグループ間で保持され、エディターグループにさらに具体的なビューの状態が見つからない限り、それが使用されます。
以下では、package.json
ファイルをサイドで再度開いたときに選択状態が保持されます。
エディタ
折りたたみ領域間の移動
対応する折りたたみにカーソル位置を設定する新しいコマンドがあります。
- 次の折りたたみに移動 (
editor.gotoNextFold
) - 前の折りたたみに移動 (
editor.gotoPreviousFold
) - 親の折りたたみに移動 (
editor.gotoParentFold
)
これらのコマンドには現在デフォルトのキーバインディングはありませんが、Preferences: Open Keyboard Shortcuts (⌘K ⌘S (Windows, Linux Ctrl+K Ctrl+S)) から独自のキーボードショートカットを追加できます。
インポートの自動折りたたみ
editor.foldingImportsByDefault
設定を使用すると、インポートステートメントを自動的に折りたたむことができます。折りたたみの状態は、ファイルが一度開かれると保存されます。この機能は、TypeScript、JavaScript、Java、C#、C++、およびインポートステートメントにFoldingRangeKind.Imports
をアノテーションする折りたたみ範囲プロバイダーを持つすべての言語で機能します。
選択範囲からの検索文字列のシード
検索コントロール設定editor.find.seedSearchStringFromSelection
は、空でない選択範囲からのみ検索文字列をシードするように拡張されました。デフォルトでは、検索コントロールが表示されたときに、エディターは選択範囲または空の選択範囲の周囲の単語を検索キーワードとして使用します。
インライン提案の改善
インライン提案のレンダリング方法を変更しました。これにより、多くのバグが修正されただけでなく、単語の折り返しがインライン提案を考慮するようになりました。
さらに、末尾以外の位置での複数行のインライン提案もサポートされるようになりました。
インレイヒントの改善
インレイヒントのレンダリング方法も変更しました。インラインサジェストと同じメカニズムを使用することで、インレイヒントも単語の折り返しで考慮されるようになりました。このメカニズムにより、インレイヒントの周りの独立したカーソル停止も可能になります。
ターミナル
ウィンドウ間でターミナルをドラッグアンドドロップする
あるウィンドウのタブリストまたはエディター領域から、別のウィンドウのタブリスト、エディター領域、またはパネルにターミナルをドラッグアンドドロップできます。
子プロセスの追跡と終了警告
既存の terminal.integrated.confirmOnExit
と新しい terminal.integrated.confirmOnKill
設定は、シェルプロセスの子プロセスを持つターミナルを閉じようとするときに警告を表示するために、子プロセスの追跡を使用します。デフォルトでは、この追跡はエディター領域のターミナルのみに影響しますが、すべてのターミナルまたはパネル領域のターミナルに警告を表示するように設定できるようになりました。
貢献されたターミナルプロファイルをデフォルトとして設定する
拡張機能によって提供されるターミナルプロファイルは、デフォルトプロファイルとして設定できるようになりました。デフォルトのターミナルプロファイルは、ターミナルドロップダウンのDefaultサフィックスで示されます。
下線と取り消し線のサポート
統合ターミナルは、下線と取り消し線属性をサポートするようになりました。たとえば、Git を設定してこれらの新しい属性を使用できます。
テーマ: Sapphire Theme
上記の例では、.gitconfig
で以下の設定を使用しています。
[color "status"]
added = green bold
changed = red bold strike
untracked = cyan
branch = yellow black bold ul
サイドにエディター領域にターミナルを作成する
アクティブなエディターの横のエディター領域にターミナルを作成する新しいコマンド workbench.action.createTerminalEditorSide
があります。
アクティブなターミナルタブインジケーター
テーマは、テーマキー terminal.tab.activeBorder
を使用して、アクティブなターミナルタブを示す垂直線の色を設定できるようになりました。
terminal.tab.activeBorder
が設定されていない場合、色は tab.activeBorder
にフォールバックします。
ターミナルタブアイコンのアニメーションを無効にする
新しい設定 terminal.integrated.tabs.enableAnimation
は、ターミナルタブアイコンのアニメーションを無効にします。タスクの場合、スピナーアニメーションの代わりに再生ボタンが使用されます。
デバッグ
エディターのタイトルにある「実行/デバッグ」ボタンの改善
2月のリリースでは、実行とデバッグのコマンドをエディターのタイトル領域の中央(そしてコンパクトな)位置にグループ化するためのドロップダウンボタンを導入しました(1.54リリースノートを参照)。ユーザーからのフィードバックに基づいて、最後に実行されたアクションを記憶することで、ドロップダウンボタンを改善しようとしました。ドロップダウンボタンには、デフォルトのアクション(左)とドロップダウン(右)の2つのクリックゾーンがあり、後者を選択するとアクションが実行され、新しいデフォルトとして記憶されます。
ドロップダウンの動作
- 実行またはデバッグアクションが1つしかない場合、ドロップダウンメニューは省略されます。
- 実行またはデバッグアクションが複数ある場合、すべての操作がドロップダウンメニューに表示され、デフォルト操作はドロップダウンメニューの最初の操作に設定されます(記憶されている操作がない限り)。
- デフォルトのアクションは、VS Code の再起動後も特定のワークスペースで保持されます。エディターごとには保持されません。
拡張機能への貢献
ライブプレビュー
先月リリースされたLive Preview 拡張機能には、いくつかのエキサイティングな新機能があります。これには以下が含まれます。
- 外部プレビュー用の組み込み JavaScript デバッガーとの互換性。
- Live Preview: Show Debug Preview を実行して試してみてください!
- 「ページ内検索」のサポートや
webvivew
DevTools へのクイックアクセスなど、組み込みブラウザーの改善。 - 自動生成ファイルのファイルシステム監視。
- その他多数! 🎉
今月の進捗状況の詳細については、拡張機能のリリースノートを参照してください。
テーマ: GitHub Dark Theme
GitHubプルリクエストと課題
プルリクエストと課題の作業、作成、管理を可能にするGitHubプルリクエストと課題拡張機能の作業が続いています。今月のハイライトの1つは、課題の作業を開始が拡張され、現在のリポジトリの外部にある課題に取り組むことができるようになったことです。
すべての新機能と更新の詳細については、拡張機能の 0.29.0 の完全な変更ログを参照してください。
ジュピター
Jupyter 拡張機能の作業は継続中です。すべての新機能と更新の詳細については、拡張機能の 7月リリースに関する完全な変更履歴 を参照してください。
VS Code がノートブックのネイティブサポートを可能にするまでの道のりについてさらに詳しく知りたい場合は、最近のブログ記事「Coming of Age of Notebooks」をご覧ください。
インタラクティブウィンドウ
Jupyter Interactive ウィンドウは、ノートブックインターフェースの代わりにテキストファイルを使用して Jupyter ノートブックを構築および操作する代替方法を提供します。先月、テーマ、カスタムキーバインディング、スニペット、拡張機能との互換性など、より深いワークベンチ統合を特徴とする Jupyter Interactive ウィンドウのアップグレード版をプレビューしました。プレビューエクスペリエンスに関するGitHub Issuesを通じてフィードバックを提供してくださったユーザーの皆様に心から感謝いたします。組み込みのInteractiveウィンドウは、バージョン1.59でデフォルトのインターフェースになりました。以前のインターフェースは設定 "jupyter.enableNativeInteractiveWindow": false
の背後に残され、今後のリリースで削除される予定です。皆様のフィードバックをお待ちしております。
行ごとに実行
Jupyter Notebooks の「行ごとに実行」機能のサポートに取り組んでいます。この機能は、複雑なデバッグ UI を使用せずに、セルのコードを1行ずつステップ実行できる、本質的に簡素化されたデバッグモードです。これはまだ実験段階ですが、"jupyter.experimental.debugging": true
を設定し、選択したカーネルに ipykernel のバージョン6をインストールし、セルツールバーの行ごとに実行ボタンを選択することで試すことができます。
Python
Python 拡張機能では、Python インタープリターのリストの並べ替えが改善されました。以前は、仮想環境がリストの下部に表示され、多くのスクロールや検索が必要でした。プロジェクトルートに配置されている仮想環境が最初に表示され、次にグローバルにインストールされている環境が表示されるようになりました。
Dev Containers devcontainer CLI
VS Code 内から Docker コンテナーを操作するための開発コンテナー拡張機能には、開発コンテナー内でフォルダーを開いたり (devcontainer open
)、開発コンテナーイメージを構築したり (devcontainer build
) するための devcontainer
コマンドラインインターフェースが含まれるようになりました。
新しい Remote Development 拡張機能の機能とバグ修正については、Remote Development リリースノートをご覧ください。
プレビュー機能
無題ファイルの自動言語検出
機械学習を使用して、コーディングしている言語を検出し、無題ファイルの言語モードを自動的に設定する、無題ファイルの自動言語検出の初期プレビューを発表できることを嬉しく思います。この機能は、オープンソースの機械学習ライブラリであるTensorflow.jsと、GitHub ユーザー@yoeoによるGuesslangからの機械学習モデルを使用しています。
このリリースでは、この機能はデフォルトでオフになっていますが、次のイテレーションではデフォルトにする予定です。有効にするには、以下の設定を適用してください。
"workbench.editor.untitled.experimentalLanguageDetection": true
この機能を実際に見てみるには、無題ファイルを開き(ファイル > 新しいファイル)、ソースコードをエディターに貼り付けます。
Pythonコードの自動検出の例を次に示します。
テーマ: Panda Theme
さらに、言語ピッカーを開くことで、検出されている言語を確認できます。
テーマ: Panda Theme
注: 言語検出の信頼性が低い場合、現在の言語モードのままになり、言語検出の信頼性が高くなるまで言語ピッカーに結果は表示されません。
この設定では、自動的に切り替えたくない言語モードを指定するための言語オーバーライドも提供できます。
Markdown ファイルを自動検出しない例を次に示します。
"workbench.editor.untitled.experimentalLanguageDetection": true
"[markdown]": { "workbench.editor.untitled.experimentalLanguageDetection": false }
上記の設定では、無題のMarkdownファイルを編集中は自動言語検出は実行されません。ただし、他の種類の無題ファイルを変更すると、自動言語検出はそれらのファイルの内容で実行されます。
機械学習モデルと連携するコードは、npm パッケージとしてリリースされた独自のライブラリに分離され、vscode-languagedetection リポジトリにあります。
無題ファイルの自動言語検出がどのように機能するか、ぜひお知らせください!
TypeScript 4.4
このリリースには、今後の TypeScript 4.4 リリースに対するサポートが含まれています。TypeScript 4.4 の新しい言語機能と改善点については、TypeScript ブログで詳しく読むことができます。ツールのハイライトをいくつかご紹介します。
- JavaScript と TypeScript ファイルの両方で、パラメーター名と型のインレイヒント。
- プレーンな JavaScript ファイルでの基本的なスペル提案。これらは、TypeScript 言語サービスがエラーと修正に自信がある場合にのみ表示されます。
TypeScript 4.4 ナイトリービルドの使用を開始するには、TypeScript Nightly 拡張機能をインストールしてください。
TypeScript 4.4 で何かバグに遭遇した場合は、フィードバックをお寄せください。
逆アセンブリビュー
Microsoft C++ チームによる多大な貢献のおかげで、このマイルストーンにデバッグ逆アセンブリビューのプレビューを含めることができました。
逆アセンブリビューは、エディターのコンテキストメニューから開くことができ、アクティブなスタックフレームの逆アセンブルされたソースを表示し、アセンブリ命令をステップ実行したり、個々の命令にブレークポイントを設定したりする機能をサポートしています。
逆アセンブリビューは、アクティブなデバッグセッション中、かつ基盤となるデバッグ拡張機能がそれをサポートしている場合にのみ利用可能です。現在、Microsoft C++ および Mock Debug 拡張機能のみが逆アセンブリビューにデータを提供できます。
技術的な観点から見ると、VS Code の逆アセンブリビューの実装は、Debug Adapter Protocol のさらに4つの機能をサポートするようになりました。
- メモリ位置の逆アセンブルされたソースを提供する
disassembly
リクエスト。 - スタックフレームの
instructionPointerReference
プロパティ。 - ステップ要求の
granularity
プロパティ。 - 命令ブレークポイントと
setInstructionBreakpoints
リクエスト。
拡張機能作成
テストAPI
昨年の秋、VS Code でのテスト実行のネイティブサポートを追加する作業を開始し、今月、テスト関連 API の最初のセットが完成しました。これらの API は、以前拡張機能で見られたものよりも、優れた柔軟性、パフォーマンス、豊富な UX を提供します。テスト拡張機能の作成に関するガイドをご覧ください。
テーマ: codesong
Test Explorer UI 拡張機能の既存ユーザーは、testExplorer.useNativeTesting
を true
に設定することでネイティブエクスペリエンスを利用できます。ただし、変換は Test Explorer UI 拡張機能の既存の API を反映したものであるため、リッチな差分サポートなどの一部の機能は含まれていません。
テスト API を採用した最初の拡張機能の1つは、Extension Pack for Java に含まれる Microsoft Test Runner for Java でした。
「新しいファイル」メニューへの貢献ポイント
ノートブックやカスタムエディターなど、新しいファイルエディターを作成する方法を提供する拡張機能は、新しい file/newFile
メニュー貢献ポイントにコマンドを貢献できるようになりました。このメニューには、ウェルカムページまたはファイルメニューの新しいファイル...項目からアクセスできます。
リッチステータスバーホバー
リンクとアイコンを含むリッチホバーが、ステータスバーアイテム StatusBarItem.tooltip: string | IMarkdownString
でサポートされるようになりました。
MarkdownString.supportThemeIcons
が true の場合、$(iconName)
構文でアイコンを使用できます。MarkdownString
が信頼されている場合、コマンドリンクを追加することもできます。構文:([test](command:vscode.newWindow))
。
ステータスバーの警告色
警告を表すステータスバーアイテムは、新しく追加された色 statusBarItem.warningBackground
と statusBarItem.warningForeground
を使用できます。
additionalPropertiesなしのオブジェクト設定
オブジェクトが設定エディターでサポートされるためには、オブジェクト設定で additionalProperties
を false
に設定する必要があります。そうでない場合、設定エディターは設定を任意の形式をとることができる複雑な設定として解釈し、ユーザーを settings JSON ファイルに誘導します。
複数行の文字列設定
設定エディターで複数行文字列設定のサポートを追加するには、文字列設定に "editPresentation": "multilineText"
をキーと値のペアとして追加します。文字列設定を複数行に変更すると、設定エディターはその設定値を単一行の入力ボックスではなく、複数行テキスト領域でレンダリングします。
更新された codicon
当社のcodicon ライブラリに以下の新しいアイコンを追加しました。
azure
compass-active
compass-active
compass-dot
compass
debug-all
debug-coverage
git-pull-request-closed
git-pull-request-draft
issue-draft
layers-active
layers-dot
layers
テキストドキュメントの変更理由
workspace.onDidChangeTextDocument
イベントが発火されると、イベントオブジェクトの新しいプロパティ reason
が、テキストの変更が元に戻す操作またはやり直し操作によって引き起こされたかどうかを示します。
言語サーバープロトコル
Language Server Protocol の新しい次期バージョンが、対応する npm モジュールとともに公開されました。バージョン 3.17 には、VS Code 自体の最新の変更に沿った補完項目ラベルの詳細に関する提案が含まれています。
デバッグアダプタープロトコル
「writeMemory」要求と「memory」イベント提案の確定
writeMemory
リクエストが確定され、Debug Adapter Protocol のバージョン 1.48 と対応する npm モジュールで利用可能になりました。デバッグアダプターが supportsWriteMemoryRequest
機能を持っている場合、クライアントは writeMemory
リクエストを使用して、指定された場所のメモリにバイトを書き込むことができます。
memory
イベントには、次のマイルストーンで DAP に追加される提案があります。
提案された拡張API
各マイルストーンには新しい提案された API があり、拡張機能の作成者はそれらを試すことができます。いつものように、皆様のフィードバックをお待ちしております。提案された API を試すには、次の手順を実行する必要があります。
- 提案APIは頻繁に変更されるため、Insiders版を使用する必要があります。
- 拡張機能の
package.json
ファイルに次の行が必要です:"enableProposedApi": true
。 - 最新バージョンのvscode.proposed.d.tsファイルをプロジェクトのソース場所にコピーします。
提案された API を使用する拡張機能を公開することはできません。次のリリースで破壊的変更がある可能性があり、既存の拡張機能を壊すことは望ましくありません。
TaskGroupのisDefault
tasks.json
ファイルで定義されたタスクには group
プロパティが存在し、タスク API を通じても公開されます。group
プロパティには isDefault
プロパティがありますが、これはこれまで API では利用できませんでした。この提案は、isDefault
プロパティを TaskGroup
上で読み取り専用として公開するため、拡張機能はグループのデフォルトのタスクを読み取ることができますが、グループのデフォルトを設定することでユーザーの設定を上書きすることはできません。
AuthenticationGetSessionOptionsのforceRecreate
これまで、認証セッションオブジェクトを取得するために使用されるgetSession
APIには、ユーザーにログインを要求する機能がありませんでした。GitHubのような認証サービスでは、SAML/シングルサインオン(SSO)を使用し、SSOセッションの有効期限が切れるとリソースへのアクセスを失う可能性のあるアクセストークンを使用しているため、ログインを促す必要があります。この提案では、AuthenticationGetSessionOptions
にforceRecreate
という別のプロパティを追加し、ユーザーに再度サインインを要求できるようにします。createIfNone
を指定した場合と同様のモーダルエクスペリエンスがユーザーに表示されます。
エンジニアリング
デスクトップ上のすべての場所でiframeベースのウェブビューが使用されるようになりました
今月、Electron の webview タグ要素から、通常の 要素ベースのウェブビューへの移行を完了しました。これにより、VS Code のウェブビューの実装がデスクトップとウェブ全体でよりよく整合し、不要になった多くのコードを削除することも可能になりました。
Electron 13 のアップデート
このマイルストーンでは、Electron 13 を VS Code にバンドルするための調査を完了しました。Insiders でのテストとセルフホストに関わってくださった皆様に感謝いたします。これは Electron のメジャーリリースであり、Chromium 91.0.4472.124 が含まれています。このリリースでは Node.js のバージョンに変更はなく、v14.16.0 のままです。
Electron サンドボックスサポートの進捗
VS Code ワークベンチで Electron のサンドボックスを有効化する準備を続ける中で、Linux で混合サンドボックスモードを有効にし、配布パッケージ (deb、rpm、snap、tar アーカイブ) で CLI 引数 --no-sandbox
をバンドルしないようにしました。Chromium はLinux 上で多層サンドボックスモデルを採用しています。Chromium がレイヤー1に名前空間サンドボックスを使用できない場合、アプリケーションバイナリと一緒に配布されるヘルパーバイナリ chrome-sandbox
を介してsetuid
サンドボックスを使用しようとします。setuid
バイナリが機能するためには、以下の条件を満たす必要があります。
- サンドボックスバイナリは、Chromium プロセスによって実行可能でなければなりません。
- SUIDであり、他のユーザーからも実行可能でなければならない。
deb および rpm パッケージではこれらの条件を維持できました。snap の場合は現在これらの権限を達成することができません。今後の snap パッケージへの対応については、issue #127140 で追跡しています。
tar アーカイブを使用する場合、アプリケーションが名前空間サンドボックスを使用できない場合(コンテナ内で実行されている場合など)は、以下のエラーで失敗します。
FATAL:setuid_sandbox_host.cc(158)] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that chrome-sandbox is owned by root and has mode 4755.
その場合は、以下の2つのオプションのいずれかを使用して動作させることができます。
-
setuid
ヘルパーの権限を修正するsudo chown root <path-to-vscode>/chrome-sandbox sudo chmod 4755 <path-to-vscode>/chrome-sandbox
-
--no-sandbox
フラグを付けて実行する
スモークテストの改善
各ビルドで起動される一連のスモークテストを実行し、VS Code (デスクトップ版とウェブ版の両方) を起動し、さまざまな UI 要素をテストして適切な機能を確認しています。このマイルストーンでは、リリースチェックリストから手動スモークテストを削除できるように、このインフラストラクチャに投資しました。
スモークテストは現在、すべてのプラットフォーム(macOS、Linux、Windows)で実行されています。それに加えて、特にVS Codeの最後の安定版と新しいリリース間の回帰をチェックする、より複雑なスモークテストスイートの1つが、コミットごとに自動的に実行されるように自動化されました。
最後に、自動ウェブスモークテストに使用している素晴らしいPlaywrightライブラリのおかげで、彼らのトレース機能を利用して、失敗したスモークテストをトレースビューアツールで再生できるようになりました。
注目すべき修正点
- 26425: 変更がない場合は「変更を開く」ボタンを表示しない
- 100815: リモートWSLに接続すると外部ターミナルが壊れる
- 106981: ウィンドウズームが-1に設定されている場合のターミナルカーソルゴースティング
- 127959: デバッガー一時停止時にデバッグペインが開く
- 129059: 設定エディターのオブジェクトウィジェットが説明をレンダリングしない
- 129070: OKボタンを押すだけではドロップダウン設定値を修正できない
- 129415: 単一ファイルモードでユーザータスクを実行できない
ありがとうございます
最後に、今月 VS Code に貢献してくださった以下の皆様に、心からの感謝を申し上げます。
問題追跡への貢献者
- ジョン・マーレイ (@gjsjohnmurray)
- アンドリー・ディーエフ (@IllusionMH)
- @CodeCrazy-ywt
- アルトゥーロ・デント (@ArturoDent)
- アレクサンダー (@usernamehw)
vscode
への貢献者
- @71 (Grégoire Geis): platform/configuration: 設定パーサーで空のキーが無視されるのを修正 PR #128909
- @adaex (Aex): eslintrc.json seti-ui アイコンのサポートを追加 PR #123404
- @alanrenmsft (Alan Ren)
- 最大呼び出しスタックサイズ到達の問題を修正 PR #119929
- アクセシビリティ要件を満たすためにドロップダウン矢印を大きくする PR #127839
- @alielbashir (Ali Elbashir): GitHub スペースリンクのタイプミスを修正 PR #128120
- @andrewbranch (Andrew Branch): [typescript-language-features] suggest.allowIncompleteCompletions を追加し、トリガーの種類を TS Server に渡す PR #127673
- @door-bell (Tim): エディターとターミナル以外のリストスクロール感度設定を追加 PR #110059
- @galexite (George White):
.ixx
を C++ 拡張機能として追加 PR #127962 - @headerjson: TaskGroup API に isDefault を追加 PR #128596
- @jeanp413 (Jean Pierre)
- 「開いているエディター」と「ソース管理」ビューでキーボードによる複数選択が機能しない問題を修正 PR #128284
- エクスプローラーツリーからターミナルにフォルダーをドラッグしてもフォルダーパスがコピーされなくなった問題を修正 PR #128419
- 「ターミナルでPythonファイルを実行」がターミナルエディターが使用されているにもかかわらずパネルを開く問題を修正 PR #128866
- @joshspicer (Josh Spicer): welcomePage.contribution.ts のタイプミス PR #127893
- @karolz-ms (Karol Zadora-Przylecki): dockercompose 言語のデフォルトを改善 PR #128550
- @kieranlblack (Kieran Black): コピー区切り文字を変更する設定を追加 PR #101197
- @kilbouri (Isaac Kilbourne): コミットメッセージ PR #127849
- @Kingwl (Wenlu Wang)
- ts インラインヒントを追加 PR #113412
- monaco にインレイヒント API を公開 PR #127391
- インレイヒントはデフォルトで editor.fontFamily を使用します PR #128181
- インポートスパンの自動折りたたみを追加 PR #128978
- @movermeyer (Michael Overmeyer)
- すべての時間ベースのスニペット変数を同じ時間を使用して解決 PR #128571
- コンストラクタからプライベートフィールドを削除 PR #128857
- @nickdelja (Nick Delja): 軽微なタイプミスを修正 PR #129439
- @NSExceptional (Tanner Bennett): macOS でより具体的なファイルタイプの説明を提供 PR #117713
- @shantaram3013 (Siddharth Singh): walkthrough: 非推奨のプロパティ名を更新 PR #129041
- @SNDST00M (SNDST00M: M.U.N.I.N): 拡張テーマカスタマイズ構文 PR #122969
- @ssigwart (Stephen Sigwart): 折りたたみジャンプ機能(親と次/前の同じレベル)を追加 PR #128450
- @suema0331: Fix#122454: 長いターミナルタイトルを切り詰める PR #122620
- @timfenney (Tim Fenney): キーボードショートカットにコピーコマンドラベルを追加。 PR #125563
- @usjpin (Utkarsh Singh): 入力中にアクティビティバーのホバーを非表示にする PR #128362
- @xisui-MSFT
- 逆アセンブリビュー PR #125737
- 逆アセンブリビューのフォーカス問題を修正 PR #129616
- 逆アセンブリビューの初期表示サイズを大きくする PR #129651
- 逆アセンブリビューを開くは表示されるが、無効にするべき PR #129726
vscode-extension-samples
への貢献
- @gjsjohnmurray (John Murray): fix #400 tree-view-sample: package.json, package-lock.json を更新 PR #401
- @jabbera (Mike): launch.json に --enable-proposed-api を追加 PR #346
- @james1293: 余分な parseTree を削除 PR #406
vscode-languageserver-node
への貢献者
- @perrinjerome (Jérome Perrin): 解除できない「要求が失敗しました」ダイアログを修正 PR #787
vscode-pull-request-github
への貢献者
- @binsee: フォーク詳細のチェックを修正 PR #2806
- @iChenLei (ChenLei): chore: 非推奨の vscode-test を @vscode/test-electron に置き換え PR #2842
vscode-vsce
へのコントリビューション
- @legomushroom (Oleg Solomka):
azure-devops-node-api
バージョンを更新 PR #589
debug-adapter-protocol
への貢献者
- @NipunaRanasinghe (Nipuna Ransinghe): Ballerina デバッグアダプター情報を更新 PR #201
language-server-protocol
への貢献者
- @leegbestand: jsonrpcReservedErrorRangeEnd のコメントを更新 PR #1315
monaco-editor
へのコントリビューション
- @Surm4 (Marcin): Playground で公開された色サンプルを更新。 PR #2561
monaco-languages
への貢献
- @alefragnani (Alessandro Fragnani): Pascal 言語に
strict
キーワードを追加 PR #153 - @jonatanklosko (Jonatan Kłosko): GitHub スタイルコードブロックのフェンスの閉じを正しくトークン化する PR #149
- @lofcz (Matěj Štágl): razor + liquid でダッシュ記号を持つタグのレンダリングを修正 PR #150