2022年4月 (バージョン 1.67)
アップデート 1.67.1: このアップデートは、このセキュリティ問題に対処します。
アップデート 1.67.2: このアップデートは、これらの問題に対処します。
ダウンロード: Windows: x64 Arm64 | Mac: Universal 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
の下のネスト ("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"
}
リファクタリング後にファイルを保存
名前変更などのリファクタリングは、多くの場合、複数のファイルを変更し、保存されていない変更 (ダーティ) を残します。外部開発ツールでは通常、これらのファイルを保存する必要があります。このワークフローを容易にするため、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
。
エディター
括弧ペアのカラー化が既定で有効に
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 > リポジトリ: ソート順設定が既定で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
が追加されました。
遅延変数用の新しいボタン
テキストリンクボタンを、「目」の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ファイルからのリンクを含む) を確認できます。
開始するには、カーソルをヘッダー自体、またはヘッダーへのリンクのフラグメント部分 (例: [link text](#_some-header)
内の#some-header
または[link text](/path/to/file#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
インレイヒント
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拡張機能。拡張機能のプレリリース版が利用可能です。
リモート開発
コンテナー、リモートマシン、またはWindows Subsystem for Linux (WSL) をフル機能の開発環境として使用できるリモート開発拡張機能の作業が継続されています。
リモート開発リリースノートで新しい拡張機能の機能とバグ修正について学ぶことができます。
GitHubプルリクエストとイシュー
プルリクエストとイシューの作業、作成、管理を可能にする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の読み取り専用部分 (タブを閉じることもサポートされています) を完成させ、最も多く賛成票が寄せられた問題の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を作成する際の推奨されるDo's and Don't'sについて議論されており、これにより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スモークテストにも使用できるようになりました。現在、失敗したスモークテストの事後診断にトレースビューアを使用できるようになったことを嬉しく思います。
拡張機能のための新しいローカライゼーションパイプライン
VS Codeは、言語パックをインストールすることで有効にできる、多くの表示言語をサポートしています。これらは、VS Code自体とVS Codeに組み込まれている拡張機能をローカライズするのに最適です。今回のイテレーションでは、チームが所有する組み込みでない拡張機能をローカライズするための標準化の取り組みを開始しました。GitHubリポジトリとAzureリポジトリ拡張機能において、その共通依存拡張機能であるリモートリポジトリがこの標準化に最初に乗った拡張機能であるため、この取り組みの結果を見ることができるでしょう。
次回のイテレーションでは、この標準化の取り組みを継続し、さらに多くの拡張機能を取り込みます。Python拡張機能は現在進行中であり、GitHubリポジトリとAzureリポジトリがすぐに続きます。私たちは、チームが所有するすべての拡張機能がローカライズされ、将来作成される新しい拡張機能も簡単に取り込めるようにし、英語を母国語としないユーザーでも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 ターミナルの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
- Fixes #146305 PR #146449
- Fixes #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)
- Close #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
TerminalProfile
not throw PR #143251 - @cdce8p (Marc Mueller): Fix
git
getBranch [v1.65.0] PR #144449 - @CGNonofr (Loïc Mangeonjean): Fix freezed folding blocks while computing new ones PR #146545
- @dlech (David Lechner): Fix editor eating ContextMenu key when contexmenu is disabled 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: inlay hints 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): Webviewとツリービューにバッジ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)
- Fix issue #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 cookiesを無視 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