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

2020年6月 (バージョン 1.47)

Update 1.47.1: このアップデートでは、このセキュリティ問題に対処しています。

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

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

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


Visual Studio Codeの2020年6月リリースへようこそ。このバージョンには、気に入っていただけるであろう多数のアップデートが含まれており、主要なハイライトの一部は以下の通りです。

これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com更新 にアクセスしてください。

ライブに参加しましょう: 7月13日月曜日の太平洋時間午前9時(ロンドン時間午後5時)に開催されるVS Codeチームのライブストリームで、今回のリリースの新機能のデモをご覧になり、ライブで質問してください。

Insiders: 新機能をいち早く試したいですか?夜間のInsidersビルドをダウンロードして、最新のアップデートを公開され次第試すことができます。Visual Studio Codeの最新ニュース、アップデート、コンテンツについては、Twitterの@codeをフォローしてください!

アクセシビリティ

今回のマイルストーンでは、コミュニティから貴重なフィードバックをいただき、多くのアクセシビリティ問題を特定し、対処することができました。ハイライト

  • ファイルエクスプローラーのコンパクトフォルダが、展開/折りたたみの状態とARIAレベルを適切に読み上げるようになりました。
  • スクリーンリーダーがエディターのカーソルオフセットを更新できるようになりました。その結果、スクリーンリーダーの「すべて読み上げ」コマンドが、停止して再開したときに適切に機能するはずです。
  • 同じARIAライブメッセージが、スクリーンリーダーによって適切に再読み上げされるようになりました。

ワークベンチ

設定エディターからオブジェクト設定を編集

以前は、設定エディターは文字列やブール値のようなプリミティブ型の設定しか編集できず、より複雑な設定型の場合は直接settings.jsonを編集する必要がありました。今回、ネストされていないオブジェクト設定を設定エディターから編集できるようになりました。拡張機能の作者は、この機能を使用して、これらの種類の設定の可視性を高めることができます。

以前

設定エディターで

Object setting in the old Settings editor

そしてsettings.json

Object setting in the JSON editor

以後

設定エディターで

Object setting in the new Settings editor

リストビューで選択し、フォーカスを維持

新しいコマンドlist.selectAndPreserveFocusが追加され、リスト内でフォーカスを維持したまま項目を選択できるようになりました。これは、ファイルエクスプローラーのようなリストから複数のファイルを選択する際に、フォーカスがファイルエディターに移動しないようにしたい場合に便利です。

このコマンドはデフォルトではキーボードショートカットにバインドされていませんが、独自のキーバインドを追加できます。

{
  "key": "ctrl+o",
  "command": "list.selectAndPreserveFocus"
}

安定版 Windows ARM ビルド

VS Code for Windows on ARM が安定版リリースで利用可能になりました!🎉

ドラッグ&ドロップによるVSIXのインストール

VS Codeは、VSIXファイルを拡張機能ビューにドラッグ&ドロップすることで、拡張機能VSIXファイルをインストールできるようになりました。

新しい検索エディターコマンド引数

検索エディターコマンド (search.action.openNewEditor, search.action.openNewEditorToSide) に2つの新しい引数が追加され、キーバインドで新しい検索エディターの動作を設定できるようになりました。

  • triggerSearch - 検索エディターを開いたときに自動的に検索を実行するかどうか。デフォルトはtrue。
  • focusResults - 検索結果にフォーカスを置くか、クエリ入力にフォーカスを置くか。デフォルトはtrue。

例えば、以下のキーバインドは、検索エディターを開いたときに検索を実行しますが、フォーカスは検索クエリコントロールに残します。

{
  "key": "ctrl+o",
  "command": "search.action.openNewEditor",
  "args": { "query": "VS Code", "triggerSearch": true, "focusResults": false }
}

新しい検索エディターのコンテキストのデフォルト

search.searchEditor.defaultNumberOfContextLines 設定のデフォルト値が 0 から 1 に更新されました。これは、検索エディターで各結果行の前後に1行のコンテキスト行が表示されることを意味します。元の動作に戻すには、値を0に設定してください。

