2021年9月 (バージョン 1.61)
更新 1.61.1: この更新は、これらの問題に対処しています。
更新 1.61.2: この更新は、これらの問題に対処しています。
ダウンロード: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Visual Studio Code 2021年9月リリースへようこそ。このバージョンでは多くの更新があり、皆様に気に入っていただけることを願っています。主なハイライトをいくつかご紹介します。
- 同じグループ内でエディターを分割 - 同じファイルのサイドバイサイドエディターを素早く作成できます。
- ロックされたエディターグループ - エディターグループで自動的にロックされるエディタータイプを選択します。
- 削除済みおよび読み取り専用ファイルの表示改善 - タブの装飾で削除済みおよび読み取り専用ファイルを強調表示します。
- 括弧ペアガイド - 一致する括弧ペアをリンクする垂直ガイドを表示します。
- 固定ターミナル寸法 - アクティブなターミナルの幅と高さを設定します。
- Jupyter Notebookの改善 - 目次ビュー、完全なデバッグサポート。
- プラットフォーム固有の拡張機能 - Windows、macOS、Linux用に異なる拡張機能バージョンを公開します。
- 仮想ワークスペース拡張機能ガイド - 仮想環境向けに拡張機能を更新する方法を学習します。
- 高度なコンテナ設定 - 開発コンテナの設定に役立つヒント、コードサンプル、ビデオ。
これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com の 更新 にアクセスしてください。
このバージョンの新機能のハイライトを視聴するには、VS Codeチームのリリースパーティーをご覧ください。イベントの録画はYouTubeチャンネルでご覧いただけます。
Insiders: 新機能をいち早く試したいですか?夜間ビルドのInsidersをダウンロードして、利用可能になり次第、最新の更新を試すことができます。
ワークベンチ
新しいグループを作成せずにエディターを分割
新しいコマンドSplit in Group (⌘K ⇧⌘\ (Windows, Linux Ctrl+K Ctrl+Shift+\)) が追加され、2つ目のエディターグループを必要とせずにエディターを2つの側に分割できるようになりました。これにより、同じファイルを2つのエディターで並べて作業できます。また、短いビデオで示されているように、Toggle Layoutボタンで垂直分割と水平分割を切り替えることもできます。
分割を垂直または水平にしたい場合は、新しい設定workbench.editor.splitInGroupLayout
があります。
キーバインディングでこの機能を使用するための新しいコマンドがあります。
workbench.action.splitEditorInGroup
workbench.action.toggleSplitEditorInGroup
workbench.action.joinEditorInGroup
workbench.action.toggleSplitEditorInGroupLayout
そして、両側を移動するには
workbench.action.focusFirstSideEditor
workbench.action.focusSecondSideEditor
workbench.action.focusOtherSideEditor
新しい色sideBySideEditor.border
は、片側と反対側を区切る境界線の色を設定します。
ロックされたエディターグループ
前回のマイルストーンで、実験的な新機能としてロックされたエディターグループを導入しました。このマイルストーンでは、設定エクスペリエンスが改善され、開いたときにグループを自動的にロックするエディターを簡単に選択できるようになりました。
この設定はworkbench.editor.autoLockGroups
と名付けられました。同様に、エディターグループのロックに関連するコマンドも名前が変更され、実験的なものではなくなりました。
workbench.action.lockEditorGroup
workbench.action.unlockEditorGroup
workbench.action.toggleEditorGroupLock
装飾で削除済みおよび読み取り専用エディターを示す
開かれたエディターは、読み取り専用であるか、関連するリソースがディスクから削除されたかを示すことができます。この表示は、エディターのラベルに「deleted」および/または「readonly」を追加することで行われていましたが、かなりのスペースを必要としました。
VS Codeは、この目的のために装飾を使用するようになりました。
- 削除されたリソースを持つエディターは、取り消し線と赤で表示されます。
- 読み取り専用のリソースを持つエディターは、ロックアイコンで表示されます。
既存のグループにエディターを分割する
エディターを横に分割すると、VS Codeは既存のグループが横にあっても新しいエディターグループを開きます。しかし、エディターを既存のグループに分割したい場合があります。
これをサポートするために、新しいコマンドが追加されました。
workbench.action.splitEditorToPreviousGroup
: 前のグループに分割。workbench.action.splitEditorToNextGroup
: 次のグループに分割。workbench.action.splitEditorToAboveGroup
: 現在のグループの上のグループに分割。workbench.action.splitEditorToBelowGroup
: 現在のグループの下のグループに分割。workbench.action.splitEditorToLeftGroup
: 現在のグループの左のグループに分割。workbench.action.splitEditorToRightGroup
: 現在のグループの右のグループに分割。workbench.action.splitEditorToFirstGroup
: 最初のグループに分割。workbench.action.splitEditorToLastGroup
: 最後のグループに分割。
差分エディターの短いラベル
2つのファイルを比較すると、ファイル名にワークスペース相対のフォルダパスがプレフィックスとして付加され、比較対象のファイル名が見づらくなっていました。
今回のリリースでは、両方のファイル名が同じでない限り、フォルダがラベルから非表示になり、通常のエディターラベルの動作に一致するようになりました。
両方のファイル名が同じ場合、フォルダの違いを示す説明が表示されます。
macOS: ファイルメニューの変更
macOSでは、ファイルメニューから開く...メニュー項目を選択すると、ファイルとフォルダの両方を開くことができます。新規ユーザーにとっては、これは驚きかもしれませんが、人々はフォルダを開くためにワークスペースを開くコマンドを使おうとしました。これは.code-workspace
ファイルを開くためのメニュー項目です。
混乱を避けるため、macOSのファイルメニューにわずかな調整を加えました。
- 新しいエントリーフォルダを開く...でフォルダを開きます。
- ワークスペースを開く...はファイルからワークスペースを開く...に名前が変更されました。
テレメトリー設定
新しいテレメトリー設定telemetry.telemetryLevel
が追加され、より高い構成粒度が提供され、ユーザーはエラーテレメトリーのみを送信し、一般的な使用状況データは送信しないかどうかを選択できるようになりました。値はon
、error
、off
です。on
とerror
の値はクラッシュレポーターも有効にします。
既存のtelemetry.enableTelemetry
とtelemetry.enableCrashReporter
の設定は、新しいtelemetry.telemetryLevel
設定に置き換えられる予定ですが、引き続き尊重されます。
ミニマップの背景透過性
新しく追加されたminimap.foregroundOpacity
色を使用して、ミニマップの背景不透明度をミニマップテキストの不透明度とは独立して構成できるようになりました。
ヘルプメニュー項目の更新
入門エクスペリエンスの継続的な改善に伴い、ヘルプメニュー項目がより一般的に使用される名前に更新されました。これは新規ユーザーからの学習に基づいたものですが、誰もがヘルプを見つけやすくなることを願っています。入門ビデオはビデオチュートリアルに、インタラクティブプレイグラウンドはエディタープレイグラウンドになりました。新しい名前は、ヘルプメニューとコマンドパレットの両方で見つけることができます。ヘルプメニューには、コマンドパレットを開くための追加のエントリーポイントとしてすべてのコマンドを表示エントリーもあります。
エディター
括弧ペアガイド
エディターは、基本的な括弧ペアガイドをサポートするようになりました。括弧ペアガイドは、括弧ペアの色付け機能と同じ色とアルゴリズムを使用します。括弧ペアのマッチングアルゴリズムは、最近の「括弧ペアの色付けが10,000倍高速に」というブログ記事で詳しく説明されています。
インデントガイドと同様に、アクティブな括弧ペアガイドが強調表示されます。
括弧ペアガイドは、editor.guides.bracketPairs
設定(デフォルトはfalse
)を構成することで有効にできます。この機能は今後も反復開発を続け、次回のリリースでは垂直ガイドも検討します。
インデントガイド設定
editor.renderIndentGuides
とeditor.highlightActiveIndentGuide
の設定は、editor.guides.indentation
とeditor.guides.highlightActiveIndentation
に置き換えられました。
ソース管理
Gitリポジトリの「アクションボタン」を公開または同期
Git拡張機能は、ソース管理ビューに新しい「アクション」ボタンを追加し、プッシュされていない変更をより簡単に公開または同期できるようにしました。
テーマ: Amethyst Theme
デフォルトでは、Git拡張機能は、プッシュされていないコミットがある場合は上記のように変更を同期ボタンを、ブランチがまだ公開されていない場合は変更を公開ボタンを追加します。さらに、ユーザーはgit.showUnpublishedCommitsButton
設定を構成することでこの動作をカスタマイズできます。この設定はデフォルトでwhenEmpty
に設定されており、プッシュされていないコミットがあり、ビューに他の変更がない場合にのみボタンが表示されます。
この新しいアクションボタンは、ソース管理拡張機能の新しい提案APIとして利用可能です。詳細については、以下の提案APIセクションをご覧ください。
最後に、ユーザーは新しいscm.showActionButton
設定を介して、ソース管理ビュー内のすべてのアクションボタンの表示を完全に無効にできます。これは、ソース管理拡張機能の動作を上書きします。
変更されたファイルの表示制限の増加
このリリース以前は、Git拡張機能にはソース管理ビューに表示できる変更数のハードコードされた制限が5000でした。この制限は、VS CodeがGitによって報告されたすべての変更を処理する間、ユーザーが長時間待つことを防ぐためでした。この制限は現在10,000変更に増加され、ユーザーが制限をカスタマイズできるようにする新しいgit.statusLimit
設定が追加されました(必要に応じてリポジトリごとに)。この設定を0
に設定して制限を完全に無効にすることもできますが、変更が多い場合は更新に時間がかかる可能性があることに注意してください。
さらに、制限を超過した場合に、入力ボックスに以下の警告インジケータを追加しました。
ターミナル
固定寸法
ターミナル: 固定寸法を設定コマンド (workbench.action.terminal.setDimensions
) を介して、ターミナルの寸法を静的に設定できるようになりました。これは、行の折り返しがぎこちなかったり、邪魔になったりする場合に便利です。
このコマンドは、好みの幅や高さを入力できるプロンプトを表示します。
カスタムのタイトルと説明
ターミナルの名前は通常、関連付けられているプロセス名であり、ターミナルを区別するのが難しい場合があります。
terminal.integrated.tabs.title
とterminal.integrated.tabs.description
設定で、変数を使ってタイトルと説明の両方を設定できるようになりました。
現在のデフォルト値は以下のとおりです。
{
"terminal.integrated.tabs.title": "${process}",
"terminal.integrated.tabs.description": "${task}${separator}${local}${separator}${cwdFolder}"
}
利用可能な変数は以下のとおりです。
${cwd}
- ターミナルの現在の作業ディレクトリ${cwdFolder}
- ターミナルの現在の作業ディレクトリ。${workspaceFolder}
- ターミナルが起動されたワークスペース。${local}
- リモートワークスペースにおけるローカルターミナルを示す。${process}
- ターミナルプロセスの名前。${separator}
- 値を持つ変数または静的テキストに囲まれている場合にのみ表示される条件付き区切り文字 (" - ")。${sequence}
- プロセスによってxterm.jsに提供される名前。${task}
- このターミナルがタスクに関連付けられていることを示す。
絵文字IME
macOSの入力メソッドエディタ (IME) で絵文字がサポートされるようになりました。
Altバッファアクティブコンテキストキー
nanoのような一部のターミナルUIアプリケーションは、VS Codeワークベンチによって消費されるキーボードショートカットを使用するため、VS Codeに統合されている場合に機能が制限されます。新しいwhen節コンテキストキーであるTerminalContextKeys.altBufferActive
は、altバッファがアクティブな場合にキーバインディングをワークベンチではなくターミナルに送ることで、この問題を回避します。
言語
新しいJavaScriptおよびTypeScript言語ステータスアイテム
現在のTypeScriptバージョンとIntelliSenseの状態が、言語ステータスバーアイテムに表示されるようになりました。
以前は、TypeScriptのバージョンは常にステータスバーに表示されていました。バージョンをピン留めすることで、以前の動作に戻すことができます。
言語ステータス項目は、現在のファイルのjsconfig/tsconfig
も表示し、現在部分モードにいるかどうかを示します。
無題ファイル間のIntelliSense
すべての無題のJavaScriptおよびTypeScriptファイルは、同じプロジェクトの一部として扱われるようになりました。これにより、ある無題ファイルで定義されたグローバルシンボルが、他のファイルでも提案として表示されるようになります。
これは、ワークスペース内のディスク上のファイルの動作とよりよく一致します。無題のファイルにimport
またはexport
を追加すると、モジュールになり、他のファイルからグローバル変数が非表示になります。
ウェブ上のファイル間のIntelliSense
VS Codeがブラウザで実行されている場合、vscode.devまたはgithub.dev上のJavaScriptおよびTypeScriptファイル間でIntelliSenseが動作するようになりました。
VS Codeがブラウザで実行されている場合、現在開いているファイルにのみアクセスできるため、VS Codeは自動インポートなどのプロジェクト全体のIntelliSense機能を提供できないことに注意してください。
JSXタグのより一貫した折りたたみ
JavaScriptまたはTypeScriptでJSXタグを折りたたむと、VS Codeは閉じタグを引き続き表示するようになりました。
これはHTMLでの折りたたみ動作と一致します。
プレビュー機能
TypeScript 4.5のサポート
この更新には、間もなくリリースされるTypeScript 4.5の初期サポートが含まれています。新しい言語およびツール機能の詳細については、TypeScript 4.5ベータ版の発表記事をご覧ください。いくつかのツールのハイライトは以下の通りです。
- JSX属性補完の初期サポート。
- 参照CodeLensのより正確な参照カウント。
TypeScript 4.5のナイトリービルドの使用を開始するには、TypeScript Nightly拡張機能をインストールしてください。
TypeScript 4.5でバグが発生した場合は、ぜひフィードバックをお寄せください。
アプリケーション再起動時のターミナルセッションの復元
VS Codeウィンドウが閉じられると、ターミナルプロセスは破棄されます。このリリースでは、バッファを記録および復元し、それを使用してプロセスを再作成するための新しいオプトイン設定があります。これを有効にするには、terminal.integrated.persistentSessionReviveProcess
を設定します。
コンテンツ幅にターミナルサイズを切り替える
ターミナルの幅を、コンテンツ全体に合わせるか、行を折り返すか、⌥Z (Windows, Linux Alt+Z)で切り替えるか、タブのコンテキストメニューアクションコンテンツ幅にサイズを切り替えるで切り替えることができます。
これはエディターで行の折り返しを切り替えるのと似ており、キーバインディングも共有しています。
拡張機能への貢献
Jupyter
目次
Jupyter Notebookの目次には、コマンドパレットのJupyter: 目次を表示コマンドからアクセスできるようになりました。この機能は、ノートブックツールバーのアイコンからもアクセスできます。
この機能はVS Code内のすべてのノートブックに適用されるため、ファイルエクスプローラーのアウトラインビューからアクセスできます。
新しいファイルメニューから新しいノートブックを作成する
ファイル > 新しいファイル... メニュー項目を使用して、新しいJupyter Notebookを作成できるようになりました。このメニューは、ウェルカムページの新しいファイル...項目またはコマンドパレットからもアクセスできます。
デバッグ
VS CodeはJupyter Notebookの完全なデバッグ機能をサポートするようになりました。試すには、選択したカーネルとしてipykernel
v6+がインストールされていることを確認し、ブレークポイントを設定して、セルをデバッグコマンドを選択します。
リモートデバッグ
リモートカーネルを使用して行ごとに実行し、Jupyter Notebookをデバッグすることもできます。試すには、Jupyter: 接続するローカルまたはリモートJupyterサーバーを指定するコマンドでリモートカーネルに接続し、選択したカーネルとしてipykernel
v6+がインストールされていることを確認し、通常通り行ごとに実行またはデバッグを使用します。
レンダラー拡張機能を分離
Jupyter Notebookのレンダラーは別の拡張機能(Jupyter Notebook Renderers)に分割され、ユーザーはvscode.devとgithub.devでplotly、vega、latexなどのノートブック出力を表示できるようになりました。
Python
新しいPythonチュートリアル
Python拡張機能は、VS CodeでのPythonの入門エクスペリエンスを向上させるための基本的な設定手順を含むチュートリアルを提供しています。
デバッグ体験の改善
launch.json
設定ファイルのないワークスペースで作業する場合、Python拡張機能は、Pythonファイルまたはプロジェクトのデバッグを開始するたびにデバッガー設定メニューを表示していました。これは、カスタム引数(Flask、Django、FastAPIなど)を使用するWebアプリケーションをデバッグする場合に特に煩わしいことがありました。
デバッグを開始するたびに設定を選択する必要がなくなり、最初に行った選択がセッションの残りの部分で再利用されるようになりました。
GitHubプルリクエストと課題
プルリクエストや課題の作業、作成、管理ができるGitHub Pull Requests and Issues拡張機能の開発が継続されています。ハイライトについては、拡張機能の0.31.0リリースの変更履歴をご確認ください。
リモート開発
コンテナー、リモートマシン、またはLinux用Windowsサブシステム(WSL)をフル機能の開発環境として使用できるRemote Development拡張機能の開発が継続されています。
バージョン1.61の主な機能は以下の通りです。
- フォワードされたポートのDNS名。
- コンテナの追加機能の簡単選択。
- Dev Containers拡張機能はWSLでCLIコマンドを実行可能。
新しい拡張機能の機能とバグ修正については、Remote Developmentリリースノートで確認できます。
拡張機能作成
プラットフォーム固有の拡張機能
拡張機能は、VS Codeがサポートする各プラットフォーム(Windows、Linux、macOS)に対して異なるVSIXを公開できるようになりました。VS Codeバージョン1.61.0から、VS Codeは現在のプラットフォームに一致する拡張機能パッケージを探します。バージョン1.99.0から、vsce拡張機能公開ツールは、プラットフォーム固有の拡張機能の公開をサポートしています。
プラットフォーム固有の拡張機能は、拡張機能にプラットフォーム固有のライブラリや依存関係がある場合に便利です。プラットフォームパッケージに含める正確なバイナリを制御できます。一般的な使用例は、拡張機能がネイティブノードモジュールを使用する場合です。
これに関する詳細は、プラットフォーム固有の拡張機能ドキュメントで確認できます。
テストタグと非エラー出力
今月、新しいテストAPIに基づいて構築された拡張機能向けの追加APIが出荷されました。
-
テストタグを使用すると、特定のテストが実行できるかどうか、どのように実行できるか、または実行できないかを設定できます。
-
非エラー出力を使用すると、追加のコンソール出力を特定のテストケースに関連付けることができます。
出力からのメッセージは、失敗メッセージと同様にインラインで表示されます。
ファイルシステムプロバイダーがファイルを読み取り専用として宣言できるようにする
ファイルシステムプロバイダーは、FileStat
オブジェクトの新しいpermissions
プロパティをFilePermission.Readonly
に設定することで、個々のファイルを読み取り専用としてマークできるようになりました。読み取り専用ファイルは編集できません。
注:すべてのファイルを読み取り専用として扱う必要がある場合は、registerFileSystemProvider
を呼び出す際に既存のisReadonly
オプションを使用できます。
設定エディタの拡張機能カテゴリ
設定エディタは、カテゴリがある場合に拡張機能のcontributes.configuration
エンドポイントのサブツリーを表示するようになりました。
複数のカテゴリを作成するには、contributes.configuration
が設定の配列を受け入れ、各設定のtitle
キーがセクションの見出しとして使用されます。また、サブツリー内でカテゴリを並べ替えることができるorder
フィールドもあります。
タイプ階層
型階層プロバイダーを追加するためのAPI提案が最終決定されました。
WebviewOptions.enableForms
WebviewOptions
の新しいenableForms
プロパティにより、Webview内のフォームを有効または無効にできます。後方互換性のため、enableScripts
がすでに設定されている場合、enableForms
はデフォルトでtrueになります。それ以外の場合は、デフォルトでfalseになります。
ウェブビューコンテンツで必要ない限り、フォームを無効にすることをお勧めします。
ターミナル状態
Terminal
オブジェクトに新しいstate
プロパティが公開されました。対応するwindow.onDidChangeTerminalState
イベントに加えて、ユーザーがターミナルと対話したかどうかを示します。たとえば、拡張機能は、ユーザーがターミナルと対話するまでアクションを実行しないように待機する場合があります。
テストデータでのWeb拡張機能テストの実行
@vscode/test-web nodeモジュールは、Chromium、Firefox、またはWebkitでWeb拡張機能をテストするためのCLIとAPIを提供します。
このマイルストーンで新しく追加されたのは、テストデータでVS Code for the Webを開くためのオプションfolderPath
です。インメモリファイルシステムには、指定された場所のリソースが含まれているため、テストは作業するファイルを持つことができます。
vscode-test-web --browserType=chromium --extensionDevelopmentPath=$extensionLocation $testDataLocation
更新された codicon
以下の新しいアイコンが、当社のcodiconライブラリに追加されました。
ビーカー停止
ブラケットドット
ブラケットエラー
ブラケット
デバッグ継続小
グラフライン
グラフ散布
円グラフ
Visual Studio Code用Webview UIツールキット
Visual Studio Code用Webview UIツールキットは、Visual Studio CodeでWebviewベースの拡張機能を構築するためのコンポーネントライブラリです。
ライブラリの機能は以下の通りです。
- Visual Studio Codeのデザイン言語を実装: エディターの他の部分と一貫したルック&フィールを持つ拡張機能を作成できます。
- カラーテーマの自動サポート: すべてのコンポーネントはテーマを念頭に置いて設計されており、現在のエディターテーマを自動的に表示します。
- 任意の技術スタックを使用: ライブラリはWebコンポーネントのセットとして提供されるため、開発者は拡張機能がどのような技術スタック(React、Vue、Svelteなど)で構築されていてもツールキットを使用できます。
- すぐに使用できるアクセシビリティ: すべてのコンポーネントには、Web標準に準拠したARIAラベルとキーボードナビゲーションが付属しています。
仮想ワークスペース拡張機能ガイド
VS Codeが仮想環境で実行されている場合に、拡張機能の作成者が拡張機能をテストして更新するのに役立つ新しい仮想ワークスペース拡張機能ガイドがあります。独自の仮想ファイルシステムを作成するGitHub Repositoriesなどの拡張機能の導入や、VS Codeがブラウザで実行されるvscode.devやgithub.devのような新しいワークフローにより、拡張機能はディスク上のファイルシステムやプラットフォーム機能に直接アクセスできると仮定できなくなりました。
仮想ワークスペース拡張機能ガイドは以下をカバーします。
- 変更なしで仮想ワークスペースで拡張機能が動作するかどうか。
- ディスク上のファイルシステムなしで仮想ワークスペースで動作するように拡張機能を更新する方法。
- 仮想ワークスペースで実行されているときにVS Codeに拡張機能を有効または無効にする方法を通知する方法。
提案された拡張API
各マイルストーンには新しい提案された API があり、拡張機能の作成者はそれらを試すことができます。いつものように、皆様のフィードバックをお待ちしております。提案された API を試すには、次の手順を実行する必要があります。
- 提案APIは頻繁に変更されるため、Insiders版を使用する必要があります。
- 拡張機能の
package.json
ファイルに次の行が必要です:"enableProposedApi": true
。 - 最新バージョンのvscode.proposed.d.tsファイルをプロジェクトのソース場所にコピーします。
提案された API を使用する拡張機能を公開することはできません。次のリリースで破壊的変更がある可能性があり、既存の拡張機能を壊すことは望ましくありません。
TaskPresentationOptionsのcloseプロパティ
tasks.json
スキーマ内のpresentation
プロパティであるclose
プロパティが、TaskPresentationOptions
APIで利用可能になりました。これは、タスクの完了時にターミナルを閉じるかどうかを制御することで、一致するtasks.json
プロパティと同じように機能します。
タブAPI
タブを読み取りおよび操作するための提案APIがあります。これにより、裏にtextDocument
がない場合に開いているリソースのリストにアクセスしたいなどの一般的な機能要求がブロック解除されます。このAPIに関するフィードバックは、Issue #133532で提供できます。
MarkdownString.supportHtml
MarkdownString
の新たに提案されたsupportHtml
プロパティにより、Markdownテキスト内に表示される生のHTMLの安全なサブセットのレンダリングが可能になります。
supportHtml
プロパティのデフォルトはfalse
です。無効になっている場合、VS CodeはMarkdownテキスト内に表示される生のHTMLタグをすべて削除します。
コントローラーレンダラースクリプトがJavaScriptモジュールを使用するようになりました
NotebookController.rendererScripts
により、ノートブックコントローラーは、任意のレンダラーが実行される前に、一連のJavaScriptファイルをノートブックにプリロードできます。これらのスクリプトは、ノートブックを初期化したり、レンダラーが依存するグローバルシンボルを定義したりできます。
レンダラースクリプトは、以前は通常のJavaScriptファイルでした。これらのスクリプトは、VS Codeがエクスポートするグローバルシンボルを使用して、VS Code固有のAPIを呼び出すことができました。
このグローバルシンボルは発見しにくく、VS Codeがレンダラースクリプト自体をあまり制御できませんでした。これを修正するために、レンダラースクリプトは、activate
関数をエクスポートするJavaScriptモジュールを使用するようになりました。この関数にはVS Code APIが渡されます。
interface KernelPreloadContext {
readonly onDidReceiveKernelMessage: Event<unknown>;
postKernelMessage(data: unknown): void;
}
export function activate(ctx: KernelPreloadContext): Promise<void> | undefined {
...
}
この変更は、NotebookController
からのレンダラースクリプトと、提供されたノートブックレンダラーによって提供されるレンダリングスクリプトをより適切に整合させます。
Quick PickのkeepScrollPositionプロパティ
window.createQuickPick()
から取得するQuickPick
オブジェクトのkeepScrollPosition
プロパティが、提案APIとして追加されました。これにより、Quick Pickのスクロール位置(cursorTop
)がリストの先頭に戻るかどうかを制御できます。
このAPIのいくつかのユースケースを以下に示します。
- 提案されている
QuickPickItemButton
APIを使用して「リストからこのアイテムを削除する」オプションを実装する(例:Ctrl/Cmd + Px
QuickPickItemButton)。 - 提案されている
QuickPickItemButton
APIを使用して「このアイテムを何らかの方法で切り替える」オプションを実装する(例:スニペットを挿入コマンド)。 - Quick Pickでアイテムを非同期で読み込む場合(例:
setInterval
で.items
プロパティを再割り当てしてアイテムをリストに追加する際に、スクロールが先頭にジャンプしないようにする)。
スクロール位置を制御する機能がなければ、これらの操作のすべてがQuick Pickのスクロール位置をリストの先頭に強制的にジャンプさせてしまいます。keepScrollPosition
を使用すると、拡張機能の作成者はこの動作を制御できます。
SourceControl.actionButton
ソース管理APIに、SourceControl
オブジェクトのactionButton
プロパティが追加され、SCMプロバイダーが入力ボックスの下に「アクション」ボタンを条件付きで表示できるようになりました。たとえば、Git拡張機能はこの新しいプロパティを使用して、プッシュされていない変更がある場合に公開または同期ボタンを表示します。
言語サーバープロトコル
言語サーバープロトコルの新しい次期バージョンが、対応するnpmモジュールとともに公開されました。新バージョンには、型階層の提案実装が含まれています。
エンジニアリング
レンダリングされたHTMLのサニタイズにDOMPurifyに切り替え
メインのワークベンチでレンダリングされるHTMLをサニタイズするために、内部的にDOMPurifyを使用するように切り替えました。これは主に、レンダリングされたMarkdownのサニタイズに使用されます。
DOMPurifyはよくメンテナンスされており、Trusted Typesに最初から準拠しています。この切り替えにより、ユーザーを保護し、MarkdownString.supportHtmlなどの機能を有効にする際に、より確信を持てるようになりました。
Big Sur CLIでopenコマンドを使用する
macOS Big Surでは、コマンドラインから起動された場合に、VS Codeを起動するためにopenコマンドを使用するようになりました。この変更により、VS CodeはmacOS Dockから起動されたかのように開くことができ、エンタイトルメントに関するいくつかの問題が解決されます。
ファイル監視の変更
ディスク上のファイルやフォルダの変更を検出するために使用されるファイルウォッチャーが、サポートされているすべてのプラットフォーム(Windows、Linux、macOS)を処理でき、異なるプラットフォーム用に異なるウォッチャーを維持するオーバーヘッドを削減するライブラリに変更されました。このライブラリをすべてのプラットフォームでデフォルトで有効にする予定です。今回のイテレーションでは、WindowsとmacOSで有効にし、まもなくLinuxでも有効にする予定です。
新しいウォッチャーは起動時に高速化され、大規模なフォルダでのCPUサイクル消費が減少するはずです。このライブラリを使用するデメリットの1つは、macOSでファイルウォッチャーがワークスペース内のシンボリックリンクフォルダを自動的に検出できなくなったことです。このような設定を使用している場合は、新しいfiles.watcherInclude
設定を使用して、ファイル監視に含めるシンボリックリンクパスを明示的に追加できます。良い点としては、この新しい設定をWindowsで使用して、ワークスペース内のシンボリックリンクフォルダを明示的に含めることができます。これは以前のWindowsでは不可能でした。
日々の作業で違いに気づくことはないはずですが、ファイル監視が機能しない場合は、問題を報告してください。問題が発生した場合に古いウォッチャーを有効にするfiles.legacyWatcher
設定があります。
ドキュメント
高度なコンテナー構成
Dev Containers拡張機能の高度なコンテナ設定をカバーする新しいセクションがあります。
コンテナのドキュメントで、以下を学ぶことができます。
高度なコンテナ設定ドキュメントには、開発コンテナの設定に関するヒントやコード例、短いYouTubeビデオが含まれています。
注目すべき修正点
- 69665: OSがスリープ状態から復帰すると、ターミナルが破損したテクスチャを表示することがある
- 130407: [軽微] settings>files: excludeを変更パターンとして(空白)を削除できない
- 133149: 情報/警告レベルの問題でタスクターミナルが失敗とマークされる。
- 133567: アクセシビリティ: 参照を見つけるトップレベルのツリーノードのラベルがすべて「true」と読まれる
- 133910: シェル環境の解決に失敗したりタイムアウトした場合にエラーを表示する
- 133976: プロトコルURL経由で
.code-workspace
を開くことを許可する
ありがとうございます
最後に、今月 VS Code に貢献してくださった以下の皆様に、心からの感謝を申し上げます。
問題追跡への貢献者
- ジョン・マレー (@gjsjohnmurray)
- アンドリー・ディエフ (@IllusionMH)
- CodeCrazy-ywt (@CodeCrazy-ywt)
- アルトゥーロ・デント (@ArturoDent)
- アルベルト・サンティン (@albertosantini)
- タルナフ・BA (@TarunavBA)
- サイモン・チャン (@yume-chan)
vscode
への貢献者
- @adaex (Aex)
- 最新のseti-uiアイコンテーマに更新 PR #131856
- 最新のseti-uiアイコンテーマに更新 PR #132512
- @aghArdeshir (aghArdeshir): クリップボードデータのIEサポートを削除 PR #133679
- @AiverReaver (Ashish Vagish): コピーコマンドタイトルにキーバインディングを追加する機能を追加(fix #131350) PR #131436
- @AkatQuas (Akat)
- fix(html-language-feature): 曖昧な文を削除 PR #132508
- fix: キャンセル時に早期リターン PR #132523
- @akosyakov (Anton Kosyakov): vsixファイルからの拡張機能のインストールオプションを適用 PR #131786
- @armanio123 (Armando Aguirre): jsxAttributeCompletionStyle設定を追加 PR #133920
- @CGNonofr (Loïc Mangeonjean): monaco registerCodeActionProviderにresolveCodeActionを追加 PR #133335
- @crackalak (Dan Hughes):
IStandaloneEditorConstructionOptions
にariaContainerElement
を追加 PR #131865 - @crimx (CRIMX): fix: サブメニュー位置の計算を修正 PR #133596
- @davidanthoff (David Anthoff): ipynb extにsetKernelSpecAndLanguageInfoを追加 PR #132298
- @door-bell (Tim): 設定ワークベンチのスクロール感度設定の説明の書式を修正 PR #132214
- @DragWx: カラーライザーで括弧ペアが開いているトークンまたは閉じているトークンを共有できるようにする PR #132504
- @fwcd (FW): 認識されるYAMLファイル拡張子にCitation File Format (
.cff
) を追加 PR #131323 - @gjsjohnmurray (John Murray)
- 入力が履歴をサポートしている場合に、プレースホルダーにヒントテキストを追加する PR #129324
- ウィンドウタイトルに重複する「(読み取り専用)」サフィックスを防止する (#_132127) PR #132134
- @heartacker: cmd+i (mac), ctrl+i (linux/win) を追加のIntelliSense toggleSuggestionDetailsとして追加 PR #131976
- @IllusionMH (Andrii Dieiev): ターミナル設定の解決に使用されるキーを修正 PR #132851
- @jackos (Jack Clayton): vscode.d.tsインターフェースTaskPresntationOptionsにcloseフィールドを追加 PR #131127
- @jeanp413 (Jean Pierre): ターミナルエディタータブが別のターミナルエディタータブのコンテンツを表示する問題を修正 PR #131211
- @jwei98 (Justin Wei): 閉じタグを折りたたまない PR #132316
- @LEGOL2 (Sebastian Łużyński): ファイル比較の最大ファイルサイズを増やす PR #127860
- @MarkZuber (Mark Zuber): 拡張機能ホストの起動成功/失敗にテレメトリーを追加 PR #131917
- @MasterOdin (Matthew Peveler): Docs: 言語と値のdocstringsの文法を修正 PR #132782
- @matkoniecz (Mateusz Konieczny): .geojsonをjsonとして認識、#129329を修正 PR #129330
- @philnagel (Philipp Nagel): Python拡張機能で.pytファイルを認識 PR #133546
- @SNDST00M (SNDST00M: M.U.N.I.N): すべてのJSONファイルでコメントを許可 PR #129206
- @ssigwart (Stephen Sigwart)
- 親折りたたみがない場合の折りたたみジャンプを修正 PR #130309
- 次/前の折りたたみ範囲への移動をより直感的にする PR #133363
- TypeScript NLS JSONを修正 PR #134179
- @Suven-p (Suven-p): プレーンテキストファイルの色付けされた括弧ペアを削除 PR #132534
- @Un-index: iframe.tsを更新 PR #132577
- @utajum (Vladimir Tasic): ミニマップ - 選択された単語のすべてのインスタンスを強調表示する PR #132584
- @youngjuning (洛竹): fix: GetSessionOptions -> AuthenticationGetSessionOptions PR #131644
- @yume-chan (サイモン・チャン)
- fix: ウェルカムページの進行状況テキスト PR #133812
- fix: 大きなファイルの括弧ガイドを読み込むときにスタックオーバーフローを回避する PR #134189
- @goldst (Leonard Goldstein): diffエディターの複数のタブラベル PR #116178
vscode-eslint
への貢献者
- @eungyeole (Eungyeol): .gitignoreに例外を追加 PR #1332
- @geekanant (Anant Patni): fix: tasks typo PR #1342
vscode-html-languageservice
への貢献
- @domdomegg (Adam Jones): methodとformmethod HTML属性の大文字化を更新 PR #113
- @ssigwart (Stephen Sigwart): 自動引用符を無効にするdoNotAddAttributeQuotes設定を追加 PR #112
vscode-json-languageservice
への貢献
- @dsherret (David Sherret): fix: スキーマ変更時に
JsonSchemaService
ローカル単一リソースキャッシュをクリアする PR #105
vscode-languageserver-node
への貢献者
- @AkatQuas (Akat): fix: jsdocのコメントを修正 PR #817
- @link89: jsonrpcモジュールのインポートを修正 PR #805
vscode-pull-request-github
への貢献者
- @burkeholland (バーク・ホーランド)
- @lgarron (Lucas Garron): GitHubパーマリンク: 範囲が1行の場合、行番号を重複排除する。 PR #2980
- @moshfeu (Mosh Feu): fix: 保留中のチェックの「表示」ボタン/リンクにアクセスできるようにする PR #2972
vscode-references-view
への貢献
- @Eskibear (Yan Zhang): 型階層を表示 PR #71
vscode-vsce
へのコントリビューション
- @prashantvc (Prashant Cholachagudda): 検索がADOとVSIDEを返す問題を修正 PR #606
- @wangweixuan (Wang Weixuan): リポジトリのショートハンドをサポート PR #598
- @youngjuning (洛竹): chore: defaultIgnoreアイテムを追加 PR #614
language-server-protocol
への貢献者
- @larshp (Lars Hvam): 意味論的強調範囲、デルタを返さない PR #1345
- @rcjsuen (Remy Suen): 文法を修正するために単語を並べ替える PR #1347
monaco-editor-webpack-plugin
への貢献
- @six-ponies (马騳骉): fix: Failed to execute 'importScripts' on 'WorkerGlobalScope': The URL xxx is invalid. PR #160