2022年11月 (バージョン 1.74)
アップデート 1.74.1: このアップデートでは、これらの問題が解決されています。
アップデート 1.74.2: このアップデートでは、これらの問題が解決されています。
アップデート 1.74.3: このアップデートでは、このセキュリティ問題が解決されています。
ダウンロード: Windows: x64 Arm64 | Mac: ユニバーサル Intel シリコン | Linux: deb rpm tarball Arm snap
Visual Studio Code の2022年11月リリースへようこそ。このバージョンには、お役に立てる多くのアップデートが含まれています。主なハイライトをいくつかご紹介します。
- エクスプローラーの自動表示をカスタマイズ - エクスプローラーでどのファイルを表示するかを決定します。
- アクティビティバーとパネルのバッジを非表示 - ステータスバッジを切り替えてエディターUIを簡素化します。
- ノートブックと差分表示のオーディオキュー - セル実行結果、追加または削除された行の音。
- マージエディターの元に戻す/やり直し - マージ競合アクションをすばやく元に戻したり、再適用したりできます。
- 安全でないリポジトリの管理 - あなたが所有していないフォルダーでのGit操作を防止します。
- JavaScript console.profile コレクション - VS Codeで表示するためのCPUプロファイルを簡単に作成できます。
- returnからの定義へ移動 - JavaScript/TypeScript関数の先頭にジャンプします。
- リモートトンネル - SSH不要で、あらゆるマシンに接続できます。
- Jupyterノートブックの「マイコードのみ」デバッグ - Pythonライブラリコードへのステップインを回避します。
- Dev Container GPUサポート - Dev Container作成時にGPUを要求します。
これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com の 更新 にアクセスしてください。
Insiders: 新機能をいち早く試したいですか?夜間ビルドのInsidersをダウンロードして、利用可能になり次第、最新の更新を試すことができます。
アクセシビリティ
ノートブック実行のオーディオキュー
ノートブックセルの実行が完了したときにオーディオキューが再生されるようになりました。セルが成功したか失敗したかを示すために、キューは異なります。
差分レビューモードのオーディオキュー
差分エディターで次の差分へ移動がトリガーされると、カーソルが挿入された行にあるか削除された行にあるかを示す特定のオーディオキューが再生されます。
利用可能なオーディオキューについて知りたい場合は、ヘルプ: オーディオキューのリストドロップダウンから聞くことができます。

キーボードでナビゲート可能な設定エディターのインジケーター、ホバー、リンク
設定エディターのインジケーター、ホバー、リンクは、キーボードでナビゲートできるようになりました。また、設定エディター全体で一貫性を高めるために、一部のリンクのスタイルが調整されました。
設定エディターのインジケーターホバーは、タブストップとキーボードフォーカスの維持に関して、はるかに優れた動作をするようになりました。この改善された動作はまだ実験的であり、現在、VS Code全体すべてのホバーではなく、設定エディターのインジケーターホバーのみで有効になっています。

テーマ: Light Pink (vscode.dev でプレビュー)
Workbench
カスタムエクスプローラーの自動表示ロジック
多くの賛成票を得たissue #87956(「エクスプローラーのexplorer.autoRevealを特定のフォルダーごとに設定できるようにする」)は、新しい設定explorer.autoRevealExcludeの導入によって修正されました。この設定により、自動表示が有効になっている場合(explorer.autoReveal、デフォルトtrue)に、エクスプローラーで自動表示されるファイルを構成できます。autoRevealExclude設定は、ファイルの除外にglobパターンを使用し、files.excludeと同様に、when句による兄弟の一致もサポートします。
デフォルト値は、nodeおよびbowerモジュールを除外します。
{
  "explorer.autoRevealExclude": {
    "**/node_modules": true,
    "**/bower_components": true
  }
}
ビューコンテナーごとにバッジを非表示
ビューコンテナーを右クリックしてビューコンテナーを非表示にできたのと同様に、コンテナー上のバッジ(アクティビティバー、パネル、セカンダリサイドバーに表示)を非表示にできるようになりました。バッジは多くの場合、特定のビューコンテナーの数字、アイコン、または進行状況インジケーターを表示します。たとえば、ソース管理ビューの保留中の変更の数などです。

