2022年4月 (バージョン 1.67)
更新 1.67.1: この更新プログラムは、このセキュリティ問題に対処します。
更新 1.67.2: この更新プログラムは、これらの問題に対処します。
ダウンロード: Windows: x64 Arm64 | Mac: ユニバーサル Intel シリコン | Linux: deb rpm tarball Arm snap
Visual Studio Code の2022年4月リリースへようこそ。このバージョンには多くの更新があり、お気に召していただけることを願っています。主なハイライトは次のとおりです。
- エクスプローラーのファイルネスト - エクスプローラーで生成されたファイルをソースファイルの下にネストします。
- 設定エディターのフィルター - フィルターボタンで @Modified settings などの検索が表示されます。
- ブラケットペアのカラー化 - カラー化されたブラケットペアがデフォルトで有効になりました。
- インレイヒントの切り替え - Ctrl+Alt でエディターのインレイヒントをすばやく非表示または表示します。
- ドラッグアンドドロップで Markdown リンクを作成 - ファイルをエディターにドロップして Markdown リンクを作成します。
- Markdown のすべての参照を検索 - ヘッダー、ファイル、URL へのすべての参照をすばやく検索します。
- Java 拡張機能の更新 - インレイヒントと遅延変数解決をサポートするようになりました。
- 拡張機能作成者向けの UX ガイドライン - VS Code 拡張機能の UI ベストプラクティスに関するガイダンス。
- 新しい Rust 言語トピック - VS Code で Rust プログラミング言語を使用する方法を学びます。
これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com の 更新 にアクセスしてください。
リリースパーティーを見る: VS Code チームが新機能について議論するのを聞いてください。イベントの録画は YouTube チャンネルでご覧いただけます。
ハイライトショート: 60秒しかない場合は、4月の VS Code リリースハイライトビデオをチェックして、新機能をすばやく確認してください。
Insiders: 新機能をいち早く試したいですか?夜間ビルドのInsidersをダウンロードして、利用可能になり次第、最新の更新を試すことができます。
Workbench
エクスプローラーのファイルネスト
エクスプローラーは、名前に基づいて関連ファイルをネストするようになりました。この動作を制御するいくつかの設定があります。
- explorer.fileNesting.enabled- ファイルのネストが全体的に有効になっているかどうかを制御します。これはグローバルに、または特定のワークスペースに対して設定できます。
- explorer.fileNesting.expand- ネストされたファイルがデフォルトで展開されるかどうかを制御します。
- explorer.fileNesting.patterns- ファイルのネスト方法を制御します。デフォルトの構成は TypeScript および JavaScript プロジェクトのネストインテリジェンスを提供しますが、独自のプロジェクト構造に合わせてこれを変更することをお勧めします。いくつかの例:
デフォルト構成

ファイルがディレクトリ名と一致する場合 ("index.ts": "${dirname}.ts") は index.ts の下にネストします。

別のファイルと同じ名前だがセグメントが追加されたファイル ("*": "${basename}.*.${extname}") をネストします。

テーマ: GitHub Light High Contrast
ファイルネストは、いくつかのイテレーションで実験的な設定として利用可能でした。ファイルの操作を除けば、動作はほとんど変更されていません。実験的な設定 explorer.experimental.fileNesting.operateAsGroup は削除され、ネストが折りたたまれている場合はグループとして扱われ、それ以外の場合は単一のエンティティとして扱われるようになりました。これは、ファイルのネストスタック全体をコピー、カット、ドラッグ、または削除したい場合、ネストを折りたたんでから単一のエンティティとして操作できることを意味します。ネストされた要素が展開されている場合、選択は通常どおりに動作します。
設定エディターの検索フィルターボタン
設定エディターの検索コントロールには、右側に漏斗ボタンが追加されました。このボタンをクリックすると、検索クエリに適用して結果を絞り込むことができるフィルターのリストが表示されます。
テーマ: Light Pink
設定エディターの言語フィルターインジケーター
設定エディターの言語フィルターが適用されると、スコープテキストが変更され、どの言語に対して操作が行われているかがより明確に表示されるようになりました。上記の短いビデオでは、Markdown 言語フィルター (@lang:markdown) がフィルターされた設定に適用されている様子を示しています。
参考として、言語フィルターが適用されている場合、設定の値を変更すると、その設定の値はその言語のみに適用されます。言語固有の設定は、settings.json で言語識別子によってスコープ設定されます。
  "[markdown]": {
      "editor.wordBasedSuggestions": "off"
  }
