2021年2月 (バージョン 1.54)

アップデート 1.54.1: このアップデートでは、拡張機能の依存関係に関する問題に対処しています。

アップデート 1.54.2: このアップデートでは、これらの問題に対処しています。

アップデート 1.54.3: このアップデートでは、この問題に対処しています。

ダウンロード: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap


Visual Studio Code 2021年2月リリースへようこそ。このバージョンには多くのアップデートが含まれており、その中でも主なハイライトをいくつかご紹介します。

これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com更新情報 をご覧ください。

ライブ配信にご参加ください: 3月11日(木)午前8時(太平洋時間)(ロンドン午後4時)に VS Code チームのライブ配信 で、このリリースの新機能のデモをご覧になり、ライブで質問してください。

Insiders: 最新機能をいち早く試したいですか? 夜間の Insiders ビルドをダウンロードして、最新のアップデートをいち早くお試しください。

Apple Silicon

今回のイテレーションで、初の安定版 Apple Silicon ビルドをリリースできることを嬉しく思います。M1チップを搭載した Mac をお使いのユーザーは、Rosetta によるエミュレーションなしで VS Code を使用できるようになり、VS Code の実行時のパフォーマンス向上とバッテリー寿命の延長を実感できるでしょう。Insiders ビルドによるセルフホスティングと、イテレーションの初期段階での問題報告にご協力いただいたコミュニティに感謝します。

macOS 用 VS Code のデフォルトダウンロードは、すべての Mac でネイティブに動作するユニバーサルビルドになりました。ダウンロード ページでは、Intel または Apple Silicon 向けのアーキテクチャ固有のビルドへのリンクがさらに用意されており、ユニバーサルパッケージよりもダウンロードサイズが小さくなっています。

Website showing the new downloads view for Apple Silicon builds

Website showing the default download for macOS

アクセシビリティ

ツールバーとタブが1つのタブストップを占める

ワークベンチ内のすべてのツールバーが標準的なナビゲーション動作に従うようになり、ツールバーはタブオーダーで1つの位置のみを占め、矢印キーでナビゲートできるようになりました。ツールバーにフォーカスが当たると、矢印キーを使用してツールバー内の特定の項目にフォーカスを移動する必要があります。この変更の結果、ワークベンチのタブストップが大幅に減り、すべてのパートをナビゲートしやすくなりました。

一貫性を保つため、同じ変更がタブ領域にも適用されました。したがって、タブ領域全体が1つのタブストップのみになり、タブ間のキーボードナビゲーションは左右の矢印キーで行う必要があります。

Windows での単語ナビゲーション

Windows での単語ナビゲーションの方法を改善し、Windows のスクリーンリーダーが Electron ベースのアプリケーションに期待するものと一致するようにしました。単語ナビゲーションを使用すると、各単語がスクリーンリーダーによって適切に読み上げられるようになります。

この変更により、以下のコマンドを非推奨とします。今後も動作しますが、将来的に削除する可能性があります。

  • cursorWordAccessibilityLeft
  • cursorWordAccessibilityLeftSelect
  • cursorWordAccessibilityRight
  • cursorWordAccessibilityRightSelect

非 Windows プラットフォームはすでに期待どおりに動作していたため、変更は加えていません。

ビューとボタンのロールの改善

ユーザーからのフィードバックに基づき、ワークベンチ全体の複数のビューとボタンのロールを改善しました。アクティビティバーサイドバーパネルrole:none が設定され、スクリーンリーダーの読み上げが少なくなるようにしました。アクティビティバー内の 管理 および アカウント ボタンは、ポップアップがあることを適切にアナウンスするようになりました。

統合ターミナル

ウィンドウのリロード時にターミナルプロセスを保持

拡張機能のインストールにリロードが必要な場合など、ウィンドウのリロード時にローカルターミナルプロセスが復元されるようになりました。ターミナルは再接続され、アクティブなタブや分割されたターミナルの相対的な寸法など、ターミナルの UI 状態が復元されます。

In a local window, two split terminals are created and resized. On reload, the layout appears unchanged.

この機能は、terminal.integrated.enablePersistentSessions を false に設定することで無効にできます。

