2021年7月 (バージョン 1.59)
アップデート 1.59.1: このアップデートでは、これらのissue (英語)に対処しています。
このリリースでは、CVE-2021-26437 (英語)にも対応しています。
ダウンロード: Windows: x64 Arm64 | Mac: ユニバーサル Intel シリコン | Linux: deb rpm tarball Arm snap
Visual Studio Code 2021 年 7 月リリースへようこそ。このバージョンには、皆様に気に入っていただける多くのアップデートが含まれています。主なハイライトをいくつかご紹介します。
- 拡張機能ビューの改善 - 拡張機能の詳細なホバー表示、新しいランタイムステータス タブ。
- 設定エディターの検証 - オブジェクトベースの設定の編集エラーをすばやく検出。
- ウィンドウを跨いだターミナルのドラッグ アンド ドロップ - ターミナルをウィンドウ間でエディター領域とパネル領域の両方に移動。
- 拡張されたテーマのカスタマイズ - 複数のカラー テーマを一度にカスタマイズ。
- Jupyter Notebook の組み込みサポート - VS Code で
.ipynb
ファイルを直接開く。 - Notebook UI の改善 - 折りたたまれたセルの最初の行を表示、セルごとのアンドゥ/リドゥ。
- Testing API の最終決定 - VS Code でのテスト実行をネイティブにサポート、組み込みのテスト エクスプローラー。
- デバッグ Disassembly ビューのプレビュー - VS Code で逆アセンブルされた C++ コードを表示。
- Live Preview 拡張機能 - JavaScript デバッグ サポート付きの VS Code 内でのライブ HTML プレビュー。
- Dev Containers devcontainer CLI - 開発コンテナーを操作するためのコマンド ライン インターフェース。
これらのリリース ノートをオンラインで読むには、Updates (code.visualstudio.com) を参照してください。
ライブ配信にご参加ください。8 月 10 日 (火) 午前 8 時 (太平洋時間) / 午後 4 時 (ロンドン) に VS Code チームのライブストリームで、このリリースの新機能のデモをご覧いただき、ライブで質問してください。
Insiders: 最新機能をいち早く試したいですか?Insiders ビルドのナイトリー バージョンをダウンロードして、最新のアップデートをいち早くお試しください。
ワークベンチ
拡張機能
サイズ変更時の拡張機能ビューの改善。次の短いビデオでは、デフォルト幅の拡張機能ビューにすべての詳細が表示されています (以前はアイコン、評価、インストール数が表示されていませんでした)。ビューが縮小すると、小さい拡張機能アイコンが表示され、幅がさらに小さくなると、アイコンと評価が非表示になります。
拡張機能ビューに、拡張機能のカスタム ホバーが表示されるようになりました。このリッチ ホバーには、拡張機能の完全な説明と、拡張機能が無効または推奨されている理由などのその他の役立つ情報が含まれています (上記の画像を参照)。
拡張機能ペインの [詳細] タブに新しい [ランタイム ステータス] タブが追加され、拡張機能のランタイム ステータスを確認できるようになりました。ステータス情報には、アクティベーション時間、起動時にアクティブ化されるかどうか、警告やエラーがあるかどうかが含まれます。これらの情報の一部は、拡張機能ビューとそのホバー (上の画像を参照) に表示されます。
拡張機能ペインの [詳細] タブに、カテゴリ、リソース リンク、および拡張機能のリリース日や更新日などのその他の情報が表示されるようになりました。カテゴリを選択すると、拡張機能ビューにそのカテゴリの他の拡張機能が表示されます。
設定エディター
設定エディターでオブジェクトの検証がサポートされるようになりました。検証では、JSON ファイルを直接編集するときに発生する可能性のある型エラーをチェックします。
配列設定で、編集モードでないときにドラッグ アンド ドロップがサポートされるようになりました。さらに、プロパティ uniqueItems
が true
に設定された列挙型配列設定では、ドロップダウンにすべてのオプションではなく、残りのオプションのみが表示されるようになりました。
設定エディターは、複数行文字列設定もサポートするようになりました。値は、1 行の入力ボックスではなく、複数行のテキスト領域にレンダリングされます。
拡張されたテーマのカスタマイズ構文
以下に示す色のカスタマイズ設定を使用すると、ユーザーは現在のテーマの色をカスタマイズできます。
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 レイアウトの改善
今回のイテレーションでは、Notebook レイアウトにいくつかの改善を加えました。
- セルが折りたたまれているときに、セル入力の最初の行がレンダリングされるようになりました。
- ウィンドウの幅が狭く、すべてのアクションを表示するのに十分でない場合、Notebook エディター ツールバーのアクションはオーバーフロー メニュー ([...]) に移動されます。
notebook.undoRedoPerCell
のデフォルト値がtrue
に変更されました。
また、コード セルのデフォルト スタイルを更新し、セルを区別しやすくするために背景色を表示するようになりました。テーマは、notebook.cellEditorBackground
を使用してこの色をカスタマイズできます。
最後に、設定 notebook.globalToolbarShowLabel
を使用して、Notebook ツールバーのテキスト ラベルを切り替えることができるようになりました。
[相対パスをコピー] のパス区切り文字を設定
新しい設定 explorer.copyRelativePathSeparator
を使用すると、[相対パスをコピー] アクションを呼び出すときに、パス区切り文字を明示的に設定できます。
使用可能な区切り文字オプションは次のとおりです。
auto
(デフォルト) - オペレーティング システム固有のパス区切り文字を使用します。/
- パス区切り文字としてスラッシュを使用します。\\
- パス区切り文字としてバックスラッシュを使用します。
エディター グループ間でビューの状態を共有
新しい設定 workbench.editor.sharedViewState
が追加され、エディター ビューの状態 (エディターのスクロール位置など) がエディター グループ間でどのように共有されるかを構成できるようになりました。
デフォルトでは、この設定は無効になっており、現在の動作が維持されます。エディターをサイドに開き、後でそのエディター グループを閉じてから、再度エディターをサイドに開いた場合、新しいエディター グループを開いているため、ビューの状態は復元されません。ただし、この設定を有効にすると、最新のエディター ビューの状態がすべてのエディター グループ間で保持され、より特定なビューの状態がエディター グループに見つからない限り、使用されます。
以下は、package.json
ファイルをサイドで再度開いたときに選択状態が保持される例です。
エディター
折りたたみリージョン間の移動
カーソルの位置を対応する折り畳みに設定する新しいコマンドがあります。
- 次の折りたたみへ移動 (
editor.gotoNextFold
) - 前の折りたたみへ移動 (
editor.gotoPreviousFold
) - 親の折りたたみへ移動 (
editor.gotoParentFold
)
コマンドには現在デフォルトのキーバインドがありませんが、[基本設定: キーボード ショートカットを開く] (⌘K ⌘S (Windows, Linux Ctrl+K Ctrl+S)) から独自のキーボード ショートカットを追加できます。
インポートを自動的に折りたたむ
設定 editor.foldingImportsByDefault
を使用して、インポート ステートメントを自動的に折りたたむようにします。折りたたみ状態は、ファイルが一度開かれると保存されます。この機能は、TypeScript、JavaScript、Java、C#、C++、およびインポート ステートメントに FoldingRangeKind.Imports
を注釈する折りたたみ範囲プロバイダーを持つすべての言語で動作します。
選択範囲から検索文字列をシードする
[検索] コントロール設定 editor.find.seedSearchStringFromSelection
が拡張され、空でない選択範囲からのみ検索文字列をシードできるようになりました。デフォルトでは、[検索] コントロールが表示されると、エディターは選択範囲または空の選択範囲の周囲の単語を検索キーボードとして使用します。
インライン サジェストの改善
インライン サジェストのレンダリング方法を変更しました。これにより、多くのバグが修正されただけでなく、インライン サジェストを認識したワード ラップも可能になりました。
さらに、非末尾位置での複数行のインライン サジェストがサポートされるようになりました。
インレイ ヒントの改善
インレイ ヒントのレンダリング方法も変更しました。インライン サジェストと同じメカニズムを使用することで、インレイ ヒントもワード ラップで考慮されるようになりました。このメカニズムにより、インレイ ヒントの周りのカーソル ストップも個別に有効になります。
ターミナル
ウィンドウを跨いだターミナルのドラッグ アンド ドロップ
タブ リストまたは 1 つのウィンドウのエディター領域から、別のウィンドウのタブ リスト、エディター領域、またはパネルにターミナルをドラッグ アンド ドロップします。
子プロセス追跡と終了警告
既存の terminal.integrated.confirmOnExit
設定と新しい terminal.integrated.confirmOnKill
設定は、シェル プロセスの子プロセスを持つターミナルを閉じようとすると、子プロセス追跡を使用して警告を表示します。デフォルトでは、この追跡はエディター領域のターミナルにのみ影響しますが、すべてのターミナルまたはパネル領域のターミナルに警告を表示するように構成できるようになりました。
拡張機能が提供するターミナル プロファイルをデフォルトとして設定
拡張機能によって提供されるターミナル プロファイルをデフォルト プロファイルとして設定できるようになりました。デフォルトのターミナル プロファイルは、ターミナル ドロップダウンの [既定] サフィックスで示されます。
下線と取り消し線サポート
統合ターミナルが下線と取り消し線属性をサポートするようになりました。たとえば、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
Live Preview (英語) 拡張機能 (先月のリリース (英語)) には、いくつかの刺激的な新機能があります。これらには以下が含まれます。
- 外部プレビュー用の組み込み JavaScript デバッガーとの互換性。
- [Live Preview: デバッグ プレビューを表示] を実行して試してみてください。
- 埋め込みブラウザーの改善 (ページ内検索のサポートや、
webview
DevTools へのクイック アクセスなど)。 - 自動生成されたファイルのファイルシステム監視。
- その他多数! 🎉
今月の進捗状況の詳細については、拡張機能のリリース ノート (英語)を参照してください。
GitHub Pull Requests and Issues
GitHub Pull Requests and Issues (英語) 拡張機能の作業が継続されています。この拡張機能を使用すると、プル リクエストと issue の作業、作成、管理を行うことができます。今月のハイライトの 1 つは、issue での [作業開始] が拡張され、現在のリポジトリ外の issue で作業できるようになったことです。
すべての新機能とアップデートの詳細については、拡張機能のリリース 0.29.0 の変更履歴 (英語)をご覧ください。
Jupyter
Jupyter (英語) 拡張機能の作業が継続されています。すべての新機能とアップデートの詳細については、拡張機能の 7 月リリース の変更履歴 (英語)をご覧ください。
Notebook のネイティブ サポートを可能にするための VS Code のパスの詳細については、最近の Notebook の成熟 (英語) ブログ記事をご覧ください。
インタラクティブ ウィンドウ
Jupyter インタラクティブ ウィンドウは、Notebook インターフェースではなくテキスト ファイルを使用して、Jupyter Notebook を構築および操作するための代替手段を提供します。先月、テーマ、カスタム キーバインド、スニペット、拡張機能との互換性など、より深いワークベンチ統合を特徴とする、アップグレードされたバージョンの Jupyter インタラクティブ ウィンドウをプレビューしました。プレビュー エクスペリエンスに関する GitHub issue を通じてフィードバックを提供してくださったユーザーの皆様に感謝申し上げます。組み込みのインタラクティブ ウィンドウが 1.59 でデフォルトのインターフェースになりました。以前のインターフェースは、設定 "jupyter.enableNativeInteractiveWindow": false
の背後で引き続き利用可能であり、今後のリリースで削除される予定です。皆様からのフィードバック (英語)をお待ちしております。
行単位実行
Jupyter Notebook で「行単位実行」機能のサポートに取り組んでいます。この機能は、基本的に、複雑なデバッグ UI なしでセルのコードを 1 行ずつステップ実行できる簡略化されたデバッグ モードです。これはまだ実験段階ですが、"jupyter.experimental.debugging": true
を設定し、選択したカーネルに ipykernel のバージョン 6 をインストールしてから、セル ツールバーの [行単位実行] ボタンを選択して試すことができます。
Python
Python (英語) 拡張機能では、Python インタープリターのリストの並べ替えを改善しました。以前は、仮想環境がリストの下部に表示されていたため、多くのスクロールや検索が必要でした。プロジェクト ルートにある仮想環境が最初に表示され、その後にグローバルにインストールされた環境が表示されるようになりました。
Dev Containers devcontainer CLI
VS Code 内から Docker コンテナーを操作するための Dev Containers (英語) 拡張機能に、devcontainer
コマンド ライン インターフェースが含まれるようになりました。これにより、開発コンテナー内のフォルダーを開いたり (devcontainer open
)、開発コンテナー イメージをビルドしたり (devcontainer build
) できます。
Remote Development 拡張機能の新機能とバグ修正については、Remote Development リリース ノート (英語)をご覧ください。
プレビュー機能
無題ファイルの自動言語検出
機械学習を使用してコーディングしている言語を検出し、無題ファイルの言語モードを自動的に設定する、無題ファイルの自動言語検出の初期プレビューを発表できることを嬉しく思います。この機能は、オープンソース ML ライブラリである Tensorflow.js (英語) と、GitHub ユーザー @yoeo (英語) による Guesslang (英語) の ML モデルを使用します。
このリリースでは、この機能はデフォルトでオフになっていますが、次のイテレーションでデフォルトにすることを計画しています。有効にするには、次の設定を適用します。
"workbench.editor.untitled.experimentalLanguageDetection": true
機能の動作を確認するには、無題ファイル ([ファイル] > [新しいファイル]) を開き、ソース コードをエディターに貼り付けます。
以下は、Python コードの自動検出の例です。
テーマ: Panda Theme (英語)
さらに、言語ピッカーを開いて、検出されている言語を確認できます。
テーマ: Panda Theme (英語)
注: 言語検出の信頼性が十分に高くない場合、現在の言語モードのままになり、言語検出の信頼性が高まるまで言語ピッカーに結果は表示されません。
この設定では、自動的に切り替えたくない言語モードを指定するための言語オーバーライドも提供できます。
以下は、Markdown ファイルを自動検出しない例です。
"workbench.editor.untitled.experimentalLanguageDetection": true
"[markdown]": { "workbench.editor.untitled.experimentalLanguageDetection": false }
上記の設定では、無題の Markdown ファイルを編集している間は自動言語検出は実行されません。ただし、他の種類の無題ファイルを変更すると、自動言語検出が実行され、それらのファイルの内容が使用されます。
ML モデルと対話するコードを独自のライブラリに分離し、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 でバグが発生した場合はお知らせください。
Disassembly ビュー
Microsoft C++ チームによる大規模な貢献 (英語)のおかげで、このマイルストーンにデバッグ Disassembly ビューのプレビューを含めることができてうれしく思います。
Disassembly ビューは、エディターのコンテキスト メニューから開いて、アクティブなスタック フレームの逆アセンブルされたソースを表示できます。また、アセンブリ命令のステップ実行と、個々の命令へのブレークポイントの設定をサポートしています。
Disassembly ビューは、アクティブなデバッグ セッション中であり、基盤となるデバッグ拡張機能がそれをサポートしている場合にのみ使用できます。本日現在、Microsoft C++ (英語) および Mock Debug (英語) 拡張機能のみが Disassembly ビューを提供できます。
技術的な観点から見ると、VS Code の Disassembly ビューの実装は、Debug Adapter Protocol のさらに 4 つの機能をサポートするようになりました。
- メモリ ロケーションの逆アセンブルされたソースを提供する
disassembly
リクエスト。 - スタック フレームの
instructionPointerReference
プロパティ。 - ステップ実行リクエストの
granularity
プロパティ。 - 命令ブレークポイントと
setInstructionBreakpoints
リクエスト。
拡張機能の作成
Testing API
昨秋、VS Code でのテスト実行のネイティブ サポートを追加する作業を開始し、今月、テスト関連の API の最初のセットが最終決定されました。これらの API は、以前拡張機能で見られたものよりも、優れた柔軟性、パフォーマンス、および豊富な UX を提供します。詳細については、テスト拡張機能の作成に関するガイド (英語)をご覧ください。
テーマ: codesong (英語)
Test Explorer UI (英語) 拡張機能の既存のユーザーは、testExplorer.useNativeTesting
を true
に設定することで、ネイティブ エクスペリエンスを得ることができます。ただし、変換は Test Explorer UI 拡張機能の既存の API の反映であるため、リッチ diff サポートなどの一部の機能は含まれていません。
Testing API を最初に採用した拡張機能の 1 つは、Test Runner for Java (英語) ( Extension Pack for Java (英語) に含まれています) でした。
[新しいファイル] メニューの貢献ポイント
Notebook やカスタム エディターなど、新しいファイル エディターを作成する方法を提供する拡張機能は、新しい file/newFile
メニュー貢献ポイントにコマンドを貢献できるようになりました。このメニューには、ようこそページの [新しいファイル...] 項目または [ファイル] メニューからアクセスできます。
リッチ ステータス バー ホバー
リンクとアイコンを含むリッチ ホバーが、ステータス バー項目 StatusBarItem.tooltip: string | IMarkdownString
でサポートされるようになりました。
MarkdownString.supportThemeIcons
が true の場合、$(iconName)
構文でアイコンを使用できます。MarkdownString
が信頼されている場合は、コマンド リンクを追加することもできます。構文:([test](command:vscode.newWindow))
。
ステータス バーの警告色
警告を表すステータス バー項目は、新しく追加された色 statusBarItem.warningBackground
と statusBarItem.warningForeground
を使用できます。
additionalProperties なしのオブジェクト設定
オブジェクト設定が設定エディターでサポートされるためには、オブジェクト設定に additionalProperties
が false
に設定されている必要があります。そうでない場合、設定エディターは設定を任意の形状にできる複雑な設定として解釈し、ユーザーを設定 JSON ファイルに誘導します。
複数行文字列設定
設定エディターで複数行文字列設定のサポートを追加するには、文字列設定にキーと値のペアとして "editPresentation": "multilineText"
を追加します。文字列設定を複数行に変更すると、設定エディターは設定値を 1 行の入力ボックスではなく、複数行のテキスト領域にレンダリングします。
更新された 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
Language Server Protocol (英語) の新しい次期バージョンが、対応する npm モジュールとともに公開されました。バージョン 3.17 (英語) には、VS Code 自体の最新の変更に沿った、補完項目ラベルの詳細の提案が含まれています。
Debug Adapter Protocol
最終決定された「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 には、ユーザーにログインを求める機能がありませんでした。SAML/Single Sign On (SSO) を使用する GitHub などの認証サービスでは、SSO セッションの有効期限が切れるとリソースへのアクセスを失うアクセストークンを使用するため、ログインを求めることが必要です。この提案では、AuthenticationGetSessionOptions
に forceRecreate
という別のプロパティを追加します。これにより、ユーザーに再度サインインするように求めることができます。createIfNone
を指定した場合と同様のモーダル エクスペリエンスがユーザーに表示されます。
エンジニアリング
iframe ベースの WebView がデスクトップのすべての場所で使用されるようになりました
今月、Electron の webview タグ (英語) 要素から通常の <iframe>
要素ベースの WebView への移行を完了しました。これにより、デスクトップと Web での VS Code の WebView の実装がより整合性が取れるようになり、不要になった多くのコードを削除することもできます。
Electron 13 のアップデート
このマイルストーンでは、VS Code に Electron 13 をバンドルするための調査を完了しました。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(デスクトップと Web の両方)を起動し、さまざまな UI 要素を検証して、適切な機能を確認しています。今回のマイルストーンでは、このインフラストラクチャに投資し、リリースチェックリストから手動スモークテストを削除できるようにしました。
スモークテストは、すべてのプラットフォーム(macOS、Linux、および Windows)で実行されるようになりました。さらに、VS Code の最新の安定バージョンと新しいリリースの間の回帰を具体的にチェックする、より複雑なスモークテストスイートの 1 つが、各コミットで実行されるように自動化されました。
最後に、自動化された Web スモークテストに使用している素晴らしい Playwright ライブラリのおかげで、トレース機能を有効にし、トレースビューアツールを使用して失敗したスモークテストをリプレイできるようにしました。
注目すべき修正
- 26425: 変更がない場合、「変更を開く」ボタンは表示されないようにする
- 100815: リモート WSL に接続すると外部ターミナルが壊れる
- 106981: ウィンドウズームを -1 に設定するとターミナルカーソルがゴースト化する
- 127959: デバッガーが一時停止するとデバッグペインが開く
- 129059: 設定エディターのオブジェクトウィジェットが説明をレンダリングしない
- 129070: OK ボタンを押すだけではドロップダウン設定値を修正できない
- 129415: ユーザータスクをシングルファイルモードで実行できない
謝辞
最後になりましたが、今月 VS Code に貢献してくださった以下の皆様に心から感謝申し上げます。
issue tracking への貢献
- John Murray (@gjsjohnmurray)
- Andrii Dieiev (@IllusionMH)
- @CodeCrazy-ywt
- ArturoDent (@ArturoDent)
- Alexander (@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 spaces リンクのタイプミスを修正 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
- "Run python file in terminal" がターミナルエディターを使用しているにもかかわらずパネルを開く問題を修正 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
- モナコ用のインレイヒント 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