リスト/ツリー: 動的な水平スクロール

以前から存在していた workbench.list.horizontalScrolling 設定は、ワークベンチをリロードすることなく実行時に切り替えられるようになりました。

エディター

正規表現置換での大文字/小文字変換

VS Codeは、エディターでの検索/置換時に正規表現の一致グループの大文字/小文字を変更する機能をサポートするようになりました。これは、\u\U\l\Lという修飾子を使用することで実現されます。\u\lは1文字を大文字/小文字に変換し、\U\Lは一致するグループの残りを大文字/小文字に変換します。

Changing case while doing find and replace

修飾子は重ねて使用することもできます。たとえば、\u\u\u$1はグループの最初の3文字を大文字にし、\l\U$1は最初の文字を小文字にし、残りを大文字にします。

現在、これらはエディターの検索コントロールでのみサポートされており、グローバルなファイル内の検索ではサポートされていません。

デバッグ

新しいJavaScriptデバッガー

先月Insidersのデフォルトデバッガーだった新しいJavaScriptデバッガーが、VS CodeのJavaScript (Node.jsおよびChrome) のデフォルトデバッガーになりました。前回のVS Code変更ログの「プレビュー機能」セクションをスキップした場合は、デバッガーのREADMEの新機能セクションで追いつくことができます。

新しいデバッガーを利用するために、設定や起動構成を変更する必要はありません。何か問題が発生した場合は、イシューを開いてください

単一ファイルのデバッグ

これまで、VS Codeデバッガーには、エディター内のファイルをボタンをクリックするだけで簡単にデバッグできることを示す標準的な方法がありませんでした。一部のデバッグ拡張機能では、通常「エディターでファイルをデバッグ」というプロンプトが表示されるデバッグ構成を使用してこれを行うことができました。しかし、ユーザーはF5を使用する前に、デバッグ構成のドロップダウンメニューで正しい構成を選択する必要がありました。他のデバッグ拡張機能は、F5のフォールバック戦略を実装しています。つまり、launch.jsonが存在しない場合、F5は現在アクティブなエディターで開いているファイルをデバッグしようとします。

どちらのアプローチも簡単に発見できないため、一部のデバッグ拡張機能(例:Python)は、エディターのタイトル領域に実行ボタンを追加し始めています。

より良いアプローチが見つからず、この方法が新しいAPIを必要とせずに実装できるため、標準的な方法で実装するためのガイドラインを作成しました。拡張機能の作成者は、これらのガイドラインを以下の「拡張機能の作成」セクションで確認できます。

ユーザーはこれらのアイコンを覚えておくだけで済みます

Run and debug action in editor title

これらのアイコンのいずれかまたは両方がエディターのタイトル領域の左側に表示されていれば、エディターでファイルを「実行」または「デバッグ」するのはワンクリックです。

CALL STACK ビューの整理

一般的なケースでは、CALL STACK を整理し始めました。CALL STACK ビューは、技術的な理由で存在するが、ユーザーにあまり価値を提供しないデバッグセッションノードを非表示にできるようになりました。

この機能を選択した最初のデバッグ拡張機能は、新しいJavaScriptデバッガーです。これにより、子セッションが1つしかない場合に親デバッグセッションを削除できました。

Screenshot of two "Call Stack" views. Without compaction, there is an extra child session between the parent session and each attached worker processes.

他のデバッグ拡張機能もこれに続いてくれることを願っています。新しい提案されたAPIを以下に示します。

カーソルにジャンプの新しいコマンドエイリアス次のステートメントを設定

Visual Studioから来たユーザーにとってカーソルにジャンプコマンドをより分かりやすくするために、次のステートメントを設定というコマンドエイリアスを追加しました。

カーソルにジャンプの機能を知らない方のために説明すると、このコマンドは、途中のソースコードを実行することなく、プログラムの実行を新しい場所に移動させることができます。

ホバー時のブレークポイントパス

BREAKPOINTSビューでソースブレークポイントにカーソルを合わせると、VS Codeがブレークポイントの絶対パスを表示するようになりました。