Windows のパフォーマンス向上

新しいターミナルプロセスレイアウトのおかげで、ターミナルプロセスからの頻繁な pty データイベントの処理がより迅速になるはずです。これは、Windows の conpty によって提供されるイベントが小さいため、他のプラットフォームよりも Windows に大きな影響を与えることが予想されます。

環境変更が必要なターミナルを自動的に再起動

最近、拡張機能がターミナルの環境に影響を与えることを可能にする新機能がロールアウトされました。これは、さまざまな言語拡張機能や組み込みの git 拡張機能で使用され、VS Code を git 認証プロバイダーとして有効にし、サインインの必要性をなくします。以前は、ターミナルの環境が古くなっていることを示すために、右上に控えめな ⚠️ アイコンを表示するという UX でした。環境変更は重要である場合もそうでない場合もあるため、インジケーターは控えめでした。

まだ操作されていない場合に、古い環境を持つターミナルを自動的に再起動するように調整しました。これにより、ちらつきが発生する可能性がありますが、拡張機能のターミナル統合がよりシームレスになりました。たとえば、WSL ウィンドウの最初のターミナルは、ターミナルに入力する前に再起動が発生した場合、Git 認証エラーを表示しなくなるはずです。

ワークベンチ

Emmet

アブリービエーションでラップ コマンドと 各行をアブリービエーションでラップ コマンドが、単一の アブリービエーションでラップ コマンドに統合され、どちらのラップコマンドを使用するかについての混乱を軽減しました。さらに、アブリービエーションでラップ コマンドで、プレビューの空白が適切に表示されるようになりました。

emmet.extensionsPath 設定で、文字列だけでなくパスの配列も指定できるようになりました。したがって、Settings Sync と組み合わせることで、マシンごとに設定を更新することなく、マシンに応じて異なるスニペットファイルを指定できます。

製品アイコンテーマ

最初の製品アイコンテーマが拡張機能マーケットプレイスで利用可能になりました。テーマの作者の皆様、素晴らしい作品をありがとうございます!

テーマを選択または検索するには、コマンドパレットまたは設定ギアから 基本設定: 製品アイコンテーマ コマンドを使用します。

Product icon themes in the Extension Marketplace

コンテキストキーの IntelliSense

VS Code は、when 句を使用して、キーバインディングを有効または無効にします。拡張機能も when 句を使用して、メニュー および ビュー のコントリビューションを制御します。エディターがそれらの補完を提供するようになったため、これらの when 句の作成がはるかに簡単になりました。

keybindings.json のコンテキストキーの IntelliSense テーマ: GitHub ライトテーマ、フォント: FiraCode

エディターを開く 新規無題ファイルアクション

エディターを開く ビューのタイトル領域に、新規無題ファイル アクションが追加されました。

New untitled file in Open Editors view

更新されたアプリケーションメニュー設定

アプリケーションメニューの表示設定である window.menuBarVisibility 設定が更新され、オプションがより適切に反映されるようになりました。主に2つの変更が行われました。

まず、設定の default オプションの名前が classic に変更されました。

次に、アプリケーションメニューバーの メニューバーを表示 エントリが、classic オプションと compact オプションを切り替えるようになりました。完全に非表示にするには、設定を更新するか、compact モードでアクティビティバーのコンテキストメニューを使用できます。

アプリケーションメニューのメニューバーを表示エントリ テーマ: GitHub ライトテーマ

WebView のキャッシュの改善

WebView 内のローカルファイルのキャッシュを改善しました。WebView がディスクからファイルをリロードする場合、ETag を使用して、ファイルが変更されていない場合は再読み込みを回避するようになりました。これにより、データ転送を削減し、特にリモートワークスペースでの応答時間を改善できます。

このキャッシュは現在、既存の WebView がリソースをリロードする場合にのみ適用されます。以前に同様の WebView を作成した拡張機能に属する WebView であっても、新しく作成された WebView には適用されません。

ワークスペース検索アクションの変更

既存の workbench.view.search を変更し、選択したテキストを検索入力に配置するのではなく、入力を開くようにしました。選択したテキストを使用し、search.mode 設定を尊重した新しい検索を作成するには、workbench.action.findInFiles を使用する必要があります。