リファクタリング後にファイルを保存
名前変更などのリファクタリングは、多くの場合、複数のファイルを変更し、未保存の変更 (ダーティ) を残します。外部開発ツールは通常、これらのファイルを保存する必要があります。このワークフローを容易にするため、新しい設定 files.refactoring.autoSave がデフォルトで true になり、リファクタリングの一部だったファイルを自動的に保存するかどうかを制御します。
エディターの制限でダーティエディターを除外
新しい設定 workbench.editor.limit.excludeDirty は、開いているエディターの最大数が、設定された制限にカウントされるダーティエディターを除外するかどうかを制御します。この設定はデフォルトで無効になっています (false)。
タイムラインに「コミットされていない変更」を復活
先月ローカル履歴機能を導入した際、Git タイムラインプロバイダーからコミットされていない変更のエントリを削除しました。少し冗長に感じられたためです。しかし、一部のユーザーはこのタイムラインエントリに真の価値を見出しており、新しいgit.timeline.showUncommitted設定を適切に構成することで、これを復活させることができます。
開けない場合の新しいエディタープレースホルダー
エディターが開けない場合、VS Code は通知を表示したり、以前に開いたエディターを表示したりしなくなりました。代わりに、エラーメッセージと、場合によってはエラーを解決するためのアクションを含む汎用プレースホルダーが表示されます。
言語ステータスの改善
言語ステータス項目に、フォーマッターの競合が表示されるようになりました。これは、ある言語に対して複数のフォーマッターがインストールされているにもかかわらず、どれもデフォルトのフォーマッターとして構成されていない場合に発生します。また、言語ステータス項目に重大なステータスが含まれている場合、より目立つようになりました。
さらに、言語ステータス項目には、ドキュメントが現在設定されている言語とは異なる言語であると疑われる場合に、言語を切り替えるヒントが表示されるようになりました。これは無題のエディターとノートブックセルにのみ適用され、workbench.editor.languageDetectionHints 設定で構成できます。以下に、さまざまな言語でセルを実行できるHandy Dandy Notebookでこれを示します。
テーマ: GitHub Light High Contrast
無効または互換性のない拡張機能を表示
拡張機能ビューで、無効または互換性のない拡張機能がインストール済み拡張機能リストにエラー状態とともに表示されるようになりました。たとえば、VS Code のバージョンが1.67.0-insiderで、VS Code バージョン1.68.0が必要な拡張機能がインストールされている場合、その拡張機能は互換性なしエラー状態とともにリストに表示されます。

終了前に確認
新しい設定 window.confirmBeforeClose を構成すると、アプリケーションを終了する前に確認ダイアログが表示されます。
キーバインディングを使用した場合にのみ確認ダイアログを表示する keyboardOnly または、マウスで終了した場合でも常に表示する always を選択できます。
注: この設定はまったく新しいものではなく、VS Code for Web で以前から利用可能でした。
comments.openView のデフォルト値
comments.openView の以前のデフォルト値は file であり、コメント付きファイルが開かれるたびにコメントビューが開きました。コメントビューのノイズを減らすため、新しいデフォルトは firstFile であり、セッション中にコメント付きファイルが初めて開かれた場合にのみコメントビューが開かれるようになりました。
複数行コメント
舞台裏では、VS Code はコメント UX が完成したときから複数行コメントをサポートしていましたが、複数行コメントは UI には表示されていませんでした。これで、複数行コメントを表示および残すことができます。
URI を新しいウィンドウで処理する
VS Code の URI にクエリパラメーター windowId=_blank が含まれている場合、VS Code はそれを新しいウィンドウで処理します。例: vscode://vscode.git/clone?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fvscode-vsce.git&windowId=_blank。
Editor
括弧ペアの色付けがデフォルトで有効に
1.60 リリースで導入された新しい括弧ペアの色付け機能に対する肯定的なフィードバックを受けて、括弧ペアの色付けをデフォルトで有効にしました。

括弧ペアの色付けは、"editor.bracketPairColorization.enabled" を false に設定することで無効にできます。
括弧ペアの色付けは、特定の言語に対してのみ無効にすることもできます。
"[typescript]": {
  "editor.bracketPairColorization.enabled": false,
},
TextMate 文法はトークンを不均衡としてマーク可能
以前は、TextMate 文法は、シェルスクリプトのケースステートメントの閉じ括弧のように、特定の括弧を不均衡としてマークできませんでした。

括弧ペアの一致と色付けをより堅牢にするために、TextMate 文法コントリビューションは、特定のトークン内の括弧は一致すべきではないことを表現できるようになりました。拡張機能のpackage.jsonのcontributesセクションで、提供される文法は、balancedBracketScopes (デフォルトは["*"]) およびunbalancedBracketScopes (デフォルトは[]) プロパティを使用して、括弧の一致にスコープを含めるか除外するかを指定できます。
"grammars": [{
    "language": "shellscript",
    "scopeName": "source.shell",
    "path": "./syntaxes/shell-unix-bash.tmLanguage.json",
    "balancedBracketScopes": [ "*" ],
    "unbalancedBracketScopes": [ "meta.scope.case-pattern.shell" ]
}],
この機能により、シェルスクリプトの文法は、ケースステートメントの)が一致すべきではないことを示すことができるようになりました。

新しい括弧一致アルゴリズム
括弧の一致は、括弧のカラー化と同じデータ構造を使用するようになりました。これにより、精度とパフォーマンスの両方が向上します。
古い括弧一致の動作 (色とハイライトの装飾が一致しないことに注意)

新しい括弧一致の動作

ブラケットガイドの改善
横方向のブラケットガイドが、折り返された行を適切にサポートするようになりました。また、単一行にまたがるブラケットペアは、独自の横方向のブラケットガイドを取得します。