マージエディター
このリリースでは、マージエディターにいくつかの改善とバグ修正が含まれています。主なハイライトは次のとおりです。
- 元に戻す/やり直し機能が競合の処理済み状態を追跡するようになりました。
- 入力ビューの無視アクションを使用して、結果ビューの処理済みとしてマークアクションの代わりにベースバージョンを受け入れることができます。
- 両側で等しい変更が自動的に解決されるようになりました。
- git blame機能を提供する拡張機能が、受信、現在、ベースエディターで動作するようになりました。
ディスク上の拡張機能をインストール
開発者: 場所から拡張機能をインストール...コマンドを使用して、ローカルディスクドライブ上にある拡張機能をインストールできるようになりました。このコマンドは、プラットフォームフォルダーダイアログを開き、拡張機能の.vsixファイルの場所を選択します。
Editor
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 status が完了する前に、いくつかの Git 操作(ステージ、アンステージ、変更の破棄、コミット)についてソース管理ビューが楽観的に更新されるように変更を加え、よりスナップ性の高いソース管理ビューを実現しました。
この新機能はデフォルトで有効になっていますが、git.optimisticUpdate: false を使用して無効にすることができます。
コミットアクションボタンの改良
コミットアクションボタンがセカンダリコミットコマンド(例: コミット & 同期)を実行している場合、ボタンラベルが実行中のコマンドを正しく反映するようになりました。コミットボタンには、進行状況を示すアニメーションも表示されます。
ターミナル
ターミナルクイックフィックスの改善
ターミナルクイックフィックスは、エディターでのエクスペリエンスに合わせるために、コードアクションコントロールで表示されるようになりました。

ターミナルドロップダウンのタスクアクション
タスクの実行およびタスクの構成コマンドがターミナルドロップダウンに表示されるようになり、発見しやすさ、アクセスしやすさが向上しました。

リモート開発
リモートトンネルが、VS Code Stableでプレビュー機能として利用可能になりました。リモートトンネルを使用すると、SSHを必要とせずに、どのデバイスからでも、どこからでもVS Codeでマシンに安全にアクセスできます。リモートトンネルアクセスを有効にするには、次のいずれかを行います
- アカウントメニューまたはコマンドパレットからリモートトンネルアクセスをオンにするを選択します。
- VS Codeがインストールされ、PATHに含まれているマシンからcode tunnelを実行します。
- 新しいVS Code CLIをダウンロードし、./code tunnelを実行します。
トンネルアクセスがオンになると、vscode.devを使用するか、VS Codeデスクトップ内のリモート - トンネル拡張機能を使用して、どのデバイスからでもマシンに接続できます。
詳細については、機能の発表ブログ投稿またはリモートトンネルドキュメントを参照してください。
テーマ: Codesong (vscode.devでプレビュー)
注: スタンドアロンの
code-serverCLIを使用していた場合は、代わりに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": "https://:%s",
    "action": "debugWithEdge",
    "killOnServerStop": true
  }
}
上記の例では、元のLaunch Programデバッグセッションが停止すると、自動的に開始されたEdgeデバッグセッションも停止します。
フォーカスされたデバッグセッションの例外ブレークポイントを表示
以前は、2種類の異なるデバッグセッションを実行している場合の例外ブレークポイントの管理がうまくいきませんでした。現在は、コールスタックビューでデバッグセッションがフォーカスされると、そのセッションのデバッグタイプに対応する正しいブレークポイントセットが表示されます。

コメント
comments.visible
新しい設定comments.visibleを使用して、エディターのコメント機能(コメントバーとエディター内のコメントピークビュー)をオフにできます。セッション中にエディターのコメント機能をオン/オフするには、引き続きコメント: エディターのコメントを切り替えるコマンドを使用できます。コメントビューでコメントを選択すると、常にコメント機能がオンになります。
コメントビューのバッジ
コメントビューには、未解決のコメントの数を示すバッジが表示されます。