修飾キーのみのキーバインディング

shift shiftalt altctrl ctrlcmd cmd / meta meta / win win など、重複する修飾キーのキーバインディングを定義できるようになりました。これらのキーバインディングは、keybindings.json に手動で入力できます。例:

{ "key": "shift shift", "command": "workbench.action.quickOpen" }

更新されたリスト/ツリー UI

リスト/ツリーのスタイルを更新して、ネイティブのフォーカスと選択インジケーターに合わせました。フォーカスされた要素は、アウトラインカラーでレンダリングされるようになりました。

List/tree UI showing focused element

破壊的変更

テーマの公開者は、list.focusBackground カラーのカスタマイズを quickInput.list.focusBackground カラーに置き換えるだけで、このスタイルを採用することをお勧めします。例については、この コミット を確認してください。

テーブルウィジェット

既存のリストウィジェットの上に構築された新しいテーブルウィジェットを導入しました。これにより、リスト要素をレンダリングするのと同じパフォーマンスで表形式のデータをレンダリングできます。今のところ、リモート機能のポートビューで使用されています。

Table widget view of remote Ports

はじめに

起動時に表示する新しいエディターである「はじめに」エディターを実験的に導入しています。これは、VS Code の一部の機能を新規ユーザーにとってより親しみやすいものにすることを目的としています。一部の Insiders ユーザーはすでに目にしているかもしれませんが、このイテレーションの過程でより多くの安定版ユーザーに徐々にロールアウトされる予定です。workbench.startupEditor 設定を gettingStarted に変更したり、元に戻したりすることで、新しい動作を常にオプトインまたはオプトアウトできます。

Getting Started experience walkthrough

タイムラインビュー

エクスプローラービューでファイルを比較するのと同様に、比較のために選択 コマンドと 選択と比較 コマンドを使用して、Git 履歴タイムラインエントリ間で変更を比較できるようになりました。この機能を使用すると、Git ファイル履歴の任意の2つのコミット間のすべての変更をすばやく確認できます。

Select for Compare command in context menu

デフォルトのサッシュホバーボーダーカラー

1.52 リリースでは、サッシュのホバーボーダーカラートークン(sash.hoverBorder)を導入しましたが、デフォルトを設定しませんでした。すべてのテーマでデフォルトでこの色が表示されるようになりました。

Sash hover border color

デバッグ

ブレークポイントビューの改善

ブレークポイントを削除するための新しいインラインアクション

ブレークポイントビュー にブレークポイントを削除するためのインラインアクション X を追加しました。このアクションにより、ブレークポイントの削除が容易になるはずです。

Breakpoints view showing X next to selected breakpoint

例外フィルターのヘルプテキストのサポート

最近、ブレークポイントビュー で例外フィルターの条件を編集するサポートを追加しました。

これらの条件をより見つけやすくし、構文をわかりやすくするために、VS Code は例外フィルターにホバーを表示し、条件テキストボックスにプレースホルダーテキストを表示するようになりました。

両方の情報は基盤となるデバッグ拡張機能によって提供されるため、一般的なメッセージよりもはるかに具体的(したがって役立つ)になる可能性があります。

この新機能は Debug Adapter Protocol への追加(下記参照)に基づいているため、デバッグ拡張機能のオプトインが必要です。このリリースでは、VS Code の組み込み JavaScript デバッガーのみが新機能をサポートしています。

Breakpoint placeholder

新しい設定とその他の改善

デバッグコンソールで同一の行を折りたたむ

デバッグコンソールで同一の行を折りたたみ、バッジで多数の出現回数を表示するかどうかを制御する新しい設定 debug.console.collapseIdenticalLines があります。デフォルトでは折りたたむ設定になっています。

デバッグ前に保存するエディターを制御

デバッグ開始前に保存するエディターを制御する新しい設定 debug.saveBeforeStart があります。この設定には、次の値があります。

  • allEditorsInActiveGroup: アクティブなグループ内のすべてのエディターを保存します。デフォルト値。
  • nonUntitledEditorsInActiveGroup: アクティブなグループ内のすべてのエディターを保存しますが、無題のエディターは除きます。
  • none: エディターを保存しません。

