VS Codeのエージェントモードを拡張するには、を試してください!

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でネイティブに動作するUniversalビルドになりました。ダウンロードページでは、Universalパッケージよりもダウンロードサイズが小さいIntelまたはApple Silicon向けのアーキテクチャ固有ビルドへのリンクを見つけることができます。

Website showing the new downloads view for Apple Silicon builds

Website showing the default download for macOS

アクセシビリティ

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

Workbenchのすべてのツールバーは標準のナビゲーション動作に従うようになり、タブオーダーで単一の位置を占め、矢印キーでナビゲートできるようになりました。ツールバーにフォーカスが当たっている場合、矢印キーを使用してツールバー内の特定の項目にフォーカスを移動する必要があります。この変更の結果、Workbenchのタブストップが大幅に減少し、すべての部分をより簡単にナビゲートできるようになりました。

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

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

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

この変更により、以下のコマンドは非推奨となります。これらは引き続き機能しますが、将来的に削除される可能性があります。

  • cursorWordAccessibilityLeft
  • cursorWordAccessibilityLeftSelect
  • cursorWordAccessibilityRight
  • cursorWordAccessibilityRightSelect

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

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

ユーザーフィードバックに基づき、Workbench全体で複数のビューとボタンのロールを改善しました。アクティビティバーサイドバーパネルには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認証エラーが表示されなくなります。

Workbench

Emmet

省略形にラップ (Wrap with Abbreviation) および 個々の行を省略形にラップ (Wrap Individual Lines with Abbreviation) コマンドは、どのラップコマンドを使用するかという混乱を減らすため、単一の 省略形にラップ (Wrap with Abbreviation) コマンドに統合されました。さらに、省略形にラップ (Wrap with Abbreviation) コマンドは、プレビューの空白を適切に表示するようになりました。

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

製品アイコンテーマ

最初の製品アイコンテーマが拡張機能マーケットプレイスで利用可能になりました。素晴らしい作業をしてくださったテーマ作者の皆様に感謝いたします!

テーマを選択または検索するには、コマンドプロンプトまたは設定ギアから基本設定: 製品アイコンテーマ (Preference: Product Icon Theme) コマンドを使用します。

Product icon themes in the Extension Marketplace

コンテキストキーのIntelliSense

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

keybindings.json内のコンテキストキーのIntelliSense テーマ: GitHub Light Theme, フォント: FiraCode

開いているエディターの新規無題ファイルアクション

開いているエディター (Open Editors) ビューのタイトル領域に、新規無題ファイル (New Untitled File) アクションが追加されました。

New untitled file in Open Editors view

アプリケーションメニュー設定の更新

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

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

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

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

Webviewのキャッシュ改善

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

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

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

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

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

shift shiftalt altctrl ctrl、またはcmd 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

はじめに

起動時に表示される新しいエディター「Getting Startedエディター」を試しています。これは、VS Codeのいくつかの機能を新規ユーザーにとってより親しみやすいものにすることを目的としています。一部のInsidersユーザーはすでに目にしたことがあるかもしれませんが、今回のイテレーション中にゆっくりとより多くの安定版ユーザーに展開されます。workbench.startupEditor設定をgettingStartedに設定したり、それ以外の値に設定したりすることで、いつでもこの新しい動作を有効または無効にすることができます。

Getting Started experience walkthrough

タイムラインビュー

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

Select for Compare command in context menu

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

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

Sash hover border color

デバッグ

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

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

ブレークポイントビュー (Breakpoints view) に、ブレークポイントを削除するためのインラインアクション X を追加しました。このアクションにより、ブレークポイントの削除がより簡単になります。

Breakpoints view showing X next to selected breakpoint

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

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

これらの条件をより見つけやすく、その構文を自己説明的にするために、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は、再起動できないスタックフレームの場合、呼び出し履歴ビュー (Call Stack view) のフレーム再起動インラインアクションを無効にするようになりました。

例えば、JS-Debug拡張機能はこの変更を採用しており、非同期スタックトレースではフレーム再起動アクションが無効になります。

言語

TypeScript 4.2

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

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

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

新しい欠落している関数宣言を追加 (Add missing function declaration) クイックフィックスは、欠落している関数のスタブを作成します。例えば、欠落している関数addの呼び出しがある場合、

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

add欠落している関数宣言を追加 (Add missing function declaration) を使用すると、次のようになります。

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

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

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

JS Docテンプレートが@returnsを生成

JS Docテンプレートは、アノテーションを付ける関数にreturnステートメントが含まれている場合、自動的に@returnsを含めるようになりました。例えば、関数getVizの場合、

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

生成されるJSDocテンプレートは次のとおりです。

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

JSDocコメント内の@returnsは、javascript.suggest.jsdoc.generateReturnstypescript.suggest.jsdoc.generateReturnsで無効にできます。

非推奨のDOM APIがマークされるように

非推奨のDOMメソッドが、提案時およびコード内で非推奨としてマークされるようになりました。

document.clear being marked as deprecated in code

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

ノートブック

Notebookを自動的にリロード