横方向のブラケットガイドはデフォルトで無効になっており、"editor.guides.bracketPairsHorizontal": trueで有効にできます。
このリリースで、"editor.guides.highlightActiveIndentation" は "always" の値を受け入れるようになりました。always に設定すると、アクティブなブラケットペアが既に存在する場合でも、インデントガイドがハイライト表示されます。
インレイヒントの切り替え
インレイヒントは、ソースコード内に直接追加情報を表示する優れた方法です。しかし、時には実際のソースコードだけを見たい場合もあります。インレイヒントをすばやく非表示にするために、editor.inlayHints.enabled 設定が変更されました。on と off に加えて、onUnlessPressed と offUnlessPressed の値もあります。on/offUnlessPressed の値は、Ctrl+Alt が押されている間、インレイヒントを非表示または表示します。
エディター > インレイヒント: 有効な値
- on- インレイヒントが有効になります。
- off- インレイヒントが無効になります。
- onUnlessPressed-- Ctrl+Altを押すとインレイヒントが表示/非表示になります。
- offUnlessPressed-- Ctrl+Altを押すとインレイヒントが非表示/表示になります。
インラインサジェストの改善
先月、クイックサジェストに👻 ゴーストテキスト (薄い色付け) を使用する機能を追加しました。リマインダー: editor.quickSuggestions 設定に inline を使用する必要があります。この領域でいくつかの調整作業を行いました。特に、トリガー文字と TypeScript の「引数付き関数を補完」がサポートされるようになりました。
.などのトリガー文字を入力したときに IntelliSense を無効にするには、"editor.suggestOnTriggerCharacters": falseを設定します。TypeScript 関数呼び出し補完を有効にするには、"typescript.suggest.completeFunctionCalls": trueを使用します。
テキストをエディターにドラッグ&ドロップ
他のアプリケーションからテキストエディターにテキストをドラッグアンドドロップできるようになりました。たとえば macOS では、絵文字パネルからテキストエディターに絵文字をドロップできます。
ドラッグ中は、点線のカーソルでテキストが挿入される場所が表示されます。
ターミナル
検索結果数
ターミナルで検索する場合、結果数と現在選択されている一致インデックスが検索コントロールに表示されるようになりました。

ソース管理
ソース管理リポジトリビュー
このマイルストーンで、ソース管理リポジトリビューに表示されるリポジトリのデフォルトのソート順を制御する新しい設定 scm.repositories.sortOrder を導入しました。リポジトリは、検出された順序、名前、およびフルパスでソートできます。ソート順の変更は、ソース管理リポジトリビューの... ビューとその他のアクションメニュー、およびソース管理ビューの... > ビューとソート > リポジトリメニューを使用して行うことができます。
以下の短いビデオでは、SCM > リポジトリ: ソート順の設定がデフォルトでdiscovery time(リポジトリが選択された時間)であり、ソース管理ビューでソート順を変更することもできることを示しています。
エディターの装飾の改善
前回のマイルストーンでは、追加/変更された行のエディターデコレーターのアクセシビリティを改善するため、変更された行デコレーターのパターンを採用しました。今回のマイルストーンでは、ユーザーがエディターデコレーターのパターンを切り替えられる新しい設定 scm.diffDecorationsGutterPattern を追加しました。
この設定は、変更された行の装飾にはパターンを使用しますが、追加された行の装飾にはパターンを使用しないのがデフォルトです。
"scm.diffDecorationsGutterPattern": {
    "added": false,
    "modified": true
}
パフォーマンスの向上
git.untrackedChanges 設定を hidden に設定しているユーザーは、大規模なリポジトリで作業する際にパフォーマンスが向上します。これは、git status を呼び出す際に -uno パラメータを渡すことで実現されます。
リモートソースプロバイダー API の拡張
Git 拡張機能 API は、リモートソースプロバイダーを登録または表示する拡張機能が、リモートソースに関するより豊富な情報を提供できるようになりました。
リモートソースプロバイダーは、個々のリモートソースの説明とアイコンを設定できるようになりました。さらに、プロバイダーはオプションで最近のリモートソースを指定できます。これらは、簡単にアクセスできるようにピッカーのトップレベルに表示され、タイムスタンプが指定されている場合はタイムスタンプ順にソートされます。
拡張された API は、組み込みの GitHub 拡張機能だけでなく、github.dev と vscode.dev のGitHub リポジトリおよびAzure Repos 拡張機能にも採用されています。
SSH を使用して GitHub からクローン
新しい設定 github.gitProtocol を使用すると、GitHub からリポジトリをクローンする際のデフォルトプロトコルを変更できます。デフォルト値は https ですが、ssh に変更できます。
デバッグ
遅延変数を自動展開
数ヶ月前、デバッガーの変数ビューで「遅延」変数をクリックして展開するサポートを追加しました。クリックなしで遅延変数を自動的に展開する新しい設定 debug.autoExpandLazyVariables があります。
遅延変数の新しいボタン
テキストリンクボタンを「目」のコディコン付きの実際のボタンに更新しました。「目」のコディコンもより目のような外観に更新されました。