PowerShell デバッガーは保存されていないファイルのデバッグをサポートしているため、この設定は PowerShell デバッグに役立ちます。

フレーム再起動アクションの有効化の改善

Debug Adapter Protocol への新しい追加により、デバッグ拡張機能は、選択されたスタックフレームで「フレーム再起動」アクションが利用可能かどうかを VS Code UI に伝えることができるようになりました。VS Code は、再起動できないスタックフレームの場合、呼び出しスタックビュー のフレーム再起動インラインアクションを無効にするようになりました。

たとえば、JS-Debug 拡張機能はこれを採用しており、非同期スタックトレースはフレーム再起動アクションを無効にするようになりました。

言語

TypeScript 4.2

VS Code に TypeScript 4.2.2 が同梱されるようになりました。このメジャーアップデートには、TypeScript 言語の多くの改善、および JavaScript および TypeScript ツールに対する多くの改善とバグ修正が含まれています。

TypeScript 4.2 の詳細については、TypeScript ブログ をご覧ください。

不足している関数を宣言するためのクイックフィックス

新しい 不足している関数宣言を追加 クイックフィックスは、不足している関数のスタブを作成します。たとえば、不足している関数 add の呼び出しがある場合

const x: number = add(1, 2);

add不足している関数宣言を追加 を使用すると、次のようになります。

const x: number = add(1, 2);
function add(arg0: number, arg1: number): number {
  throw new Error('Function not implemented.');
}

コードを記述中にこのクイックフィックスを使用して、呼び出しシグネチャに基づいて関数のスタブをすばやく作成できます。

JavaScript でこのクイックフィックスを使用するには、型チェックを有効にする必要があります。

JS Doc テンプレートが @returns を生成するようになりました

注釈が付けられている関数に return ステートメントが含まれている場合、JS Doc テンプレートに @returns が自動的に含まれるようになりました。たとえば、関数 getViz の場合

function getViz(el) {
  return el?.viz;
}

生成された JSDoc テンプレートは次のようになります。

/**
 *
 * @param {*} el
 * @returns
 */
function getViz(el) {
  return el?.viz;
}

JSDoc コメントの @returns を無効にするには、javascript.suggest.jsdoc.generateReturns および typescript.suggest.jsdoc.generateReturns を使用します。

非推奨の DOM API がマークされるようになりました

非推奨の DOM メソッドが、候補とコードで非推奨としてマークされるようになりました

document.clear being marked as deprecated in code

非推奨のプロパティと関数をエディターに表示しないようにするには、editor.showDeprecated: false を設定します。

ノートブック

ノートブックの自動リロード

ノートブックは、ファイルがディスク上で変更されたとき、および保存されていない変更がない場合に自動的にリロードされるようになりました。これにより、バージョン管理下にあるノートブックの操作が大幅に簡素化されるはずです。

大きなセルのフォーカスの改善

大きなノートブックセルにフォーカスが当たっている場合、セルの上部と下部がビューから外れている場合でも、どのセルにフォーカスが当たっているかをより明確に識別できるようになりました。フォーカスされたセルの左右に境界線が表示されるようになりました。

Notebook focus for a large cell

CSS/LESS/SCSS および HTML のホバー

HTML および CSS のホバーの内容を微調整して、次のことができるようになりました。

  • MDN からのドキュメントを表示しない
  • MDN ページへのリンクを表示しない

CSS のホバーを変更するには、css.hover.documentation および css.hover.references 設定を使用します。これらの言語の設定を変更するには、csshtmlcssscss、または less に置き換えます。

プレビュー機能

ノートブックの拡張可能な Markdown レンダラー

今回のイテレーションでは、ノートブックセル用の Markdown レンダラーを拡張可能にすることを検討しました。たとえば、下のスクリーンショットでは、ノートブックセルで数式を表示するように VS Code の Markdown レンダラーを拡張しました。

A math formula being rendered in a notebook cell

Markdown レンダラーを拡張可能にするために、すべてのノートブック Markdown をレンダリングするために Markdown It を使用することを検討しました。また、レンダリングされた Markdown をノートブックのバックレイヤー WebView に移動することも検討しました。