タスク

pnpmパッケージマネージャーのサポート

pnpmは、npmおよびyarnと同様に、スクリプトを実行するためのnpm.packageManager設定の有効な選択肢となりました。

ソース管理

シングルビュー

ソース管理ビューが単一のビューに統合されました

Source Control with a single view

すべてのリポジトリが1つのビューに表示されるため、ワークスペース全体のステータスをよりよく把握できます。さらに、ソース管理ビューをパネルに移動できるようになり、他のビューをソース管理ビューコンテナに移動できるようになりました。

表示と並べ替え

ソース管理ビューでリストビューオプションを使用している場合、変更を名前、パス(デフォルト)、およびステータスで並べ替えるサポートを追加しました。ビューオプション(リスト vs ツリー)と並べ替えオプションを、コンテキストメニューの新しい表示と並べ替えメニュー項目に統合しました。

View & Sort in Source Control

Git: squashメッセージの復元

通常のgit mergeコマンドと同様に、ユーザーがgit merge --squashコマンドの途中にいる場合、SCMビューはデフォルトのメッセージでSCM入力を復元するようになりました。

言語

TypeScript 3.9.6

VS CodeはTypeScript 3.9.6をバンドルするようになりました。このマイナーアップデートでは、特定のソースコードパターンでTypeScriptサーバーがクラッシュする可能性のあるバグを含む、いくつかのバグが修正されています。

ブラウザーのサポート

大容量ファイルのアップロード対応

VS CodeのWeb版に大容量のファイルやフォルダをアップロードできるようになり、アップロードされたバイト数とアップロード速度を正確に追跡できるよう、進捗が正確に報告されるようになりました。

Web upload indicator in bottom Status bar

テキストファイルエンコーディングのサポートへ向けて

今回のマイルストーンでは、ブラウザでファイルの読み書きのためのテキストエンコーディングの完全なサポートに多くの作業が費やされました。現在、webpackを活用することでブラウザでサポートされている2つのライブラリに依存しています。

  • iconv-lite: エンコーディングの読み書き用
  • jschardet: テキストコンテンツからエンコーディングを推測するため

この作業は7月も継続され、まもなく一般公開される予定です。

プレビュー機能

プレビュー機能はリリース準備ができていませんが、使用できる程度には機能しています。開発段階での皆様の早期フィードバックをお待ちしております。

設定の同期

この数ヶ月間、VS Codeの設定をマシン間で同期する機能のサポートに取り組んできました。この機能は、Insidersリリースでプレビューとして利用可能です。

「同期されたマシン」ビューのマシンエントリのコンテキストメニューアクション「環境設定の同期をオフにする」を使用して、他のマシンでの同期を無効にできるようになりました。

Turn off preferences sync for a machine

同期を有効にする際の進捗情報も改善されました。

TypeScript 4.0のサポート

このイテレーションでは、TypeScript 4.0のサポートを継続的に改善しました。主なハイライトは以下の通りです。

  • 非推奨シンボルへの呼び出しをエディターで打ち消し線で強調表示

    Call to a deprecated function rendered in the editor

  • 特定のリファクタリングが適用できない理由を説明

    Displaying the reason a refactoring cannot be applied

  • 改善された自動インポート - 詳細については、TypeScript 4.0のブログ記事をご覧ください。

TypeScript nightly extensionをインストールすることで、これらの機能を今すぐ試すことができます。

大規模なJavaScriptまたはTypeScriptプロジェクトの読み込み中の部分的なIntelliSenseサポート

TypeScript 4.0ベータ版では、大規模なJavaScriptまたはTypeScriptプロジェクトの読み込み中に待機時間を短縮するのに役立つ新機能も導入されています。この機能がどのように機能するかを説明するために、まず、現在のバージョンのTypeScriptがどのように機能するかについて少し背景を説明する必要があります。