Notebookは、ファイルがディスク上で変更され、かつ未保存の変更がない場合に自動的にリロードされるようになりました。これにより、バージョン管理されているNotebookでの作業がはるかに簡単になるはずです。

大きなセルに対するフォーカスの改善

大きなNotebookセルにフォーカスが当たっている場合、セルの上下が見えない状態でも、どのセルにフォーカスが当たっているかをより明確に判別できるようになりました。フォーカスされたセルの左右に境界線が表示されるようになりました。

Notebook focus for a large cell

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

HTMLおよびCSSでのホバーの内容を細かく調整できるようになりました。

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

CSSのホバーを変更するには、設定css.hover.documentationcss.hover.referencesを使用します。これらの言語の設定を変更するには、csshtmlcssscss、またはlessに置き換えてください。

プレビュー機能

Notebook用の拡張可能なMarkdownレンダラー

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

A math formula being rendered in a notebook cell

Markdownレンダラーを拡張可能にするために、すべてのNotebook MarkdownをレンダリングするためにMarkdown Itを使用することを検討しました。また、レンダリングされたMarkdownをNotebookのバックレイヤー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拡張機能の開発が継続されています。

すべての新機能とアップデートについて学ぶには、拡張機能の0.24.0リリースの完全な変更ログをご覧ください。

リモート開発

コンテナー、リモートマシン、またはLinux用Windowsサブシステム (WSL) をフル機能の開発環境として使用できるRemote Development拡張機能の開発が継続されています。

1.54の注目機能は次のとおりです。

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

新しい拡張機能の機能とバグ修正については、Remote Developmentリリースノートで確認できます。

拡張機能作成

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

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

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

Run dropdown menu

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

認証プロバイダーAPI

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

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

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

更新された 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を知っていればアイコンを再定義できます。

詳細とフィードバックについては、イシュー114942をご覧ください。

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

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

このマイルストーンでは、提案されたAPIの最初の実装が利用可能になりました。

インライン値プロバイダーAPIの概要は次のとおりです。

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

以下のスニペット(Mock Debugより)は、「markdown」ファイル用の最小限のインライン値プロバイダーを示しています。これは正規表現を使用して「変数」を特定し、変数ビュー (Variables view) を介してその値を見つけるよう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に関するフィードバックを提供したい場合は、このイシューにコメントを追加してください。

テスト

VS Codeでのテストについて引き続き進捗がありました。今月は、VS Codeの基本エクスペリエンスと拡張機能APIの洗練に焦点を当てました。また、テストに関する暫定的なドキュメントも公開しており、APIが安定するにつれて内容が充実していく予定です。

Language Server Protocol

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

Debug Adapter Protocol

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

ExceptionBreakpointsFilterに、オプションのUI属性descriptionconditionDescriptionが追加されました。

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

setExceptionBreakpointsリクエストの記述の改善

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

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

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

エンジニアリング

Electronサンドボックスの進捗

このマイルストーンでは、Electronのサンドボックスおよびコンテキスト分離機能を有効にするために、VS Codeウィンドウの準備を進めました。

具体的には

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

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

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

WindowsインストーラーがWindowsパッケージマネージャーに公開

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

TypeScript 4.3を使用してVS Codeをビルド

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

最新のTypeScriptバージョンは、条件文でawaitが欠落しているいくつかのケースを発見するのにすでに役立ちました。

yarn.lockの変更を防止

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

デフォルトブランチ: main

microsoft/vscodeを含むすべてのリポジトリのデフォルトブランチをmainに名称変更し始めました。この作業は約60%完了しています。

ドキュメント

教室でのVS CodeとPython

Harvey Mudd Collegeのコンピュータサイエンス教授が、Pythonを使用した入門CSクラスでVS Codeを使用している事例研究を読んでください。彼が生徒に推奨する設定、役立つ拡張機能、無料の自習型Pythonおよびデータサイエンスレッスンについて学びましょう。

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

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

注目すべき修正点

  • 100151: メニューキーがエクスプローラーの誤った項目に適用される
  • 112055: デバッグがPythonセッションごとに新しい統合ターミナルを開く
  • 114881: フォルダーまたはファイルをコピーする際にシンボリックリンクを保持する
  • 114933: 「タスクを追跡できません」という不満
  • 115922: ファイルエクスプローラーでのフィルタリングでカーソルキーが機能しない
  • 116037: デバッグコンソールの出力にリンクホバーが表示されない
  • 116101: 英語の説明が消えたため、コマンド検索で目的のコマンドが見つからない
  • 116932: 貢献されたコマンド実行からカスタム例外をスローすると、不可解なエラーポップアップが表示される

ありがとうございます

最後に、今月 VS Code に貢献してくださった以下の皆様に、心からの感謝を申し上げます。

問題追跡への貢献者

vscodeへの貢献者

language-server-protocolへの貢献者

vscode-languageserver-nodeへの貢献者

vscode-emmet-helperへの貢献

vscode-html-languageserviceへの貢献

vscode-js-debugへの貢献者

vscode-textmateへの貢献

vscode-vsceへのコントリビューション