公式 API を公開する準備はまだできていませんが、3月もこの調査を続ける予定です。ドキュメント化されていない notebook.experimental.useMarkdownRenderer: true 設定を使用すると、今日から新しい拡張可能な Markdown レンダラーを試すこともできます。

拡張機能への貢献

Brackets

Brackets ソースコードエディターから移行してきた開発者は、Brackets キーマップ 拡張機能を使用することで、VS Code で同じキーボードショートカットを引き続き使用できます。CSS を操作したり、ライブプレビューを作成したりするための拡張機能をバンドルした Brackets 拡張機能パック もあります。

Brackets Extension Pack in the Marketplace

GitHub Pull Requests and Issues

GitHub Pull Requests and Issues 拡張機能の開発が続けられています。この拡張機能を使用すると、プルリクエストと issue を操作、作成、管理できます。

すべての新機能と更新プログラムの詳細については、拡張機能の 0.24.0 リリースの変更ログ を参照してください。

リモート開発

リモート開発拡張機能 の開発が続けられています。これにより、コンテナー、リモートマシン、または Windows Subsystem for Linux (WSL) をフル機能の開発環境として使用できます。

1.54 の機能ハイライトには、以下が含まれます。

  • ポートビューのテーブルレイアウト
  • Remote - SSH: X11 転送
  • WSL: WSL 2 サポートの改善

新しい拡張機能とバグ修正の詳細については、リモート開発リリースノート を参照してください。

拡張機能の作成

エディタータイトルのメニューと「実行」サブメニューの制限

エディターツールバー(editor/title)のスペースには限りがあります。したがって、以下を行いました。

  • オーバーフロー動作を実装しました。アイコンでレンダリングされるアクションのグループであるプライマリグループが9個のコマンドを超えると、追加のコマンドはすべて ... メニューにオーバーフローします。
  • editor/title/run サブメニューを追加しました。拡張機能の作成者には、以前の リリース で推奨していたように、実行コマンドとデバッグコマンドを editor/title メニューではなく、このメニューにコントリビュートするように依頼します。さらに、コマンドを正しい位置に表示するために、マジックグループ値 1_run@10 および 1_run@20 を使用する必要はなくなりました。

Run dropdown menu

また、実行サブメニューは動的であり、最初の子が唯一の子である場合、最初の子に置き換わることに注意してください。

認証プロバイダー API

認証プロバイダーを登録できるようになりました。これは、他の拡張機能がサービスに対して認証を実行するために使用できます。

拡張機能マーケットプレイスの新しいフィードバックチャネル

拡張機能マーケットプレイスに関連する issue 用の新しい 公開リポジトリ があります。技術的な問題がある場合、フィードバックを提供したい場合、または機能リクエストがある場合は、issue をオープン してください。

更新された codicon

次の新しいアイコンを codicon ライブラリ に追加しました。

  • debug-rerun
  • gather
  • git-pull-request-create
  • notebook-template
  • run-above
  • run-below
  • type-hierarchy
  • type-hierarchy-sub
  • type-hierarchy-super
  • variable-group

Codicons for tasks

また、一貫性を保つために、次のアイコンを更新しました。

  • debug-alt-small
  • debug-alt
  • debug-rerun
  • play-circle
  • play
  • run-above
  • run-all
  • run-below

Consistent codicons

提案された拡張機能API

すべてのマイルストーンには、新しい提案された API が付属しており、拡張機能の作成者はそれらを試すことができます。いつものように、フィードバックをお待ちしています。提案された API を試すには、次の手順を実行する必要があります。

  • 提案された API は頻繁に変更されるため、Insiders ビルドを使用する必要があります。
  • 拡張機能の package.json ファイルに、この行 "enableProposedApi": true が必要です。
  • vscode.proposed.d.ts ファイルの最新バージョンをプロジェクトのソースロケーションにコピーします。

提案された API を使用する拡張機能を公開することはできません。次のリリースで破壊的な変更が発生する可能性があり、既存の拡張機能を破壊することは決して望んでいません。

アイコンコントリビューションポイント

