2022年11月 (バージョン 1.74)
アップデート 1.74.1: このアップデートでは、これらのissueに対処しています。
アップデート 1.74.2: このアップデートでは、これらのissueに対処しています。
アップデート 1.74.3: このアップデートでは、このセキュリティissueに対処しています。
ダウンロード: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Visual Studio Code 2022年11月リリースへようこそ。このバージョンには多くのアップデートが含まれており、皆様に気に入っていただけることを願っています。主なハイライトを以下に示します。
- エクスプローラーの自動表示ロジックをカスタマイズ - エクスプローラーでどのファイルがビューにスクロールインするかを決定します。
- アクティビティバーとパネルのバッジを非表示 - 状態バッジを切り替えてエディターUIを簡素化します。
- ノートブックの実行に関するオーディオキュー - セル実行結果、追加または削除された行のサウンド。
- マージエディターのUndo/Redo - マージコンフリクトアクションをすばやく元に戻したり、再適用したりできます。
- 安全でないGitリポジトリの管理 - 自分以外のユーザーが所有するフォルダーでのGit操作を防ぎます。
- JavaScript console.profile コレクション - VS Codeで表示するためのCPUプロファイルを簡単に作成します。
- returnからの定義へ移動 - JavaScript/TypeScript関数の先頭にジャンプします。
- リモートトンネル - SSHを必要とせずに、あらゆるマシンへの接続を作成します。
- Jupyterノートブックの「マイコードのみ」デバッグ - Pythonライブラリコードへのステップインを回避します。
- Dev Container GPUサポート - Dev Containerを作成するときにGPUをリクエストします。
これらのリリースノートをオンラインで読みたい場合は、更新情報 (code.visualstudio.com) にアクセスしてください。
Insiders: 最新機能をいち早く試したいですか? nightly Insiders ビルドをダウンロードして、最新のアップデートをすぐにお試しください。
アクセシビリティ
ノートブック実行のオーディオキュー
ノートブックセルが実行を完了したときに、オーディオキューが鳴るようになりました。キューは、セルが正常に実行されたか失敗したかを示すために異なります。
差分レビューモードのオーディオキュー
差分エディターで、[次の差分へ移動] がトリガーされると、カーソルが挿入された行または削除された行にあるかどうかを示す特定のオーディオキューが再生されます。
利用可能なオーディオキューに興味がある場合は、[ヘルプ: オーディオキューの一覧表示] ドロップダウンから聞くことができます。
キーボード操作可能な設定エディターのインジケーター、ホバー、リンク
設定エディターのインジケーター、ホバー、リンクがキーボードで操作できるようになりました。設定エディター全体の整合性を高めるために、一部のリンクのスタイルも調整されました。
設定エディターのインジケーターホバーは、タブストップとキーボードフォーカスの維持に関して、以前よりはるかに優れた動作をするようになりました。この改善された動作はまだ実験段階であり、現在、VS Code全体のすべてのホバーではなく、設定エディターのインジケーターホバーでのみ有効になっています。
テーマ: ライトピンク (vscode.dev でプレビュー)
ワークベンチ
エクスプローラーのカスタム自動表示ロジック
多くの投票があったissue #87956 ("フォルダーごとに explorer.autoReveal を設定できるようにする") は、新しい設定 explorer.autoRevealExclude
の導入によって修正されました。この設定を使用すると、自動表示が有効になっている場合 (explorer.autoReveal
、デフォルトは true
)、エクスプローラーで自動表示されるファイルを構成できます。autoRevealExclude
設定は、ファイルを除外するためのglobパターンを使用し、files.exclude
と同様に、when句による兄弟マッチングもサポートしています。
デフォルト値はnodeとbowerモジュールを除外します
{
"explorer.autoRevealExclude": {
"**/node_modules": true,
"**/bower_components": true
}
}
ビューコンテナごとのバッジを非表示
ビューコンテナを右クリックして非表示にできたのと同様に、コンテナのバッジ (アクティビティバー、パネル、およびセカンダリサイドバーに表示) を非表示にできるようになりました。バッジには、多くの場合、特定のビューコンテナの数値、アイコン、または進行状況インジケーターが表示されます。たとえば、ソース管理ビューの保留中の変更の数などです。
マージエディター
このリリースでは、マージエディターのいくつかの改善とバグ修正が含まれています。ハイライトは次のとおりです。
- Undo/Redoは、コンフリクトの処理済み状態を追跡するようになりました。
- 入力ビューの [無視] アクションを使用して、結果ビューの [処理済みとしてマーク] アクションの代わりにベースバージョンを受け入れることができます。
- 両側で同じ変更は自動的に解決されるようになりました。
git blame
機能を提供する拡張機能は、incoming、current、および base エディターで動作するようになりました。
ディスク上の拡張機能をインストールする
[開発者: 場所から拡張機能をインストール...] コマンドを使用して、ローカルディスクドライブにある拡張機能をインストールできるようになりました。このコマンドは、拡張機能の .vsix
ファイルの場所を選択するためのプラットフォームフォルダーダイアログを開きます。
エディター
CJK文字の新しい単語区切りオプション
editor.wordBreak
という設定を使用して、CJK文字の後に折り返しポイントが挿入されるのを防ぐことができます。keepAll
で構成すると、折り返しアルゴリズムはCJK文字の後のテキストを同じ行に保持しようとします。この設定は、他のスクリプトの文字には影響しません。
OpenTypeフォントの新しいフォント設定
OpenTypeフォントバリエーションをサポートする一部の新しいフォントは、font-weight
CSSプロパティを介して構成できないフォントウェイトを実現するために、フォントウェイト軸などの特定の軸の調整をサポートしています。CSSでは、これは font-variation-settings
プロパティで実現されます。このようなフォントを使用している場合は、editor.fontVariations
を true
に構成できるようになりました。これにより、VS Codeはフォントウェイトを設定するために "wght"
表示軸を使用するようになります。フォントが他の軸をサポートしている場合は、たとえば "editor.fontVariations": "'ital' 0.5"
を設定するなどして、それらを直接構成することもできます。
新しいインデントサイズ設定
editor.indentSize
という新しい設定があり、インデントサイズ (インデントを構成するスペースの数) をタブサイズ (タブ文字のレンダリングに使用されるスペースの数) から分離できます。これは、タブとスペースのインデントが混在するファイルを扱う場合に役立ち、手動インデント構成を使用している場合にのみ実行できます。
以下は構成例です
"editor.detectIndentation": false,
"editor.insertSpaces": true,
"editor.tabSize": 8,
"editor.indentSize": 2
インライン補完を部分的に受け入れるコマンド
コマンド [インライン提案の次の単語を受け入れる] (editor.action.inlineSuggest.acceptNextWord
) を使用して、現在のインライン提案の次の単語/非単語セグメントを受け入れることができます。現在、インライン提案の最初の行の一部のみを受け入れることができます。このコマンドはまだ開発中であり、今後のリリースに向けてキーボードショートカットと代替の分割ルールを検討しています。
ソース管理
安全でないGitリポジトリの管理
VS Codeは、すべてのGit操作の実行に git.exe
を使用します。Git 2.35.2 以降では、リポジトリが現在のユーザー以外のユーザーが所有するフォルダーにある場合、リポジトリが潜在的に安全でないと見なされるため、ユーザーはGit操作を実行できなくなります。
このリリース以降、潜在的に安全でないリポジトリを開こうとすると、VS Codeはソース管理ビューにウェルカムビューを表示し、エラー通知も表示します。ウェルカムビューと通知の両方に、潜在的に安全でないリポジトリのリストを確認し、安全としてマークして開くことができる [安全でないリポジトリの管理] コマンドが表示されます。[安全でないリポジトリの管理] コマンドは、コマンドパレットでも使用できます。リポジトリを安全としてマークすると、リポジトリの場所が safe.directory
git構成に追加されます。
楽観的なユーザーインターフェイスの更新
Git操作を実行した後、ソース管理ビューが更新される前に、データモデルを更新するために一連の git
コマンド (たとえば、 git status
) が実行されます。これらのコマンドの実行に数秒かかる場合 (たとえば、大規模なモノレポで作業する場合)、ソース管理ビューが更新されるまでに遅延が発生するシナリオがあります。
このマイルストーンでは、ソース管理ビューが、一部のGit操作 (ステージング、アンステージング、変更の破棄、コミット) で git status
が完了する前に楽観的に更新されるように変更を加え、ソース管理ビューがより軽快になりました。
新しい機能はデフォルトで有効になっていますが、git.optimisticUpdate: false
を使用して無効にすることができます。
コミットアクションボタンの改良
[コミット] アクションボタンがセカンダリコミットコマンド (たとえば、[コミット & 同期]) を実行している場合、ボタンラベルは実行中のコマンドを正しく反映するようになりました。[コミット] ボタンには、進行状況を示すアニメーションも表示されます。
ターミナル
ターミナルのクイックフィックスの改善
ターミナルのクイックフィックスが、エディターでのエクスペリエンスに合わせて、コードアクションコントロールで表示されるようになりました。
ターミナルドロップダウンのタスクアクション
[タスクの実行] および [タスクの構成] コマンドが、検出性とアクセスの容易性を高めるためにターミナルドロップダウンに表示されます。
リモート開発
リモートトンネルが、VS Code Stableでプレビュー機能として利用できるようになりました。リモートトンネルを使用すると、場所を問わず、どのデバイスからでもVS Codeを使用してマシンに安全にアクセスできます。リモートトンネルアクセスを有効にするには、次のいずれかを実行します。
- アカウントメニューまたはコマンドパレットから [リモートトンネルアクセスをオンにする] を選択します。
- VS Codeがインストールされ、PATH上にあるマシンから
code tunnel
を実行します。 - 新しいVS Code CLIをダウンロードして、
./code tunnel
を実行します。
トンネルアクセスがオンになったら、vscode.dev を使用するか、VS Code Desktop内のRemote - Tunnels 拡張機能を使用して、どのデバイスからでもマシンに接続できます。
詳細については、機能発表のブログ投稿またはリモートトンネルドキュメントをご覧ください。
テーマ: Codesong (vscode.dev でプレビュー)
注: スタンドアロンの
code-server
CLIを使用していた場合は、VS Code CLI (最新のVS Code Desktopまたは上記のスタンドアロンダウンロード経由) を代わりに使用する必要があります。
デバッグ
JavaScriptデバッグ
console.profile のサポート
JavaScriptデバッガーが console.profile をサポートするようになりました。デバッガーで実行すると、console.profile()
と console.profileEnd()
の間のコードのCPUプロファイルが収集されます。
console.profile();
doSomeExpensiveWork();
console.profileEnd();
結果の .cpuprofile
ファイルはワークスペースフォルダーに保存され、VS Codeの組み込みプロファイルビューアーを使用して開いて表示できます。
ネストされたソースマップのサポート
特にモノレポセットアップでは、ソースコードが一度コンパイルされてから、再度コンパイルまたはバンドルされる場合があります。多くの場合、これにより、結果のバンドルのソースマップが、最初のステップで作成されたコンパイル済みファイルを参照することになります。
JavaScriptデバッガーは、ソースマップを再帰的に自動的に解決するようになり、追加の手順なしで元のソースファイルをデバッグできます。
serverReadyAction に killOnServerStop プロパティが追加されました
serverReadyAction launch.json
機能を使用すると、Webサーバーを起動するデバッグセッションを開始し、サーバーが起動したら、そのサーバーのURLに移動したブラウザーのデバッグを自動的に開始できます。killOnServerStop
という新しいプロパティがあり、true
に設定すると、サーバーデバッグセッションが停止したときに、新しいブラウザーデバッグセッションが自動的に停止します。
例:
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceFolder}/app.js",
"serverReadyAction": {
"pattern": "listening on port ([0-9]+)",
"uriFormat": "http://localhost:%s",
"action": "debugWithEdge",
"killOnServerStop": true
}
}
上記の例では、元の [プログラムの起動
] デバッグセッションが停止すると、自動的に開始されたEdgeデバッグセッションも停止します。
フォーカスされたデバッグセッションに例外ブレークポイントが表示される
2つの異なるタイプのデバッグセッションを実行している場合に例外ブレークポイントを管理することは、以前はうまく機能しませんでした。現在、デバッグセッションが [呼び出しスタック] ビューでフォーカスされている場合、そのセッションのデバッグタイプに適切なブレークポイントのセットが表示されます。
コメント
comments.visible
新しい設定 comments.visible
を使用して、エディターのコメント機能 (コメントバーとエディター内コメントピークビュー) をオフにできます。コマンド [コメント: エディターのコメント機能を切り替える] は、セッション中にエディターのコメント機能をオン/オフするために引き続き使用できます。[コメント] ビューでコメントを選択すると、常にコメント機能がオンになります。
コメントビューバッジ
[コメント] ビューには、未解決のコメントの数がバッジで表示されます。
タスク
問題 matcher 'search' ファイルロケーションメソッド
以前は、問題 matcher は、fileLocation
プロパティを介して、問題のあるファイルを検索する場所を正確に知る必要がありました。サポートされているメソッドは、absolute
、relative
、または autoDetect
(相対パスを最初にチェックし、失敗した場合は絶対パスを検索) でした。
ただし、ネストされたサブディレクトリにあるスクリプトを使用するワークスペースでは、タスクを設定することが困難でした。異なるスクリプトは、ファイルパスを統一された方法 (たとえば、ワークスペースのベースディレクトリからの相対パス) で報告することがめったにないためです。
この問題を解決するために、search
という名前の新しいファイルロケーションメソッドがあります。このメソッドを使用すると、再帰的なファイルシステム検索が実行され、キャプチャされたパスを特定します。
以下の例は、search
ファイルロケーションメソッドの設定方法を示しています (ただし、すべてのパラメーターはオプションです)。
"problemMatcher": {
// ...
"fileLocation": [
"search",
{
"include": [ // Optional; defaults to ["${workspaceFolder}"]
"${workspaceFolder}/src",
"${workspaceFolder}/extensions"
],
"exclude": [ // Optional
"${workspaceFolder}/extensions/node_modules"
]
}
],
// ...
}
注意 ユーザーは、時間のかかるファイルシステム検索 (たとえば、node_modules
ディレクトリ内を検索するなど) を引き起こさないように注意し、exclude
プロパティを適切に設定する必要があります。
言語
TypeScript 4.9
VS Codeには、TypeScript 4.9が同梱されるようになりました。このメジャーアップデートでは、satisfies
演算子や自動アクセサーなどの新しいTypeScript言語機能が導入されています。ツール面では、ファイル監視の改善や、その他多くの修正と改善が行われました。
このアップデートの詳細については、TypeScript 4.9 の発表をご覧ください。
returnからの定義へ移動
JavaScriptとTypeScriptは、return
キーワードで [定義へ移動] を実行して、返される関数の先頭にすばやくジャンプできるようになりました。これは、長く、複雑で、非常にネストされた関数を扱う場合に役立ちます。[定義へ移動] コマンド/キーバインド (F12) を使用するか、Cmd/Alt + クリック
で return
キーワードをクリックするだけです。
ノートブック
カーネルピッカーの実験: 最近使用したカーネル
ピッカーの上部に最近使用したカーネルを表示する新しいノートブックカーネルピッカーがあります。これは、notebook.kernelPicker.type
設定を mru
に設定することで有効にできるオプトイン実験です。
使用されていないカーネルは、セカンダリピッカー [別のカーネルを選択...] に移動されます。最新のJupyter拡張機能がインストールされている場合、このピッカーはすべてのカーネルをソース (例: Jupyter Kernel、Python Environmentなど) 別にグループ化します。
フィードバックをお待ちしております。ご意見やご要望は、VS Codeリポジトリでissueを作成してください。
VS Code for the Web
ソース管理
VS Code for the Webは、GitHubおよびAzure Reposリポジトリを編集する際に、次の設定をサポートするようになりました。
"git.branchRandomName.enabled"
- VS Code for the Webでブランチを作成するときに、ランダムなブランチ名を生成します。"git.branchRandomName.dictionary"
- VS Code for the Webでブランチを作成するときに、ランダムなブランチ名を生成するための単語辞書を指定します。"git.closeDiffOnOperation"
- コミット、ステージング、変更のアンステージングなどのソース管理操作を実行した後、差分エディターを閉じます。
さらに、VS Code for the Webは、保護されたブランチの場合、ステータスバーとブランチピッカーにロックアイコンを表示し、VS Code Desktopでのエクスペリエンスに合わせています。
最後に、VS Code for the Webのソース管理アクションボタンを使用して、変更をコミットしてリポジトリリモートに直接プッシュできるようになりました。
コミットする前に変更を検証する場合は、アクションボタンドロップダウンのセカンダリ [作業を続行...] アクションを使用して、作業中の変更を別の開発環境に移動することもできます。
[作業を続行] の改善
GitHubまたはAzure Reposリポジトリにいる場合、コマンドパレットで、作業中の変更を特定の開発環境に移動するための便利なワンステップコマンドを利用できるようになりました。
- 新しいCodespaceで作業を続行
- ローカルクローンで作業を続行
- VS Code Desktopのリモートリポジトリで作業を続行
また、クラウドに変更を保存することに関連していることを明確にするために、[編集セッション] を [クラウドの変更] に名前変更しました。
拡張機能への貢献
Jupyter
ノートブックセルデバッグの「マイコードのみ」
「マイコードのみ」デバッグ機能を使用すると、デバッガーがPythonライブラリのコードをステップスルーするか、ソースコードのみをステップスルーするかを決定できます。これは、ノートブックセルをデバッグするときにデフォルトで有効になっていますが、"jupyter.debugJustMyCode": false
を設定して無効にし、ライブラリコードをステップスルーできるようにすることができます。最高のエクスペリエンスを得るには、環境内の debugpy を >=1.6.3
にアップグレードしてください。以前は、debugJustMyCode
設定はインタラクティブウィンドウでのデバッグ時にのみ有効でしたが、現在はノートブックエディターでも利用できるようになりました。
ノートブックセルデバッグセッションの再起動のサポート
デバッグツールバーの [再起動] コマンドは、現在のデバッグセッションを再起動します。以前は、ノートブックデバッグセッションでエラーがスローされていましたが、現在ではサポートされています。残念ながら、インタラクティブウィンドウでは適切にサポートできません。
この機能は、デバッグ、セル編集、セッション再起動、編集を適用してセルを再度デバッグするワークフローで特に役立ちます。
リモート開発拡張機能
Remote Development extensions を使用すると、コンテナ、リモートマシン、またはWindows Subsystem for Linux (WSL) をフル機能の開発環境として使用できます。このリリースのハイライトは次のとおりです。
- Dev Container GPUサポート
- Dev Container Cygwin / Git Bash ソケット転送
- Remote - Tunnels 拡張機能 - SSHを必要とせずにリモートマシンに接続します。
新しい拡張機能とバグ修正については、リモート開発リリースノートをご覧ください。
GitHub Pull Requests and Issues
GitHub Pull Requests and Issues 拡張機能の進捗状況がさらに進んでいます。この拡張機能を使用すると、プルリクエストとissueの作業、作成、管理を行うことができます。ハイライトは次のとおりです。
- パーマリンクコマンドのノートブックサポート。
- プルリクエストのチェックステータス (継続的インテグレーション (CI) の進行中、レビューが必要、CI失敗など) が、プルリクエストツリービューに表示されます。
- PRのvscode.devリンクは、プルリクエストの概要からコピーできます。
- コマンド [プルリクエストの次の差分へ移動] は、チェックアウトされたPRのファイル間で次の差分に移動します。
その他のハイライトについては、拡張機能のバージョン 0.56.0 の変更ログをご覧ください。
プレビュー機能
プロファイル
過去数か月にわたって、コミュニティから最も要望の多かったものの1つであるVS Codeの プロファイル のサポートに取り組んできました。この機能は、workbench.experimental.settingsProfiles.enabled
設定を介してプレビューで利用できます。ぜひお試しいただき、vscodeリポジトリでissueを作成するか、issue #116740 にコメントしてフィードバックをお寄せください。
プロファイルの共有
プロファイルをGitHubにgistとしてエクスポートすることで共有できるようになりました。VS Codeは、GitHubアカウントを使用してシークレットgistを作成し、他のユーザーと共有するためのリンクを提供します。そのリンクを開くと、VS Codeは共有プロファイルをインストールするように求めます。プロファイルのエクスポートまたはインポート中に、VS Codeはプレビューを表示するため、エクスポートまたはインポートするデータを確認して選択できます。
これは、プロファイルをGitHubにエクスポートし、リンクをコピーして他のユーザーと共有するビデオです。
このビデオは、共有リンクを開いてプロファイルをインポートする方法を示しています。
拡張機能の署名と検証
11月中旬から、Visual Studio Marketplace にアップロードされたすべてのVS Code拡張機能は、VS Marketplaceによって署名されます。このプロセスはリポジトリ署名と呼ばれます。すべての拡張機能のインストールと更新時に、VS Codeは拡張機能パッケージの署名を検証します。署名と署名検証により、拡張機能パッケージの整合性と信頼性を保証できます。
署名検証は現在、VS Code Insidersでのみ行われています。問題に気付いた場合は、vscodeリポジトリでissueを作成してお知らせください。extensions.verifySignature
を false
に設定することで、署名検証をオプトアウトできます。今後数か月以内にVS Code Stableで署名検証を有効にする作業を進めています。
リポジトリ署名とは別に、拡張機能パブリッシャー署名の作業も開始しています。
WebでのPython実行
Experimental - Python for the Web 拡張機能にデバッグサポートを追加しました。デバッガーは次の機能をサポートしています。
- ブレークポイントの設定
- 関数へのステップインとステップアウト
- モジュール間のデバッグ
- デバッグコンソールでの変数の評価
- 統合ターミナルでのプログラムのデバッグ
以下のスクリーンショットは、Hello World
プログラムをデバッグしている様子を示しています。
注 拡張機能を使用するには、ブラウザURL ?vscode-coi=
に次のクエリパラメータを追加する必要があります。
拡張機能の作成
宣言された拡張機能のコントリビューションの暗黙的なアクティベーションイベント
このマイルストーンでは、拡張機能が package.json
で特定の拡張機能のコントリビューションを宣言している場合、アクティベーションイベントを明示的にリストする必要がなくなりました。
以前は、拡張機能が package.json
ファイルでコマンド mycommand
をコントリビュートすることを宣言している場合、コマンドを正常に実行するには、package.json
の activationEvents
フィールドに、対応する onCommand:mycommand
アクティベーションイベントもリストする必要がありました。これは面倒でエラーが発生しやすく、package.json
ファイルが大きくなる可能性がありました。
VS Codeは、次の拡張機能のコントリビューションポイントのアクティベーションイベントを自動的に入力するようになりました。
コントリビューションポイント | 推論されたアクティベーションイベント |
---|---|
commands |
onCommand |
authentication |
onAuthenticationRequest |
languages |
onLanguage |
customEditors |
onCustomEditor |
views |
onView |
拡張機能の作成者は、これらの推論されたアクティベーションイベントを拡張機能から安全に削除できるようになりました。削除する場合は、VS Codeエンジンの要件を更新して、拡張機能が以前のバージョンのVS Codeと互換性があると見なされないようにしてください。
"engines": {
"vscode": "^1.74.0"
},
ログ出力チャンネル
このマイルストーンでは、LogOutputChannel APIを最終決定しました。このAPIを使用して、拡張機能からのメッセージをログに記録するために使用されるログ出力チャンネルを作成できるようになりました。
また、アプリケーションの現在のログレベルを示す env
名前空間の logLevel プロパティと、アプリケーションのログレベルが変更されたときにイベントを発生させる onDidChangeLogLevel イベントを最終決定しました。
すべてのwebviewの一貫したオリジン
前回のイテレーションの作業に続き、VS Codeのすべてのwebviewは、カスタムオリジンを維持しようとするようになりました。1.74では、これはカスタムエディターで使用されるwebviewにも拡張されています。
これにより、webviewコンテンツをより多くの場合にキャッシュできるようになるため、パフォーマンスが向上します。拡張機能の作成者として注意すべき点と詳細については、以前のリリースノートをご覧ください。
拡張機能READMEでのビデオタグのサポート
拡張機能は、READMEで <video>
タグを使用できるようになりました。ビデオは、VS Code MarketplaceとVS Codeの拡張機能ビューページの両方でサポートされています。.gif
と比較して、ビデオファイルは高品質であり、多くの場合サイズも小さくなります。オーディオを含めることもできます!
特定のビデオおよびオーディオ形式のみがVS Code自体でサポートされていることに注意してください。現時点では、相対パスではなく、<video>
src
および poster
へのフルパスも使用する必要があります。
コメントスレッドの追加アクション
新しいメニューロケーション comments/commentThread/additionalActions
を使用すると、拡張機能は常に表示されるボタンをコメントスレッドに追加できます。
vsce から @vscode/vsce への名前変更
vsce ツール (VS Codeの拡張機能マネージャー) の名前が @vscode/vsce に変更されました。これは、ツールをライブラリとして使用している人にとっては破壊的な変更です。CLIツールは引き続き vsce
と呼ばれ、npm install -g @vscode/vsce
を介してインストールできます。
デバッグアダプタープロトコル
いくつかの明確化と新しいプロパティが Debug Adapter Protocol に追加されました。
DataBreakpointInfo
リクエストに、新しいオプションのframeId
プロパティが追加されました。クライアントはこのフラグを使用して、どのスタックフレームにname
変数が含まれているかを指定できます。readMemory
リクエストに対して、ファイル終端の動作が指定されるようになりました。
エンジニアリング
プロパティとメソッドの名前マングリング
製品ビルドで、プロパティとメソッドの名前をマングリングするようになりました。これにより、メインバンドルのサイズが約13%(-1.5MB)削減され、コードのロード時間が約5%短縮されました。
GitHubおよびMicrosoft Authentication拡張機能のバンドルサイズ改善
これら2つの拡張機能のバンドルサイズは、提供する機能や、多くのケース(vscode.devなど)での起動時の重要性を考えると、私たちが望んでいたよりも大きすぎました。このマイルストーンでは、これらの拡張機能のサイズを縮小することに焦点を当て、その結果を以下に示します。
- GitHub Authentication: 93KB -> 64.9KB
- Microsoft Authentication: 97KB -> 57.7KB
これは以下の方法で実現されました。
- Node.jsとWebで容易に利用できる機能を提供するnodeモジュールへの依存(およびバンドル)をなくしました(例:
uuid
の代わりに Crypto.randomUUID() を削除)。 node-fetch
をNode.jsとWebの両方で使用する代わりに、Node.jsでのみ使用するようにしました。- サイズが大幅に削減された
@vscode/extension-telemetry
の最新バージョンを採用しました。
このプロセスで機能が失われることはなく、これらの拡張機能はサイズが縮小されたため、より迅速にフェッチおよびロードされるようになりました。
Electronサンドボックスへの道のり
Electronの サンドボックス を有効にするための進捗状況については、最近の 「VS Codeのプロセスサンドボックス化への移行」 ブログ記事をご覧ください。この詳細な記事では、技術的なタイムラインを紹介し、VS Codeサンドボックスをサポートするために行われた段階的な変更について説明しています。
VS Codeサンドボックスモードを試したい場合は、設定で "window.experimental.useSandbox": true
を設定できます。機能的な違いに気付かないはずですが、問題が見つかった場合は、私たちに報告してください。
WindowsでWindow Controls Overlayがデフォルトで再度有効になりました
Window Controls Overlay(WCO)がデフォルトで再度有効になりました。以前は8月に有効になっていましたが、右から左に読むシステム言語を使用しているユーザーに対して 間違った側にレンダリング され、FileメニューとEditメニュー項目を覆い隠していたため、再度無効になりました。
主な問題は、VS CodeがアプリケーションロケールをElectronに渡していなかったため、Electronがシステムロケールを使用してWCOの配置場所を決定していたことでした。しかし、VS Codeは、システム言語を取得し、推奨する言語パックを決定するためにElectronの app.getLocale()
APIに依存しており、アプリケーションロケールをElectronに渡すと、app.getLocale()
がシステム言語ではなく、同じロケールを返すという結果になりました。
この問題を修正するために、Electronに新しい app.getPreferredSystemLanguages()
APIを追加しました。これにより、ロケールをElectronに渡した後でも、VS Codeの言語パック推奨機能で使用するシステム言語を取得しながら、WCOを右側に配置することができます。
ビルトイン拡張機能は、vscode-nlsの代わりに新しいl10n APIを使用するようになりました
先月、新しい ローカライズ(l10n)APIを安定化しました。今月、Microsoft/vscode リポジトリにあるすべての拡張機能でそのAPIを採用しました。言語サーバーを vscode-nls
ではなく @vscode/l10n
を使用するように移行する必要があり、チームが所有する他の拡張機能(JS Debug、Python、Jupyter Notebooksなど)も同様ですが、すべての拡張機能に対して単一のローカライズストーリーに向けて正しい方向に進んでいます。
注目すべき修正
- 166171 拡張機能のヒントモーダルでデフォルトのスクロールバーを削除しました。
- microsoft/vscode-jupyter#11745 変数ビューアーが遅延と不安定性を引き起こす
謝辞
最後になりましたが、VS Codeのコントリビューターの皆様に心から感謝申し上げます。
Issue tracking
Issue trackingへの貢献
プルリクエスト
vscode
への貢献
- @Albert-cord: feat: Add wordBreak editorOption and use it to lineBreakComputer function PR #156242
- @andschwa (Andy Jordan): Support shell integration in Windows PowerShell PR #167023
- @babakks (Babak K. Shandiz)
- 🐛 Fix repeated CWD entries when creating new terminal in multi-root workspace PR #153204
- 🎁 Add
killOnServerStop
to debug configuration PR #163779 - 🎁 Add
search
to file location methods in tasks PR #165156 - 💄 Include file system path in debug mode's URI/link hovers PR #165709
- 🔨 Add "Focus Breadcrumb" to command palette PR #166461
- @CGNonofr (Loïc Mangeonjean): Standalone configuration: use resource and language PR #146522
- @chengluyu (Luyu Cheng): Support variable fonts (#_153291) PR #153968
- @cmarincia (Catalin Marincia): Add list of strings option to editor.fontFamily PR #164289
- @d0ggie (Pekka Seppänen): Restore bracket match CSS syntax (#_166109) PR #166141
- @dmartzol (Daniel Martinez Olivas)
- Moves css rules from links.ts to links.css PR #166258
- moves css rules PR #166532
- @ecstrema (Rémi Marche): Editor state change, break after match PR #166283
- @felixlheureux (Felix L'Heureux): Reset value to an empty string when undefined or null PR #165721
- @g1eny0ung (Yue Yang): fix: text overlay in replace input PR #162036
- @GauravB159 (Gaurav Bhagchandani)
- Use css variables for editor scrollbar PR #165464
- Register theme participant refactoring PR #165576
- @gjsjohnmurray (John Murray): Fix text of IW command palette entries (#_164860) PR #164863
- @guttyon: Temporarily disable input method interception. PR #159699
- @HiDeoo: Fix QuickPickItem JSDoc links in vscode.d.ts PR #164474
- @hughlilly (Hugh Lilly)
- Markdown lang preview settings description PR #165109
- adds to
files.exclude
desc re:explorer.excludeGitIgnore
PR #165111
- @jasonwilliams (Jason Williams): fix #154064 which was running the wrong taskgroups PR #164983
- @JayBazuzi (Jay Bazuzi): Change error message when launching a second admin instance PR #166146
- @Jaykul (Joel Bennett): Fix the PowerShell integration script #165022 PR #165023
- @jeanp413 (Jean Pierre)
- Fixes
Terminal: Focus Terminal Tabs view
command not working PR #164408 - Fixes task reconnection status does not work for default build task PR #165110
- Fixes terminal find widget not showing result count PR #166902
- Fixes
- @jkei0: Move css rules from selections.ts to selections.css PR #166407
- @jzyrobert (Robert Jin): Add explorer.autorevealExclude setting PR #136905
- @laurentlb (Laurent Le Brun)
- Comments view: add badge with the number of unresolved comments PR #164743
- Telemetry: log command execution time PR #165599
- @LoopThrough-i-j (Debayan Ganguly): Fix: New md file scrolls to Top. PR #164999
- @MarkZuber (Mark Zuber): Update bootstrap-node.js to check for Array.isArray PR #165289
- @marrej (Marcus Revaj): Add additional actions to CommentThread PR #162750
- @Mingpan: Fix arrows in side-by-side diff view PR #165423
- @miyaokamarina (Marina Miyaoka): Do not preprocess Unicode newlines in Markdown preview PR #166026
- @MonadChains (MonadChains)
- Implement Audio cues on cell execution completed PR #165442
- Fix custom zsh_history ignored PR #166813
- @mustard-mh (Huiwen): Fix tasks status incorrect #163393 PR #163952
- @n-gist (n-gist): Fix snippet overtyping feature PR #165871
- @najmiehsa
- Use CSS variables over registerThemingParticipant - minimap viewparts PR #165465
- Use CSS variables over registerThemingParticipant - rulers viewparts PR #165466
- @nisargjhaveri (Nisarg Jhaveri): Allow different exception breakpoints from multiple debuggers to be shown at once PR #158355
- @Okeanos (Nikolas Grottendieck): improve Git Bash integration on Windows (#_151105) PR #165428
- @pafernandez-oesia: Fix #165480 PR #165486
- @pingren (Ping): Fix KaTeX equation numbering in notebook preview PR #156276
- @prashantvc (Prashant Cholachagudda): Change sessionId with machineId for extension search telemetry PR #166355
- @QaidVoid: Reduce registerThemingParticipant PR #165575
- @r3m0t (Tomer Chachamu)
- Corrected checkboxes on autoLockGroups settings UI (Fixes #164367) PR #164369
- Correct updates to TestItem.error and TestItem.sortText (Fixes #166190) PR #166191
- @ramoncorominas (Ramón Corominas): Update messages.es.isl to add context menu hotkey PR #166010
- @rwe (Robert Estelle)
- shellIntegrationAddon.ts: only decode messages for VSCodeOScPt, not iTerm2 PR #165579
- shellIntegration.fish: escape values in "E" (executed command) and "P" (property KV) codes PR #165631
- shellIntegration-bash.sh: escape values in "E" (executed command) and "P" (property KV) codes PR #165632
- shellIntegration-rc.zsh: escape values in "E" (executed command) and "P" (property KV) codes PR #165633
- shellIntegration.ps1: escape values in "E" (executed command) and "P" (property KV) codes PR #165634
- shellIntegrationAddon: fix broken
deserializeMessage()
implementation + add tests PR #165635
- @sandersn (Nathan Shively-Sanders): Copy webServer from Typescript to VS Code PR #165771
- @SethFalco (Seth Falco): feat: add setting for multi cursor limit PR #149703
- @SphinxKnight (SphinxKnight): Nit: fix Tip blocks case PR #165223
- @ssigwart (Stephen Sigwart): Fix unwanted extra spaces when pasting code with JSDoc PR #136579
- @Timmmm (Tim): Fix sticky tabs option PR #157543
- @weartist (Han)
- Move css rules for #165169 PR #165595
- #165169 Move css rules from hover.ts into hover.css PR #166095
- Move css rules from inPlaceReplace.ts into inPlaceReplace.css PR #166098
- Adapter css variables PR #166279
- move css variables for diffEditor PR #166467
- @yiliang114 (易良): Only use string of the
remote/web/package.json
browser
field PR #165163 - @zeroimpl (Daniel Fiori): Separate tab size and indent size PR #155450
- @zhuowei: webview: ignore Ctrl+W and Ctrl+N in webview for PWA PR #164981
vscode-css-languageservice
への貢献
- @babakks (Babak K. Shandiz): ✋ Ignore missing standard properties in contexts with vendor-specific pseudo-elements PR #303
- @johnsoncodehk (Johnson Chu)
vscode-eslint
への貢献
- @aleclarson (Alec Larson): Introduce option to prevent underlining multiple lines PR #1528
- @MariaSolOs (Maria José Solano): Check for -- when disabling rules PR #1506
- @uhyo (uhyo): Add Experimental support of Flat Config PR #1522
vscode-js-debug
への貢献
- @xai (Olaf Lessenich): fix: use platform preferred case in launcher PR #1449
vscode-json-languageservice
への貢献
vscode-pull-request-github
への貢献
- @joshuaobrien (Joshua O'Brien): Narrow types in TimelineEvent so that it may be treated as a tagged union PR #4160
debug-adapter-protocol
への貢献
- @sztomi (Tamás Szelei): Update sdks.md - include dap-rs PR #349
- @WardenGnaw (Andrew Wang): Move EvaluateArguments context variables to end of enums PR #346
devcontainers/cli
への貢献
- @amurzeau (Alexis Murzeau): Handle Cygwin / Git Bash sockets forwarding on Windows PR #82
- @natescherer (Nate Scherer): Add --output option to devcontainer build PR #166
- @stuartleeks (Stuart Leeks): Add --additional-features option PR #171
- @chris-major-improbable (Chris Major): GPU requirement and auto-detect NVIDIA extensions PR #173
- @davidwallacejackson (David Jackson): Normalize feature permissions PR #233