VS CodeでJavaScriptまたはTypeScriptファイルを開くと、TypeScript言語サービスは、そのファイルが属するプロジェクトを決定し、関連するプロジェクトを読み込みます。このプロジェクトは、数千ものTypeScriptファイルで構成されるVS Codeのコアコードベースのように、非常に大規模になることがあります。プロジェクトが読み込まれている間、VS Codeはドキュメントのアウトラインの取得やコードの折りたたみの有効化など、基本的な構文操作を処理できますが、IntelliSenseやその他のより高度な言語機能は、プロジェクト全体を理解することに依存しているため、現在のところ提供できません。たとえば、自動インポートを提供するには、TypeScript言語サービスはプロジェクト内のすべてのエクスポートされたシンボルを知る必要があります。

TypeScript 4.0の変更により、VS Codeは大規模なプロジェクトがまだ読み込み中である間でも、IntelliSenseやその他の高度な言語機能を提供できるようになりました。ただし、提供できるIntelliSenseは、プロジェクト全体ではなく、現在のファイルを参照することに限定されます。これは、提案や定義へ移動などの機能が機能することを意味しますが、現在のファイルからの提案のみが表示され、定義へ移動を実行して現在のファイル内の別のシンボルにジャンプできるだけです。

大規模なJavaScriptおよびTypeScriptプロジェクトを扱っている場合、この新機能に関するフィードバックをお待ちしております。TypeScript nightly extensionを使用して今すぐ試すことができます。私たちの希望は、より完全なプロジェクト全体にわたるIntelliSenseが利用可能になるまで、コードをほぼ即座に作業を開始できるようにすることです。

コードアクションの元に戻す/やり直す

コードアクションとリファクタリングの元に戻す/やり直す機能に取り組んでいます。顕著な例としては、Javaクラスのリファクタリングの名前変更があります。これは、テキストの変更だけでなく、ディスク上のファイルの名前も変更します。これは元に戻すことができますが、まだ2回元に戻すをトリガーする必要があります。さらなる改善にご期待ください。早期のフィードバックをお待ちしております。

拡張機能への貢献

ノートブック

VS Codeチームは、ノートブックのネイティブサポートを継続しています。開発を支援するために、GitHubのIssueやプルリクエストを検索できるGitHub Issue Notebooks拡張機能を作成しました。この拡張機能はまだプレビュー段階であり、VS Code Insidersの使用が必要ですが、ノートブックを直接体験できるため、フィードバックを歓迎します。

UXの更新

よりコンパクトなデザインを目指し、ノートブックセルの視覚的な外観を更新しました。また、選択されたセルにシャドウアウトラインを追加し、選択状態がより明確になるようにしました。

Updated Notebook UX

ノートブックのホットエグジット対応

ノートブックにホットエグジットサポートを追加し、拡張機能がバックアップと復元を処理できるようにしました。未保存のローカル変更は、ワークスペースを再開したときに拡張機能によってシリアル化され、復元できるようになりました。

元に戻す/やり直すの強化

拡張機能が元に戻す/やり直すスタックに貢献するサポートを追加しました。拡張機能は、どの操作が元に戻せるかを制御できるようになりました。たとえば、GitHub Issue Notebookでは、ロックボタンを選択してセルコンテンツを読み取り専用にすることができ、通常の元に戻す/やり直すコマンドを通じてこの操作を元に戻す/やり直すこともできます。

Undo/Redo in GitHub Issue Notebook

テーマ: GitHub Theme

無題のノートブックを作成