アイコンコントリビューションポイントを使用すると、拡張機能は ID とデフォルトアイコンを指定して新しいアイコンを定義できます。そのアイコン ID は、拡張機能(または拡張機能に依存する他の拡張機能)が ThemeIcon を使用できる場所で使用できます。Markdown 文字列(例: "$(distro-ubuntu)" Ubuntu 20.04")と、ThemeIcon を受け取るすべての場所(例: new ThemeIcon("distro-ubuntu"))。

製品アイコンテーマは、(アイコン ID について知っている場合)アイコンを再定義できます。

詳細とフィードバックについては、issue 114942 を参照してください。

インライン値プロバイダー API

現在、VS Code デバッガーの インライン値を表示 機能は、VS Code コアの汎用的な実装に基づいており、設定によるカスタマイズや拡張機能による拡張性は提供されていません。その結果、すべての言語に完全に適合するわけではなく、基盤となるソース言語を理解していないため、誤った値を表示することがあります。このため、組み込みの実装を完全に置き換えるか、実装の一部をカスタムコードに置き換えることを可能にする拡張機能 API の開発に取り組んでいます。

今回のマイルストーンでは、提案された API の最初の実装を公開しました。

インライン値プロバイダー API の概要を以下に示します。

  • InlineValuesProvider は言語に登録する必要があります。
  • 特定のドキュメントに対して、InlineValuesProvider はインライン値を表示する必要があるすべての言語要素を見つける必要があります。
  • すべての要素に対して、VS Code に表示する情報を指示する InlineValue 記述子オブジェクトを返す必要があります。現在、3種類の InlineValue オブジェクトがサポートされています。
    • InlineValueText: 表示する完全なテキスト。
    • InlineValueVariableLookup: VS Code がその値を見つけるために [変数] ビューで検索しようとする変数の名前。名前と値は、「name = value」の形式で表示されます。
    • InlineValueEvaluatableExpression: VS Code が評価のためにデバッガーに送信する式。式と結果は、「expression = result」の形式で表示されます。

次のスニペット(Mock Debug から)は、「markdown」ファイル用の最小限のインライン値プロバイダーを示しています。これは、正規表現を使用して「変数」を見つけ、変数ビュー 経由でそれらの値を見つけるように VS Code に指示します。

vscode.languages.registerInlineValuesProvider('markdown', {
  provideInlineValues(
    document: TextDocument,
    viewport: Range,
    context: InlineValueContext
  ): ProviderResult<InlineValue[]> {
    const allValues: InlineValue[] = [];
    for (let l = 0; l <= context.stoppedLocation.end.line; l++) {
      const line = document.lineAt(l);
      var regExp = /local_[ifso]/gi; // match variables of the form local_i, local_f, Local_i, LOCAL_S...
      do {
        var match = regExp.exec(line.text);
        if (match) {
          const varName = match[0];
          const varRange = new Range(l, match.index, l, match.index + varName.length);
          allValues.push(new InlineValueVariableLookup(varRange, varName));
        }
      } while (match);
    }
    return allValues;
  }
});

そして、インライン値プロバイダーの動作は次のとおりです。

Debugger shows inline values

この提案された API に関するフィードバックを提供したい場合は、この issue にコメントを追加してください。

テスト

VS Code でのテスト の進捗状況を引き続き確認しています。今月は、VS Code および拡張機能 API の基本的なエクスペリエンスの洗練に焦点を当てました。また、テストに関する 仮ドキュメント を公開しました。これは、API が安定し続けるにつれて充実していく予定です。

Language Server Protocol

診断プルモデル の最初の提案が、今後の 3.17 リリースに向けて実装されました。この提案は、VS Code LSP ライブラリ の次のバージョンで利用できます。

Debug Adapter Protocol

ExceptionBreakpointsFilter のヘルプテキストプロパティの追加

2つのオプションの UI 属性 description および conditionDescriptionExceptionBreakpointsFilter に追加されました。

これらの属性を使用すると、クライアントは例外ブレークポイントに関する追加情報を表示できます。description プロパティはホバーに表示でき、conditionDescription は条件を編集できるテキストボックスのプレースホルダーテキストとして使用できます。

setExceptionBreakpoints リクエストの説明を改善しました

setExceptionBreakpoints リクエストの説明を改善し、ユーザーが無効な例外ブレークポイント条件を入力した場合にアダプターがどうすべきかのガイダンスを追加しました。

スタックフレームの新しい canRestart プロパティ

新しいオプションのブール値プロパティ canRestart がスタックフレームに追加されました。これは、スタックフレームが restart リクエストで再起動できるかどうかを示します。この情報に基づいて、クライアントは **フレームの再起動** コンテキストメニューアクションを有効または無効にできます。

エンジニアリング

Electron sandbox の進捗状況

今月のマイルストーンでは、Electron の sandbox および context isolation 機能を有効にするための VS Code ウィンドウの準備を継続しました。

具体的には

  • レンダラーにあったネイティブモジュールの要件の一部を他のプロセスに移動することができました。
  • sandbox が有効になっている場合に MessagePort 通信チャネルが機能するように実装されました。

新しいターミナルプロセスレイアウト

ターミナルプロセスは、ウィンドウプロセスではなく、新しい "pty host" プロセスで生成されるようになりました。この変更は Electron sandbox の一部であるだけでなく、ターミナルの安定性とパフォーマンスも向上させるはずです。

Windows インストーラーが Windows Package Manager に公開されました

x86 および x64 用の Windows ユーザーおよびシステムインストーラーが、Windows Package Manager に公開されるようになりました。winget ツールを使用して、すべての Visual Studio Code インストーラー (`winget search vscode`) を検索し、公開されているインストーラーをインストールできます。

TypeScript 4.3 を使用した VS Code のビルド

VS Code は現在、TypeScript 4.3 の nightly ビルドを使用してビルドされています。これにより、TypeScript チームの最新の作業を検証し、新しい変更に関するフィードバックを提供できます。

最新の TypeScript バージョンは、条件付きステートメントで await が欠落しているケースをいくつか検出するのに役立ちました。

yarn.lock の変更を防止

サプライチェーンのセキュリティを向上させるために、yarn.lock ファイルに対する PR を防止する CI を導入しました。

デフォルトブランチ: main

microsoft/vscode を含む、すべてのリポジトリのデフォルトブランチを main にリネームし始めました。この取り組みは約 60% 完了しています。

ドキュメント

教室での VS Code と Python

ハーベイ・マッド大学のコンピュータサイエンスの教授が、Python を使用した入門 CS クラスで VS Code を使用しているケーススタディをお読みください。教授が学生に推奨する設定、役立つ拡張機能、無料の自習型 Python およびデータサイエンスのレッスンについて学びましょう。

拡張機能のトラブルシューティングに関するブログ記事

誰もが VS Code 拡張機能をインストールして使用するのが好きです。しかし、多くの拡張機能をインストールしている場合、エディターの動作がおかしくなることがあり、その動作が特定の拡張機能によって引き起こされているかどうかを知りたいと思うでしょう。拡張機能の二分割ユーティリティの以前の発表を見逃した場合は、「二分割による拡張機能の問題の解決」ブログ記事をお読みください。この記事では、「問題のある」拡張機能を迅速にトラブルシューティングし、拡張機能の作者にフィードバックを提供するのに役立つ方法について説明しています。

注目すべき修正

  • 100151: menu key applied to the wrong item in explorer
  • 112055: Debug opens a new integrated terminal for each Python session
  • 114881: Preserve symlinks when copying folders or files
  • 114933: "Task cannot be tracked" frustration
  • 115922: Cursor keys not working for filtering in File Explorer
  • 116037: No Link hovers shown for output in the Debug Console
  • 116101: I can't find target command in command search because the English description has disappeared
  • 116932: Throwing custom exceptions from contributed command execution shows cryptic error popup

謝辞

最後になりましたが、今月 VS Code に貢献してくれた以下の皆様に心から *感謝申し上げます*。

issue tracking への貢献

vscode への貢献

language-server-protocol への貢献

vscode-languageserver-node への貢献

vscode-emmet-helper への貢献

vscode-html-languageservice への貢献

vscode-js-debug への貢献

vscode-textmate への貢献

vscode-vsce への貢献