2022年3月 (バージョン 1.66)
Update 1.66.1: このアップデートでは、これらの問題に対応しています。
Update 1.66.2: このアップデートでは、これらのセキュリティの問題に対応しています。
ダウンロード: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Visual Studio Code の2022年3月リリースへようこそ。このバージョンには、皆さんに気に入っていただけるであろう多くのアップデートが含まれており、主なハイライトは次のとおりです。
- ローカル履歴 - ソース管理とは独立してローカルファイルの変更を追跡します。
- 設定エディターの言語フィルター - 利用可能な言語固有の設定を表示します。
- ターミナルの検索機能の改善 - ターミナルパネルとスクロールバーで一致がハイライトされます。
- 組み込みの CSS/LESS/SCSS フォーマッター - CSS、LESS、SCSS のコードフォーマット。
- JavaScript ヒーププロファイル - デバッグ中に JS のメモリ割り当てを収集して表示します。
- Web 用 VS Code - ファイルとフォルダーを vscode.dev にドラッグ & ドロップします。
- リモート - Mac 用 SSH サポート - Apple Silicon/M1/ARM64 マシンに SSH 経由で接続します。
- 新しい R 言語トピック - VS Code でデータサイエンスに R を使用する方法を学びます。
これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com の 更新 にアクセスしてください。
リリースパーティーを見る: VS Code チームが新機能の一部について語るのを聞いてみましょう。イベントの録画は YouTube チャンネルでご覧いただけます。
ハイライトのショート動画: わずか60秒で、3月の VS Code リリースハイライト動画をチェックして、新機能をすばやく確認しましょう。
Insiders: 新機能をいち早く試したいですか?夜間ビルドのInsidersをダウンロードして、利用可能になり次第、最新の更新を試すことができます。
アクセシビリティ
チームは VS Code を最も利用しやすいエディターの1つにするために懸命に取り組んでいます。このリリースには、使いやすさとアクセシビリティを向上させるためのいくつかの改善が含まれています。
- モーション削減モード - VS Code UI で使用されるアニメーションを制限します。
- より視認性の高いソース管理デコレーター - パターンと色コントラストを使用して視認性を向上させます。
- オーディオキューの音量コントロール - エディターのオーディオキューの音量を調整できるようになりました。
- コメント UI のアクセシビリティ - 新しいコマンドとキーボードショートカット。
- ハイコントラストライトのカラーテーマ - テーマ作成者は、ハイコントラストライトに色を提供できるようになりました。
ワークベンチ
ローカル履歴
ファイルのローカル履歴がタイムラインビューで利用できるようになりました。設定されている内容に応じて、エディターを保存するたびに新しいエントリがリストに追加されます。
各ローカル履歴のエントリには、そのエントリが作成された時点のファイルの全内容が含まれており、場合によってはより多くの意味情報を提供できます (たとえば、リファクタリングを示します)。
エントリから次のことができます
- ローカルファイルまたは以前のエントリに対する変更を比較します。
- 内容を復元します。
- エントリを削除または名前変更します。
ローカル履歴を操作するための新しいグローバルコマンドがあります。
workbench.action.localHistory.create
- アクティブなファイルにカスタム名で新しい履歴エントリを作成します。workbench.action.localHistory.deleteAll
- すべてのファイルにわたるすべての履歴エントリを削除します。workbench.action.localHistory.restoreViaPicker
- すべてのファイルにわたって復元する履歴エントリを見つけます。
これらのコマンドにはデフォルトのキーバインドはありませんが、独自のキーボードショートカットを追加できます。
ローカル履歴を操作するための新しい設定もあります。
workbench.localHistory.enabled
- ローカル履歴を有効または無効にします (デフォルト:true
)。workbench.localHistory.maxFileSize
- ローカル履歴エントリを作成する際のファイルサイズ制限 (デフォルト:256 KB
)。workbench.localHistory.maxFileEntries
- ファイルごとのローカル履歴エントリの制限 (デフォルト:50
)。workbench.localHistory.exclude
- 特定のファイルをローカル履歴から除外するための Glob パターン。workbench.localHistory.mergeWindow
- ローカルファイル履歴の最後のエントリにさらに変更が追加される秒単位の間隔 (デフォルト10s
)。
タイムラインビューのツールバーにある新しいフィルターアクションにより、個々のプロバイダーを有効または無効にできます。
注: ローカル履歴のエントリは、VS Code の使用方法に応じて異なる場所に保存されます。ローカルファイルを開く場合、エントリはローカルユーザーデータフォルダーに永続化され、リモートファイルを開く場合、リモートユーザーデータフォルダーに保存されます。ファイルシステムが利用できない場合 (たとえば、Web 用 VS Code を使用する特定のケース)、エントリは IndexedDB に保存されます。
設定エディター
言語フィルター
ユーザーは、設定エディターの検索ボックスに@lang:languageId
と入力することで、ID がlanguageId
の言語用に構成できるすべての設定を表示および編集できるようになりました。これにより、ユーザーは言語固有の設定 (言語オーバーライドとも呼ばれます) を表示できます。
これらのオーバーライドは、歯車アイコンをクリックして設定をリセットするまで構成されたままであることに注意してください。
以下の短いビデオでは、言語フィルターが@lang:css
に設定されており、考えられるすべての CSS 言語オーバーライド設定が表示されています。
テーマ: Light Pink
ワークスペースとフォルダーの設定の保持
設定エディターのワークスペースとフォルダーの設定は、ユーザーが手動でリセットするまで保持されるようになりました。この変更は、ユーザーが設定のデフォルト値と同じだがユーザー設定値とは異なるワークスペース設定値を明示的に指定したい場合に役立ちます。以前は、ユーザーはこの値を設定するためにワークスペース設定の JSON ファイルを開く必要がありました。
以下のエディターのタブサイズは、設定エディターのワークスペースタブで設定され、ワークスペースのsettings.json
ファイルに自動的に追加されます。
テーマ: Light Pink
主要な通知ボタン
通知の最初のボタンが、他のボタンと区別するために主要な色で表示されるようになりました。これはダイアログと同じパターンに従います。
テーマ: GitHub Dark
エディターの新しいコンテキストキー
エディターがエディターグループ内で最初または最後であるかを示す新しいコンテキストキーがあります。
activeEditorIsFirstInGroup
- アクティブなエディターがそのグループの最初のものであるかどうか。activeEditorIsLastInGroup
- アクティブなエディターがそのグループの最後のものであるかどうか。
これらのコンテキストキーは、when 句を使用してキーボードショートカットを条件付きで有効にするために使用できます。
デフォルトのバイナリエディター
新しい設定workbench.editor.defaultBinaryEditor
により、バイナリファイルの警告を回避し、バイナリファイルが検出されたときに選択したエディタータイプを自動的に開くことができます。設定エディターのドロップダウンから、またはsettings.json
で IntelliSense を介して、デフォルトのバイナリエディター ID を選択できます。
よりスムーズな認証エクスペリエンス
GitHub と Microsoft の両方の認証フローがよりスムーズになったことに気づくかもしれません。
- GitHub 認証では、最初の続行ページを削除したため、ログインエクスペリエンスのステップが1つ少なくなりました。
- Microsoft 認証では、設定同期または他の拡張機能のためにすでに Microsoft でログインしている場合、VS Code からログアウトしてログインする回数を最小限に抑えるようにしています。
CLI からプレリリース版と通常版の拡張機能を一緒にインストール
VS Code は、コマンドラインからプレリリース版と通常版の拡張機能を一緒にインストールできるようになりました。たとえば、次のコマンドライン命令は、GitHub.vscode-pull-request-github
拡張機能のプレリリースバージョンとGitHub.remotehub
拡張機能のリリースバージョンをインストールします。
code --install-extension GitHub.vscode-pull-request-github@prerelease --install-extension GitHub.remotehub
プラットフォーム固有の拡張機能のアップデートの改善
VS Code は、プラットフォーム固有の拡張機能を、より特定のターゲットプラットフォームバージョンに更新するようになりました。たとえば、Windows 64ビットを使用しており、Windows 32ビット用のC/C++拡張機能をインストールしており、Marketplace にWindows 64ビット用の同じバージョンの拡張機能がある場合、VS Code は拡張機能を自動的に64ビットバージョンに更新します。
オーディオキューの改善
新しい設定audioCues.volume
(0-100、デフォルトは 50) を使用して、オーディオキューの音量を制御できます。折りたたまれた領域のオーディオキューも更新されています。
サイドパネルとサイドバーの新しい名前
2つのリリース前、私たちはサイドパネルを導入しました。当時、ターミナルを含む下部のパネルを側面に移動する機能を、新しい一貫性のあるコマンドを優先して削除しました。ユーザーからのフィードバックを聞いた後、この決定が重要なワークフローを中断したと判断し、その変更を元に戻すことにしました。
これにより、パネルとサイドパネルという2つのパネルが残り、両方ともワークベンチの側面に配置できるようになりました。この状況を考慮し、新しいサイドパネルの方向性をよりよく反映するために、サイドバーとサイドパネルの両方の命名を更新することにしました。サイドバーは UI で「Primary Side Bar (プライマリサイドバー)」と、サイドパネルは「Secondary Side Bar (セカンダリサイドバー)」と呼ばれるようになります。
- サイドバー -> Primary Side Bar (プライマリサイドバー)
- サイドパネル -> Secondary Side Bar (セカンダリサイドバー)
これらの名前はエディター全体のメニューやコマンドに反映されますが、既存のキーバインドを壊さないようにコマンド ID は変更されていません。
モーション削減モード
ワークベンチは、OS のモーション削減設定が有効になっている場合、アニメーションを減らしてレンダリングするようになりました。これは、workbench.reduceMotion
設定 (on
、off
、またはデフォルトのauto
のいずれかの値) でオーバーライドまたは無効にできます。
コメント
コメント UI は、GitHub Pull Requests and Issues 拡張機能によって問題やプルリクエストにコメントを追加するために広く使用されていますが、どの拡張機能でも採用できます。
コメントビューの発見可能性
コメントが含まれているファイルを開くと、コメントビューが表示されます。これはcomments.openView
設定で制御できます。
コメント追加の発見可能性
コメントを追加できる行の任意の場所にマウスオーバーすると、左側のガターに「+」記号が表示されるようになりました。
コメントのアクセシビリティの改善
コメントのアクセシビリティにはいくつかの改善点があります。
- コメント可能な範囲にいる場合にコメントを作成するためのコマンド現在の行にコメントを追加。
- コメントスレッドの aria ラベルには、コメントの数とスレッドのラベルが含まれます。
- 次のコメントスレッドへ移動コマンドは、コメントスレッドコントロールにフォーカスを移動します。
- 新しい前のコメントスレッドへ移動コマンド。
- 次と前のコマンドのキーボードショートカット:
Alt+F9
とShift+Alt+F9
。
ターミナル
すべての検索結果を表示
ターミナルで検索すると、検索語のすべてのインスタンスがハイライトされるようになりました。現在選択されている一致も特定のハイライトを持ち、これは個別にカスタマイズできます。
terminal.findMatch
で始まる色カスタマイズを介して、ハイライト表示の色の外観を細かく調整できます。
スクロールバーの注釈
ターミナルのスクロールバーに注釈が表示され、バッファー内の関心のあるポイントを示します。
たとえば、検索結果はスクロールバーに対応する注釈を持ちます。
シェル統合のプレビュー機能が有効になっている場合、実行される各コマンドのスクロールバーに注釈が表示されます。
コマンドナビゲーションの改善
以前から存在していたあまり知られていない機能に、ターミナル内のコマンド間をすばやく移動する機能があります。元々はEnter
が押されたときにに基づいていましたが、シェル統合が有効になっている場合は、シェル統合の知識を使用して正しい行をより確実に識別するようにアップグレードされます。さらに、コマンド間をジャンプする際に UI フィードバックが表示されるようになりました。
この機能は、以下のキーバインドでアクセスできます。
- macOS:
Cmd+上/下
- Linux/Windows:
Ctrl+上/下
(新規)
Shift
キーを押しながらターミナルでコマンド間の選択を行うことができます。
コピーされたテキストは HTML スタイルを保持
ターミナルからリッチテキストをコピーするには、ターミナル: 選択範囲を HTML としてコピーコマンドを実行するか、ターミナルのコンテキストメニューエントリHTML としてコピーを使用します。
最小コントラスト比のデフォルト値が変更
terminal.integrated.minimumContrastRatio
設定は以前から存在し、背景色に基づいてターミナルの前景色を動的に変更します。このリリースでは、テーマに関係なくターミナルがアクセス可能であることを確認するために、デフォルトを4.5
(WCAG AA) に変更しました。これにより色に問題が発生する場合、"terminal.integrated.minimumContrastRatio": 1
を設定することでこの機能を無効にできます。
ソース管理
ソース管理リポジトリビュー
以前は、ソース管理リポジトリビューのリポジトリは、複数のリポジトリを持つフォルダー/ワークスペースを開いたときに検出された順序でソートされていました。これは、検出順序が異なる可能性があり、リポジトリがランダムな順序で表示されるため問題がありました。このマイルストーンでは、リポジトリはソース管理リポジトリビューで常に名前でソートされるようになりました。
エディター
インライン補完としてのクイック提案
editor.quickSuggestions
設定は、設定値としてinline
を受け入れるようになりました。inline
に設定すると、クイック提案 (IntelliSense) は入力時に提案ウィジェットを表示せず、補完をゴーストテキストとして表示します。
テーマ: GitHub Light
カーソルインデックス用のスニペット変数
新しいスニペット変数として$CURSOR_INDEX
と$CURSOR_NUMBER
があります。これらはそれぞれのカーソルのインデックスに評価されます。後者は1から始まり、前者は0から始まります。これらの変数の力は、複数のカーソルとの組み合わせにあります。
たとえば、以下のスニペットは、各カーソルに順序付きリストアイテムを追加します。
"ordered_list": {
"scope": "markdown",
"prefix": "ol",
"body": [
"$CURSOR_NUMBER. $0"
],
"description": "Add ordered list"
}
更新されたソース管理デコレーター
アクセシビリティのためにソース管理デコレーターをより視認しやすくするため、変更された行に新しいパターンを追加し、すべてのデコレーターのコントラストを向上させました。
括弧ペアのカラー化
新しい設定editor.bracketPairColorization.independentColorPoolPerBracketType
があります。true
に設定すると、各括弧の種類 ({
... }
または (
... )
) が、カラー化に独自のカラープールを使用します。したがって、異なる種類のネストされた括弧は同じ色になります。
言語検出の改善
前回のイテレーションでは、開いたファイルの種類を考慮する新しい言語検出戦略を利用するかどうかを構成するための設定workbench.editor.historyBasedLanguageDetection
を追加しました。この設定は現在デフォルトで有効になっており、この戦略の結果に優先度を付与するための新しい設定workbench.editor.preferHistoryBasedLanguageDetection
が追加されました。
Web 用 VS Code
フォルダーのドラッグ&ドロップ
Web File System Access APIをサポートするブラウザーでvscode.devまたはinsiders.vscode.devで開かれたブラウザーウィンドウに、ローカルファイルとフォルダーをドラッグアンドドロップしてコンテンツにアクセスできるようになりました。これは、エディターエリアへのドロップとファイルエクスプローラーへのドロップの両方で機能します。
リモートリポジトリ
拡張機能のリファクタリング
以前は、Azure Repos 拡張機能は GitHub Repositories 拡張機能に直接依存していました。Azure Repos と GitHub Repositories は、GitHub と Azure Repos の共通ワークフローをサポートする共通の拡張機能Remote Repositoriesに依存するようになりました。以前 GitHub Repositories 拡張機能によって公開されていたすべての API は、現在 Remote Repositories によって公開されています。
リポジトリ同期のリマインダー
コミットされていない変更があるリポジトリを再度開くと、デフォルトでは Remote Repositories はリポジトリの最新バージョンを表示しません。現在、リポジトリを GitHub または Azure Repos の最新の状態に保つために、手動でリポジトリを同期するためのダイアログを表示しています。このダイアログはremoteHub.uncommittedChangesOnEntry
設定を使用して制御できます。
テーマ: One Monokai
Azure Repos
このマイルストーンでは、Azure Reposでホストされているリポジトリの変更を編集およびコミットする機能を有効にしています。また、Azure Repos のプルリクエストを作成、更新、および開くための基本的な機能も追加しました。
ノートブック
スクロールバーの検索デコレーション
ノートブックの検索結果がスクロールバーにレンダリングされるようになりました。
対話型ウィンドウにフォーカスを移動
対話型ウィンドウにフォーカスを配置するための新しいコマンドが2つあります。
interactive.input.focus
- 対話型ウィンドウの入力エディターにフォーカスを移動します。interactive.history.focus
- 対話型ウィンドウの履歴にフォーカスを移動します。
これらのコマンドにはデフォルトのキーバインドはありませんが、独自のキーボードショートカットを追加できます。
デバッグ
JavaScriptデバッグ
JavaScript デバッガーは、ヒーププロファイルの収集と視覚化をサポートするようになりました。ヒーププロファイルを使用すると、時間の経過とともにどこにどれだけのメモリが割り当てられているかを確認できます。これらは、デバッグ: パフォーマンスプロファイルの取得コマンドのオプションとして追加されており、CALL STACK ビューのレコード ⏺ ボタンからもアクセスできます。
言語
CSS フォーマッター
組み込みの CSS 拡張機能にフォーマッターが搭載されるようになりました。このフォーマッターは CSS、LESS、SCSS で動作します。JS Beautify ライブラリによって実装されており、以下の設定が付属しています。
css.format.enable
- デフォルトの CSS フォーマッターを有効/無効にします。css.format.newlineBetweenRules
- ルールセットを空白行で区切ります。css.format.newlineBetweenSelectors
- セレクターを新しい行で区切ります。css.format.spaceAroundSelectorSeparator
- セレクター区切り文字 '>', '+', '~' の周囲にスペース文字があることを確認します (例:a > b
)。
同じ設定はless
とscss
にも存在します。
HTML における JavaScript のセマンティックハイライト
HTML ファイル内の JavaScript ソースのセマンティックハイライトを、通常の.js
ファイルで表示されるものと一致させました。
これにより、コードの色が一貫するだけでなく、読み取り専用タイプをハイライト表示するなど、以前は欠落していた重要なセマンティック情報も追加されます。
TypeScript 4.6.3
VS Code は TypeScript 4.6.3 をバンドルするようになりました。このマイナーアップデートでは、いくつかの重要なバグが修正されています。
Markdown の省略形参照リンクがクリック可能に
Markdown では、リンクテキストがリンク定義 ID と一致する場合に、省略形の構文を使用してリンクを作成できます。たとえば、[my fancy link]
は、my fancy link
のリンク定義 (例: [my fancy link]: https://example.com
) を使用します。これらの省略形リンクは、VS Code のエディターでクリック可能になりました。
エディターでは、これらのリンクをクリックするとリンク定義に移動します。Markdown プレビューでは、リンクは代わりにリンクの宛先に移動します。
reStructuredText 文法
reStructuredText (rst) ファイルのシンタックスハイライト用の組み込み拡張機能が利用できるようになりました。
拡張機能への貢献
Python
ステータスバーのインタプリター表示の変更
Python拡張機能は、他の言語との一貫性を保つため、選択された Python インタプリター情報をステータスバーの右側にあるPython言語ステータスアイテムの隣に移動しました。ステータスバーを整理する目的で、Python ファイルまたはsettings.json
ファイルが現在開いている場合にのみ表示されるようになりました。
新しい Python ファイルコマンド
空の Python ファイルを作成する2つの新しい方法があります。Python: 新しい Python ファイルという新しいコマンドを使用するか、Get Started ページの新しいファイル...項目を使用します。
Pylint 拡張機能
pylintを使用した linting のための新しい Microsoft Pylint 拡張機能が利用できるようになりました。この拡張機能は、linting サポートを提供するためにLanguage Server Protocolを利用しています。
Pylint 拡張機能は、pylint
経由で報告される問題の重大度レベルを調整するための追加設定を提供します。
{
"convention": "Information",
"error": "Error",
"fatal": "Error",
"refactor": "Hint",
"warning": "Warning",
"info": "Information",
"W0611": "Error",
"unused-import": "Error"
}
注: Python 拡張機能で Pylint も有効にしている場合、問題パネルに同じ問題が2回表示されることがあります。組み込みの linting 機能を無効にするには、"python.linting.pylintEnabled": false
を設定します。
Jupyter
このマイルストーンでは、Jupyter 拡張機能にいくつかの改善が加えられました。
カーネルサポート
カーネルの起動が改善されました:
- より多くのconda環境のサポート。
- すべてのプラットフォームでの
.env
ファイルのサポート。
データビューア
データビューアで DataFrames および Series の名前付きインデックスがサポートされるようになりました。
新しい Jupyter ノートブック
新しい Jupyter ノートブックの作成が、新しいファイル...メニューに統合されました。
リモート開発
コンテナ、リモートマシン、またはLinux 用 Windows サブシステム (WSL) をフル機能の開発環境として使用できるようにするリモート開発拡張機能の作業が続けられています。
1.66 の機能ハイライトは次のとおりです。
- "開発コンテナで開く" バッジ - リポジトリのユーザーをカスタム開発コンテナで開き直すように誘導します。
- Remote - SSH 拡張機能は、リモートの Apple Silicon/M1/ARM64 マシンに接続できるようになりました。
リモート開発のリリースノートで、新しい拡張機能の機能とバグ修正について学ぶことができます。
GitHub Pull Requests and Issues
プルリクエストとイシューの作業、作成、管理を可能にするGitHub Pull Requests and Issues拡張機能の作業が続けられています。ハイライトを見るには、拡張機能の0.40.0リリースの変更ログをチェックしてください。
プレビュー機能
ターミナルシェル統合
シェル統合は、このリリースでも引き続き改善が見られ、主に上記のターミナルセクションで説明されているデコレーションの信頼性と改善の形で行われました。
主なハイライトは次のとおりです。
- コマンドデコレーションがエディターと同様にスクロールバーに表示されるようになりました。
- コマンドデコレーションはウィンドウの再読み込み (またはデタッチ/アタッチ) をまたいで復元されるべきです。
- Windows でターミナルをサイズ変更する際のコマンド追跡の改善。
- ターミナル: クリア VS Code コマンドと
clear
シェルコマンドの処理の改善。 zsh
の右プロンプトのサポート。- bash の
$PROMPT_COMMAND
変数のより多くの形式を処理。 - PSReadLine が有効になっていない場合の
pwsh
のサポート。 - シェル初期化スクリプトは、設定が有効になっている場合でも、既知の問題がある場合や特別な処理が必要な場合に、
$VSCODE_SHELL_INTEGRATION
変数を設定解除することでシェル統合をオプトアウトできるようになりました。
TypeScript 4.7 のサポート
このアップデートには、今後の TypeScript 4.7 リリースに対する初期サポートが含まれています。TypeScript チームが現在取り組んでいることの詳細については、TypeScript 4.7 イテレーション計画を参照してください。
TypeScript 4.7 のナイトリービルドの使用を開始するには、TypeScript Nightly 拡張機能をインストールしてください。
エクスプローラーのファイルネスト
このイテレーションでは、エクスプローラーにおけるファイルネストのサポートに取り組み続けました。この作業の一環として、ネストされたファイルの移動、名前変更、削除のサポートを磨き上げ、ネストの親に対する編集がその子にも適用されるべきかどうかを構成するための設定explorer.experimental.fileNesting.operateAsGroup
を追加しました。
さらに、ファイルネストの構成言語を拡張し、より多くの展開パターンを含むようにしました。以前は、子パターン内の$(capture)
は、親パターン内の*
によって消費されたテキストに展開されていました。現在では、パターン内で$(basename)
、$(extname)
、および$(dirname)
が追加でサポートされています。これにより、* -> $(basename).*.$(dirname)
のようなパターンを使用して、「追加されたセグメント」を持つすべてのファイルを単一のベースファイルの下にネストすることができます。
拡張機能作成
ノートブック対応ドキュメントセレクター
vscode.DocumentSelector
型への追加を確定しました。この型を使用すると、定義へ移動などの言語機能を特定のドキュメントに関連付けることができ、UI を駆動し、対応するプロバイダーに結果を要求するかどうかも決定します。拡張機能がノートブックの種類を絞り込むことを可能にする新しいプロパティを追加しました。たとえば、{ language: 'python', notebookType: 'jupyter-notebook'}
は、Jupyter ノートブックに埋め込まれているすべての python ドキュメントを対象とします。
インレイヒントに編集機能を追加
InlayHint
型に、オプションで遅延評価されるtextEditsプロパティを持つことができるようになりました。編集が設定されたインレイヒントは、ダブルクリックで適用されます。textEdits
は、インレイヒントを不要にするために必要な編集を行うために使用されるべきです。たとえば、推論された型を表すヒントをダブルクリックすると、その型アノテーションが挿入されます。
カスタム言語 ID を持つ出力チャンネル
このマイルストーンでは、カスタム言語 ID を持つ出力チャンネルを作成するためのcreateOutputChannel APIを完成させました。これにより、言語 ID を渡すことで、トークンまたは構文の色付けや CodeLens 機能を独自の出力チャンネルに貢献できるようになります。
カラーテーマの種類: ハイコントラストライト
カラーテーマは、ベーステーマ (uiTheme
) としてhc-light
を指定できるようになりました。ベーステーマは、カラーテーマで定義されていないすべての色に使用されます。
VS Code API では、ColorTheme.kindがHighContrastLight
の値を持つことができるようになりました。
色への貢献のためのハイコントラストライトテーマ
色への貢献は、ハイコントラストライトテーマ (highContrastLight
) を定義できるようになりました。指定されていない場合、デフォルトとしてlight
色が使用されます。
NODE_MODULE_VERSION および Node.js API のアップデート
ネイティブノードモジュールを使用する拡張機能の作者向けに、このリリースでは Node.js のバージョンが14.16.0
から16.13.0
に引き上げられました。使用されている API 抽象化レイヤーによっては、モジュールのコンパイルに影響を与える可能性があります。
デスクトップ | リモート | |
---|---|---|
NODE_MODULE_VERSION / process.versions.modules | 101 | 93 |
Node-API / process.versions.napi | 8 | 8 |
ツリーのドラッグアンドドロップ API
新しく確定されたTreeDragAndDropController API により、拡張機能が提供するツリービューはドラッグアンドドロップをサポートできるようになりました。ツリービューのサンプルには、この API の使用例があります。
デバッガー拡張機能の作成
CompletionItem.detail のサポート
先月、Debug Adapter Protocol はCompletionItem
オブジェクトにdetail
プロパティを追加しました。このプロパティは VS Code でサポートされるようになりました。デバッグコンソールの提案ウィジェットで詳細を確認できます。
Language Server Protocol
型階層、インライン値、およびインレイヒントのサポートは、3.17 リリースに備えて提案状態から移動されました。ライブラリの新しい次のバージョンが公開されました。
また、LSP 用のメタモデルの最初のバージョンがあり、対応するスキーマはJSON スキーマまたはTypeScript 型定義として提供されています。メタモデルには、指定されたリクエストと通知、それらのパラメーター型、戻り値型、部分戻り値型、および登録オプションが含まれています。また、定義されているすべての構造体と列挙型も含まれています。
Debug Adapter Protocol
私たちはDebug Adapter Protocolのいくつかのドキュメントの問題に対処しました。
- terminateとdisconnectリクエストを明確にするために、それらのドキュメントを改善しました。
evaluate
リクエストのcontext
引数にvariables
の値が文書化されました。VS Code はVARIABLESビューのコンテキストでevaluate
リクエストが呼び出されるたびに、この文書化されていない値を使用していました。context
引数がstring
型であり、variables
の値がドキュメントにのみ記載されているため、クライアントとデバッグアダプターに変更は必要ありません。
提案された拡張API
すべてのマイルストーンには新しい提案された API が含まれており、拡張機能の作者はそれらを試すことができます。いつものように、皆様からのフィードバックを歓迎します。提案された API を試す手順は次のとおりです。
- 試したい提案を見つけて、その名前を
package.json#enabledApiProposals
に追加します。 - 最新のvscode-dtsを使用して、
vscode-dts dev
を実行してください。これにより、対応するd.ts
ファイルがワークスペースにダウンロードされます。 - これで提案に対してプログラミングできます。
提案された API を使用する拡張機能を公開することはできません。次のリリースで破壊的変更がある可能性があり、既存の拡張機能を壊すことは望ましくありません。
InputBox の検証メッセージの重要度
当社の InputBox API (window.showInputBox
およびwindow.createInputBox
を介して) は、ユーザーの入力を検証するメカニズムを提供します。このイテレーションでは、重要度を表示するための提案された API で拡張しています。
たとえば、ユーザーの入力に基づいて情報メッセージを表示したい場合、検証メッセージは次を返すことができます。
{
content: 'this is an info message';
severity: InputBoxValidationSeverity.Info;
}
これは次のようになります。
この提案の詳細については、inputBoxSeverityを参照してください。
ノートブックドキュメントの変更イベント
ノートブックドキュメントの変更イベントに関する新しい提案があります。これはnotebookDocumentEventsとして利用可能で、2つのイベントが含まれています。
vscode.workspace.onDidSaveNotebookDocument
は、ノートブックが保存されるたびに発火します。vscode.workspace.onDidChangeNotebookDocument
は、ノートブックが変更されるたびに発火します。たとえば、セルが追加または削除されたとき、セル自体が変更されたとき、またはメタデータが変更されたときなどです。
タブ API の形状の確定
タブ APIは次のマイルストーンで確定に近づいており、現在の状態では形状にほとんど変更がないまま安定しています。2022年4月のイテレーションが、この API の形状と機能に関するフィードバックを提供する最後の機会となります。フィードバックは GitHub のイシューを介して提供できます。タブ API は、開いているタブ、その場所、およびそれらを閉じることを可能にします。
インライン補完
今後数回のリリースでの確定に備えて、インライン補完の作業を継続しました。インライン補完は、スニペットやテキスト置換を提案するために使用できるようになりました (以前はテキスト挿入のみがサポートされていました)。
エディターへのドロップ
提案されているテキストエディタードロップ APIにより、拡張機能はテキストエディターへのドロップを処理できます。これらのドロップイベントは、VS Code 内から (たとえば、VS Code のエクスプローラーからテキストエディターにファイルをドラッグする)、またはオペレーティングシステムから VS Code にファイルをドロップすることによって生成できます。
新しい API を試すには、"workbench.experimental.editor.dragAndDropIntoEditor.enabled": true
を設定する必要があります。これを有効にすると、ドラッグアンドドロップ中にShift
キーを押しながらエディターにドロップできるようになります。
Markdown ファイルにドロップしたときにリンクを生成するための実験的サポートが含まれています。API の使用例については、Markdown 拡張機能のソースも参照できます。
解決済み/未解決のコメント
コメントスレッドに解決済みまたは未解決の状態を設定するための新しい提案があります。状態が指定されたコメントスレッドには、追加の UX 処理が施されます。
エンジニアリング
Electron 17 のアップデート
このマイルストーンでは、VS Code に Electron v17 を搭載できることを嬉しく思います。これは Electron v13 からのメジャーアップデートであり、Electron のプロセス再利用アーキテクチャを利用しています。過去1年間、私たちはこの新しいアーキテクチャに備えて、ワークベンチとの相互作用とライフタイムに関するいくつかのコアサービスへの変更を再実装し、段階的に展開してきました。
この取り組みに関わったすべての方々に特別な感謝を、また Insiders で自己ホストし、フィードバックを提供してくれたコミュニティにも感謝します。これにより、このアップデートを自信を持ってリリースできます。
この変更は VS Code ユーザーにとって何を意味しますか?
ワークスペースの切り替えやワークスペースの再読み込みなどの操作が高速化されるはずです。このアップデートにより、Chromium のバージョンも 98.0.4758.109 に、Node.js のバージョンも 16.13.0 に引き上げられます。
次は何ですか?
Electron の新しいリリースサイクルに従って、Electron バージョンの採用を続けます。また、ワークベンチのサンドボックス化にも積極的に取り組んでおり、次のステップはNode.js ホスト型サービスとサンドボックス化されたワークベンチ間の通信チャネルを改善することです。これにより、新しいアーキテクチャをさらに簡素化できます。
RPM パッケージ要件リストの改善
現在、Chromiumで行われた作業に触発され、rpm パッケージに必要な依存関係をビルドプロセスの一部として計算しています。これにより、新しいランタイムやネイティブモジュールを採用する際に、最新の依存関係リストを提供できます。次のマイルストーンでは、debian パッケージにも同様の変更を導入する予定です。
組み込み拡張機能の帯域外リリースをサポート
Marketplace で利用可能な組み込み拡張機能は、帯域外でリリースできるようになり、VS Code は新しいバージョンを検出して拡張機能を更新します。これにより、これらの拡張機能はプレリリースもサポートできるようになります。
ドキュメント
VS Code の R
Visual Studio Code の Rという新しいトピックがあり、R 拡張機能による VS Code でのR プログラミング言語のサポートについて説明しています。R 拡張機能には、コード補完や linting などの豊富な言語機能、統合された R ターミナル、専用のワークスペース、データ、プロットビューアが含まれています。
開発コンテナのブログ投稿
Burke Holland による、開発コンテナを使用して使いやすいプログラミング環境を作成する方法に関する最近のブログ投稿を見逃した場合は、「チュートリアルの問題」をチェックしてください。このブログ投稿では、Laravelが、PHP フレームワークチュートリアルのランタイムと依存関係を提供するために、事前に構成された Docker コンテナをどのように使用しているかを説明しています。
注目すべき修正点
- 117674 内容が折り返されると、デバッグコンソールが自動スクロールを停止することがある
- 138963 デバッグが開始されると、デバッグコンソールが正しく動作しない
- 142754 VS Code ターミナルでの Emacs の使用が壊れている
- 143513 contributes.configuration アイテムは、検索ボックスが空の場合にのみビューの "order" 属性を尊重する
- 144458 Glob パターン
**/p*
が/foo/ap
に誤って一致する - 144783 編集されていない設定リストウィジェットアイテムには最大幅がないように見える
- 145243 小さい画面では設定の目次をサイズ変更できない
- 145572 設定ボックスが設定と重なることがある
ありがとうございます
最後に、VS Codeの貢献者の皆様に心からの感謝を申し上げます。
Web拡張機能
Web 拡張機能としてコードを実行する拡張機能を有効にした拡張機能の作者 (以下のリストは2022年3月1日から2022年3月27日までのものです)
- RTF (Alessandro Fragnani)
- Highlight - C/C++ Parameters (BLET Mickaël)
- Highlight - Regex (BLET Mickaël)
- Material Icon Theme (Dancheg97)
- Go to Character Position (davidfreer)
- Extension panel (Elio Struyf)
- Writing Style Guide (Elio Struyf)
- Bravato Icons (Florin Bratan)
- Markmap (Gerald Liu)
- GitLens — Git supercharged (GitKraken)
- YARA (infosec-intern)
- ZMK Tools (Joel Spadin)
- JSPM Generator (JSPM)
- gcs-sync-vs-ext (killerbees-devops)
- Faster paragraph/word movement (Mateusz Dudzinski)
- narumincho.definy (narumincho)
- Better Markdown & Latex Shortcuts (OrangeX4)
- Python Brackets (OrangeX4)
- Quarto (Quarto)
- Inline SQL (qufiwefefwoyn)
- React Hierarchy Explorer (React Sidekick)
- Serverless Workflow Editor (Red Hat)
- gitlab (RedstoneWizard08)
- LLVM IR Language Support (rev.ng Labs)
- Behave (rioj7)
- Line Completion (rioj7)
- vscode_web_extension_emulator (runthoser)
- Marquee (stateful)
- painandsufferingforjaredsstuff (Thomka)
- Tofu (Alpha) (Watware)
問題追跡
問題追跡への貢献者
- John Murray (@gjsjohnmurray)
- Andrii Dieiev (@IllusionMH)
- Lemmingh (@Lemmingh)
- Simon Chan (@yume-chan)
プルリクエスト
vscode
への貢献者
- @a-stewart (Anthony Stewart): ブラウザ ts に一致メディア変更リスナーを追加 PR #143287
- @AkatQuas (Akat): feat(jsonc): "path" プロパティのよりインタラクティブな補完 PR #144136
- @babakks (Babak K. Shandiz): markdown 埋め込み言語に jsonc を追加 PR #144003
- @Backfighter: ユーザーの環境変数を上書きしない PR #115455
- @BamBamboozled: [] が存在しない場合の参照のサポートを追加 PR #144781
- @cbliard (Christophe Bliard): editor.fold コマンドの selectionLines プロパティに期待される型を追加 PR #144732
- @Charles-Gagnon (Charles Gagnon): カバレッジフォルダの場所を更新 PR #145597
- @eltociear (Ikko Ashimine): README.md を更新 PR #145132
- @gabritto (Gabriela Araujo Britto): [typescript-language-features] includeCompletionsWithObjectLiteralMethodSnippets 設定を追加 PR #145941
- @gjsjohnmurray (John Murray): New File クイックピックのキーバインド設定アクションボタンを修正 (#_145422) PR #145429
- @hermannloose (Hermann Loose): 解決済みおよび未解決のコメントのテーマ適用可能な色を導入 PR #145230
- @jeanp413 (Jean Pierre)
- glob パターン
**/p*
が/foo/ap
に誤って一致する問題を修正 PR #144473 - リモート CLI を使用して Web 拡張機能をインストールできない問題を修正 PR #144522
- 実行中の拡張機能エディターで誤った拡張機能実行場所が表示される問題を修正 PR #144528
- glob パターン
- @kkakroo (Karan Kakroo)
- すでに禅モードの場合にのみ workbench.action.exitZenMode で禅モードを終了する PR #144217
- 一番上へスクロールボタンがテーマ適用されない PR #144224
- @kkocdko (kkocdko):
getDirectoryHandle
の無限再帰を修正 PR #145972 - @matthewjamesadam (Matt Adam): バッジ拡張 API を追加 PR #139225
- @mifopen (Slava Mostovoy): fix: 固定位置のホバーウィジェットにマウスオーバーすると非表示になる PR #142160
- @pjknkda (Jungkook Park): 大容量ファイル削除時の元に戻すためのファイル内容読み込みをスキップ PR #144890
- @quanzhuo (Quan Zhuo)
- issue #144453 を修正、拡張機能の最終更新時間が 24:00:00 を超える PR #144454
- #144671、git 拡張機能の一部の非ローカライズ文字列を修正 PR #144712
- @rounaksingh557 (Rounak singh): これにより、正しいディレクトリで Visual Studio を探します。 PR #143479
- @sbresin (Sebastian Bresin): feat: gitExtension API も repository.revert() を公開 PR #145029
- @Semphriss: Seti テーマを更新 PR #145004
- @ShafinKhadem (Nafiur Rahman Khadem): マルチカーソル selectAll で searchScope 列を尊重 PR #142312
- @sumneko (最萌小汐)
- Lua 文法を更新 PR #144544
- Lua 文法を更新 PR #144975
- @UltiRequiem (Eliaz Bobadilla): chore: actions/checkout を更新 PR #145891
- @weartist (Han): #143392 を修正 PR #143498
- @xisui-MSFT
- 逆アセンブリビュー使用時にソースがないスタックフレームをトップスタックフレームとして許可する PR #143649
- 逆アセンブリビューで無効なブレークポイントアイコンを修正 PR #143925
- @xmedeko (Ondrej Medek): javascript.suggest.jsdoc.generateReturns の markdownDescription を修正 PR #144486
- @yume-chan (Simon Chan):
welcome.showAllWalkthroughs
で拡張機能の貢献を待つ PR #135632
vscode-css-languageservice
への貢献者
- @marknn3 (Mark Langezaal): vscode #142516 を修正 [css] unicode-range ワイルドカードをサポート PR #264
vscode-js-debug
への貢献者
- @zjffun (JuFeng Zhang): feat: ヒーププロファイリング PR #1187
vscode-languageserver-node
への貢献者
- @razzeee (Kolja Lampe): タイポを修正 PR #903
vscode-vsce
へのコントリビューション
- @felipecrs (Felipe Santos): docs: readme に設定のヒントを追加 PR #704
debug-adapter-protocol
への貢献者
- @eshelyaron (Eshel Yaron):
ExceptionFilterOptions
の小さな間違いを修正 PR #250 - @haneefdm (Haneef Mohammed): 以前このリストにあった Cortex-Debug を追加 PR #257
- @renkun-ken (Kun Ren): R デバッガーを追加 PR #255
language-server-protocol
への貢献者
- @KamasamaK
- @sno2 (Carter Snook): fix(inlayHint): 型参照のタイポを修正 PR #1425