新しいファイルコマンド(⌘N(Windows、Linux Ctrl+N)を拡張し、新しい無題のノートブックファイルの作成をサポートしました。たとえば、以下のキーバインドを使用して、GitHub Issue Notebookをすばやく作成し、クエリを実行できます。

{
  "key": "cmd+i",
  "command": "workbench.action.files.newUntitledFile",
  "args": { "viewType": "github-issues" }
}

Create Untitled GitHub Issue Notebook

テーマ: GitHub Theme

ノートブックのカラートークン

ノートブック用に以下のカラートークンも追加しました。

  • notebook.cellBorderColor: ノートブックセルの枠線の色
  • notebook.cellHoverBackground: セルにホバーしたときのセルの背景色
  • notebook.cellInsertionIndicator: ノートブックセルの挿入インジケーターの色
  • notebook.focusedCellBackground: セルがフォーカスされているときのセルの背景色
  • notebook.focusedCellBorder: セルがフォーカスされているときのセルの上部と下部の境界線の色
  • notebook.focusedCellShadow: セルがフォーカスされているときのセルの影の色
  • notebook.focusedEditorBorder: ノートブックセルエディターの境界線の色

2つの新しいサンプルは、ノートブックでのデバッグをサポートする方法を示しています。

ノートブック拡張機能ガイド

VS Codeのノートブック拡張機能の作成に興味がある場合は、ノートブックAPIの詳細を説明する新しいガイドがあります。APIだけでなく、VS Codeノートブックインフラストラクチャの詳細とノートブック拡張機能開発のベストプラクティスについて学ぶことができます。

リモート開発

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

バージョン1.47の主な機能は以下の通りです。

  • リモート - SSH: リモートサーバーがポートではなくソケットでリッスンできるようになりました。
  • Dev Containers: リポジトリをボリュームで開くよう促すプロンプト。
  • Dev ContainersとWSL: 最近のブログ記事「WSL 2でDev Containersを使用する」をご覧ください。

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

VS Codeのリモート開発を初めて使用する場合は、以下の入門チュートリアルから始めることができます。

Azureアカウント

Azureアカウント拡張機能の最新バージョンは、最新のAzure SDKで使用できる資格情報オブジェクトを公開するようになりました。

GitHubプルリクエストとイシュー

プルリクエストやイシューの作業、作成、管理ができるGitHubプルリクエストとイシュー拡張機能の作業が継続されています。今回のリリースでのいくつかの更新には以下が含まれます。

  • 課題ビューにおけるMarkdownのホバー。
  • 新しい課題エディターでのラベルの提案。
  • GH-123としてフォーマットされたイシューのホバーサポート。

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

Hexエディター

HexEditor拡張機能は、VS Code内でネイティブの16進数編集体験を提供するために改良が続けられています。今回のリリースでの拡張機能の主な更新には、簡単な編集サポート(ユーザーが既存の16進数セルを元に戻す、やり直す、編集する、ドキュメントの末尾に新しいセルを追加できる)と、以前は不可能だった18メガバイトを超えるファイルを開くことを可能にする大容量ファイルの最適化が含まれています。

Editing in the HexEditor extension

注目すべき変更点の完全なリストはCHANGELOGに記載されています。フィードバックや経験した問題は、vscode-hexeditorリポジトリに報告してください。

拡張機能作成

アクセシビリティ情報

スクリーンリーダーをサポートするため、TreeItemStatusBarItem、およびTimelineItem要素のAccessibilityInformationを最終決定しました。AccessibilityInformationには、labelroleが含まれています。labelは、項目にフォーカスが当たるとスクリーンリーダーによって読み上げられます。項目のroleは、スクリーンリーダーがそれとどのように対話するかを定義します。roleは、たとえばツリーのような要素がチェックボックスのように振る舞う場合など、特別なケースで設定する必要があります。roleが指定されていない場合、VS Codeは適切なroleを自動的に選択します。

「場所へ移動」のフォールバックメッセージ

editor.action.goToLocationsコマンドは、場所が見つからなかった場合にフォールバックメッセージを表示できるようになりました。これにより、拡張機能は、定義へ移動などの組み込み機能と同様に動作するスーパークラスへ移動などの機能を実装できます。以下のスニペットは、このコマンドを呼び出す拡張機能の完全なサンプルです。

vscode.commands.executeCommand(
  'editor.action.goToLocations',
  vscode.window.activeTextEditor.document.uri, //anchor uri and position
  vscode.window.activeTextEditor.selection.start,
  [], // results (vscode.Location[])
  'goto', // mode
  'No Super Types Found' // <- message
);

単一ファイルデバッグエクスペリエンスを改善するためのガイドライン

エディターに「実行」および/または「デバッグ」ボタンを追加して、単一ファイルデバッグエクスペリエンスを改善したいデバッグ拡張機能向けに、一貫した外観と操作感のために以下のガイドラインに従うことをお勧めします。

  • package.jsonでRunおよび/またはDebugコマンドを貢献する (Mock Debugを参照)
    • 「ファイルを実行」/「ファイルをデバッグ」または「Pythonファイルを実行」/「Pythonファイルをデバッグ」というコマンドタイトルを使用します。
    • 実行には$(play)アイコン、デバッグには$(debug-alt-small)アイコンを使用してください。
  • エディターのタイトル領域にコマンドを追加します (Mock Debugを参照)
    • 特定の言語でのみコマンドを表示するには、"resourceLangId == python"などの「when」句を使用します。
    • Runコマンドは1_run@10グループに、Debugコマンドは1_run@20グループに配置します。

CodeActionProviderMetadata.documentation

CodeActionProviderMetadataの新しいdocumentationプロパティにより、拡張機能は、返されるコードアクションの静的なドキュメントを提供できます。このドキュメントは、提供者がコードアクションを返したときにコードアクションのリストの下部に表示されます。

A documentation entry in the Code Actions menu

ユーザーがドキュメントエントリを選択すると、コマンドが実行されます。このコマンドは、エディターにドキュメントを表示したり、ブラウザで開いたりできます。

ファイルダイアログのタイトルを開く/保存する

OpenDialogOptionsおよびSaveDialogOptionsを介して、ファイルを開くおよび保存するダイアログにtitleを提供するAPIが確定されました。すべてのオペレーティングシステムでこのタイトルを設定できるわけではないため、拡張機能の実行場所によって動作が異なる場合があることに注意してください。

新しい拡張機能カテゴリ

以下の新しく追加されたカテゴリを使用して、拡張機能を分類できるようになりました。

  • データサイエンス
  • 機械学習
  • 可視化
  • テスト
  • ノートブック

セカンダリボタンのスタイル

ボタンの存在感を薄くする必要がある場合に、セカンダリボタンのスタイルを導入しました。

  • button.secondaryForeground
  • button.secondaryBackground
  • button.secondaryHoverBackground

GitHub Workflowバッジ

github.com承認されたバッジソースのリストに追加されたため、公開された拡張機能のバッジリストにGitHub Workflowバッジを追加できるようになりました。

GitHub Workflow badge

argv.jsonによる提案APIの有効化

enable-proposed-apiフィールドがargv.jsonでサポートされるようになりました。これにより、拡張機能の作者は、コマンドラインからVS Codeを開いて--enable-proposed-api CLIフラグを渡すことなく、リリースビルドで提案API拡張機能を長期的なドッグフーディング目的で実行できます。

新しいcodiconアイコン

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

  • debug-alt-small
  • vm-connect

Codicons icons

言語サーバープロトコル

セマンティックトークンと、補完項目における追加のテキスト編集の遅延解決のサポートが、今後の3.16仕様に追加されました。

提案された拡張API

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

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

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

以前のリリースで追加されたターミナルの新しいリンクシステムに基づいて、この新しい提案window.registerLinkProviderは、ホバー時に表示されるツールチップラベルを含む、拡張機能がターミナルにリンクをアタッチすることを可能にします。

Terminal Link Provider

これは、以前提案された(現在非推奨の)「リンクハンドラー」APIとは対照的です。このAPIでは、拡張機能が問題のリンクを処理できる可能性があり、処理できない場合はフォールバックチェーンが存在しました。リンクが確実に処理されるというこの新しいモデルは、リンクに可能なアクションのリストを持たせるというビジョンにより適合しています。

デバッグなしで実行するための新しいAPI

VS Codeの「デバッグなしで実行」機能は、既存のデバッグ構成をデバッグするのではなくプログラムを実行するために再利用する、デバッグのバリアントです。この実行モードの結果として、プログラムはブレークポイントにヒットしたり、その他の理由でデバッガーに中断したりすることはありません。

今回のマイルストーンでは、「デバッグなしで実行」の公式拡張APIを提供します。debug.startDebugging関数のDebugSessionOptionsに新しいプロパティnoDebugが追加されました。noDebugは、開始しようとしているセッションをデバッグありで実行するか、デバッグなしで実行するかを制御します。noDebugプロパティが存在しない場合、親セッションの値(存在する場合)が使用されます。親セッションが存在しない場合、noDebugプロパティが存在しない場合は「false」の値が想定されます。

注意: 以前は、同じ効果を得るために起動構成にnoDebugフラグを追加することができました。この非公式なAPIは現在非推奨ですが(引き続きサポートされています)、拡張機能は新しいAPIに移行することをお勧めします。

CALLSTACKビューの乱雑さを減らすための新しいAPI

高度なデバッグ拡張機能やデバッグ設定が登場したことで、CALL STACKツリービューに表示されるデバッグセッションが増え、混雑しているように見えます。ほとんどの場合、デバッグセッションはユーザーにとって有用であり、それらを完全に制御する必要があります。その他の場合、一部のデバッグセッションは単に実装の成果物であったり、子セッションのセットのグループ化メカニズムであったりします。

一般的なケースでCALL STACKビューの混雑を減らすため、親デバッグセッションノードが子セッションを1つしか持たない場合にそのノードを非表示にする機能を導入しました。この機能は「コンパクトモード」と呼ばれ、debug.startDebugging関数のDebugSessionOptionsの新しいオプションのcompactプロパティを通じて利用できます。

compactがtrueの場合、新しく作成されたデバッグセッションの親は、子セッションが1つしかない限り、CALL STACKビューで非表示になります。compactがfalseまたは欠落している場合、親ノードは表示されたままになります(これは現在の動作です)。

ツリーにおけるMarkdownホバー

TreeItemtooltipMarkdownStringにすることを可能にする、新しい提案APIがあります。ツールチップにMarkdownを許可することに加えて、TreeDataProviderにも新しいresolveTreeItemがあります。resolveTreeItemの背後にある考え方は、計算に時間がかかる可能性のあるプロパティ(現在はtooltipのみ)を、すべてのツリーアイテムに対して事前に計算するのではなく、後で解決できるということです。GitHub Pull Requests and Issues拡張機能で、resolveTreeItemとMarkdownのtooltipの使用例を確認できます。

エンジニアリング

TypeScript 4.0 を使用して VS Code を構築

VS Codeは現在、TypeScript 4.0の nightlyビルドを使用して構築されています。

この新しいTypeScriptバージョンは、アクセサーに関する潜在的なバグをいくつか発見するのに役立ち、また今後のTypeScriptリリースをテストするのにも役立っています。

ドキュメントと拡張機能

C++ 用 CMake ツール

CMakeとCMake Tools拡張機能を使用してC++アプリケーションを開発するための新しいチュートリアル

CMake Tools extension

macOS用Java Packインストーラー

macOS用Visual Studio Code Java Packインストーラーは、macOSでVisual Studio CodeでのJava開発に必要な依存関係と拡張機能をダウンロードします。

Java Pack installer for macOS

注目すべき修正点

  • 71291: 水平スクロールがツリーのレンダリングを壊す
  • 93230: ローカル変数が煩わしい方法で折りたたまれる
  • 98309: ワーキングコピーファイルサービスでの複数ファイル対応
  • 99061: 閉じた差分エディターを再開できるようにする
  • 99290: Git: 再読み込み時にdiffエディターを復元する
  • 99704: トップデバッグセッション行が一時停止していないのに「一時停止中」と表示される
  • 99786: デバッグツールバーの場所がドッキングされている場合、追加のセッションを開始できない
  • 100524: SCMデコレーションが欠落している
  • 101132: オフライン時にリリースノートを開こうとすると、その後は二度と開けない

ありがとうございます

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

問題追跡への貢献者

vscodeへの貢献者

vscode-extension-samplesへの貢献

vscode-eslintへの貢献者

debug-adapter-protocolへの貢献者

language-server-protocolへの貢献者

vscode-languageserver-nodeへの貢献者

vscode-css-languageserviceへの貢献者

node-jsonc-parserへの貢献

vscode-generator-codeへの貢献者

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