2022年2月 (バージョン 1.65)
Update 1.65.1: このアップデートでは、これらのセキュリティ問題に対処しています。
Update 1.65.2: このアップデートでは、これらの問題に対処しています。
ダウンロード: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Visual Studio Code 2022年2月リリースへようこそ。
- 新しいエディター履歴ナビゲーション - エディターグループまたは単一エディターへの「戻る/進む」履歴のスコープ設定。
- ライトハイコントラストテーマ - VS Codeエディターの視認性を向上させるライトテーマ。
- 新しい音声キュー - 警告、インライン提案、ブレークポイントヒットの音声キュー。
- 問題と検索結果のドラッグアンドドロップ - 結果を新規または既存のエディターグループにドラッグします。
- ソース管理 diff エディター管理 - Git 操作後に diff エディターを自動的に閉じます。
- デバッガー遅延変数評価 - JavaScript/TypeScript プロパティゲッターの遅延評価。
- プレビュー: ターミナルシェル統合 - ターミナルコマンドの再実行、コマンドステータス装飾。
- VS Code for the Web - 最近使用したローカルファイルとフォルダーの再オープン、Git 統合の改善。
これらのリリースノートをオンラインで読むには、Updates(code.visualstudio.com上)にアクセスしてください。
ワークベンチ
新しいエディター履歴ナビゲーション
VS Code のエディター履歴ナビゲーション機能は、戻る や 進む などの一般的なコマンドを駆動します。この機能を改善し、さらに機能を追加するための多数の機能リクエストが長期間にわたって蓄積されていました。このマイルストーンでは、エディター履歴ナビゲーションがこれらのリクエストのほとんどに対処するためにゼロから書き直されました。
エディターグループを認識するナビゲーション
エディター履歴をナビゲートする際、エディターグループが考慮されるようになりました。エディター履歴を戻ったり進んだりすると、エディターグループが以前の状態とまったく同じようにアクティブになり、フォーカスされます。エディターグループが削除されると、関連するすべての履歴エントリが破棄されます。
以下の短いビデオでは、最初の 戻る でカーソルが新しいエディターグループに移動し、2 番目の 戻る ナビゲーションで元のエディターグループに戻ります。
テーマ: GitHub Light
エディターグループまたはエディターにナビゲーションをスコープ設定する新しい設定
新しい設定 workbench.editor.navigationScope
を使用すると、エディター履歴ナビゲーションをアクティブなエディターグループまたはエディターのみにスコープ設定できます。サポートされている値は次のとおりです。
default
: エディターナビゲーションは、開いているすべてのエディターグループとエディター間で機能します。editorGroup
: エディターナビゲーションは、アクティブなエディターグループの開いているエディターに限定されます。editor
: エディターナビゲーションは、アクティブなエディターに限定されます。
スコープを editorGroup
または editor
に構成すると、各エディターグループまたはエディターには、個別にナビゲートできる独自のナビゲーションスタックが作成されます。
ノートブックのサポート
任意のノートブックで選択したセル間を移動できるようになりました。ナビゲーションは、テキストエディターでカーソル位置間を移動できるのと同じ方法で、エディター間で機能します。
テーマ: GitHub Light
編集またはナビゲーションの場所をナビゲートする新しいコマンド
デフォルトでは、エディターナビゲーションの場所は、エディター間をナビゲートするときだけでなく、エディター内をナビゲートするとき(たとえば、ノートブックセルを切り替えたり、テキストエディターで選択範囲を変更したりするとき)にも追加されます。記録される場所が多すぎると感じる場合は、場所を次のいずれかに減らす新しいコマンドが追加されました。
- ナビゲーションの場所 - たとえば、定義へ移動 を使用する場合。
- 編集場所 - エディターが変更されるたび。たとえば、テキストエディターで入力する場合。
これらのコマンドにお気に入りのキーバインドを割り当てて、ナビゲーションを適宜変更できます。
編集場所のコマンド
workbench.action.navigateForwardInEditLocations
- 編集場所を順方向に移動します。workbench.action.navigateBackInEditLocations
- 編集場所を逆方向に移動します。workbench.action.navigatePreviousInEditLocations
- 編集場所を前の場所に移動します。workbench.action.navigateToLastEditLocation
- 最後の編集場所に移動します(このコマンドは以前から存在していました)。
ナビゲーションの場所のコマンド
workbench.action.navigateForwardInNavigationLocations
- ナビゲーションの場所を順方向に移動します。workbench.action.navigateBackInNavigationLocations
- ナビゲーションの場所を逆方向に移動します。workbench.action.navigatePreviousInNavigationLocations
- ナビゲーションの場所を前の場所に移動します。workbench.action.navigateToLastNavigationLocation'
- 最後のナビゲーション場所に移動します。
キーバインドの割り当てをより強力にするために、関連するコンテキストキーが追加されました。
編集場所のコンテキストキー
canNavigateBackInEditLocations
- 編集場所を逆方向に移動できるかどうか。canNavigateForwardInEditLocations
- 編集場所を順方向に移動できるかどうか。canNavigateToLastEditLocation
- 最後の編集場所に移動できるかどうか。
ナビゲーションの場所のコンテキストキー
canNavigateBackInNavigationLocations
- ナビゲーションの場所を逆方向に移動できるかどうか。canNavigateForwardInNavigationLocations
- ナビゲーションの場所を順方向に移動できるかどうか。canNavigateToLastNavigationLocation
- 最後のナビゲーション場所に移動できるかどうか。
新しいレイアウトコントロールオプション
前回のマイルストーンでは、タイトルバーに実験的なレイアウトコントロールを導入しました(workbench.experimental.layoutControl.enabled
を true
に設定して有効にします)。コントロール内のアクションは便利ですが、クリック数が多すぎるというフィードバックが寄せられました。そのため、workbench.experimental.layoutControl.type
設定で誰もが試せるいくつかの UI オプションを追加しています。この設定には、次のオプションがあります。
menu
: メニューを開く単一のボタンを使用した以前の動作(デフォルト)。toggles
: パネル、サイドバー、サイドパネルを切り替える 3 つのボタンを表示する新しいオプション。both
: トグルに続いてメニューボタンが表示される新しいオプション。これにより、レイアウトのカスタマイズクイックピッカーにかなりすばやくアクセスできます。
下の画像は、layoutControl.type
が both
に設定され、3 つのトグルボタンとメニュードロップダウンが表示されている様子を示しています。
ライトハイコントラストテーマ
エディターの判読性と可読性を向上させる新しいライトハイコントラストテーマが追加されました。
音声キュー
このリリースでは、警告、インライン提案、デバッガーブレークポイントヒットの音声キューを含む新しい音声キューが追加されました。サウンドが調整され、一般的な設定 audioCues.enabled
は非推奨となり、個別の audioCues.*
設定が推奨されるようになりました。
lineHasWarning
を除くすべての音声キューは、スクリーンリーダーユーザーに対してデフォルトで有効になっています(設定値 auto
)。
新しい音声キューコマンド ヘルプ: 音声キューを一覧表示 は、使用可能なすべての音声キューを一覧表示し、リストを移動する際に各音声キューを聞くことができ、現在有効になっているキューを確認できます。
問題と検索結果のドラッグアンドドロップ
問題、検索、または参照の結果をエディターにドラッグアンドドロップして、ファイルを開き、結果の位置を表示できるようになりました。これは、新しいエディターグループを開始したり、既存のエディターグループに結果をドロップしたりする場合に役立ちます。
設定エディタースプリットビュー
設定エディターは、目次を設定リストから分離するために、調整可能なスプリットビューを使用するようになりました。
改善された自動言語検出
新しい設定 workbench.editor.historyBasedLanguageDetection
が有効になっている場合、名前のないエディターは、エディター履歴と現在のワークスペースの内容を考慮した、改善された自動言語検出アルゴリズムを使用します。新しいアルゴリズムでは、検出結果を提供するために以前よりもはるかに少ないテキスト入力しか必要としません。
以下は、JavaScript、TypeScript、Markdown、Python、PHP、および C++(さらに多くの言語がサポートされています)全体で使用する例です。
テーマ: GitHub Light + HC Customizations
改善された言語拡張機能の推奨
言語機能拡張機能の推奨は、Marketplace の他の主要な言語拡張機能を考慮して推奨するようになりました。たとえば、Apache NetBeans Java 拡張機能がインストールされている場合、VS Code は Java Extension Pack を推奨しません。
拡張機能ツリーホバーのキーボードショートカット
キーボードショートカット Ctrl/Cmd+K, Ctrl/Cmd+I
を使用して、拡張機能によって提供されるカスタムツリービューにホバーを表示するようにトリガーできます。
エディター
スニペットで囲む
現在の選択範囲をスニペットで囲む新しいコマンドがあります。テキストを選択し、コマンドパレットから スニペットで囲む コマンドを呼び出し(⇧⌘P (Windows、Linux Ctrl+Shift+P))、ドロップダウンからスニペットを選択します。
以下の短いビデオでは、選択したメソッドが try/catch スニペットで囲まれています。
TM_SELECTED_TEXT
または SELECTION
変数を使用する適用可能なスニペットはすべて、スニペットで囲む クイックピッカーのドロップダウンで使用できます。カスタムユーザーまたはプロジェクトスニペットも含まれています。
アクセス可能なインレイヒント
インレイヒントは、変数の推論型など、ソースコード内の追加情報を表示します。スクリーンリーダーユーザー向けに、この機能を支援する新しいコマンドがあります。コマンドパレットから インレイヒント付きでラインを読み上げ を選択すると、エディターは現在の行をヒントを挟んで読み上げます。
コンテキストユニコードの強調表示
誤検出を減らすために、あいまいなユニコード文字と非表示のユニコード文字は、周囲の文字が非 ASCII スクリプトを視覚的に示している場合は強調表示されなくなりました。したがって、信頼できるワークスペースでは、非表示であるか、ASCII 文字と混同される可能性のある文字のみが強調表示されます。これの例外は、少なくとも 1 つの文字が ASCII 文字と混同できない非 ASCII 文字の単語に含まれる文字です。
以前は、const 文字列に複数の誤検出が表示されていました。
その後、紛らわしい文字のみが強調表示されます。
ターミナル
複数行貼り付けの警告
シェルが複数行をサポートしていない場合、ターミナルに複数行を貼り付けると、デフォルトでダイアログが表示されるようになりました。この警告は、角かっこで囲まれた貼り付けモードと、Ctrl+V
をシェルに直接渡す PowerShell で表示されます。ダイアログには、機能を簡単に無効にするための 今後、確認しない チェックボックスがあります。
ターミナルリンクの改善
ターミナルリンクの実装は、このリリースで大規模なリファクタリングが行われました。これにより、機能の保守性が簡素化および改善されましたが、次の機能ももたらされました。
- リンクの強調表示が再び機能するようになりました。
- 解決済みリンクのキャッシュにより、特定のリンクが表示されるまでの遅延が短縮されました。
- ワークスペース検索 リンクは、検証済みリンクと同じコードによって処理されるようになり、一貫性が向上し、行/列の認識が向上しました。
- いくつかのバグ修正。
ファイルリンクコマンドの改善を開く
前バージョンで導入された 最後のファイルリンクを開く および 検出されたリンクを開く... コマンドで、フォルダーが除外されるようになり、より便利になりました。
ソース管理
Diff エディターの管理
このマイルストーンでは、Diff エディターの管理に役立つ変更を加えました。コマンドパレットに、開いているすべての Diff エディターを閉じるために使用できる新しいコマンド Git: すべての Diff エディターを閉じる があります。また、変更がスタッシュ、コミット、破棄、ステージング、またはアンステージングされたときに Diff エディターを自動的に閉じる新しい設定 git.closeDiffOnOperation
もあります。
Git コマンド出力のロギング
git コマンドを実行すると、stderr
の内容が Git 出力ウィンドウ に記録されます。新しい設定 git.commandsToLog
を使用すると、Git 出力ウィンドウ に stdout
の内容が記録される Git コマンドのリストを指定できます。
デバッグ
遅延変数
変数の値にアクセスすると、副作用が発生したり、コストがかかる場合があります。VS Code の汎用デバッガーは、ユーザーが要求に応じて変数の値を取得するためのボタンを表示できるようになりました。これは、新しい 「遅延」変数機能 をサポートするデバッグ拡張機能で使用できます。現在、これは組み込みの JavaScript デバッガーのプロパティゲッターによってのみ実装されていますが、他のデバッガー拡張機能もすぐに追随すると予想されます。
タスク
タスクで使用できる新しいプラットフォームに依存しない userHome
変数があります。
{
"label": "Test Home",
"type": "shell",
"command": "ls ${userHome}"
}
ノートブック
組み込みの出力レンダラーの更新
テキスト、画像、HTML、およびコードレンダラーを VS Code コアから組み込みの出力レンダラー拡張機能に移動しました。この変更により、VS Code はこれらの出力タイプでテキストを検索できるようになりました。
以下の短いビデオでは、item
を検索すると、最初はコードセルで 3 つの結果が得られますが、セル出力を含めるようにフィルタリングできます。
スティッキー スクロールノートブックセルボタン
実行 ボタンとセルツールバーは、コードセルを下にスクロールすると、画面の上部に固定されるようになりました。これにより、長いコードセルで作業するときにアクセスしやすくなります。
テーマ: Dracula
言語
TypeScript 4.6
VS Code に TypeScript 4.6 が付属するようになりました。このアップデートでは、多くの新しい言語機能に加えて、ツール改善とバグ修正がもたらされています。TypeScript 4.6 の詳細については、TypeScript ブログ をお読みください。
JavaScript ファイルでの構文エラーレポート
TypeScript 4.6 のおかげで、VS Code は JavaScript ファイルで一般的な構文エラーを報告するようになりました。これには、解析エラーと、ブロックスコープ変数の無効な再宣言が含まれます。
以前は、これらのエラーは JavaScript でセマンティックチェックを有効にする 場合にのみ報告されていました。
このエラーレポートを無効にするには、次のように設定します。
"javascript.validate.enable": false
より多くの JS/TS 設定を言語ごとに構成できます
JavaScript および TypeScript 設定の多くを、言語固有の設定 として構成できるようになりました。言語固有の設定は、たとえば javascript
と javascriptreact
で異なる設定が必要な場合に役立ちます。
言語固有の新しい有効な設定には、次のようなものがあります。
javascript.preferences.quoteStyle
、typescript.preferences.quoteStyle
javascript.preferences.importModuleSpecifier
、typescript.preferences.importModuleSpecifier
javascript.preferences.importModuleSpecifierEnding
、typescript.preferences.importModuleSpecifierEnding
javascript.preferences.jsxAttributeCompletionStyle
、typescript.preferences.jsxAttributeCompletionStyle
javascript.preferences.renameShorthandProperties
、typescript.preferences.renameShorthandProperties
javascript.preferences.useAliasesForRenames
、typescript.preferences.useAliasesForRenames
javascript.suggest.enabled
、typescript.suggest.enabled
javascript.suggest.completeJSDocs
、typescript.suggest.completeJSDocs
javascript.suggest.jsdoc.generateReturns
、typescript.suggest.jsdoc.generateReturns
javascript.autoClosingTags
、typescript.autoClosingTags
新しい Lua 構文強調表示文法
VS Code には、Lua ファイルの構文強調表示のための、新しく、より適切に保守されている Lua 文法があります。新しい文法は積極的に保守されており、古い文法に存在していた問題を修正し、新しい Lua トークンをサポートしています。
VS Code for the Web
ローカルファイルとフォルダーを再オープン
最近開いたローカルファイルとフォルダーのリストは、web file system access API をサポートするブラウザーで vscode.dev または insiders.vscode.dev にアクセスすると利用できるようになりました。ローカルファイルを選択するとエディターで開き、ローカルフォルダーを選択するとファイルエクスプローラーが更新されてその内容が表示されます。コンテンツが表示される前に、ブラウザーからローカルファイルアクセスを確認するように求められる場合があります。
リモートリポジトリ
GitHub リポジトリ
このマイルストーンでは、vscode.dev および github.dev で GitHub リポジトリを編集する際の競合の解決が改善されました。エディターに競合の装飾が表示されるようになり、現在の変更を受け入れる、受信の変更を受け入れる、または 両方の変更を受け入れる オプションが表示されます。
ソース管理ビューには、競合を含むファイルの 変更をステージング アクションもあります。
さらに、vscode.dev および github.dev で GitHub リポジトリ内の特定のフォルダーの下にあるすべての変更を簡単にステージングおよびアンステージングできるようになりました。これを行うには、ソース管理ビューを右クリックし、ツリーとして表示 を選択します。
テーマ: One Monokai
ワークスペース検索と すべての参照の検索 は、以前のように部分的な結果を提供するのではなく、デフォルトでリポジトリの完全なコピーをダウンロードしてインデックスを作成するようになりました。
このインデックス作成機能を構成するための設定がいくつかあります。
remoteHub.indexing.verboseDownloadNotification
- ダウンロード通知をポップアップ(デフォルト)として表示するか、ステータスバーに表示するかを制御します。remoteHub.indexing.maxIndexSize
- ダウンロードするインデックスのサイズ制限を制御します。この制限を超えると、ダウンロードはキャンセルされ、部分的な結果が提供されます。この設定を空のままにすると、リポジトリをダウンロードせず、常に部分的な結果を使用できます。
Azure Repos
このマイルストーンでは、Azure Repos のサポートを特定の Azure DevOps 認証プロバイダーの使用から、(設定同期で使用される)汎用 Microsoft 認証プロバイダーの使用に切り替えました。Azure Repo にアクセスすると、再度ログインするように求められますが、保存された変更はすべて保持されます。
拡張機能への貢献
Hex Editor データインスペクターの改善
以前は、Hex Editor 拡張機能 は常にサイドバーにデータインスペクターを表示し、Hex Editor が表示されるたびにそれを表示していました。ただし、一部のユーザーはこれが煩わしいと感じており、デバッガーのメモリインスペクター の統合で特に破壊的なエクスペリエンスにつながりました。現在、データインスペクターは検査対象のバイトの右側に表示されます。エディターが狭すぎる場合、データインスペクターは代わりにホバーウィジェット内に表示されます。
テーマ: Codesong
これは、次の 3 つの値のいずれかを取ることができる hexeditor.inspectorType
設定を使用して構成できます。
aside
- データインスペクターを横に表示します。hover
- エディターの幅に関係なく、ホバー時にのみデータインスペクターを表示します。sidebar
- 以前と同様に、データインスペクターをサイドバーに表示します。
GitHub Pull Requests and Issues
GitHub Pull Requests and Issues 拡張機能の作業が継続されています。これにより、プルリクエストと issue の作業、作成、および管理を行うことができます。拡張機能のハイライトについては、拡張機能の 0.38.0 の変更ログ を確認してください。
プレビュー機能
ターミナルシェル統合
ターミナルのシェル統合は、前回のリリース で最初に導入され、今月は多くの改善が見られました。復習として、この機能により、VS Code はターミナル内で何が起こっているかについての追加の洞察を得ることができます。以前は、ほとんど知られていませんでした。この機能はまだ実験的なものと見なされており、terminal.integrated.shellIntegration.enabled
設定を介してオプトインできます。
このリリースの最大の変更は、シェル統合によって検出されたコマンドが、左側の「ガター」に装飾を備えるようになったことです。コマンド装飾は、バッファーを視覚的に分割し、シェル統合機能を使用する情報とアクションへのアクセスを提供します。コマンドの終了コードによって決定されるように、エラー、成功、デフォルトの 3 種類のコマンド装飾があります。
装飾をクリックすると、そのコマンドに固有のアクションがメニューに表示されます。現在、コマンドの再実行 と 出力のコピー が含まれています。
装飾にカーソルを合わせると、コマンドが実行されてからの時間や関連する終了コードなど、コマンドに関する情報が表示されます。
装飾は、terminal.integrated.shellIntegration.decorationsEnabled
を false
に設定することで無効にできます。個々のアイコンは、terminal.integrated.shellIntegration.decorationIcon*
設定を介して構成でき、これらの新しいテーマキーは色を設定します。
terminalCommandDecoration.successBackground
terminalCommandDecoration.errorBackground
terminalCommandDecoration.defaultBackground
その他の主な変更点は次のとおりです。
- 有効化設定の名前が
terminal.integrated.shellIntegration.enabled
に変更されました。 - サポートされているすべてのシェルでシェル統合を有効にするメカニズムが、より信頼性が高くなりました。
- シェル統合は、リモート接続されたウィンドウ(SSH、WSL、コンテナ)を使用する場合でも機能するようになりました。
- 行継続(たとえば、
$PS2
)は、サポートされているすべてのシェルで機能するようになりました。 - 「スキップ」されたコマンドは、特別にマークされるようになりました。たとえば、
Ctrl+C
を使用したり、空のコマンドを実行したりした後。 - 最近使用したコマンドを実行 および 最近使用したディレクトリに移動 コマンドは、セッション間で履歴を保存するようになりました。履歴の保存は、
terminal.integrated.shellIntegration.history
設定を介して構成できます。
ESLint
ESLint 拡張機能には、ESLint で検証できるセルを含むノートブックドキュメントの予備サポートがあります。このサポートは、拡張機能のプレリリースバージョンでのみ利用可能です。
拡張機能の作成
言語ステータス項目
言語ステータス項目の API が完成しました。この API は、アクティブなエディターの言語固有の情報を表示します。これは、プロジェクトまたはツールセットのバージョンに関する一般的な情報である可能性がありますが、エラーや警告を表示することもできます。
API はステータスバー API に似ており、vscode.languages.createLanguageStatusItem(...)
を介してアクセスできます。言語ステータス項目は、アクティブなエディターが変更されるたびに VS Code が表示および非表示にできるように、ドキュメントセレクターを使用して作成する必要があります。
インレイヒント
インレイヒントプロバイダー API が完成しました。これにより、ソースコードで追加情報をインレイできます。下の画像は、TypeScript が推論型にインレイヒントを追加する方法を示しています。
API は InlayHintsProvider
を中心に構築されています。InlayHint
オブジェクトを提供します。これには、いくつかの興味深い機能があります。
- インレイヒントには、ツールチップとコマンドを含めることができます。
- ヒントのラベルは複数の部分で構成でき、それらの部分にもツールチップとコマンドを含めることができます。
- ラベルパーツには、このパーツの 定義へ移動 などの言語機能を有効にする関連するソースの場所を含めることもできます。
ステータスバーフォーカスボーダー
ステータスバーとステータスバー項目にフォーカスボーダーを追加することにより、ステータスバーのナビゲーションをより簡単かつアクセスしやすくしました。
テーマ作成者は、2 つの新しいテーマカラーを構成することで、ボーダーカラーをカスタマイズできます。
statusBar.focusBorder
: フォーカスされたときのステータスバー全体のボーダーカラー。statusBarItem.focusBorder
: フォーカスされたときのステータスバー項目のボーダーカラー。
テスト更新アクションと sortText
TestController
インターフェースに標準の更新ハンドラーを追加する 提案 を完成させました。拡張機能がこのプロパティにメソッドを割り当てると、VS Code はテストエクスプローラービューに「更新」アイコンを表示します。
さらに、TestItem
に、ファイル内の特定の場所にない項目のソート順序を制御する sortText
属性を含めることができるようになりました。
コメントタイムスタンプ
Comments API を使用すると、各 Comment
に timestamp
を追加できるようになりました。このタイムスタンプは、コメントウィジェットとコメントビューに表示されます。デフォルトでは、タイムスタンプは相対時間(たとえば、「2 週間前」)として表示されますが、ユーザー設定 comments.useRelativeTime
を使用して代わりに正確な時間を表示できます。タイムスタンプのホバーは常に正確な時間になります。
vscode-test パッケージの名前が @vscode/test-electron に変更されました
vscode-test
パッケージの名前が @vscode/test-electron
に変更されました。拡張機能の作成者は、拡張機能の package.json
ファイル devDependencies
のエントリを更新する必要があります(パッケージを含めている場合)。@vscode/test-electron パッケージは、VS Code 拡張機能の統合テストを実行するのに役立ちます。詳細については、vscode-test リポジトリ を参照してください。
更新された codicon
次の新しいアイコンが codicon ライブラリに追加されました。
arrow-circle-down
arrow-circle-left
arrow-circle-right
arrow-circle-up
error-small
indent
layout-activitybar-left
layout-activitybar-right
layout-centered
layout-menubar
layout-panel-center
layout-panel-justify
layout-panel-left
layout-panel-right
layout-panel
layout-sidebar-left
layout-sidebar-right
layout-statusbar
layout
newline
record-small
target
アイコンコントリビューションポイントが最終になりました
アイコンコントリビューションポイントを使用すると、拡張機能はデフォルトアイコンとともに新しいアイコンを ID で定義できます。アイコン ID は、拡張機能(または拡張機能に依存する他の拡張機能)が ThemeIcon
を使用できる場所(new ThemeIcon("iconId")
)、Markdown 文字列($(iconId)
)、および特定のコントリビューションポイントのアイコンとして使用できます。
製品アイコンテーマは、(アイコン ID について知っている場合)アイコンを再定義できます。
"contributes": {
"icons": {
"distro-ubuntu": {
"description": "Ubuntu icon",
"default": {
"fontPath": "./distroicons.woff",
"fontCharacter": "\\E001"
}
},
"distro-fedora": {
"description": "Ubuntu icon",
"default": {
"fontPath": "./distroicons.woff",
"fontCharacter": "\\E002"
}
}
}
}
上記の例では、拡張機能は 2 つの新しいアイコン ID distro-ubuntu
と distro-fedora
を、デフォルトアイコン定義とともに定義しています。アイコンは、指定されたフォント文字のアイコンフォントで定義されています。
ファイルアイコンテーマ: ファイル関連付けでのフォルダー名のサポート
ファイルアイコンテーマ では、folderNames
、folderNamesExpanded
、fileNames
、および fileExtensions
の関連付けにフォルダー名を含めることもできるようになりました。
"fileNames": {
"system/win.ini": "_win_ini_file"
},
system/win.ini
は、system
フォルダー内の win.ini
という名前のファイルに直接関連付けが一致することを意味します。
"fileExtensions": {
"system/ini": "_ini_file"
},
system/ini
は、system
フォルダー内の *.ini
という名前のファイルに直接関連付けが一致することを意味します。
"folderNames": {
".vscode/extensions": "_vscode_folder"
},
Codespaces で VS Code for the Web でリモートでインストールされた Web 拡張機能を実行する
Codespaces を使用した VS Code for the Web は、Web 拡張機能ホストでリモートでインストールされた Web 拡張機能 の実行をサポートするようになりました。たとえば、GitHub Codespace に(devcontainer.json
ファイルの構成を介して)Vim 拡張機能がインストールされている場合、ブラウザーで Codespace を開くと、Vim が Web 拡張機能ホストにロードされます。詳細については、拡張機能ホスト のドキュメントをお読みください。
注: 現在、そのような拡張機能による Web ワーカーのロードに関して既知の制限事項があります。詳細については、issue を参照してください。
デバッガー拡張機能の作成
「重要」出力イベントのサポート
最近、Debug Adapter Protocol は、Output
イベントに 追加された important
カテゴリを追加しました。このカテゴリは、ユーザーが見落とすべきではない目立つイベントをマークします。VS Code は、important
カテゴリのメッセージの通知ポップアップを表示するようになりました。それらはデバッグコンソールにもログに記録されます。
「遅延」変数のサポート
一部の変数は動的であり、値を取得するためにコードを実行する必要があります。デバッグアダプターは、副作用が発生したり、コストがかかったりする可能性があるため、それらの完全な値を自動的に取得したくない場合があります。
一部のデバッグアダプターは、ユーザーが値をフェッチするために明示的に「展開」する必要があるプレースホルダーオブジェクトとして「コストのかかる変数」を表すことで、この問題に対処してきました。VS Code の組み込み js-debug は、JS/TS ゲッターにこのアプローチを使用しています。
class Person {
name = 'Danny';
get email(): string {
return 'foo@example.bar';
}
get address(): Address {
return new Address();
}
}
class Address {
street = 'Main Street';
city = 'Zurich';
}
次のスクリーンキャストは、中間オブジェクトが有効なデータ構造を理解することを困難にしていることを示しています。
このリリースでは、完全な値を要求するための (...) ボタンを使用して、中間オブジェクトをコンパクトな形式でレンダリングするように VS Code を改善しました。
デバッグアダプターは、lazy
プロパティを持つVariablePresentationHint
を追加することで、変数に対するこの新しい表示スタイルを要求できます(DAPの追加事項を参照)。クライアントがlazy
フラグをサポートしていない場合、変数は以前と同様に表示されます。
Language Server Protocol
対応する npm モジュールとともに、Language Server Protocol の別の次期バージョンが公開されました。新しいバージョンには、以下の変更が含まれています。
- LSP タイプと VS Code タイプ間の変換およびその逆変換が、完全に非同期になりました。この変更により、エクステンションホストをブロックする可能性のある大きなデータストリームの変換を回避できます。これはライブラリにおける破壊的な API 変更であることに注意してください(詳細については、README.md を参照)。プロトコル自体の後方互換性には影響しません。
- ノートブックドキュメントの提案された実装が強化されました。現在、完全なミドルウェアとプロバイダーのサポートがあります。
Debug Adapter Protocol
Debug Adapter Protocol にいくつかの新しいプロパティが追加されました。
- 新しいブール値プロパティ
lazy
がVariablePresentationHint
に追加されました。クライアントは、オプションのフラグを使用して、値をフェッチするための特定のジェスチャーをサポートする UI で変数を表示できます。 - 新しいオプションの文字列プロパティ
detail
がCompletionItem
に追加されました。この人間が読める文字列により、クライアントは、型やシンボルの情報など、アイテムに関する追加情報を表示できます。このプロパティは VS Code ではまだサポートされていないことに注意してください。
提案された拡張機能API
すべてのマイルストーンには、新しい提案された API が付属しており、拡張機能の作成者はそれらを試すことができます。いつものように、皆様からのフィードバックをお待ちしております。提案された API を試すための手順は次のとおりです。
- 試したい提案を見つけ、その名前を
package.json#enabledApiProposals
に追加します。 - 最新の vscode-dts を使用して、
vscode-dts dev
を実行します。これにより、対応するd.ts
ファイルがワークスペースにダウンロードされます。 - これで、提案に対してプログラミングできます。
提案された API を使用する拡張機能を公開することはできません。次のリリースで破壊的な変更が発生する可能性があり、既存の拡張機能を決して破壊したくありません。
タイムラインアイテムの Markdown ホバー
TimelineProvider
によって提供されるアイテムは、ツールチップのコンテンツを提供するために使用される detail
プロパティで Markdown をサポートできるようになりました。
ノートブック対応のドキュメントセレクター
vscode.DocumentSelector
タイプを使用すると、定義へ移動などの言語機能を特定のドキュメントに関連付けることができます。これは UI を駆動し、対応するプロバイダーに結果が要求されるかどうかを決定します。拡張機能がノートブックタイプも選択できるようにする新しい API 提案を追加しました。たとえば、{ language: 'python', notebookType: 'jupyter-notebook'}
は、Jupyter ノートブックに埋め込まれたすべての Python ドキュメントをターゲットにします。これは 現在の提案 です。ぜひお試しいただき、ご意見をお聞かせください。
カスタム言語 ID を持つ出力チャネル
一部の拡張機能は、出力チャネルがテキストドキュメント(読み取り専用)である場合、出力チャネルでトークンまたは構文の着色と CodeLens 機能を定義できます。すべての出力チャネルが同じ言語 ID を共有しているため、これらのカスタマイズが他の出力チャネルに誤って適用される可能性があります。拡張機能の作成者が言語別にカスタマイズを定義できるように、カスタム言語 ID を持つ出力チャネルを作成する機能リクエストがありました。したがって、このマイルストーンでは、カスタム言語 ID を持つ出力チャネルを作成する 提案 を導入しました。ぜひお試しいただき、フィードバックをお寄せください。
MarkdownString.baseUri
MarkdownString
の提案された baseUri
プロパティを使用すると、Markdown 内の相対リンクと画像が相対的に解決されるベース URI を指定できます。このプロパティは、HTML の <base>
要素 と非常によく似た動作をします。
baseUri
が /
で終わる場合、ディレクトリと見なされ、Markdown 内の相対パスはそのディレクトリに対して相対的に解決されます。
const md = new vscode.MarkdownString(`[link](./file.js)`);
md.baseUri = vscode.Uri.file('/path/to/dir/');
// Here 'link' in the rendered Markdown resolves to '/path/to/dir/file.js'
baseUri
がファイルの場合、Markdown 内の相対パスはそのファイルの親ディレクトリに対して相対的に解決されます。
const md = new vscode.MarkdownString(`[link](./file.js)`);
md.baseUri = vscode.Uri.file('/path/to/otherFile.js');
// Here 'link' in the rendered Markdown resolves to '/path/to/file.js'
新しいドキュメント
Java GUI アプリケーション
新しい Java GUI アプリケーション のトピックでは、Extension Pack for Java を使用して、VS Code で JavaFX、AWT、および Swing アプリケーションを開発する方法について説明しています。
注目すべき修正
- 107748 音声読み上げが、設定が同期を無視するように設定されていることを読み上げない
- 123399 Emmet が jsx および html ファイルでタグ A を持つクラスを追加しない。
- 141680 設定で @tags を検索すると遅い
- 141977 設定エディター: フォルダーアクションアイテムが keyup を正しく処理しない
- 142040 プレリリースをサポートする拡張機能の「別のバージョンをインストール」アクションを改善する。
- 142462 書き込みロックがクリアされない場合、ファイルの書き込みがハングする可能性がある
- 142641 ts-node デバッガーが v1.64 で正しく動作しない
ありがとうございました
最後になりましたが、VS Code の貢献者の皆様に心から感謝申し上げます。
Web エクステンション
コードを Web エクステンション として実行するエクステンションを有効にした拡張機能の作成者(以下のリストは 2022 年 2 月 1 日から 2022 年 2 月 28 日までのものです)
- Var Style (allen)
- helloworld-web-sample (Andrey Belym)
- asciidoctor.asciidoctor-vscode (asciidoctor)
- Gitignore Adder (beatrix)
- gkauthentication-test (BranchCreation SLU)
- Racket Helpers (Calvin-LL)
- PHP Tools (DEVSENSE)
- Naninovel (Elringus)
- Pitoco Extension (Feodrippe)
- feodrippe.feodrippe-helloworld-minimal-sample-test-web (Feodrippe)
- Simple React Snippets for Typescript (Giovanni Fu Lin)
- GitKraken Authentication (GitKraken)
- groog (groogle)
- ModalKeys (haberdashPI)
- VDM VSCode (Jonas Rask)
- cis-algorithm (kimjihu)
- Markdown (Pandoc Flavored) (Kolen Cheung)
- zyname - this is for testing and will be deleted soon (leodevbro)
- Snippet Copy (Lukas Spieß)
- PHP import checker (Marabesi)
- VSCode Language JSONata (Markus Gutbrod)
- Babel JavaScript (Michael McDermott)
- Create Project (Public Theta)
- Dynamic Theme (Rody Davis)
- Router Generator (Rody Davis)
- Chimera Theme (roydukkey)
- Qiita Markdown Preview (Ryoji Kato)
- Kestrel (SenseTime)
- Test token (sevillal)
- Sourcegraph (Sourcegraph)
- Rewrap (stkb)
- wav-preview (sukumo28)
- Pandoc (TANIGUCHI Masaya)
- Hex Viewer (Tao Cumplido)
- Time Link Bundle (Web version) (Time Link)
- DCC Websocket (virgilsisoe)
- VSC+ (Vrej)
Issue tracking
Issue tracking への貢献
- John Murray (@gjsjohnmurray)
- Andrii Dieiev (@IllusionMH)
- ArturoDent (@ArturoDent)
- Simon Chan (@yume-chan)
プルリクエスト
vscode
への貢献
- @aminya (Amin Yahyaabadi): fix: simplify regex expressions in tasks/common PR #142899
- @Balastrong (Leonardo)
- オーバーロードカウンターのツールチップの不透明度を上げました PR #141828
- 必要な場合にデコード前後のフラグメントをチェックすることで、要素の検出を修正しました PR #141848
- @BMBurstein (Baruch): 括弧ガイド設定の説明を修正 PR #143722
- @Bruce-Hopkins (Bruce Hopkins): ユーザーホーム変数を追加 PR #141902
- @caioagiani (Caio Agiani): タイプミスを修正 PR #141959
- @CGNonofr (Loïc Mangeonjean)
- すべての言語機能登録関数で languageId を languageSelector に置き換え PR #143610
- getWorker 関数が Promise を返すことを許可 PR #143611
- @ChaseKnowlden: Lua Grammar を更新 PR #142107
- @divinity76: root には --no-sandbox が必要なようです PR #137125
- @efcoyote (coyote): 最新の seti-ui バージョンに更新 PR #141931
- @enticies (enticies): エラーメッセージのタイプミスを修正 PR #142054
- @g-plane (Pig Fang): デフォルトのファイルの入れ子パターンに "pnpm-lock.yaml" を追加 PR #142375
- @gjsjohnmurray (John Murray)
- window.createOutputChannel API にオプションの languageId を追加 (#_19561) PR #140876
testing.openTesting
設定テキストを修正 (#_142306) PR #142314
- @haykam821: 画像プレビューの透明背景がスケーリングの影響を受けないようにする PR #141667
- @heartacker: 数学スニペットを追加 PR #142697
- @icepaq (Anton): WebviewPanel でのオートコンプリートのアクティベーションイベント PR #141752
- @jeanp413 (Jean Pierre)
- WebviewElement::streamToBuffer を修正 PR #142288
- 拡張機能ビューで ID で拡張機能をクエリすると、常に拡張機能エディターで安定バージョンがレンダリングされる問題を修正 PR #143481
- @JJRcop (Jonathan Rubenstein): サポート対象バージョンに VS 2022 を追加 PR #142667
- @LuanVSO (Luan Vitor Simião Oliveira)
- シェル統合で psreadline が動作しない問題を修正 PR #142211
- shellintegration.ps1 を修正 PR #142217
- @michaelkuhn (Michael Kuhn): 一部の Solarized カラーを修正 PR #142670
- @neeleshb (Neelesh Bodas): 「前の問題へ移動」のラベルが間違っていたのを修正 PR #143823
- @satokaz (Kazuyuki Sato): Markdown パス IntelliSense でヘッダー候補をデコード PR #142392
- @SNDST00M (M.U.N.I.N): ファイルアイコンテーマにオプションのディレクトリ構文を追加 PR #140079
- @stefanhaller (Stefan Haller): #142028 を修正 PR #142930
- @surajteggi: タイプミスを修正 PR #142185
- @thebinarysearchtree (Andrew Jones): インデントを修正 PR #141997
- @weartist (Han): VSCode ターミナルに multiLinePasteWarning を実装し、#122683 を修正 PR #141822
- @y-tsutsu (y-tsutsu)
- コマンドパレットに翻訳された名前と元の名前の両方を表示する PR #142524
- アクションカテゴリを修正 PR #142911
- @Yash621 (Yash Goel): 設定同期に重複ログインがある問題を修正 PR #142340
- @zardoy (Vitaly): tsconfig.extends の正しいリンクパスを解決 PR #141062
vscode-css-languageservice
への貢献
vscode-languageserver-node
への貢献
- @dsherret (David Sherret): feat: childProcess.spawn が失敗した場合のより説明的なエラー PR #888
debug-adapter-protocol
への貢献
- @apupier (Aurélien Pupier): Apache Camel 用のデバッグアダプターを追加 PR #245
- @eshelyaron (Eshel Yaron): SWI-Prolog DAP 実装を adapters.md に追加 PR #248
- @hyangah (Hyang-Ah Hana Kim): sdks.md を更新 * go-dap を含める PR #241
- @lukaszsamson (Łukasz Samson): Elixir DAP 実装へのリンクを追加 PR #243
- @Ricbet (John): OpenSumi を実装ツールに追加 PR #247
language-server-protocol
への貢献
- @zwpaper (Wei Zhang): 一貫性のために言語 ID を使用 PR #1409
monaco-editor
への貢献
- @Dan1ve (Daniel Veihelmann): Vite サンプルコードを Firefox 互換にする PR #2991
- @philipturner (Philip Turner):
@noDerivative
修飾子を Swift に追加 PR #2957