タスク
問題マッチャーの「検索」ファイル場所メソッド
以前、問題マッチャーは、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)を使用するか、return キーワード上でCmd/Alt + クリックするだけです。
ノートブック
カーネルピッカーの実験: 最近使用したカーネル
新しいノートブックカーネルピッカーでは、最近使用したカーネルがピッカーの上部に表示されます。これは、notebook.kernelPicker.type設定をmruに設定することで有効にできるオプトインの実験です。
使用されていないカーネルは、二次ピッカー別のカーネルを選択...に移動されます。このピッカーは、最新のJupyter拡張機能がインストールされている場合、すべてのカーネルをそのソース(例: Jupyterカーネル、Python環境など)でグループ化します。

皆様からのフィードバックをお待ちしております。VS Codeリポジトリで課題を作成してください。
Web 用 VS Code
ソース管理
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設定は対話型ウィンドウでのデバッグでのみ尊重されていましたが、現在はノートブックエディタでも利用できるようになりました。
ノートブックセルデバッグセッションの再起動のサポート
デバッグツールバーの再起動コマンドは、現在のデバッグセッションを再起動します。以前は、ノートブックのデバッグセッションでエラーが発生していましたが、現在はサポートされています。残念ながら、対話型ウィンドウでは適切にサポートできません。
この機能は、デバッグ、セルの編集、デバッグセッションの再起動を行って、編集を適用したセルを再度デバッグするワークフローで特に便利です。
リモート開発拡張機能
リモート開発拡張機能を使用すると、コンテナー、リモートマシン、またはLinux 用 Windows サブシステム (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 #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リポジトリで問題を報告してお知らせください。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 は、以下の拡張機能の貢献ポイントについて、アクティベーションイベントを自動的に入力するようになりました。
| 貢献ポイント | 推論されたアクティベーションイベント | 
|---|---|
| コマンド | onCommand | 
| authentication | onAuthenticationRequest | 
| 言語 | onLanguage | 
| customEditors | onCustomEditor | 
| views | onView | 
拡張機能の作者は、これらの推論されたアクティベーションイベントを拡張機能から安全に削除できるようになりました。もしそうする場合は、拡張機能が以前のバージョンのVS Codeと互換性があると見なされないように、VS Codeエンジンの要件を更新してください。
    "engines": {
        "vscode": "^1.74.0"
    },
ログ出力チャンネル
このマイルストーンでは、LogOutputChannel API を完成させました。この API を使用して、拡張機能からのメッセージを記録するために使用されるログ出力チャネルを作成できるようになりました。
また、env 名前空間のlogLevel プロパティとonDidChangeLogLevel イベントを完成させ、アプリケーションの現在のログレベルを示し、アプリケーションのログレベルが変更されたときにイベントを発生させます。
すべてのウェブビューで一貫したオリジン
前回のイテレーションでの作業に続き、VS Code のすべてのウェブビューはカスタムオリジンを維持しようとします。1.74 では、これはカスタムエディターで使用されるウェブビューにも拡張されます。
これにより、ウェブビューコンテンツがより多くのケースでキャッシュされるため、パフォーマンスが向上します。詳細と拡張機能の作者としての注意点については、以前のリリースノートを参照してください。
拡張機能のREADMEでのビデオタグのサポート
拡張機能は、READMEで<video>タグを使用できるようになりました。ビデオは、VS Code MarketplaceとVS Codeの拡張機能ビューページの両方でサポートされています。.gifと比較して、ビデオファイルは高品質で、多くの場合、サイズも小さくなります。音声を含めることもできます!
VS Code自体では、特定のビデオおよびオーディオ形式のみがサポートされていることに注意してください。現在、<video> srcおよびposterには相対パスではなくフルパスを使用する必要もあります。
コメントスレッドの追加アクション
新しいメニューロケーションcomments/commentThread/additionalActionsにより、拡張機能はコメントスレッドに常に表示されるボタンを貢献できます。

vsceから@vscode/vsceへの名称変更
VS Code の拡張機能マネージャーである vsce ツールは、@vscode/vsce に名称変更されました。これは、このツールをライブラリとして使用している人にとっては破壊的な変更です。CLI ツールは引き続き vsce と呼ばれ、npm install -g @vscode/vsce でインストールできます。
Debug Adapter Protocol
デバッグアダプタプロトコルにいくつかの明確化と新しいプロパティが追加されました。
- DataBreakpointInfoリクエストに新しいオプションの- frameIdプロパティが追加されました。クライアントはこのフラグを使用して、- name変数が含まれるスタックフレームを指定できます。
- readMemoryリクエストのファイル終端動作が指定されました。
エンジニアリング
プロパティとメソッドの名前の難読化
製品ビルドがプロパティとメソッドの名前を難読化するようになりました。これにより、メインバンドルのサイズが約13%(-1.5 MB)削減され、コードの読み込み時間が約5%短縮されました。
GitHub & Microsoft 認証拡張機能のバンドルサイズの改善
GitHub および Microsoft 認証拡張機能のバンドルサイズは、提供する機能と多くのケース(vscode.dev など)での起動時の重要性を考えると、私たちが望むよりも大きくなっていました。このマイルストーンでは、これらの拡張機能のサイズ削減に注力し、以下の結果が得られました。
- GitHub 認証: 93 KB -> 64.9 KB
- Microsoft 認証: 97 KB -> 57.7 KB
これは以下の方法で実現されました。
- Node.jsおよびWebで簡単に利用できる機能を提供するnodeモジュールへの依存(およびバンドル)をやめました(例: Crypto.randomUUID()を優先してuuidを削除)。
- Node.jsとWebの両方でnode-fetchを使用するのではなく、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月に有効化されていましたが、右から左へのシステム言語を使用しているユーザーで間違った側にレンダリングされ、ファイルと編集メニュー項目を覆い隠してしまうため、再度無効化されていました。
主な問題は、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 Notebookなど)も移行する必要がありますが、すべての拡張機能で単一のローカライゼーションのストーリーに向けて正しい方向に進んでいます。
注目すべき修正点
- 166171 拡張機能のヒントモーダルからデフォルトのスクロールバーを削除します。
- microsoft/vscode-jupyter#11745 変数ビューアーが遅延と不安定性を引き起こします
ありがとうございます
最後に、VS Codeの貢献者の皆様に心からの感謝を申し上げます。
問題追跡
問題追跡への貢献者
プルリクエスト
vscodeへの貢献者
- @Albert-cord: feat: wordBreak editorOption を追加し、lineBreakComputer 関数で使用する PR #156242
- @andschwa (Andy Jordan): Windows PowerShell でのシェル統合をサポート PR #167023
- @babakks (Babak K. Shandiz)
- 🐛 マルチルートワークスペースで新しいターミナルを作成する際のCWDエントリの繰り返しを修正 PR #153204
- 🎁 デバッグ設定にkillOnServerStopを追加 PR #163779
- 🎁 タスクのファイル場所メソッドにsearchを追加 PR #165156
- 💄 デバッグモードのURI/リンクホバーにファイルシステムパスを含める PR #165709
- 🔨 コマンドパレットに「パンくずリストにフォーカス」を追加 PR #166461
 
