2022年3月 (バージョン 1.66)
アップデート 1.66.1: このアップデートでは、これらのissueに対処しています。
アップデート 1.66.2: このアップデートでは、これらのセキュリティissueに対処しています。
ダウンロード: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Visual Studio Code 2022 年 3 月リリースへようこそ。このバージョンには多くのアップデートが含まれており、きっと気に入っていただけると思います。主なハイライトをいくつかご紹介します。
- ローカル履歴 - ソース管理とは独立してローカルファイルの変更を追跡します。
- 設定エディターの言語フィルター - 利用可能な言語固有の設定を表示します。
- ターミナル検索の改善 - 一致箇所がターミナルパネルとスクロールバーで強調表示されます。
- 組み込みの CSS/LESS/SCSS フォーマッター - CSS、LESS、SCSS のコードフォーマット。
- JavaScript ヒーププロファイル - デバッグ中に JS メモリ割り当てを収集して表示します。
- VS Code for the Web - ファイルとフォルダーを vscode.dev にドラッグアンドドロップします。
- リモート - Mac の SSH サポート - SSH 経由で Apple Silicon/M1/ARM64 マシンに接続します。
- 新しい R 言語トピック - VS Code でデータサイエンスに R を使用する方法を学びます。
これらのリリースノートをオンラインで読むには、Updates (code.visualstudio.com) にアクセスしてください。
リリースイベントをご覧ください: VS Code チームが新機能について議論する様子をご覧ください。イベントの録画は YouTube チャンネルでご覧いただけます。
ハイライト (ショート): 60 秒だけ時間がある場合は、3 月の VS Code リリースハイライトビデオで新機能を手早くチェックしてください。
Insiders: 最新機能をいち早く試したいですか? 毎晩更新される Insiders ビルドをダウンロードして、最新のアップデートをいち早くお試しください。
アクセシビリティ
VS Code を最もアクセシブルなエディターの一つにするために、チームは懸命に取り組んでいます。今回のリリースには、ユーザビリティとアクセシビリティを向上させるためのいくつかの改善が含まれています。
- モーション軽減モード - VS Code UI で使用されるアニメーションを制限します。
- より視認性の高いソース管理デコレーター - パターンと色のコントラストを使用して視認性を向上させました。
- オーディオキューの音量調節 - エディターのオーディオキューの音量を調整できるようになりました。
- コメント UI のアクセシビリティ - 新しいコマンドとキーボードショートカット。
- ハイコントラストライトカラーテーマ - テーマ作成者は、ハイコントラストライトに色を提供できるようになりました。
ワークベンチ
ローカル履歴
ファイルのローカル履歴が タイムライン ビューで利用できるようになりました。設定に応じて、エディターを保存するたびに、新しいエントリがリストに追加されます。
各ローカル履歴エントリには、エントリが作成された時点でのファイルの内容がすべて含まれており、場合によっては、よりセマンティックな情報 (リファクタリングを示すなど) を提供できます。
エントリから以下の操作が可能です。
- ローカルファイルまたは以前のエントリとの変更を比較します。
- 内容を復元します。
- エントリを削除または名前変更します。
ローカル履歴を操作するための新しいグローバルコマンドがあります。
workbench.action.localHistory.create
- アクティブなファイルの新しい履歴エントリをカスタム名で作成します。workbench.action.localHistory.deleteAll
- すべてのファイルのすべての履歴エントリを削除します。workbench.action.localHistory.restoreViaPicker
- すべてのファイルから復元する履歴エントリを検索します。
これらのコマンドにはデフォルトのキーバインドはありませんが、独自のキーボードショートカットを追加できます。
ローカル履歴を操作するための新しい設定もあります。
workbench.localHistory.enabled
- ローカル履歴を有効または無効にします (デフォルト:true
)。workbench.localHistory.maxFileSize
- ローカル履歴エントリを作成する際のファイルサイズ制限 (デフォルト:256 KB
)。workbench.localHistory.maxFileEntries
- ファイルごとのローカル履歴エントリの制限 (デフォルト:50
)。workbench.localHistory.exclude
- ローカル履歴から特定のファイルを除外するためのグロブパターン。workbench.localHistory.mergeWindow
- ローカルファイル履歴の最後のエントリにそれ以降の変更が追加される間隔 (秒単位) (デフォルト10 秒
)。
タイムラインビューのツールバーにある新しいフィルターアクションを使用すると、個々のプロバイダーを有効または無効にできます。
注: ローカル履歴エントリは、VS Code の使用方法に応じて異なる場所に保存されます。ローカルファイルを開くと、エントリはローカルユーザーデータフォルダーに永続化され、リモートファイルを開くと、リモートユーザーデータフォルダーに保存されます。ファイルシステムが利用できない場合 (たとえば、VS Code for Web を使用する場合など)、エントリは IndexedDB に保存されます。
設定エディター
言語フィルター
設定エディターの検索ボックスに @lang:languageId
と入力すると、ID languageId
の言語に設定できるすべての設定を表示および編集できるようになりました。これにより、ユーザーは言語固有の設定 (言語オーバーライドとも呼ばれます) を表示できます。
これらのオーバーライドは、ギアアイコンをクリックして設定をリセットするまで構成されたままになることに注意してください。
以下の短いビデオでは、CSS 言語オーバーライド設定の可能性をすべて表示するために、言語フィルターが @lang:css
に設定されています。
テーマ: ライトピンク
ワークスペースとフォルダーの設定の保持
設定エディターのワークスペースとフォルダーの設定は、ユーザーが手動でリセットするまで保持されるようになりました。この変更は、ユーザーが設定のデフォルト値と同じワークスペース設定値を明示的に指定したいが、ユーザー設定値とは異なる場合に役立ちます。以前は、ユーザーはこの値を設定するためにワークスペース設定 JSON ファイルを開く必要がありました。
以下は、設定エディターの [ワークスペース] タブでエディターのタブサイズが設定され、ワークスペースの settings.json
ファイルに自動的に追加される様子です。
テーマ: ライトピンク
プライマリ通知ボタン
通知の最初のボタンが、他のボタンと区別するためにプライマリカラーで表示されるようになりました。これは、ダイアログと同じパターンに従います。
テーマ: GitHub ダーク
エディターの新しいコンテキストキー
エディターがエディターグループの最初または最後であるかどうかを示す新しいコンテキストキーがあります。
activeEditorIsFirstInGroup
- アクティブなエディターがグループの最初のエディターであるかどうか。activeEditorIsLastInGroup
- アクティブなエディターがグループの最後のエディターであるかどうか。
これらのコンテキストキーは、when 句を使用してキーボードショートカットを条件付きで有効にするために使用できます。
デフォルトのバイナリエディター
新しい設定 workbench.editor.defaultBinaryEditor
を使用すると、バイナリファイルの警告を回避し、バイナリファイルが検出されたときに選択したエディタータイプを自動的に開くことができます。設定エディターのドロップダウンまたは settings.json
の IntelliSense からデフォルトのバイナリエディター ID を選択できます。
よりスムーズな認証エクスペリエンス
GitHub と Microsoft の両方の認証フローがよりスムーズになっていることに気付くかもしれません。
- GitHub 認証の場合、最初の [続行] ページを削除したため、ログインエクスペリエンスが 1 ステップ少なくなりました。
- Microsoft 認証の場合、設定同期や別の拡張機能で Microsoft に既にログインしている場合は、VS Code からログアウトする回数を最小限に抑えるように努めています。
CLI からプレリリース拡張機能と通常拡張機能をまとめてインストール
VS Code は、コマンドラインからプレリリース拡張機能と通常拡張機能をまとめてインストールすることをサポートするようになりました。たとえば、次のコマンドライン命令は、GitHub.vscode-pull-request-github
拡張機能のプレリリースバージョンと GitHub.remotehub
拡張機能のリリースバージョンをインストールします。
code --install-extension GitHub.vscode-pull-request-github@prerelease --install-extension GitHub.remotehub
プラットフォーム固有の拡張機能のアップデートの改善
VS Code は、プラットフォーム固有の拡張機能を、より具体的なターゲットプラットフォームバージョンにアップデートすることをサポートするようになりました。たとえば、Windows 64 ビットで、Windows 32 ビット用の C/C++ 拡張機能をインストールしていて、Marketplace に Windows 64 ビット用の同じバージョンの拡張機能がある場合、VS Code は拡張機能を自動的に 64 ビットバージョンにアップデートします。
オーディオキューの改善
新しい設定 audioCues.volume
(0 ~ 100、デフォルトは 50) を使用して、オーディオキューの音量を制御できます。折りたたみ領域のオーディオキューも更新されました。
サイドパネルとサイドバーの新しい名前
2 つ前のリリースで、サイドパネルを導入しました。当時、ターミナルを含む下部パネルをサイドに移動する機能を削除し、新しい一貫性のあるコマンドを優先しました。ユーザーからのフィードバックを聞いた結果、この決定によって重要なワークフローが壊れてしまったことが判明し、その変更を元に戻すことにしました。
これにより、ワークベンチのサイドに配置できるパネルとサイドパネルの 2 つのパネルが残りました。これを考慮し、新しいサイドパネルの方向性をより良く反映するために、サイドバーとサイドパネルの両方の名前を更新することにしました。サイドバーは UI でプライマリサイドバーと呼ばれるようになり、サイドパネルはセカンダリサイドバーと呼ばれるようになります。
- サイドバー -> プライマリサイドバー
- サイドパネル -> セカンダリサイドバー
これらの名前は、エディター全体のメニューとコマンドに反映されます。ただし、既存のキーバインドを壊さないように、コマンド ID は変更されていません。
モーション軽減モード
ワークベンチは、OS のモーション軽減設定が有効になっている場合、アニメーションを軽減してレンダリングすることをサポートするようになりました。これは、workbench.reduceMotion
設定 (値は on
、off
、またはデフォルトの auto
) でオーバーライドまたは無効にできます。
コメント
コメント UI は、GitHub Pull Requests and Issues 拡張機能によって、issue やプルリクエストにコメントを追加するために広く使用されていますが、どの拡張機能でも採用できます。
コメントビューの検出
コメントを含むファイルを開くと、コメント ビューが表示されます。これは、comments.openView
設定で制御できます。
コメント追加の検出
コメントを追加できる行の任意の部分にカーソルを合わせると、左側のガターに [+] 記号が表示されるようになりました。
コメントのアクセシビリティの改善
コメントのアクセシビリティに関するいくつかの改善点があります。
- コメント可能な範囲にいる場合にコメントを作成するためのコマンド [現在の行にコメントを追加]。
- コメントスレッドの aria ラベル。コメントの数とスレッドのラベルが含まれています。
- [次のコメントスレッドに移動] コマンドは、コメントスレッドコントロールにフォーカスを移動します。
- 新しい [前のコメントスレッドに移動] コマンド。
- 次および前のコマンドのキーボードショートカット:
Alt+F9
およびShift+Alt+F9
。
ターミナル
すべての一致箇所を表示
ターミナルで検索すると、検索用語のすべてのインスタンスが強調表示されるようになりました。現在選択されている一致箇所にも特定の色が強調表示され、これは個別にカスタマイズできます。
強調表示色の外観は、terminal.findMatch
で始まる色のカスタマイズを使用して微調整できます。
スクロールバーのアノテーション
アノテーションがターミナルのスクロールバーに表示され、バッファー内の注目点を示します。
たとえば、検索結果には、スクロールバーに対応するアノテーションがあります。
シェル統合のプレビュー機能が有効になっている場合、実行される各コマンドに対してスクロールバーにアノテーションが表示されます。
コマンドナビゲーションの改善
あまり知られていない機能ですが、ターミナル内のコマンド間をすばやく移動する機能がしばらく前からあります。元々、これは Enter
キーが押されたタイミングに基づいていましたが、シェル統合が有効になっている場合は、シェル統合の知識を使用して、より確実に正しい行を識別するようにアップグレードされます。さらに、コマンド間をジャンプするときに UI フィードバックが表示されるようになりました。
この機能には、次のキーバインドからアクセスできます。
- macOS:
Cmd+Up/Down
- Linux/Windows:
Ctrl+Up/Down
(新規)
Shift
キーを押したままにすると、ターミナル内のコマンド間で選択できます。
コピーされたテキストは HTML スタイルを保持
ターミナルからリッチテキストをコピーするには、[ターミナル: HTML として選択範囲をコピー] コマンドを実行するか、ターミナルのコンテキストメニューエントリ [HTML としてコピー] を使用します。
最小コントラスト比のデフォルトが変更されました
terminal.integrated.minimumContrastRatio
設定はしばらく前から存在しており、背景色に基づいてターミナルの前景色を動的に変更します。今回のリリースでは、テーマに関係なくターミナルをアクセス可能にするために、デフォルトを 4.5
(WCAG AA) に変更しました。これが色に問題を引き起こす場合は、"terminal.integrated.minimumContrastRatio": 1
を設定して機能を無効にできます。
ソース管理
ソース管理リポジトリビュー
以前は、ソース管理リポジトリビューのリポジトリは、複数のリポジトリを持つフォルダー/ワークスペースを開くときに検出された順にソートされていました。検出順序は変化する可能性があり、リポジトリがランダムな順序で表示されるため、これは問題がありました。今回のマイルストーンでは、ソース管理リポジトリビューのリポジトリは常に名前でソートされます。
エディター
インライン補完としてのクイックサジェスト
editor.quickSuggestions
設定で、構成値として inline
を受け入れるようになりました。inline
に設定すると、クイックサジェスト (IntelliSense) は、入力時にサジェストウィジェットを表示せず、ゴーストテキストとして補完を表示します。
テーマ: GitHub ライト
カーソルインデックスのスニペット変数
新しいスニペット変数 $CURSOR_INDEX
と $CURSOR_NUMBER
があります。これらは、それぞれのカーソルのインデックスを評価します。後者は 1 から始まり、前者は 0 から始まります。これらの変数の力は、複数のカーソルとの組み合わせにあります。
たとえば、以下のスニペットは、各カーソルに順序付きリスト項目を追加します。
"ordered_list": {
"scope": "markdown",
"prefix": "ol",
"body": [
"$CURSOR_NUMBER. $0"
],
"description": "Add ordered list"
}
更新されたソース管理デコレーター
アクセシビリティのためにソース管理デコレーターをより見やすくするために、変更された行の新しいパターンを追加し、すべてのデコレーターのコントラストを高めました。
括弧のペアの色分け
新しい設定 editor.bracketPairColorization.independentColorPoolPerBracketType
があります。true
に設定すると、各括弧タイプ ({
... }
または (
... )
) は、色分けに独自の色プールを使用します。したがって、異なるタイプのネストされた括弧は同じ色になります。
言語検出の改善
前回のイテレーションでは、開いたファイルタイプを考慮する新しい言語検出戦略を利用するかどうかを設定する workbench.editor.historyBasedLanguageDetection
設定を追加しました。この設定はデフォルトで有効になり、この戦略からの結果にさらに優先順位を与える新しい設定 workbench.editor.preferHistoryBasedLanguageDetection
が追加されました。
VS Code for the Web
フォルダーのドラッグアンドドロップ
vscode.dev または insiders.vscode.dev で開いたブラウザーウィンドウに、Web File System Access API をサポートするブラウザーを使用して、ローカルファイルとフォルダーをドラッグアンドドロップして、コンテンツにアクセスできるようになりました。これは、エディター領域とファイルエクスプローラーの両方にドロップした場合に機能します。
リモートリポジトリ
拡張機能のリファクタリング
以前は、Azure Repos 拡張機能は GitHub Repositories 拡張機能に直接依存していました。Azure Repos と GitHub Repositories は、GitHub および Azure Repos 全体で共通のワークフローをサポートする共通の拡張機能である Remote Repositories に依存するようになりました。GitHub Repositories 拡張機能によって以前に公開されていたすべての API は、Remote Repositories によって公開されるようになりました。
リポジトリの同期のリマインダー
コミットされていない変更があるリポジトリを再度開くと、デフォルトでは、Remote Repositories はリポジトリの最新バージョンを表示しません。リポジトリを GitHub または Azure Repos の最新の状態に保つために、リポジトリを手動で同期するためのダイアログが表示されるようになりました。このダイアログは、remoteHub.uncommittedChangesOnEntry
設定を使用して制御できます。
テーマ: One Monokai
Azure Repos
今回のマイルストーンでは、Azure Repos でホストされているリポジトリに対する変更を編集およびコミットする機能を有効にしています。また、Azure Repos のプルリクエストを作成、更新、および開くための基本的な機能も追加しました。
ノートブック
スクロールバーの検索デコレーション
ノートブックの検索結果がスクロールバーにレンダリングされるようになりました。
インタラクティブウィンドウにフォーカスを移動
インタラクティブウィンドウにフォーカスを移動するための 2 つの新しいコマンドがあります。
interactive.input.focus
- インタラクティブウィンドウの入力エディターにフォーカスを移動します。interactive.history.focus
- インタラクティブウィンドウの履歴にフォーカスを移動します。
これらのコマンドにはデフォルトのキーバインドはありませんが、独自のキーボードショートカットを追加できます。
デバッグ
JavaScript デバッグ
JavaScript デバッガーは、ヒーププロファイルの収集と視覚化をサポートするようになりました。ヒーププロファイルを使用すると、メモリが時間とともにどこに、どの程度割り当てられているかを確認できます。これらは、[デバッグ: パフォーマンスプロファイルの作成] コマンドのオプションとして追加されました。このコマンドは、[呼び出し履歴] ビューの記録 ⏺ ボタンからもアクセスできます。
言語
CSS フォーマッター
組み込みの CSS 拡張機能にフォーマッターが付属するようになりました。フォーマッターは CSS、LESS、SCSS で動作します。これは、JS Beautify ライブラリによって実装されており、次の設定が付属しています。
css.format.enable
- デフォルトの CSS フォーマッターを有効/無効にします。css.format.newlineBetweenRules
- ルールセットを空白行で区切ります。css.format.newlineBetweenSelectors
- セレクターを改行で区切ります。css.format.spaceAroundSelectorSeparator
- セレクターセパレーター '>'、'+'、'~' の周囲にスペース文字を確保します (例:a > b
)。
同じ設定は less
および scss
にも存在します。
HTML の JavaScript セマンティックハイライト
HTML ファイル内の JavaScript ソースのセマンティックハイライトを、通常の .js
ファイルで表示されるものと一致させました。
これにより、コードの色の一貫性が高まるだけでなく、以前は欠落していた重要なセマンティック情報 (読み取り専用型の強調表示など) も追加されます。
TypeScript 4.6.3
VS Code に TypeScript 4.6.3 がバンドルされるようになりました。このマイナーアップデートでは、いくつかの重要なバグが修正されています。
Markdown の省略記法参照リンクがクリック可能になりました
Markdown では、リンクテキストがリンク定義 ID と一致する場合に、省略記法を使用してリンクを作成できます。たとえば、[my fancy link]
は、my fancy link
リンク定義 (例: [my fancy link]: https://example.com
) を使用します。これらの省略記法リンクが VS Code のエディターでクリック可能になりました。
エディターでは、これらのリンクをクリックするとリンク定義に移動します。Markdown プレビューでは、リンクは代わりにリンク先に移動します。
reStructuredText 文法
reStructuredText (rst) ファイルの構文強調表示のための組み込み拡張機能が追加されました。
拡張機能への貢献
Python
ステータスバーのインタープリター表示の変更
Python 拡張機能は、他の言語との一貫性を保つために、選択された Python インタープリター情報をステータスバーの右側、[Python] 言語ステータス項目の横に移動しました。ステータスバーを整理する目的で、Python ファイルまたは settings.json
ファイルが現在開かれている場合にのみ表示されるようになりました。
新しい Python ファイルコマンド
空の Python ファイルを作成する 2 つのより高速な方法が追加されました。新しいコマンド [Python: 新しい Python ファイル] を使用するか、入門ページの [新しいファイル...] 項目を使用します。
Pylint 拡張機能
pylint を使用した lint 用の新しい Microsoft Pylint 拡張機能が追加されました。この拡張機能は、Language Server Protocol を利用して lint サポートを提供します。
Pylint 拡張機能は、pylint
経由で報告された問題の重大度レベルを調整するための追加の構成を提供します。
{
"convention": "Information",
"error": "Error",
"fatal": "Error",
"refactor": "Hint",
"warning": "Warning",
"info": "Information",
"W0611": "Error",
"unused-import": "Error"
}
注: Python 拡張機能で Pylint が有効になっている場合、[問題] パネルに同じ問題のエントリが 2 つ表示される場合があります。組み込みの lint 機能を無効にするには、"python.linting.pylintEnabled": false
を設定します。
Jupyter
今回のマイルストーンでは、Jupyter 拡張機能にいくつかの改善がありました。
カーネルサポート
カーネルの起動が改善されました:
- より多くのconda 環境のサポート。
- すべてのプラットフォームでの
.env
ファイルのサポート。
データビューアー
DataFrame および Series の名前付きインデックスが、データビューアーでサポートされるようになりました。
新しい Jupyter ノートブック
新しい Jupyter ノートブックの作成が、[新しいファイル...] メニューに統合されました。
リモート開発
Remote Development 拡張機能の開発が継続されています。これにより、コンテナー、リモートマシン、または Windows Subsystem for Linux (WSL) をフル機能の開発環境として使用できます。
1.66 の機能ハイライト:
- [Dev Container で開く] バッジ - リポジトリのユーザーをカスタム開発コンテナーで再度開くように誘導します。
- Remote - SSH 拡張機能は、リモートの Apple Silicon/M1/ARM64 マシンに接続できるようになりました。
新しい拡張機能の機能とバグ修正については、Remote Development リリースノートをご覧ください。
GitHub Pull Requests and Issues
GitHub Pull Requests and Issues 拡張機能の開発が継続されています。これにより、プルリクエストと issue の作業、作成、および管理を行うことができます。拡張機能のハイライトについては、拡張機能の changelog for the 0.40.0 リリースをご覧ください。
プレビュー機能
ターミナルシェル統合
シェル統合は、主に信頼性の向上と上記のターミナルセクションで説明したデコレーションの改善という形で、今回のリリースでも改善が続けられています。
ハイライトを以下に示します。
- コマンドデコレーションが、エディターと同様にスクロールバーに表示されるようになりました。
- コマンドデコレーションは、ウィンドウのリロード (またはデタッチ/アタッチ) を超えて復元される必要があります。
- Windows でターミナルのサイズを変更する際のコマンドの追跡が改善されました。
- [ターミナル: クリア] VS Code コマンドと
clear
シェルコマンドの処理が改善されました。 zsh
右プロンプトのサポート。- bash の
$PROMPT_COMMAND
変数のより多くの形式を処理します。 - PSReadLine が有効になっていない場合でも
pwsh
をサポートします。 - シェル初期化スクリプトは、設定が有効になっている場合でも、既知の問題がある場合や特別な処理が必要な場合に、
$VSCODE_SHELL_INTEGRATION
変数を設定解除することで、シェル統合をオプトアウトできるようになりました。
TypeScript 4.7 のサポート
今回のアップデートには、今後の TypeScript 4.7 リリースの初期サポートが含まれています。TypeScript チームが現在取り組んでいる内容の詳細については、TypeScript 4.7 イテレーション計画をご覧ください。
TypeScript 4.7 ナイトリービルドの使用を開始するには、TypeScript Nightly 拡張機能をインストールしてください。
エクスプローラーのファイルのネスト
今回のイテレーションでは、エクスプローラーでのファイルのネストのサポートに取り組み続けました。この作業の一環として、ネストされたファイルの移動、名前変更、削除のサポートを改良し、ネストの親への編集を子にも適用するかどうかを設定する explorer.experimental.fileNesting.operateAsGroup
設定を追加しました。
さらに、ファイルのネストの構成言語を拡張して、より多くの展開パターンを含めました。以前は、子パターン内の $(capture)
は、親パターン内の *
によって消費されたテキストに展開されていました。現在、パターンで $(basename)
、$(extname)
、および $(dirname)
の追加サポートがあります。これにより、* -> $(basename).*.$(dirname)
などのパターンを使用して、[追加されたセグメント] を持つすべてのファイルを単一のベースファイルの下にネストできます。
拡張機能の作成
ノートブック対応のドキュメントセレクター
vscode.DocumentSelector
タイプへの追加を完了しました。このタイプを使用すると、[定義へ移動] などの言語機能を特定のドキュメントに関連付けることができ、UI を駆動し、対応するプロバイダーに結果が要求されるかどうかを決定します。拡張機能がノートブックタイプを絞り込むことができる新しいプロパティを追加しました。たとえば、{ language: 'python', notebookType: 'jupyter-notebook'}
は、Jupyter ノートブックに埋め込まれたすべての Python ドキュメントをターゲットにします。
インレイヒントに編集を適用可能
InlayHint
型に、オプションの遅延読み込み可能な textEdits プロパティを持たせることができるようになりました。textEdits
が設定されたインレイヒントは、ダブルクリックで適用されます。textEdits
は、インレイヒントを不要にするために必要な編集を行うために使用されるべきです。例えば、推論された型を表すヒントをダブルクリックすると、その型注釈が挿入されるべきです。
カスタム言語 ID を持つ出力チャネル
このマイルストーンでは、カスタム言語 ID を持つ出力チャネルを作成するための createOutputChannel API を最終決定しました。これにより、言語 ID を渡すことで、トークンやシンタックスカラーリング、CodeLens 機能を Output チャネルに提供できるようになります。
カラーテーマの種類: ハイコントラストライト
カラーテーマ は、ベーステーマ (uiTheme
) として hc-light
を指定できるようになりました。ベーステーマは、カラーテーマで定義されていないすべての色に使用されます。
VS Code API では、ColorTheme.kind も HighContrastLight
の値を持つことができるようになりました。
カラーコントリビューション用のハイコントラストライトテーマ
カラーコントリビューション は、ハイコントラストライトテーマ (highContrastLight
) も定義できるようになりました。指定しない場合、light
カラーがデフォルトとして使用されます。
NODE_MODULE_VERSION と Node.js API の更新
ネイティブ Node モジュールを使用する拡張機能の作成者向けに、今回のリリースでは Node.js のバージョンが 14.16.0
から 16.13.0
に引き上げられました。これにより、使用している API 抽象化レイヤーによっては、モジュールのコンパイルに影響がある可能性があります。
デスクトップ | リモート | |
---|---|---|
NODE_MODULE_VERSION / process.versions.modules | 101 | 93 |
Node-API / process.versions.napi | 8 | 8 |
ツリーのドラッグアンドドロップ API
新しく最終決定された TreeDragAndDropController API により、拡張機能が提供するツリービューでドラッグアンドドロップをサポートできます。ツリービューのサンプル に、この API の使用方法の例があります。
デバッガー拡張機能の作成
CompletionItem.detail のサポート
先月、デバッグアダプタープロトコルに CompletionItem
オブジェクトへの detail
プロパティが追加されました。このプロパティは、VS Code でサポートされるようになりました。デバッグコンソールのサジェストウィジェットで詳細を確認できます。
Language Server Protocol
型階層、インライン値、およびインレイヒントのサポートは、3.17 リリースに向けて提案状態から移行されました。ライブラリの新しい次期バージョンが公開されています。
LSP のメタモデル の最初のバージョンが、JSON スキーマ または TypeScript 型定義 として対応するスキーマと共に公開されています。メタモデルには、指定されたリクエストと通知、およびそれらのパラメータ型、戻り値の型、部分的な戻り値の型、登録オプションに関する情報が含まれています。また、定義されたすべての構造と列挙型も含まれています。
Debug Adapter Protocol
デバッグアダプタープロトコル のドキュメントに関するいくつかの問題に対処しました。
- terminate リクエストと disconnect リクエストを区別するために、ドキュメントを改善しました。
evaluate
リクエストのcontext
引数に値variables
がドキュメント化されました。VS Code は、VARIABLES ビューのコンテキストでevaluate
リクエストが呼び出されるたびに、このドキュメント化されていない値を使用していました。context
引数はstring
型であり、variables
値はドキュメントで言及されているだけであるため、クライアントとデバッグアダプターに必要な変更はありません。
提案された拡張機能 API
すべてのマイルストーンには、新しい提案 API が付属しており、拡張機能の作成者はそれらを試すことができます。いつものように、フィードバックをお待ちしています。提案 API を試すための手順は次のとおりです。
- 試したい提案を見つけ、その名前を
package.json#enabledApiProposals
に追加します。 - 最新の vscode-dts を使用して、
vscode-dts dev
を実行します。対応するd.ts
ファイルがワークスペースにダウンロードされます。 - これで、提案に対してプログラミングできるようになります。
提案 API を使用する拡張機能を公開することはできません。次のリリースで破壊的な変更が発生する可能性があり、既存の拡張機能を破壊することは決して望ましくありません。
InputBox の検証メッセージの重要度
InputBox API (window.showInputBox
および window.createInputBox
経由) は、ユーザーの入力を検証するメカニズムを提供します。今回のイテレーションでは、重要度を表示するための提案 API で拡張しています。
例えば、ユーザーの入力に基づいて情報メッセージを表示したい場合、検証メッセージは次を返すことができます。
{
content: 'this is an info message';
severity: InputBoxValidationSeverity.Info;
}
これは次のようになります。
この提案の詳細については、inputBoxSeverity を参照してください。
ノートブックドキュメントの変更イベント
ノートブックドキュメントの変更イベントに関する新しい提案があります。これは notebookDocumentEvents として利用可能であり、次の 2 つのイベントが含まれています。
vscode.workspace.onDidSaveNotebookDocument
は、ノートブックが保存されるたびに発生します。vscode.workspace.onDidChangeNotebookDocument
は、ノートブックが変更されるたびに発生します。例えば、セルが追加または削除された場合、セル自体が変更された場合、またはメタデータが変更された場合などです。
タブ API の形状の最終決定
タブ API は、次のマイルストーンで最終決定に近づいており、現在、形状がほとんど変更されずに安定した状態になっています。2022 年 4 月のイテレーションは、この API の形状と機能に関するフィードバックを提供する最後の機会となります。フィードバックは、GitHub issues から提供できます。タブ API を使用すると、開いているタブ、その場所の読み取り、およびタブを閉じることができます。
インライン補完
次の数回のリリースでの最終決定に向けて、インライン補完の作業を継続しました。インライン補完は、スニペットまたはテキスト置換を提案するために使用できるようになりました (以前は、テキスト挿入のみがサポートされていました)。
エディターへのドロップ
提案された テキストエディタードロップ API を使用すると、拡張機能はテキストエディターへのドロップを処理できます。これらのドロップイベントは、VS Code 内 (VS Code のエクスプローラーからテキストエディターへのファイルのドラッグなど) から発生する場合もあれば、オペレーティングシステムから VS Code へのファイルのドロップによって生成される場合もあります。
新しい API を試すには、"workbench.experimental.editor.dragAndDropIntoEditor.enabled": true
を設定する必要があります。これを有効にすると、Shift
キーを押しながらドラッグアンドドロップすることで、エディターにドロップできます。
Markdown ファイルにドロップした場合にリンクを生成する実験的なサポートを含めました。API の使用例については、Markdown 拡張機能のソース を参照することもできます。
解決済み/未解決のコメント
コメントスレッドに 解決済みまたは未解決の状態を設定する ための新しい提案があります。状態を指定するコメントスレッドには、追加の UX 処理が適用されます。
エンジニアリング
Electron 17 のアップデート
このマイルストーンでは、VS Code に Electron v17 を搭載して出荷できることを嬉しく思います。これは、以前に採用した Electron v13 からのメジャーアップデートであり、Electron の プロセス再利用アーキテクチャ を活用しています。過去 1 年間にわたり、この新しいアーキテクチャに向けて、ワークベンチとの相互作用とライフサイクルに関連するコアサービスの一部を再実装し、段階的に変更をロールアウトしてきました。
この取り組みに関与したすべての人々、特に Insiders でセルフホスティングを行い、フィードバックを提供して、このアップデートを自信を持って出荷できるようにしてくれたコミュニティに感謝します。
この変更は VS Code ユーザーにとってどのような意味がありますか?
ワークスペースの切り替えやワークスペースの再読み込みなどの操作が高速になるはずです。今回のアップデートでは、Chromium のバージョンも 98.0.4758.109 に、Nodejs のバージョンも 16.13.0 に引き上げました。
次は何ですか?
Electron の新しい リリースケイデンス に基づいて、Electron バージョンの採用を継続します。また、ワークベンチのサンドボックス化 にも積極的に取り組んでおり、次のステップは、Node.js ホストサービスとサンドボックス化されたワークベンチ 間の通信チャネルを改善することです。これにより、新しいアーキテクチャをさらに簡素化できます。
RPM パッケージの必要条件リストの改善
Chromium で行われた作業に触発され、ビルドプロセス の一部として、rpm パッケージに必要な依存関係を計算するようになりました。これにより、新しいランタイムやネイティブモジュールを採用する際に、最新の依存関係リストを提供できます。次のマイルストーンでは、debian パッケージにも同様の変更を導入する予定です。
組み込み拡張機能のアウトオブバンドリリースをサポート
Marketplace で利用可能な組み込み拡張機能は、アウトオブバンドでリリースできるようになり、VS Code は新しいバージョンを検出し、拡張機能を更新します。これにより、これらの拡張機能はプレリリースもサポートできるようになります。
ドキュメント
VS Code における R
Visual Studio Code における R という新しいトピックで、R 拡張機能 を使用した VS Code での R プログラミング言語 のサポートについて説明しています。R 拡張機能には、コード補完やリンティングなどの豊富な言語機能に加えて、統合された R ターミナル、専用のワークスペース、データ、プロットビューアーが含まれています。
開発コンテナーのブログ記事
使いやすいプログラミング環境を作成するための開発コンテナーの使用に関する Burke Holland の最近のブログ記事を見逃した場合は、「チュートリアルの問題」 を確認してください。このブログ記事では、Laravel が事前構成済みの Docker コンテナーを使用して、PHP フレームワークチュートリアルのランタイムと依存関係を提供する方法について説明しています。
注目すべき修正
- 117674 デバッグコンソールがコンテンツを折り返すときに自動スクロールが時々停止する
- 138963 デバッグが開始されると、デバッグコンソールが正常に動作しない
- 142754 VS Code ターミナルでの Emacs の使用が壊れている
- 143513 contributes.configuration 項目は、検索ボックスが空の場合にのみビューで "order" 属性を尊重する
- 144458 グロブパターン
**/p*
が/foo/ap
に誤って一致する - 144783 編集されていない設定リストウィジェット項目に最大幅がないように見える
- 145243 小さい画面で設定目次のサイズを変更できない
- 145572 設定ボックスが設定に重なる可能性がある
謝辞
最後に、しかし決して少なくないこととして、VS Code のコントリビューターに心から感謝申し上げます。
Web 拡張機能
Web 拡張機能 としてコードを実行する拡張機能を有効にした拡張機能作成者 (以下のリストは 2022 年 3 月 1 日から 2022 年 3 月 27 日の間)
- RTF (Alessandro Fragnani)
- Highlight - C/C++ Parameters (BLET Mickaël)
- Highlight - Regex (BLET Mickaël)
- Material Icon Theme (Dancheg97)
- Go to Character Position (davidfreer)
- Extension panel (Elio Struyf)
- Writing Style Guide (Elio Struyf)
- Bravato Icons (Florin Bratan)
- Markmap (Gerald Liu)
- GitLens — Git supercharged (GitKraken)
- YARA (infosec-intern)
- ZMK Tools (Joel Spadin)
- JSPM Generator (JSPM)
- gcs-sync-vs-ext (killerbees-devops)
- Faster paragraph/word movement (Mateusz Dudzinski)
- narumincho.definy (narumincho)
- Better Markdown & Latex Shortcuts (OrangeX4)
- Python Brackets (OrangeX4)
- Quarto (Quarto)
- Inline SQL (qufiwefefwoyn)
- React Hierarchy Explorer (React Sidekick)
- Serverless Workflow Editor (Red Hat)
- gitlab (RedstoneWizard08)
- LLVM IR Language Support (rev.ng Labs)
- Behave (rioj7)
- Line Completion (rioj7)
- vscode_web_extension_emulator (runthoser)
- Marquee (stateful)
- painandsufferingforjaredsstuff (Thomka)
- Tofu (Alpha) (Watware)
Issue tracking
Issue tracking への貢献
- John Murray (@gjsjohnmurray)
- Andrii Dieiev (@IllusionMH)
- Lemmingh (@Lemmingh)
- Simon Chan (@yume-chan)
プルリクエスト
vscode
への貢献
- @a-stewart (Anthony Stewart): ブラウザ ts に match media change listener を追加 PR #143287
- @AkatQuas (Akat): feat(jsonc): "path" プロパティのインタラクティブな補完を強化 PR #144136
- @babakks (Babak K. Shandiz): Markdown の埋め込み言語に jsonc を追加 PR #144003
- @Backfighter: ユーザーの環境変数を上書きしない PR #115455
- @BamBamboozled: [] が存在しない場合のリファレンスのサポートを追加 PR #144781
- @cbliard (Christophe Bliard): editor.fold コマンドの selectionLines プロパティに予想される型を追加 PR #144732
- @Charles-Gagnon (Charles Gagnon): カバレッジフォルダーの場所を更新 PR #145597
- @eltociear (Ikko Ashimine): README.md を更新 PR #145132
- @gabritto (Gabriela Araujo Britto): [typescript-language-features] includeCompletionsWithObjectLiteralMethodSnippets 設定を追加 PR #145941
- @gjsjohnmurray (John Murray): [修正] 新規ファイルクイックピックのキーバインド設定アクションボタン (#_145422) PR #145429
- @hermannloose (Hermann Loose): 解決済みおよび未解決のコメントにテーマの色を導入 PR #145230
- @jeanp413 (Jean Pierre)
- グロブパターン
**/p*
が/foo/ap
に誤って一致する問題を修正 PR #144473 - リモート CLI を使用して Web 拡張機能をインストールできない問題を修正 PR #144522
- 実行中の拡張機能エディターに間違った拡張機能の実行場所が表示される問題を修正 PR #144528
- グロブパターン
- @kkakroo (Karan Kakroo)
- 禅モードが既にオンの場合のみ workbench.action.exitZenMode で禅モードを終了 PR #144217
- 一番上までスクロールボタンのテーマが適用されない PR #144224
- @kkocdko (kkocdko):
getDirectoryHandle
での無限再帰を修正 PR #145972 - @matthewjamesadam (Matt Adam): バッジ拡張機能 API を追加 PR #139225
- @mifopen (Slava Mostovoy): [修正] 固定位置のホバーウィジェットにホバーすると非表示になる問題を修正 PR #142160
- @pjknkda (Jungkook Park): 大きなファイルを削除するときにアンドゥのためのファイルコンテンツの読み取りをスキップ PR #144890
- @quanzhuo (Quan Zhuo)
- Issue #144453 を修正、拡張機能の lastUpdated 時間が 24:00:00 を超える問題を修正 PR #144454
- #144671, git 拡張機能の一部の非ローカライズ文字列を修正 PR #144712
- @rounaksingh557 (Rounak singh): これにより、正しいディレクトリで Visual Studio を探します。 PR #143479
- @sbresin (Sebastian Bresin): feat: gitExtension API も repository.revert() を公開 PR #145029
- @Semphriss: Seti テーマを更新 PR #145004
- @ShafinKhadem (Nafiur Rahman Khadem): マルチカーソル selectAll で searchScope 列を尊重 PR #142312
- @sumneko (最萌小汐)
- Lua 文法を更新 PR #144544
- Lua 文法を更新 PR #144975
- @UltiRequiem (Eliaz Bobadilla): chore: actions/checkout をバンプ PR #145891
- @weartist (Han): #143392 を修正 PR #143498
- @xisui-MSFT
- 逆アセンブリビューを使用する場合、ソースのないスタックフレームを最上位スタックフレームとして許可 PR #143649
- 逆アセンブリビューで無効になっているブレークポイントアイコンを修正 PR #143925
- @xmedeko (Ondrej Medek): javascript.suggest.jsdoc.generateReturns の markdownDescription を修正 PR #144486
- @yume-chan (Simon Chan):
welcome.showAllWalkthroughs
で拡張機能のコントリビューションを待機 PR #135632
vscode-css-languageservice
への貢献
- @marknn3 (Mark Langezaal): vscode #142516 [css] unicode-range ワイルドカードをサポート PR #264
vscode-js-debug
への貢献
- @zjffun (JuFeng Zhang): feat: ヒーププロファイリング PR #1187
vscode-languageserver-node
への貢献
- @razzeee (Kolja Lampe): タイプミスを修正 PR #903
vscode-vsce
への貢献
- @felipecrs (Felipe Santos): docs: readme に構成のヒントを追加 PR #704
debug-adapter-protocol
への貢献
- @eshelyaron (Eshel Yaron):
ExceptionFilterOptions
の小さな間違いを修正 PR #250 - @haneefdm (Haneef Mohammed): かつてこのリストにあった Cortex-Debug を追加 PR #257
- @renkun-ken (Kun Ren): R デバッガーを追加 PR #255
language-server-protocol
への貢献
- @KamasamaK
- @sno2 (Carter Snook): fix(inlayHint): 型参照のタイプミス PR #1425