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 の 更新 にアクセスしてください。
リリースパーティーを見る: VS Codeチームが新機能について議論するのを聞いてください。イベントの録画はYouTubeチャンネルでご覧いただけます。
ハイライトショート: 60秒しかない場合は、4月版VS Codeリリースハイライトビデオをチェックして、新機能をすばやく確認してください。
Insiders: 新機能をいち早く試したいですか?夜間ビルドのInsidersをダウンロードして、利用可能になり次第、最新の更新を試すことができます。
ワークベンチ
エクスプローラーのファイルネスト
エクスプローラーが、関連ファイルを名前に基づいてネストするようになりました。この動作を制御するいくつかの設定があります。
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はコメントUIが確定されて以来、複数行コメントをサポートしていましたが、複数行コメントは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文の)
が一致しないことを示すことができるようになりました。
新しい括弧一致アルゴリズム
括弧の一致に、括弧の色付けと同じデータ構造を使用するようになりました。これにより、精度とパフォーマンスの両方が向上します。
古い括弧の一致動作(色とハイライト装飾が一致しないことに注意してください)
新しい括弧の一致動作
括弧ガイドの改善
水平括弧ガイドが、折り返された行を適切にサポートするようになりました。また、1行しかまたがらない括弧ペアは、独自の水平括弧ガイドを持ちます。
水平括弧ガイドはデフォルトで無効になっており、"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 Repositories拡張機能とAzure Repos拡張機能に採用されました。
SSHを使用してGitHubからクローンする
新しい設定github.gitProtocol
により、GitHubからリポジトリをクローンする際のデフォルトプロトコルを変更できます。デフォルト値はhttps
ですが、ssh
に変更できます。
デバッグ
遅延変数の自動展開
数ヶ月前、デバッガーの変数ビューで「遅延」変数をボタンクリックで展開する機能を追加しました。クリックなしで遅延変数を自動的に展開するための新しい設定debug.autoExpandLazyVariables
が追加されました。
遅延変数の新しいボタン
テキストリンクボタンを、「目」のアイコンの付いた実際のボタンに更新しました。「目」のアイコンも、より目に似た外観に更新されました。
Shift+クリックでブレークポイントを無効にする
ブレークポイント (または条件付きブレークポイント、またはログポイント) をShift+Click
で無効にしたり、再度有効にしたりできるようになりました。
言語
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
リモートリポジトリピッカーを開く
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カーネル処理に多くの更新が行われました。
- カーネルがクラッシュしたことをより分かりやすくするために、拡張機能がセル出力にこの情報を表示するようになりました。
- 実行中に特定の既知のエラーが検出された場合、セル出力にトラブルシューティングのガイダンスが表示されるようになりました。
- カーネルの実行問題の解決は、複雑で時間のかかるプロセスになる可能性があります。より迅速な解決策に導くのに役立つことを願って、ウィキにトラブルシューティングセクションをまとめました。GitHub Discussionsフォーラムも、ヘルプを得るための素晴らしいリソースとなります。
Python
言語サーバーの変更時にリロード不要
Python拡張機能は、VS Codeをリロードすることなく、python.languageServer
設定の値を更新し、言語サーバーを自動的に再起動できるようになりました。
Blackフォーマッター拡張機能
blackフォーマッターを使用してPythonのフォーマットをサポートするBlack Formatter拡張機能が利用可能になりました。この拡張機能のプレリリース版がインストール可能です。
isortによるインポートの整理
新しいisort拡張機能は、isortライブラリを使用してインポートの整理を提供します。この拡張機能のプレリリース版が利用可能です。
リモート開発
リモート開発拡張機能の作業が引き続き行われています。これにより、コンテナ、リモートマシン、またはLinux用Windowsサブシステム(WSL)をフル機能の開発環境として使用できます。
リモート開発リリースノートで、新しい拡張機能の機能とバグ修正について学ぶことができます。
GitHubプルリクエストとイシュー
プルリクエストやイシューの作業、作成、管理を可能にする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イシュー #49003を参照してください。
- メソッドをオブジェクトメンバーとして補完するためのスニペット。
- グループ認識型インポート整理.
TypeScript 4.7のナイトリービルドの使用を開始するには、TypeScript Nightly拡張機能をインストールしてください。
拡張機能作成
タブAPI
タブAPIの読み取り専用側(タブを閉じることもサポートされています)を完成させ、最も多く票を獲得した問題の1つであるmicrosoft/vscode#15178を完了しました。これにより、グループの数、開いているタブ、アクティブなタブ、タブが表すエディターの種類などの情報が公開されます。詳細については、vscode.d.ts
ファイルで、APIのエントリポイントはwindow.tabGroups
です。
ノートブックの変更および保存イベント
ノートブック関連の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
)が含まれます。
言語サーバープロトコル
ノートブックとプル診断のサポートは、提案状態から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スモークテストにも使用できるようになりました。現在、失敗したスモークテストを事後的に診断するためにTrace Viewerを使用できることを嬉しく思います。
拡張機能の新しいローカライズパイプライン
VS Codeは、言語パックをインストールすることで有効にできる、いくつかの表示言語をサポートしています。これらはVS Code自体とVS Codeに組み込まれた拡張機能をローカライズするのに非常に役立ちます。今回のイテレーションで、チームが所有する組み込みでない拡張機能をローカライズするための標準化作業を開始しました。この取り組みの結果は、GitHub RepositoriesとAzure Repos拡張機能の共通依存拡張機能であるRemote Repositoriesがこの標準化に最初に取り組んだ拡張機能として、目にすることになるでしょう。
次のイテレーションでは、この標準化作業を継続し、さらに多くの拡張機能をオンボードしていきます。現在、Python拡張機能が進行中で、GitHub RepositoriesとAzure Reposがそれに続く予定です。私たちは、チームが所有するすべての拡張機能がローカライズされ、将来作成される新しい拡張機能も容易にオンボードできるようになることを目指しており、英語を母国語としないユーザーもVS Codeで素晴らしい体験ができるようにしたいと考えています。
ドキュメント
VS CodeのRust
VS CodeにおけるRustプログラミング言語のサポートについて、rust-analyzer拡張機能を用いた新しいVisual Studio CodeのRustトピックが追加されました。rust-analyzer拡張機能には、コード補完、リンティング、リファクタリング、デバッグなどの豊富な言語機能が含まれています。
注目すべき修正点
- 114844 クラッシュダイアログから前回のセッションからのエディターの復元をスキップできるようにする
- 127936 起動時にファイルに対して
files.encoding
を言語固有の設定として設定できるようにする - 138461 Reactファイルで[ ]のペア内にあるEmmetのオートコンプリートが間違っている
- 139392 最近のプロジェクトをクリアの確認
- 139950 ブレークポイントにヒットしたら、キャレット(カーソル)がその行に移動するようにする
- 145265 Windowsのターミナルがcmd /Cを使用し、渡された引数が破損する
- 146406 ターミナルでPowerlineシンボルが間違った色になる
- 146977 macOSのInfo.plistでフォルダサポートを宣言する
- 147104 GitHubにログインを完了できない
ありがとうございます
最後に、VS Codeの貢献者の皆様に心からの感謝を申し上げます。
Web拡張機能
Web拡張機能としてコードを実行する拡張機能を有効にするための拡張機能作成者(以下のリストは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)
問題追跡
問題追跡への貢献者
- 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
- #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がTerminal名に追加された場合 PR #145620
- debug.inlineValuesのtrueとfalseをonとoffに置き換えました PR #146543
- @bytemain (Artin):
TerminalProfile
がスローしないように修正 PR #143251 - @cdce8p (Marc Mueller): Fix
git
getBranch [v1.65.0] PR #144449 - @CGNonofr (Loïc Mangeonjean): 新しい折りたたみブロックを計算中に折りたたみブロックがフリーズする問題を修正 PR #146545
- @dlech (David Lechner): contexmenuが無効の場合にエディターがContextMenuキーを食い込む問題を修正 PR #146968
- @eamodio (Eric Amodio): Fixes #140787 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: inlay hints displayStyle PR #145470
- @jlelong (Jerome Lelong): vscode-latex-basics 1.3.0に更新 PR #146308
- @jsjoeio (Joe Previte)
- リファクタリング(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のアクセシビリティ修正 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ウォッチャー] ウォッチマンクッキーを無視する 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: いくつかのtypoを修正 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