- @CGNonofr (Loïc Mangeonjean): スタンドアロン構成: リソースと言語を使用する PR #146522
- @chengluyu (Luyu Cheng): 可変フォントのサポート (#_153291) PR #153968
- @cmarincia (Catalin Marincia): editor.fontFamily に文字列リストオプションを追加 PR #164289
- @d0ggie (Pekka Seppänen): ブラケットマッチCSS構文を復元 (#_166109) PR #166141
- @dmartzol (Daniel Martinez Olivas)
- CSSルールをlinks.tsからlinks.cssに移動 PR #166258
- CSSルールを移動 PR #166532
 
- @ecstrema (Rémi Marche): エディターの状態変更、マッチ後の改行 PR #166283
- @felixlheureux (Felix L'Heureux): 未定義またはnullの場合に値を空文字列にリセット PR #165721
- @g1eny0ung (Yue Yang): fix: 置換入力のテキストオーバーレイ PR #162036
- @GauravB159 (Gaurav Bhagchandani)
- エディタスクロールバーにCSS変数を使用 PR #165464
- テーマ参加者リファクタリングの登録 PR #165576
 
- @gjsjohnmurray (John Murray): IWコマンドパレットエントリのテキストを修正 (#_164860) PR #164863
- @guttyon: 入力メソッドのインターセプトを一時的に無効にします。 PR #159699
- @HiDeoo: vscode.d.tsのQuickPickItem JSDocリンクを修正 PR #164474
- @hughlilly (Hugh Lilly)
- Markdown lang preview settings description PR #165109
- files.excludeの説明に- explorer.excludeGitIgnoreを追加 PR #165111
 
- @jasonwilliams (Jason Williams): 間違ったタスクグループが実行されていた #154064 を修正 PR #164983
- @JayBazuzi (Jay Bazuzi): 2番目の管理者インスタンスを起動するときのエラーメッセージを変更 PR #166146
- @Jaykul (Joel Bennett): PowerShell統合スクリプトを修正 #165022 PR #165023
- @jeanp413 (Jean Pierre)
- Terminal: Focus Terminal Tabs viewコマンドが機能しない問題を修正 PR #164408
- デフォルトのビルドタスクでタスク再接続ステータスが機能しない問題を修正 PR #165110
- ターミナル検索ウィジェットが結果数を表示しない問題を修正 PR #166902
 
- @jkei0: CSSルールをselections.tsからselections.cssに移動 PR #166407
- @jzyrobert (Robert Jin): explorer.autorevealExclude 設定を追加 PR #136905
- @laurentlb (Laurent Le Brun)
- コメントビュー: 未解決のコメント数を示すバッジを追加 PR #164743
- テレメトリー: コマンド実行時間をログに記録 PR #165599
 
- @LoopThrough-i-j (Debayan Ganguly): Fix: 新しいmdファイルがトップにスクロールする。 PR #164999
- @MarkZuber (Mark Zuber): bootstrap-node.js を Array.isArray のチェックのために更新 PR #165289
- @marrej (Marcus Revaj): CommentThread に追加アクションを追加 PR #162750
- @Mingpan: 並列差分表示の矢印を修正 PR #165423
- @miyaokamarina (Marina Miyaoka): MarkdownプレビューでUnicode改行を前処理しない PR #166026
- @MonadChains (MonadChains)
- セル実行完了時のオーディオキューを実装 PR #165442
- カスタムzsh_historyが無視される問題を修正 PR #166813
 
- @mustard-mh (Huiwen): fix tasks status incorrect #163393 PR #163952
- @n-gist (n-gist): スニペット上書き機能を修正 PR #165871
- @najmiehsa
- registerThemingParticipantの代わりにCSS変数を使用 - ミニマップビューパーツ PR #165465
- registerThemingParticipantの代わりにCSS変数を使用 - ルーラービューパーツ PR #165466
 
- @nisargjhaveri (Nisarg Jhaveri): 複数のデバッガからの異なる例外ブレークポイントを同時に表示できるようにする PR #158355
- @Okeanos (Nikolas Grottendieck): Windows上のGit Bash統合を改善 (#_151105) PR #165428
- @pafernandez-oesia: Fix #165480 PR #165486
- @pingren (Ping): ノートブックプレビューのKaTeX数式番号付けを修正 PR #156276
- @prashantvc (Prashant Cholachagudda): 拡張機能検索テレメトリーのsessionIdをmachineIdに変更 PR #166355
- @QaidVoid: registerThemingParticipantを削減 PR #165575
- @r3m0t (Tomer Chachamu)
- autoLockGroups 設定UIのチェックボックスを修正 (Fixes #164367) PR #164369
- TestItem.error と TestItem.sortText の正しい更新 (Fixes #166190) PR #166191
 
- @ramoncorominas (Ramón Corominas): messages.es.islを更新してコンテキストメニューのホットキーを追加 PR #166010
- @rwe (Robert Estelle)
- shellIntegrationAddon.ts: VSCodeOScPtのメッセージのみをデコードし、iTerm2はデコードしない PR #165579
- shellIntegration.fish: "E" (実行されたコマンド) と "P" (プロパティ KV) コードの値をエスケープ PR #165631
- shellIntegration-bash.sh: "E" (実行されたコマンド) および "P" (プロパティ KV) コードの値をエスケープ PR #165632
- shellIntegration-rc.zsh: "E" (実行されたコマンド) および "P" (プロパティ KV) コードの値をエスケープ PR #165633
- shellIntegration.ps1: "E" (実行されたコマンド) と "P" (プロパティ KV) コードの値をエスケープ PR #165634
- shellIntegrationAddon: 壊れたdeserializeMessage()の実装を修正 + テストを追加 PR #165635
 
- @sandersn (Nathan Shively-Sanders): webServer を TypeScript から VS Code にコピー PR #165771
- @SethFalco (Seth Falco): feat: マルチカーソル制限の設定を追加 PR #149703
- @SphinxKnight (SphinxKnight): 軽微な修正: Tipブロックの大文字/小文字を修正 PR #165223
- @ssigwart (Stephen Sigwart): JSDoc付きコードを貼り付けた際の不要な余分なスペースを修正 PR #136579
- @Timmmm (Tim): sticky tabsオプションを修正 PR #157543
- @weartist (Han)
- #165169 の CSS ルールを移動 PR #165595
- #165169 CSSルールをhover.tsからhover.cssに移動 PR #166095
- CSSルールをinPlaceReplace.tsからinPlaceReplace.cssに移動 PR #166098
- アダプター CSS 変数 PR #166279
- diffEditorのcss変数を移動 PR #166467
 
- @yiliang114 (易良): remote/web/package.jsonのbrowserフィールドの文字列のみを使用する PR #165163
- @zeroimpl (Daniel Fiori): タブサイズとインデントサイズを分離 PR #155450
- @zhuowei: webview: PWAのwebviewでCtrl+WとCtrl+Nを無視する PR #164981
vscode-css-languageserviceへの貢献者
- @babakks (Babak K. Shandiz): ✋ ベンダー固有の疑似要素を持つコンテキストで標準プロパティの欠落を無視 PR #303
- @johnsoncodehk (Johnson Chu)
vscode-eslintへの貢献者
- @aleclarson (Alec Larson): 複数行のアンダーラインを防止するオプションを導入 PR #1528
- @MariaSolOs (Maria José Solano): ルールを無効にする際に -- をチェック PR #1506
- @uhyo (uhyo): Flat Configの実験的サポートを追加 PR #1522
vscode-js-debugへの貢献者
- @xai (Olaf Lessenich): fix: ランチャーでプラットフォームの推奨ケースを使用 PR #1449
vscode-json-languageserviceへの貢献
vscode-pull-request-githubへの貢献者
- @joshuaobrien (Joshua O'Brien): TimelineEvent の型を絞り込み、タグ付きユニオンとして扱えるようにする PR #4160
debug-adapter-protocolへの貢献者
- @sztomi (Tamás Szelei): sdks.md を更新 - dap-rs を含める PR #349
- @WardenGnaw (Andrew Wang): EvaluateArgumentsコンテキスト変数をenumの最後に移動 PR #346
devcontainers/cliへの貢献
- @amurzeau (Alexis Murzeau): WindowsでのCygwin / Git Bashソケット転送を処理 PR #82
- @natescherer (Nate Scherer): devcontainer buildに--outputオプションを追加 PR #166
- @stuartleeks (Stuart Leeks): --additional-featuresオプションを追加 PR #171
- @chris-major-improbable (Chris Major): GPU要件とNVIDIA拡張機能の自動検出 PR #173
- @davidwallacejackson (David Jackson): 機能の権限を正規化 PR #233