2022年4月 (バージョン 1.67)
アップデート 1.67.1: このアップデートでは、このセキュリティ 問題 に対応しています。
アップデート 1.67.2: このアップデートでは、これらの 問題 に対応しています。
ダウンロード: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Visual Studio Code 2022 年 4 月リリースへようこそ。このバージョンでは多くのアップデートがあり、きっと気に入っていただけると思います。主なハイライトをいくつかご紹介します。
- エクスプローラーのファイルのネスト化 - エクスプローラーで生成されたファイルをソースファイルの下にネストします。
- 設定エディターのフィルター - フィルターボタンをクリックすると、@Modified 設定などの検索が表示されます。
- 括弧のペアの色分け - 括弧のペアの色分けがデフォルトで有効になりました。
- インレイヒントの切り替え - Ctrl+Alt キーで、エディター内のインレイヒントをすばやく非表示または表示できます。
- ドラッグ & ドロップで Markdown リンクを作成 - ファイルをエディターにドロップして Markdown リンクを作成します。
- Markdown でのすべての参照の検索 - ヘッダー、ファイル、URL へのすべての参照をすばやく検索します。
- Java 拡張機能のアップデート - インレイヒントと遅延変数解決をサポートするようになりました。
- 拡張機能作成者向けの UX ガイドライン - VS Code 拡張機能 UI のベストプラクティスに関するガイダンス。
- 新しい Rust 言語のトピック - VS Code で Rust プログラミング言語を使用する方法を学びます。
これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com の Updates をご覧ください。
リリースパーティーを見る: VS Code チームが新機能について議論する様子をご覧ください。イベントの 録画 は、YouTube チャンネルでご覧いただけます。
ハイライト動画 (ショート): 60 秒しか時間がない場合は、4 月の VS Code リリースハイライト ビデオで新機能を手早く確認してください。
Insiders: 最新機能をいち早く試したいですか? 最新のアップデートが利用可能になり次第試せる、Insiders ビルドをダウンロードできます。
ワークベンチ
エクスプローラーのファイルのネスト化
エクスプローラーが、名前を基に関連ファイルをネストすることをサポートするようになりました。この動作を制御するための設定がいくつかあります。
explorer.fileNesting.enabled
- ファイルのネスト化を全体的に有効にするかどうかを制御します。グローバルに設定することも、特定のワークスペースに対して設定することもできます。explorer.fileNesting.expand
- ネストされたファイルをデフォルトで展開するかどうかを制御します。explorer.fileNesting.patterns
- ファイルをどのようにネストするかを制御します。デフォルト構成は、TypeScript および JavaScript プロジェクトのネストインテリジェンスを提供しますが、プロジェクトの構造に合わせて変更することをお勧めします。いくつかの例:
デフォルト構成
ファイルがディレクトリの名前と一致する場合の index.ts
のネスト ("index.ts": "${dirname}.ts"
)
異なるファイルと同じ名前を持ち、セグメントが追加されたファイルのネスト ("*": "${basename}.*.${extname}"
)
テーマ: GitHub Light High Contrast
ファイルのネスト化は、いくつかのイテレーションで実験的な設定を通じて利用可能でした。現在の動作は、ファイル操作を除いてほとんど変更されていません。実験的な設定 explorer.experimental.fileNesting.operateAsGroup
は削除され、ネストが折りたたまれている場合はグループとして扱い、それ以外の場合は単一のエンティティとして扱うように変更されました。これは、ネストされたファイルスタック全体をコピー、切り取り、ドラッグ、または削除する場合は、ネストを折りたたんで単一のエンティティとして操作できることを意味します。ネストされた要素が展開されている場合、選択は通常どおりに動作します。
設定エディターの検索フィルターボタン
設定エディターの検索コントロールに、右側にじょうごボタンが追加されました。ボタンをクリックすると、検索クエリに適用して結果を絞り込むことができるフィルターのリストが表示されます。
テーマ: Light Pink
設定エディターの言語フィルターインジケーター
設定エディターの言語フィルターは、言語フィルターが適用されたときに、どの言語が操作されているかをより明確に示すように、スコープテキストを変更するようになりました。上記の短いビデオは、フィルター処理された設定に Markdown 言語フィルター (@lang:markdown
) が適用されている様子を示しています。
参考までに、言語フィルターが適用されている場合、設定の値を変更すると、その言語の設定の値のみが変更されます。 言語固有の設定 は、言語識別子 によって settings.json
でスコープ設定されます。
"[markdown]": {
"editor.wordBasedSuggestions": "off"
}
リファクタリング後にファイルを保存
リネームなどのリファクタリングは、多くの場合、複数のファイルを変更し、それらを未保存の変更 (ダーティ) のままにします。外部開発ツールでは通常、これらのファイルを保存する必要があります。このワークフローを簡単にするために、デフォルトで true
に設定されている新しい設定 files.refactoring.autoSave
が追加されました。これは、リファクタリングの一部であったファイルを自動的に保存するかどうかを制御します。
エディター制限でダーティエディターを除外
新しい設定 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
。
エディター
括弧のペアの色分けがデフォルトで有効
1.60 リリース で導入された新しい括弧のペアの色分け機能の肯定的なフィードバックを考慮して、括弧のペアの色分けをデフォルトで有効にしました。
括弧のペアの色分けは、"editor.bracketPairColorization.enabled"
を false
に設定することで無効にできます。
括弧のペアの色分けは、特定の言語でのみ無効にすることもできます。
"[typescript]": {
"editor.bracketPairColorization.enabled": false,
},
TextMate グラマーはトークンをアンバランスとしてマーク可能
以前は、TextMate グラマーは、シェルスクリプトの case ステートメントの閉じ括弧のように、特定の括弧を アンバランス としてマークできませんでした。
括弧のペアのマッチングと色分けをより堅牢にするために、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" ]
}],
この機能を使用すると、シェルスクリプトのグラマーは、case ステートメントの )
をマッチングしないように指示できるようになりました。
新しい括弧マッチングアルゴリズム
括弧のマッチングで、括弧の色分けと同じ データ構造 が使用されるようになりました。これにより、精度とパフォーマンスの両方が向上します。
古い括弧マッチングの動作 (色とハイライト装飾が一致しないことに注意してください)
新しい括弧マッチングの動作
括弧ガイドの改善
水平括弧ガイドが、折り返し行を適切にサポートするようになりました。また、単一行にまたがる括弧ペアには、独自の水平括弧ガイドが表示されます。
水平括弧ガイドはデフォルトで無効になっており、"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 > リポジトリ: ソート順序 設定がデフォルトで 検出時間
(リポジトリが選択された時間) になっており、ソース管理ビューでソート順序を変更することもできることを示しています。
エディター装飾の改善
前回のマイルストーンでは、変更された行デコレーターのパターンを採用することで、追加/変更された行のエディターデコレーターのアクセシビリティを改善しました。このマイルストーンでは、エディターデコレーターのパターンを切り替えることができる新しい設定 scm.diffDecorationsGutterPattern
を追加しました。
設定は、変更された行の装飾にはパターンを使用しますが、追加された行にはパターンを使用しないようにデフォルト設定されています。
"scm.diffDecorationsGutterPattern": {
"added": false,
"modified": true
}
パフォーマンスの向上
git.untrackedChanges
設定を hidden
に設定しているユーザーは、大規模なリポジトリを操作する際にパフォーマンスが向上します。これは、git status
を呼び出すときに -uno
パラメーターを渡すことで実現されます。
拡張されたリモートソースプロバイダー API
Git 拡張機能 API により、リモートソースプロバイダー を登録または表示する拡張機能が、リモートソースに関するより豊富な情報を提供できるようになりました。
リモートソースプロバイダーは、個々のリモートソースの説明とアイコンを設定できるようになりました。さらに、プロバイダーはオプションで 最近使用した リモートソースを指定できます。これらは、簡単にアクセスできるようにピッカーの最上位に表示され、タイムスタンプが提供されている場合はタイムスタンプでソートされます。
拡張された API は、組み込みの GitHub 拡張機能だけでなく、GitHub Repositories および Azure Repos 拡張機能でも採用されています (github.dev および vscode.dev)。
SSH を使用した GitHub からのクローン
新しい設定 github.gitProtocol
を使用すると、GitHub からリポジトリをクローンするときのデフォルトプロトコルを変更できます。値はデフォルトで https
ですが、ssh
に変更できます。
デバッグ
遅延変数を自動展開
数か月前、デバッガーの変数ビューで [展開] ボタンをクリックして「遅延」変数を展開するサポートを追加しました。新しい設定 debug.autoExpandLazyVariables
は、クリックなしで遅延変数を自動的に展開します。
遅延変数の新しいボタン
テキストリンクボタンを「目」の codicon を使用した実際のボタンに更新しました。「目」の codicon も、より目に見えるように更新されました。
Shift キーを押しながらクリックしてブレークポイントを無効にする
ブレークポイント (または条件付きブレークポイント、またはログポイント) を Shift+クリック
して無効にしたり、再度有効にしたりできるようになりました。
言語
Markdown: エディターにドロップしてリンクを作成
VS Code のエクスプローラーから Markdown エディターにファイルをドラッグ & ドロップすることで、Markdown リンクをすばやく作成できるようになりました。ファイルを Markdown エディター上にドラッグ中に Shift
キーを押したままにすると、エディターにドロップしてファイルへのリンクを作成できます。
ファイルが画像のように見える場合、VS Code は自動的に Markdown 画像を挿入します。それ以外の場合は、通常の Markdown リンクが追加されます。
これは、Web ブラウザーから画像をドラッグ & ドロップするなど、他のアプリケーションから一部のタイプのファイルをドラッグする場合にも機能します。
このドロップ動作を無効にするには、"markdown.editor.drop.enabled": false
を設定します。
Markdown: ヘッダーへのすべての参照を検索
VS Code は、Markdown ファイルでヘッダーの すべての参照を検索 を実行することをサポートするようになりました。これにより、現在のワークスペース内で特定のヘッダーが使用されているすべての場所 (他の Markdown ファイルからのリンクを含む) を確認できます。
開始するには、カーソルをヘッダー自体またはヘッダーへのリンクのフラグメント部分 (たとえば、[リンクテキスト](#_some-header)
または [リンクテキスト](/path/to/file#some-header)
の #some-header
) に置き、すべての参照を検索 を実行します。
これにより、参照ビューにすべての参照が表示されます。別のビューを好む場合は、参照のプレビュー コマンドまたは 参照へ移動 コマンドを使用することもできます。
Markdown: 参照リンクへのすべての参照を検索
VS Code は、現在のファイル内の 参照リンク へのすべての参照の検索もサポートしています。これは、以下でサポートされています。
[テキスト][ref]
のref
。- ショートハンドリンク
[ref]
のref
。 - リンク定義
[ref]: http://example.com
のref
。
Markdown: ファイルへのすべての参照を検索
現在のワークスペース内の特定の Markdown ファイルへのすべての参照を検索することもできるようになりました。これもファイル間のリンクを含みます。
これは、いくつかの方法でトリガーできます。
- 現在の Markdown ファイルへの参照を検索するには、Markdown: ファイル参照を検索 コマンドを使用します。
- エクスプローラーで Markdown ファイルへの参照を検索するには、ファイルを右クリックして ファイル参照を検索 コマンドを実行します。
[テキスト](/link/to/file.md)
など、Markdown ファイルへのリンクのファイル部分で すべての参照を検索 を実行します。
これにより、特定のファイルが参照されているすべての場所 (そのファイル内のヘッダーへの参照を含む) がリストされます。
Markdown: URL へのすべての参照を検索
最後に、現在のワークスペースで特定の URL が使用されているすべての場所の検索もサポートしています。
Markdown: ヘッダーの名前変更
Markdown ファイルでヘッダーを変更して、誤ってそのヘッダーへのすべてのリンクを壊してしまったことに気付いたことはありませんか? それが、Markdown の新しい名前変更サポートが役立つ場所です。
開始するには、カーソルをヘッダーに置き、F2
キーを押して名前変更を開始します。ヘッダーの新しいテキストを入力し、Enter
キーを押して確定します。これにより、現在のヘッダーと、現在のワークスペース内の既知のすべてのリンクが更新されます。
ヘッダー自体またはヘッダーへのリンクのヘッダーコンポーネントで、名前変更をトリガーできます。たとえば、[リンクテキスト](#_some-header)
または [リンクテキスト](/path/to/file#some-header)
の some-header
。
Markdown: 参照リンクの名前変更
Markdown で参照リンクの名前を変更することもできます。これにより、現在の Markdown ファイル内のすべての参照リンクが更新されます。
Markdown: ファイルの名前変更
新しい Markdown の名前変更サポートを締めくくりとして、Markdown リンクのファイルパスで F2
キーを使用して、ディスク上のファイルの名前を変更し、それへのすべての Markdown 参照を更新できるようになりました。
現在、ファイルの名前変更は、テキストエディター内のファイルへのリンクで F2
キーを使用する場合にのみサポートされています。今後のイテレーションでは、エクスプローラーで名前変更がトリガーされたときにリンクを更新するサポートも計画しています。
JSON
新しい設定 json.validate.enable
を使用すると、JSON 検証をオフにできます。
VS Code for the Web
リモートリポジトリピッカーを開く
VS Code for the Web は、リモートリポジトリを開く ピッカーを使用すると、window.openFoldersInNewWindow
設定を尊重するようになりました。これにより、ピッカーの動作が他のバージョンの VS Code と一致し、新しいウィンドウで開く クイックピックアイテムボタンが置き換えられます。
拡張機能への貢献
Java
インレイヒント
Extension Pack for Java に含まれる Java 言語サービスが、メソッドシグネチャのパラメーター名を表示する インレイヒント をサポートするようになりました。
Java パラメーター名インレイヒントには、3 つのモードがあります。
literals
- リテラル引数のみにパラメーター名ヒントを有効にします (デフォルト)。all
- リテラル引数と非リテラル引数の両方にパラメーター名ヒントを有効にします。none
- パラメーター名ヒントを無効にします。
遅延変数解決
Debugger for Java 拡張機能が、「遅延」変数 のサポートをサポートするようになりました。この機能を使用すると、高価な変数の操作を、デバッガー UI を明示的に展開して値を確認するまで延期できます。
Jupyter
Jupyter PowerToys 拡張機能
Jupyter ノートブックの操作に関する実験的な機能を提供する Jupyter PowerToys 拡張機能の発表に興奮しています。最初のリリースでは、次の機能をプロトタイプ化しました。
- カーネル管理パネル
- コンテキストヘルプ
- 実行グループ化
これらの機能を試して、ご意見をお聞かせください。いつかサポートされている機能に磨きをかけられるように!
詳細については、vscode-jupyter-powertoys リポジトリの README を参照してください。
Web 拡張機能
Jupyter 拡張機能を、vscode.dev で使用するための Web 拡張機能としてインストールできるようになりました。機能は現在制限されており、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 Formatter 拡張機能
black フォーマッターを使用して Python のフォーマットサポートを提供する Black Formatter 拡張機能が登場しました。拡張機能のプレリリースバージョンをインストールできます。
isort を使用したインポート整理
isort ライブラリを使用してインポート整理を提供する、新しい isort 拡張機能。拡張機能のプレリリースバージョンが利用可能です。
リモート開発
Remote Development 拡張機能 の作業が続けられています。これにより、コンテナー、リモートマシン、または Windows Subsystem for Linux (WSL) をフル機能の開発環境として使用できます。
新しい拡張機能の機能とバグ修正については、Remote Development リリースノート を参照してください。
GitHub Pull Requests and Issues
プルリクエストとイシューの作成、および管理を可能にする GitHub Pull Requests and Issues 拡張機能の作業が続けられています。このリリースのハイライトは次のとおりです。
- 複数行コメント
- ツリーでのコミット変更の表示
その他のハイライトについては、拡張機能の 0.42.0 リリースの変更ログ を確認してください。
プレビュー機能
設定プロファイル
このマイルストーンでは、設定、拡張機能、および UI カスタマイズのコレクションである 設定プロファイル を導入しました。VS Code をカスタマイズした場合、カスタマイズを設定プロファイルファイル (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 の読み取り専用側(タブを閉じる機能もサポートされています)が完成し、最も多く投票された課題の一つである microsoft/vscode#15178 が完了しました。これにより、グループ数、開いているタブ、アクティブなタブ、タブが表すエディターの種類などの情報が公開されます。詳細については、vscode.d.ts
ファイル内の window.tabGroups
を API のエントリポイントとして参照してください。
ノートブックの変更および保存イベント
2 つのノートブック関連イベントが完成しました。
vscode.workspace.onDidSaveNotebookDocument
- ノートブックが保存されるたびに発生するイベント。vscode.workspace.onDidChangeNotebookDocument
- ノートブックが変更されるたびに発生するイベント。これには、セルの追加や削除などの構造的な変更だけでなく、出力やメタデータの変更などのセルの変更も含まれます。
非再帰的なワークスペースファイルウォッチャーのサポート
以前のマイルストーンでは、発表したように、createFileSystemWatcher
API を使用して、フォルダーが開いているワークスペース内になければ、ディスク上の任意のフォルダーを監視できます。この制限が緩和され、開いているワークスペース内であっても、任意の場所で非再帰的なファイルウォッチャーを使用できるようになりました。非再帰的なウォッチャーの利点は、除外設定(files.watcherExclude
)が適用されないため、ファイルウォッチャーがサブスクライブしたパスに対してのみイベントを発行することを保証できることです。
拡張機能向けのカスタム除外ルールを備えた再帰的なウォッチャーの完全サポートに取り組んでいますので、今後の情報にご期待ください!
UX ガイドライン
拡張機能作成者向けの UX ガイドライン が改訂され、独自の目次が追加されました。ここでは、さまざまな VS Code ユーザーインターフェース要素を使用する際のベストプラクティスを見つけることができます。特定のトピックでは、拡張機能の UI を作成する際に推奨される「行うべきこと」と「避けるべきこと」について説明し、VS Code にシームレスに統合できるようにしています。
拡張機能テストの実行
以前は、VS Code はテスト実行が完了するとすぐに拡張機能ホストプロセスを終了していました。拡張機能テストの実行時、VS Code は最初に通常の deactivate
フローを実行し、その後でのみ終了するようになりました。これにより、プロセスを生成する拡張機能は、より適切に後処理を実行できます。
カスタムツリーへのファイルのドロップ
最近完成したツリーのドラッグアンドドロップ API を基に、OS からのファイルを text/uri-list
MIME タイプを使用して拡張機能ツリービューにドロップするための基本的なサポートが追加されました。
デバッガー拡張機能の作成
supportSuspendDebuggee および supportTerminateDebuggee の UI
disconnect
リクエストには、クライアントがデバッグを停止したときにデバッギーに何が起こるかを制御できるようにする 2 つの追加オプションがあります。
suspendDebuggee
は、デバッグ停止後にデバッギーを中断状態のままにするかどうかを示します。terminateDebuggee
は、デバッガーが切断されたときにデバッギーを終了するかどうかを示します。
デバッグアダプターは、機能 supportSuspendDebuggee
および supportTerminateDebuggee
を使用して、これらのオプションをサポートしていることを通知できます。サポートされている場合、デバッグツールバーの停止ボタンの横にドロップダウンが表示され、追加の切断コマンドが表示されます。
たとえば、「launch」タイプのデバッグセッションでは、両方の機能をサポートするデバッグアダプターの場合、デフォルトのツールバーボタンは通常の 停止 ボタンになりますが、ドロップダウンには 切断 (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
私たちは長い間、ウェブベースのスモークテストに Playwright を使用してきました。しかし、Electron ベースのスモークテストは、依然として独自のカスタムソリューションに依存していました。Playwright の Electron サポート により、ウェブベースのスモークテストコードのほとんどを再利用し、Electron スモークテストにも使用できるようになりました。トレースビューアー を使用して、失敗したスモークテストを事後分析で診断できるようになったことを嬉しく思います。
拡張機能の新しいローカライズパイプライン
VS Code は、言語パックをインストールすることで有効にできる多くの 表示言語 をサポートしています。これらは、VS Code 自体と VS Code に組み込まれた拡張機能をローカライズするのに最適です。今回のイテレーションでは、チームが所有する組み込みではない拡張機能をローカライズするための標準化作業を開始しました。この取り組みの成果は、共通の依存関係拡張機能である Remote Repositories が最初に取り組み始めた拡張機能である GitHub Repositories および Azure Repos 拡張機能で確認できます。
次回のイテレーションでは、この標準化作業を継続し、より多くの拡張機能をオンボードする予定です。Python 拡張機能が現在進行中であり、GitHub Repositories と Azure Repos がすぐに続きます。チームが所有するすべての拡張機能がローカライズされ、将来作成される新しい拡張機能が簡単にオンボードできるようになり、英語を母語としないユーザーも VS Code で素晴らしい体験ができるようにしたいと考えています。
ドキュメント
VS Code の Rust
VS Code での Rust プログラミング言語 のサポートについて説明する新しいトピック「VS Code の Rust」が公開されました。rust-analyzer 拡張機能を使用します。rust-analyzer 拡張機能には、コード補完、linting、リファクタリング、デバッグなど、豊富な言語機能が含まれています。
注目すべき修正
- 114844 クラッシュダイアログから以前のセッションからエディターを復元するのをスキップできるようにする
- 127936 起動時にファイルの言語固有の設定として
files.encoding
を設定できるようにする - 138461 React ファイルの [ ] ペア内の Emmet オートコンプリートが間違っている
- 139392 最近使用したプロジェクトのクリアの確認
- 139950 ブレークポイントにヒットした場合、カレット(カーソル)をその行に移動する必要がある
- 145265 Windows のターミナルが cmd /C を使用しており、渡された引数が破損する
- 146406 ターミナルの Powerline シンボルの色が間違っている
- 146977 macOS の Info.plist でフォルダーサポートを宣言する
- 147104 GitHub へのログインを完了できない
ありがとうございました
最後になりましたが、VS Code の貢献者の皆様に心から感謝申し上げます。
ウェブ拡張機能
コードを ウェブ拡張機能 として実行できるようにした拡張機能の作成者(以下のリストは 2022 年 3 月 28 日から 2022 年 5 月 1 日の間です)
- Logos for VS Code (Aarnav Tale)
- Copy Word in Cursor (Alessandro Fragnani)
- Delphi Keymap (Alessandro Fragnani)
- Pascal (Alessandro Fragnani)
- Separators (Alessandro Fragnani)
- Tagged Comment (Alessandro Fragnani)
- NeuroViewer (Anibal Solon)
- sb4-extension (arrow2nd)
- DeloresDevDev (bolinfest)
- VSCode Remote Server (btwiuse)
- Text Toolbox (Carlo Cardella)
- CloudStudio.common (CloudStudio)
- Vsnips (corvofeng)
- Const & Props Snippets (dein Software)
- dein Snippets Pack (dein Software)
- EVSCode Web IDE Connector (web, experimental) (Elrond)
- String To Any Case (gauseen)
- Image Gallery (GeriYoco)
- 模袋云-modelo (heekei zhuang)
- sigma (humpalum)
- My Snippets (Jaedeok Kim)
- GCS Uploader (kb-devs)
- TEI Japanese Editor Web (ldas)
- tal7aouy.indent-colorizer (Mhammed Talhaouy)
- minim-tools.m-web (minim-tools)
- UUID Generator (Motivesoft)
- TyranoScript syntax (orukred)
- VDM VSCode (Overture)
- Excalidraw (pomdtr)
- WebGL GLSL Editor (Rácz Zalán)
- Vue (Rahul Kadyan)
- VueDX (Rahul Kadyan)
- BDD Goto Step (rioj7)
- Extra Context (rioj7)
- web_prolin_emulator (runthoser)
- Go Nav Bar (Scotthew)
- yaist-vscode (toyjack)
- Pyodide Runner (tym-inc)
- Import Cost (Wix)
- Lawtext (yamachi)
- ZG Assembler (ZENG GE)
Issue tracking
Issue tracking への貢献
- John Murray (@gjsjohnmurray)
- Andrii Dieiev (@IllusionMH)
- Simon Chan (@yume-chan)
- Lemmingh (@Lemmingh)
プルリクエスト
vscode
への貢献
- @100paperkite
- Fixes #146305 PR #146449
- Fixes #147420 PR #147930
- @a-stewart (Anthony Stewart)
- アクションが提供されていない場合に空の div.message-actions-container を作成する PR #140578
- バナー Markdown のリンクの色付けを更新する PR #140581
- ユーザー向けの SCM のインスタンスを Source Control に名称変更する PR #146742
- @AkatQuas (Akat): fix(markdown): コードセクションでリンク参照/ソースを考慮しないようにする PR #146826
- @amanasifkhalid (Aman Khalid)
- Close #143241: テスト UI フィルターがウィンドウのリロード後も維持される PR #147344
- Fix #146166: スニペット変換が既存のキャメル/パスカルケースを保持する PR #147422
- @ambar (ambar): Unicode ハイライトで括弧のエンコードを修正する 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):
TerminalProfile
がスローされないように修正する PR #143251 - @cdce8p (Marc Mueller):
git
getBranch [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): 同じドメインからウェブビューリソースを提供できるようにする 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): ウェブビューとツリービューのバッジ API を実装する PR #144775
- @mbelsky (Max Belsky): Shift+クリックでブレークポイントを無効にする PR #147598
- @michaelkuhn (Michael Kuhn): Solarized トークンカラーを統一および修正する PR #142883
- @neeleshb (Neelesh Bodas): その他 VSCode の A11y 修正 PR #145775
- @nesk (Johann Pardanaud): Markdown スニペットの UX を改善する PR #146431
- @quanzhuo (Quan Zhuo)
- Issue #145134 を修正、認証済みユーザーのすべてのリポジトリをフェッチする PR #145203
- fix #140612: コンテキスト行番号が la… の場合にトグルボタンを切り替える 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 ウォッチャー] watchman クッキーを無視する 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