Shift+クリックでブレークポイントを無効化
ブレークポイント (または条件付きブレークポイント、ログポイント) を Shift+クリック することで、それを無効化したり、再度有効化したりできるようになりました。
言語
Markdown: エディターにドロップしてリンクを作成
VS Code のエクスプローラーから Markdown エディターにファイルをドラッグアンドドロップすることで、Markdown リンクをすばやく作成できるようになりました。Markdown エディターにファイルをドラッグしている間 Shift を押すと、エディターにドロップしてリンクを作成できます。
ファイルが画像のように見える場合、VS Code は自動的に Markdown 画像を挿入します。それ以外の場合は、通常の Markdown リンクが追加されます。
これは、Web ブラウザから画像をドラッグアンドドロップするなど、他のアプリケーションから一部の種類のファイルをドラッグする場合にも機能します。
"markdown.editor.drop.enabled": false を設定することで、このドロップ動作を無効にできます。
Markdown: ヘッダーへのすべての参照を検索
VS Code は、Markdown ファイルのヘッダーですべての参照を検索できるようになりました。これにより、現在のワークスペース内で指定されたヘッダーが使用されているすべての場所(他の Markdown ファイルからのリンクを含む)を確認できます。
開始するには、カーソルをヘッダー自体、またはヘッダーへのリンクのフラグメント部分 (たとえば、[link text](#_some-header) または [link text](/path/to/file#some-header) の #some-header) に置いて、すべての参照を検索を実行します。

これにより、参照ビューにすべての参照が表示されます。別のビューを希望する場合は、参照をピーク表示または参照へ移動コマンドも使用できます。
Markdown: 参照リンクへのすべての参照を検索
VS Code は、現在のファイル内の参照リンクへのすべての参照を検索することもサポートしています。これは以下に対してサポートされています。
- [some text][ref]の- ref上。
- 省略形リンク [ref]のref上。
- リンク定義 [ref]: http://example.comのref上。

Markdown: ファイルへのすべての参照を検索
現在のワークスペース内の指定された Markdown ファイルへのすべての参照も検索できるようになりました。ここには、ファイル間のリンクも含まれます。
これはいくつかの方法でトリガーできます。
- 現在の Markdown ファイルへの参照を検索するには、Markdown: ファイル参照の検索コマンドを使用します。
- エクスプローラーで Markdown ファイルへの参照を検索するには、そのファイルを右クリックしてファイル参照の検索コマンドを実行します。
- [text](/link/to/file.md)のようなMarkdownファイルへのリンクのファイル部分で、すべての参照を検索を実行します。
これにより、指定されたファイルが参照されているすべての場所(そのファイル内のヘッダーへの参照を含む)がリスト表示されます。
Markdown: URLへのすべての参照を検索
最後に、現在のワークスペース内で指定された URL が使用されているすべての場所を検索する機能もサポートしました。

Markdown: ヘッダーの名前変更
Markdown ファイルでヘッダーを変更したのに、それにリンクしているすべてのリンクも誤って壊してしまったことに気づいたことはありませんか?そんなときに、Markdown の新しい名前変更サポートが役立ちます。
開始するには、カーソルをヘッダーに置き、F2 を押して名前変更を開始します。ヘッダーの新しいテキストを入力し、Enter を押して確定します。これにより、現在のヘッダーが更新されるだけでなく、現在のワークスペース内のそれにリンクされている既知のすべてのリンクも更新されます。
ヘッダー自体、またはヘッダーへのリンクのヘッダーコンポーネントで名前変更をトリガーできます。たとえば、[link text](#_some-header) または [link text](/path/to/file#some-header) の some-header などです。
Markdown: 参照リンクの名前変更
Markdown の参照リンクも名前変更できるようになりました。これにより、現在の Markdown ファイル内のすべての参照リンクが更新されます。

Markdown: ファイルの名前変更
新しい Markdown 名前変更サポートの締めくくりとして、Markdown リンクのファイルパスで F2 を使用して、ディスク上のファイルの名前を変更し、それへのすべての Markdown 参照を更新できるようになりました。

現在、ファイルの名前変更は、テキストエディター内のファイルへのリンクで F2 を使用してのみサポートされています。今後のイテレーションでは、エクスプローラーで名前変更がトリガーされたときにリンクを更新するサポートも計画しています。
JSON
新しい設定 json.validate.enable を使用すると、JSON 検証をオフにできます。
Web 用 VS Code
リモートリポジトリピッカーを開く
Web 用 VS Code は、リモートリポジトリを開くピッカーを使用する際に window.openFoldersInNewWindow 設定を尊重するようになりました。これにより、ピッカーの動作が他のバージョンの VS Code と一致し、新しいウィンドウで開くクイックピックアイテムボタンが置き換えられました。
拡張機能への貢献
Java
インレイヒント
Java 用拡張機能パックに含まれる Java 言語サービスは、メソッドシグネチャのパラメータ名を表示するためのインレイヒントをサポートするようになりました。
Java パラメータ名インレイヒントには3つのモードがあります。
- literals- リテラル引数に対してのみパラメータ名ヒントを有効にする (デフォルト)。
- all- リテラルおよび非リテラル引数に対してパラメータ名ヒントを有効にする。
- none- パラメータ名ヒントを無効にする。
遅延変数解決
Debugger for Java 拡張機能は、'遅延' 変数をサポートするようになりました。この機能により、デバッガー UI を明示的に展開して値を確認するまで、高価な変数の操作を遅延させることができます。
Jupyter
Jupyter PowerToys 拡張機能
Jupyter PowerToys 拡張機能の発表に興奮しています。この拡張機能は、Jupyter ノートブックを操作するための実験的な機能を提供します。最初のリリースでは、以下の機能のプロトタイプを作成しました。
- カーネル管理パネル
- コンテキストヘルプ
- 実行のグループ化
ぜひお試しいただき、ご意見をお聞かせください。いつかサポートされる機能に磨きをかけたいと考えています!
詳細については、vscode-jupyter-powertoys リポジトリの README を参照してください。
Web拡張機能
Jupyter 拡張機能は、vscode.dev で使用するためのウェブ拡張機能としてインストールできるようになりました。現在、機能は、https を必要としない Jupyter サーバーで実行されるノートブック (.ipynb ファイル) のみサポートされており、制限されています。
機能を試してみたい場合は、ローカルマシンからJupyterを起動してください。
jupyter --no-browser --NotebookApp.allow_origin_pat=https://.*\.vscode-cdn\.net
そして、コマンドJupyter: 接続する Jupyter サーバーを指定を使用してそれに接続します。
今後のリリースでは、ブラウザで実行する際に、以下の機能を含むより多くの機能が有効になります。
- 'https'ベースのサーバー
- IntelliSense
- データ表示
- 変数表示
- インタラクティブウィンドウ
- IPyWidgets
- プロット表示
- エクスポート
Jupyter カーネルのハンドリング
Jupyter カーネルのハンドリングに多くの更新が行われました。
- カーネルがクラッシュしたことをより分かりやすくするために、拡張機能はセル出力にこの情報を表示するようになりました。
- 特定の既知のエラーが実行中に検出された場合、セル出力にトラブルシューティングガイダンスが表示されるようになりました。
- カーネル実行の問題を解決することは、複雑で時間のかかるプロセスになる可能性があります。解決策に早くたどり着けるように、Wiki にトラブルシューティングセクションをまとめました。GitHub Discussions フォーラムも、助けを得るための素晴らしいリソースとなります。
Python
言語サーバー変更時のリロード不要
Python 拡張機能は、python.languageServer 設定の値を更新し、VS Code をリロードすることなく言語サーバーを自動的に再起動する機能をサポートするようになりました。
Black フォーマッター拡張機能
Black Formatter 拡張機能が利用可能になりました。この拡張機能は、black フォーマッターを使用して Python の書式設定をサポートします。拡張機能のプレリリース版がインストール可能です。
isortによるインポート整理
新しいisort拡張機能は、isortライブラリを使用してインポート整理を提供します。拡張機能のプレリリース版が利用可能です。
リモート開発
リモート開発拡張機能の作業が続けられています。これにより、コンテナ、リモートマシン、または Windows Subsystem for Linux (WSL) をフル機能の開発環境として使用できます。
新しい拡張機能の機能とバグ修正については、リモート開発リリースノートで確認できます。
GitHub Pull Requests and Issues
引き続きGitHub Pull Requests and Issues拡張機能の開発が進められており、プルリクエストやイシューの作業、作成、管理が可能です。このリリースのハイライトは以下の通りです。
- 複数行コメント
- コミット変更をツリーで表示
その他のハイライトについては、拡張機能の0.42.0 の変更履歴をご覧ください。
プレビュー機能
設定プロファイル
このマイルストーンで、設定、拡張機能、UI カスタマイズのコレクションである設定プロファイルを導入しました。VS Code をカスタマイズした場合、そのカスタマイズをSettings Profileファイル (mysetup.code-profile) にエクスポートして、コンピューターに保存したり、他の人と共有したりできます。
以下の短いビデオは、VS Code から設定プロファイルをエクスポートする様子を示しています。
設定プロファイルファイルをインポートして、カスタマイズを復元することもできます。
以下は、設定プロファイルを VS Code にインポートする様子を示しています。
設定プロファイルファイルをクラウドでホストし、例えば公開 GitHub gist として保存し、その URL を他の人と共有できます。URL を提供することで設定プロファイルファイルをインポートできます。
注意: 現在、以下の UI カスタマイズのみが設定プロファイルに含まれています。今後、さらに追加される予定です。
- ステータスバー項目の表示/非表示
- アクティビティバー、下部パネル、サイドパネルの項目の表示、および順序。
- ビューの表示/非表示、場所、順序
TypeScript 4.7 のサポート
このアップデートには、近日公開予定の TypeScript 4.7 リリースのサポートが含まれています。TypeScript チームが現在取り組んでいることの詳細については、TypeScript 4.7 イテレーション計画を参照してください。いくつかのハイライトは以下のとおりです。
- 新しいソース定義へ移動コマンドを使用して、ライブラリ関数の JavaScript 実装に直接ジャンプできます。この機能の詳細については、TypeScript issue #49003 でフィードバックを共有してください。
- オブジェクトメンバーとしてのメソッド補完のためのスニペット。
- グループを考慮したインポートの整理.
TypeScript 4.7 のナイトリービルドの使用を開始するには、TypeScript Nightly 拡張機能をインストールしてください。
拡張機能作成
タブ API
タブ API の読み取り専用側 (タブを閉じる機能もサポートされています) を完成させ、最も投票の多い問題の 1 つである microsoft/vscode#15178 の完了をマークしました。これにより、グループの数、開いているタブ、アクティブなタブ、タブが表すエディターの種類などの情報が公開されます。詳細については、API のエントリポイントが window.tabGroups である vscode.d.ts ファイルで確認できます。
ノートブックの変更イベントと保存イベント
ノートブック関連の2つのイベントが完成しました。
- vscode.workspace.onDidSaveNotebookDocument- ノートブックが保存されるたびに発生するイベント。
- vscode.workspace.onDidChangeNotebookDocument- ノートブックが変更されるたびに発生するイベント。これには、セルを追加または削除するなどの構造変更、および出力やメタデータを変更するなどのセル変更が含まれます。
非再帰的ワークスペースファイルウォッチャーのサポート
以前のマイルストーンでは、createFileSystemWatcher API を使用して、開いているワークスペース内にない限り、ディスク上の任意のフォルダーを監視できることを発表しました。この制限は緩和され、開いているワークスペース内であっても、非再帰的ファイルウォッチャーをどこでも使用できるようになりました。非再帰的ウォッチャーには、除外用に構成された設定 (files.watcherExclude) が適用されないため、サブスクライブしたパスに対してのみファイルウォッチャーがイベントを発行することが保証されるという利点があります。
拡張機能用のカスタム除外ルールを持つ再帰的なウォッチャーの完全なサポートに取り組んでいますので、続報をお待ちください!
UX ガイドライン
拡張機能作成者向けのUX ガイドラインは、独自の目次を持つように再構成され、さまざまな VS Code ユーザーインターフェース要素を使用するためのベストプラクティスを見つけることができます。特定のトピックでは、拡張機能の UI を作成する際の推奨されるすべきこととすべきでないことについて説明しており、VS Code にシームレスに統合できるようにしています。

拡張機能テストの実行
以前は、VS Code はテスト実行が終了するとすぐに拡張機能ホストプロセスを終了していました。しかし、拡張機能テストを実行する場合、VS Code はまず通常の deactivate フローを通過し、その後で終了するようになりました。これにより、プロセスを生成する拡張機能が自身をより適切にクリーンアップできるようになります。
ファイルをカスタムツリーにドロップする
最近完成したツリーのドラッグアンドドロップ API に基づき、text/uri-list MIME タイプを使用して、OS から拡張機能ツリービューにファイルをドロップする基本的なサポートが追加されました。
デバッガー拡張機能の作成
supportSuspendDebuggee および supportTerminateDebuggee の UI
disconnect リクエストには、デバッガー切断時にデバッグ対象に何が起こるかをクライアントが制御できる2つの追加オプションがあります。
- suspendDebuggeeは、切断後もデバッグ対象が一時停止したままにするかどうかを示します。
- terminateDebuggeeは、デバッガーが切断されたときにデバッグ対象を終了するかどうかを示します。
デバッグアダプターは、これらのオプションをサポートしていることを示すために、機能 supportSuspendDebuggee と supportTerminateDebuggee を使用できます。サポートされている場合、デバッグツールバーの停止ボタンの横に、追加の切断コマンドを含むドロップダウンが表示されます。
例えば、「起動」タイプのデバッグセッションで、両方の機能をサポートするデバッグアダプターの場合、デフォルトのツールバーボタンは通常の停止ボタンですが、ドロップダウンには切断(terminateDebuggee: false)と切断して一時停止(terminateDebuggee: false, suspendDebuggee: true)が含まれます。

Language Server Protocol
ノートブックとプル診断のサポートは提案状態から外され、3.17 リリースで出荷される準備が整いました。対応するクライアントライブラリとサーバーライブラリの新しいバージョンが npm に公開されました。
提案されたAPI
すべてのマイルストーンには新しい提案された API が含まれており、拡張機能の作者はそれらを試すことができます。いつものように、皆様からのフィードバックを歓迎します。提案された API を試す手順は次のとおりです。
- 試したい提案を見つけて、その名前をpackage.json#enabledApiProposalsに追加します。
- 最新のvscode-dtsを使用して、vscode-dts devを実行してください。これにより、対応するd.tsファイルがワークスペースにダウンロードされます。
- これで提案に対してプログラミングできます。
提案された API を使用する拡張機能を公開することはできません。次のリリースで破壊的変更がある可能性があり、既存の拡張機能を壊すことは望ましくありません。
エディターへのドロップ
提案されたテキストエディターのドロップ API を使用すると、拡張機能がテキストエディターへのドロップを処理できます。これらのドロップイベントは、VS Code 内から (たとえば、VS Code のエクスプローラーからファイルをテキストエディターにドラッグする) 発生することも、オペレーティングシステムから VS Code にファイルをドロップすることによって生成されることもあります。
今回のイテレーションでは、この API をプロバイダーベースのモデルに切り替えました。また、この API の使用方法を示す新しい拡張機能サンプルも作成しました。
ビュー上のバッジ
ビューにバッジを追加する新しい提案を試すことができます。VS Code コアによって提供されるビューでバッジが機能するのと同様に、拡張機能はこの API 提案を使用してビューに番号バッジを追加できます。
エンジニアリング
Electron スモークテスト用の Playwright
Web ベースのスモークテストにはPlaywrightを長い間使用してきましたが、Electron ベースのスモークテストはまだ独自のカスタムソリューションに依存していました。Playwright の Electron サポートにより、Web ベースのスモークテストコードのほとんどを再利用し、Electron スモークテストにも使用できるようになりました。これで、Trace Viewerを使用して、失敗したスモークテストを事後的に診断できることを嬉しく思います。
拡張機能の新しいローカライズパイプライン
VS Code は、言語パックをインストールすることで有効にできる多数の表示言語をサポートしています。これらは、VS Code 自体と VS Code に組み込まれた拡張機能をローカライズするのに最適です。今回のイテレーションでは、チームが所有する組み込み以外の拡張機能のローカライズの標準化作業を開始しました。この取り組みの結果は、GitHub リポジトリとAzure Repos 拡張機能の共通依存拡張機能であるRemote Repositoriesがこの取り組みに参加した最初の拡張機能であることからわかります。
次のイテレーションでは、この標準化作業を継続し、さらに多くの拡張機能をオンボードしていきます。現在、Python 拡張機能が進行中であり、GitHub Repositories と Azure Repos がすぐにそれに続きます。私たちは、チームが所有するすべての拡張機能がローカライズされ、将来作成される新しい拡張機能も簡単にオンボードできるようになり、英語を母国語としないユーザーでも VS Code で素晴らしい体験ができるようにしたいと考えています。
ドキュメント
VS Code の Rust
新しいVisual Studio Code の Rustトピックでは、Rust プログラミング言語のVS Codeでのサポートについて、rust-analyzer拡張機能を使用して説明しています。rust-analyzer拡張機能には、コード補完、リンティング、リファクタリング、デバッグなどの豊富な言語機能が含まれています。

注目すべき修正点
- 114844 クラッシュダイアログから以前のセッションのエディター復元をスキップできるようにする
- 127936 起動時にファイルごとに files.encodingを言語固有の設定として設定できるようにする
- 138461 React ファイル内の [] ペア内の Emmet オートコンプリートが間違っている
- 139392 最近のプロジェクトをクリアの確認
- 139950 ブレークポイントにヒットすると、キャレット (カーソル) はその行に移動するべき
- 145265 Windows のターミナルが cmd /C を使用しており、渡された引数が破損する
- 146406 ターミナルでのパワーライン記号の色が間違っている
- 146977 macOS の Info.plist でフォルダサポートを宣言
- 147104 GitHubへのログインが完了できない
ありがとうございます
最後に、VS Codeの貢献者の皆様に心からの感謝を申し上げます。
Web拡張機能
コードをウェブ拡張機能として実行する拡張機能を有効にする拡張機能作成者向け (以下のリストは2022年3月28日から2022年5月1日の間)
- Logos for VS Code (Aarnav Tale)
- カーソルの単語をコピー (Alessandro Fragnani)
- Delphi キーマップ (Alessandro Fragnani)
- Pascal (Alessandro Fragnani)
- 区切り文字 (Alessandro Fragnani)
- タグ付きコメント (Alessandro Fragnani)
- NeuroViewer (Anibal Solon)
- sb4-extension (arrow2nd)
- DeloresDevDev (bolinfest)
- VSCode リモートサーバー (btwiuse)
- Text Toolbox (Carlo Cardella)
- CloudStudio.common (CloudStudio)
- Vsnips (corvofeng)
- Const & Props スニペット (dein Software)
- dein Snippets Pack (dein Software)
- EVSCode Web IDE コネクター (Web、実験版) (Elrond)
- String To Any Case (gauseen)
- 画像ギャラリー (GeriYoco)
- 模袋云-modelo (heekei zhuang)
- sigma (humpalum)
- 私のスニペット (Jaedeok Kim)
- GCSアップローダー (kb-devs)
- TEI Japanese Editor Web (ldas)
- tal7aouy.indent-colorizer (Mhammed Talhaouy)
- minim-tools.m-web (minim-tools)
- UUID Generator (Motivesoft)
- TyranoScript 構文 (orukred)
- VDM VSCode (Overture)
- Excalidraw (pomdtr)
- WebGL GLSL エディター (Rácz Zalán)
- Vue (Rahul Kadyan)
- VueDX (Rahul Kadyan)
- BDD Go To Step (rioj7)
- 追加コンテキスト (rioj7)
- web_prolin_emulator (runthoser)
- Go Nav Bar (Scotthew)
- yaist-vscode (toyjack)
- Pyodide Runner (tym-inc)
- Import Cost (Wix)
- 法文 (yamachi)
- ZG アセンブラ (ZENG GE)
問題追跡
問題追跡への貢献者
- John Murray (@gjsjohnmurray)
- Andrii Dieiev (@IllusionMH)
- Simon Chan (@yume-chan)
- Lemmingh (@Lemmingh)
プルリクエスト
vscodeへの貢献者
- @100paperkite
- 修正 #146305 PR #146449
- 修正 #147420 PR #147930
 
- @a-stewart (Anthony Stewart)
- アクションが指定されていない場合に空の div.message-actions-container を作成 PR #140578
- バナーマークダウンのリンクの色を更新 PR #140581
- SCM のユーザー向けインスタンスを Source Control に名前変更 PR #146742
 
- @AkatQuas (Akat): fix(markdown): コードセクション内のリンク参照/ソースを考慮しない PR #146826
- @amanasifkhalid (Aman Khalid)
- クローズ #143241: テスト UI フィルターがウィンドウのリロード後も存続する PR #147344
- Fix #146166: スニペット変換で既存のキャメル/パスカルケースが保持される PR #147422
 
- @ambar (ambar): fix parenthesis encoding in unicode highlighting PR #146248
- @andschwa (Andy Schwartzmeyer): 組み込みの PowerShell スニペットを削除 PR #146459
- @babakks (Babak K. Shandiz): リポジトリをフォークする際に PR テンプレートを選択するようにユーザーに求める PR #143733
- @Balastrong (Leonardo Montini)
- 145367 cwd が存在する場合はターミナル名に追加 PR #145620
- debug.inlineValues の true と false を on と off に置き換え PR #146543
 
- @bytemain (Artin): Fix TerminalProfilenot throw PR #143251
- @cdce8p (Marc Mueller): Fix gitgetBranch [v1.65.0] PR #144449
- @CGNonofr (Loïc Mangeonjean): 新しい折り畳みブロックの計算中にフリーズした折り畳みブロックを修正 PR #146545
- @dlech (David Lechner): コンテキストメニューが無効になっている場合、エディターが ContextMenu キーを奪ってしまう問題を修正 PR #146968
- @eamodio (Eric Amodio): Fixes #140787 watches proper worktree dir PR #140789
- @gabritto (Gabriela Araujo Britto): TS 補完項目にラベル詳細のサポートを追加 PR #146270
- @gjsjohnmurray (John Murray): パレットに「デバッグコンソールで評価」と「ウォッチに追加」を追加 PR #146775
- @heartacker: git.fetch アクションを最初のヘッダーメニューに追加 PR #137940
- @hello-smile6: package.json を更新 PR #146278
- @IllusionMH (Andrii Dieiev): エラーメッセージのバージョンを修正 PR #147750
- @ImCa0 (ImCaO): 翻訳可能な文字列のスペルチェックエラーを修正 PR #147234
- @jhgg (Jake): feat: インレイヒントの displayStyle PR #145470
- @jlelong (Jerome Lelong): vscode-latex-basics 1.3.0 に更新 PR #146308
- @jsjoeio (Joe Previte)
- refactor(workbench.ts): 古いコメントを更新 PR #146364
- fix(service-worker): webview リソースを同じドメインから提供できるようにする PR #147467
 
- @laurentlb (Laurent Le Brun)
- コメントパネル: 最後の返信の日付を使用する PR #147922
- コメントパネル: 著者名を切り詰めない PR #147924
 
- @luoriyuhui21 (Keming Liang): workbench.editor.limit.value でダーティタブを無視する設定を追加。 PR #144545
- @manunamz (manunam): docstring の markdownRenderer.ts パスを更新。 PR #146332
- @matthewjamesadam (Matt Adam): Web ビューとツリービューにバッジ API を実装 PR #144775
- @mbelsky (Max Belsky): Shift+クリックでブレークポイントを無効化 PR #147598
- @michaelkuhn (Michael Kuhn): Solarized トークンの色を統一し修正 PR #142883
- @neeleshb (Neelesh Bodas): その他の VSCode のアクセシビリティ修正 PR #145775
- @nesk (Johann Pardanaud): Markdown スニペットの UX を改善 PR #146431
- @quanzhuo (Quan Zhuo)
- 問題 #145134 を修正、認証済みユーザーのすべてのリポジトリをフェッチ PR #145203
- fix #140612: コンテキスト行番号がロードされたときにトグルボタンを切り替える… PR #147141
 
- @Suven-p (Suven-p): すべてのテストを非表示にするアクションを追加 PR #148003
- @tharbakim: Emmet 拡張機能におけるファイル先頭の CSS プリプロセッサコメントの検出を修正 PR #146121
- @thekorn (Markus Korn): git 拡張機能: 'git.untrackedChanges' が 'hidden' に設定されている場合、'git status' 実行時に追跡されていないファイルを無視する (microsoft/vscode#131020 を修正) PR #131030
- @yepitschunked: [Git watcher] watchman の cookie を無視 PR #127702
vscode-css-languageserviceへの貢献者
- @romainmenke (Romain Menke): :langと類似の擬似セレクタのセレクタの特異性表示を修正 PR #268
vscode-generator-codeへの貢献者
- @rupeshs (Rupesh Sreeraman): ext-snippets クイックスタートドキュメントの修正 PR #340
vscode-js-debugへの貢献者
vscode-pull-request-githubへの貢献者
- @hoontae24: Github Enterprise URL のコピーされたパーマリンクをサポート PR #3460
debug-adapter-protocolへの貢献者
- @KamasamaK: いくつかの誤字を修正 PR #264
- @peterderivaz (Peter de Rivaz): SetBreakpointsArguments の説明を修正 PR #261
- @polinasok: Go デバッグアダプターの adapters.md を更新 PR #262
- @WardenGnaw (Andrew Wang): adapters.md の余分な改行を削除 PR #263
language-server-protocolへの貢献者
monaco-editorへのコントリビューション
- @DetachHead: typescript に outキーワードを追加 PR #3066
- @Yash-Singh1 (Yash Singh): feat: css グリッドに fr 単位を追加 PR #3078