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月リリースへようこそ。このバージョンには、気に入っていただけるであろう多数のアップデートが含まれており、主要なハイライトの一部は以下の通りです。
- アクセシビリティの改善 - 新しいスクリーンリーダー機能。
- Windows ARM ビルド - Windows on ARM が stable で利用可能になりました。
- 新しいJavaScriptデバッガー - ターミナルでのデバッグ、プロファイリングのサポート。
- ソース管理の統合ビュー - すべてのリポジトリが単一のビューに表示されます。
- 保留中の変更の表示とソート - ファイルをツリーまたはリストとして表示し、名前、パス、またはステータスでソートします。
- 設定エディターからのオブジェクト設定の編集 - 設定エディターからオブジェクト設定を編集します。
- 新しいHexEditor拡張機能 - VS Code内でファイルを16進数形式で編集します。
- ノートブックUIの更新 - UXの改善と元に戻す/やり直すのサポート。
- リモート開発チュートリアル - SSH、コンテナー内、WSLでの開発方法を学びます。
- macOS用Java Packインストーラー - macOSでVS Codeを使用してJava開発をセットアップします。
これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com の 更新 にアクセスしてください。
ライブに参加しましょう: 7月13日月曜日の太平洋時間午前9時(ロンドン時間午後5時)に開催されるVS Codeチームのライブストリームで、今回のリリースの新機能のデモをご覧になり、ライブで質問してください。
Insiders: 新機能をいち早く試したいですか?夜間のInsidersビルドをダウンロードして、最新のアップデートを公開され次第試すことができます。Visual Studio Codeの最新ニュース、アップデート、コンテンツについては、Twitterの@codeをフォローしてください!
アクセシビリティ
今回のマイルストーンでは、コミュニティから貴重なフィードバックをいただき、多くのアクセシビリティ問題を特定し、対処することができました。ハイライト
- ファイルエクスプローラーのコンパクトフォルダが、展開/折りたたみの状態とARIAレベルを適切に読み上げるようになりました。
- スクリーンリーダーがエディターのカーソルオフセットを更新できるようになりました。その結果、スクリーンリーダーの「すべて読み上げ」コマンドが、停止して再開したときに適切に機能するはずです。
- 同じARIAライブメッセージが、スクリーンリーダーによって適切に再読み上げされるようになりました。
ワークベンチ
設定エディターからオブジェクト設定を編集
以前は、設定エディターは文字列やブール値のようなプリミティブ型の設定しか編集できず、より複雑な設定型の場合は直接settings.json
を編集する必要がありました。今回、ネストされていないオブジェクト設定を設定エディターから編集できるようになりました。拡張機能の作者は、この機能を使用して、これらの種類の設定の可視性を高めることができます。
以前
設定エディターで
そしてsettings.json
で
以後
設定エディターで
リストビューで選択し、フォーカスを維持
新しいコマンド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
は一致するグループの残りを大文字/小文字に変換します。
例
修飾子は重ねて使用することもできます。たとえば、\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を必要とせずに実装できるため、標準的な方法で実装するためのガイドラインを作成しました。拡張機能の作成者は、これらのガイドラインを以下の「拡張機能の作成」セクションで確認できます。
ユーザーはこれらのアイコンを覚えておくだけで済みます
これらのアイコンのいずれかまたは両方がエディターのタイトル領域の左側に表示されていれば、エディターでファイルを「実行」または「デバッグ」するのはワンクリックです。
CALL STACK ビューの整理
一般的なケースでは、CALL STACK を整理し始めました。CALL STACK ビューは、技術的な理由で存在するが、ユーザーにあまり価値を提供しないデバッグセッションノードを非表示にできるようになりました。
この機能を選択した最初のデバッグ拡張機能は、新しいJavaScriptデバッガーです。これにより、子セッションが1つしかない場合に親デバッグセッションを削除できました。
他のデバッグ拡張機能もこれに続いてくれることを願っています。新しい提案されたAPIを以下に示します。
カーソルにジャンプの新しいコマンドエイリアス次のステートメントを設定
Visual Studioから来たユーザーにとってカーソルにジャンプコマンドをより分かりやすくするために、次のステートメントを設定というコマンドエイリアスを追加しました。
カーソルにジャンプの機能を知らない方のために説明すると、このコマンドは、途中のソースコードを実行することなく、プログラムの実行を新しい場所に移動させることができます。
ホバー時のブレークポイントパス
BREAKPOINTSビューでソースブレークポイントにカーソルを合わせると、VS Codeがブレークポイントの絶対パスを表示するようになりました。
タスク
pnpmパッケージマネージャーのサポート
pnpmは、npm
およびyarn
と同様に、スクリプトを実行するためのnpm.packageManager
設定の有効な選択肢となりました。
ソース管理
シングルビュー
ソース管理ビューが単一のビューに統合されました
すべてのリポジトリが1つのビューに表示されるため、ワークスペース全体のステータスをよりよく把握できます。さらに、ソース管理ビューをパネルに移動できるようになり、他のビューをソース管理ビューコンテナに移動できるようになりました。
表示と並べ替え
ソース管理ビューでリストビューオプションを使用している場合、変更を名前、パス(デフォルト)、およびステータスで並べ替えるサポートを追加しました。ビューオプション(リスト vs ツリー)と並べ替えオプションを、コンテキストメニューの新しい表示と並べ替えメニュー項目に統合しました。
Git: squashメッセージの復元
通常のgit merge
コマンドと同様に、ユーザーがgit merge --squash
コマンドの途中にいる場合、SCMビューはデフォルトのメッセージでSCM入力を復元するようになりました。
言語
TypeScript 3.9.6
VS CodeはTypeScript 3.9.6をバンドルするようになりました。このマイナーアップデートでは、特定のソースコードパターンでTypeScriptサーバーがクラッシュする可能性のあるバグを含む、いくつかのバグが修正されています。
ブラウザーのサポート
大容量ファイルのアップロード対応
VS CodeのWeb版に大容量のファイルやフォルダをアップロードできるようになり、アップロードされたバイト数とアップロード速度を正確に追跡できるよう、進捗が正確に報告されるようになりました。
テキストファイルエンコーディングのサポートへ向けて
今回のマイルストーンでは、ブラウザでファイルの読み書きのためのテキストエンコーディングの完全なサポートに多くの作業が費やされました。現在、webpackを活用することでブラウザでサポートされている2つのライブラリに依存しています。
iconv-lite
: エンコーディングの読み書き用jschardet
: テキストコンテンツからエンコーディングを推測するため
この作業は7月も継続され、まもなく一般公開される予定です。
プレビュー機能
プレビュー機能はリリース準備ができていませんが、使用できる程度には機能しています。開発段階での皆様の早期フィードバックをお待ちしております。
設定の同期
この数ヶ月間、VS Codeの設定をマシン間で同期する機能のサポートに取り組んできました。この機能は、Insidersリリースでプレビューとして利用可能です。
「同期されたマシン」ビューのマシンエントリのコンテキストメニューアクション「環境設定の同期をオフにする」を使用して、他のマシンでの同期を無効にできるようになりました。
同期を有効にする際の進捗情報も改善されました。
TypeScript 4.0のサポート
このイテレーションでは、TypeScript 4.0のサポートを継続的に改善しました。主なハイライトは以下の通りです。
-
非推奨シンボルへの呼び出しをエディターで打ち消し線で強調表示
-
特定のリファクタリングが適用できない理由を説明
-
改善された自動インポート - 詳細については、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の更新
よりコンパクトなデザインを目指し、ノートブックセルの視覚的な外観を更新しました。また、選択されたセルにシャドウアウトラインを追加し、選択状態がより明確になるようにしました。
ノートブックのホットエグジット対応
ノートブックにホットエグジットサポートを追加し、拡張機能がバックアップと復元を処理できるようにしました。未保存のローカル変更は、ワークスペースを再開したときに拡張機能によってシリアル化され、復元できるようになりました。
元に戻す/やり直すの強化
拡張機能が元に戻す/やり直すスタックに貢献するサポートを追加しました。拡張機能は、どの操作が元に戻せるかを制御できるようになりました。たとえば、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" }
}
テーマ: GitHub Theme
ノートブックのカラートークン
ノートブック用に以下のカラートークンも追加しました。
notebook.cellBorderColor
: ノートブックセルの枠線の色notebook.cellHoverBackground
: セルにホバーしたときのセルの背景色notebook.cellInsertionIndicator
: ノートブックセルの挿入インジケーターの色notebook.focusedCellBackground
: セルがフォーカスされているときのセルの背景色notebook.focusedCellBorder
: セルがフォーカスされているときのセルの上部と下部の境界線の色notebook.focusedCellShadow
: セルがフォーカスされているときのセルの影の色notebook.focusedEditorBorder
: ノートブックセルエディターの境界線の色
2つの新しいサンプルは、ノートブックでのデバッグをサポートする方法を示しています。
-
このサンプルは、既存のVS Codeデバッガー拡張機能に基づいてノートブックデバッグ機能を実装する方法を示しています。
-
XeusカーネルによるJupyterノートブックのデバッグサンプル
このサンプルは、xeusカーネルとそのDebug Adapter Protocolのネイティブサポートに基づいてノートブックデバッグ機能を実装する方法を示しています。
ノートブック拡張機能ガイド
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メガバイトを超えるファイルを開くことを可能にする大容量ファイルの最適化が含まれています。
注目すべき変更点の完全なリストはCHANGELOGに記載されています。フィードバックや経験した問題は、vscode-hexeditorリポジトリに報告してください。
拡張機能作成
アクセシビリティ情報
スクリーンリーダーをサポートするため、TreeItem
、StatusBarItem
、およびTimelineItem
要素のAccessibilityInformation
を最終決定しました。AccessibilityInformation
には、label
とrole
が含まれています。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
プロパティにより、拡張機能は、返されるコードアクションの静的なドキュメントを提供できます。このドキュメントは、提供者がコードアクションを返したときにコードアクションのリストの下部に表示されます。
ユーザーがドキュメントエントリを選択すると、コマンドが実行されます。このコマンドは、エディターにドキュメントを表示したり、ブラウザで開いたりできます。
ファイルダイアログのタイトルを開く/保存する
OpenDialogOptions
およびSaveDialogOptions
を介して、ファイルを開くおよび保存するダイアログにtitle
を提供するAPIが確定されました。すべてのオペレーティングシステムでこのタイトルを設定できるわけではないため、拡張機能の実行場所によって動作が異なる場合があることに注意してください。
新しい拡張機能カテゴリ
以下の新しく追加されたカテゴリを使用して、拡張機能を分類できるようになりました。
- データサイエンス
- 機械学習
- 可視化
- テスト
- ノートブック
セカンダリボタンのスタイル
ボタンの存在感を薄くする必要がある場合に、セカンダリボタンのスタイルを導入しました。
button.secondaryForeground
button.secondaryBackground
button.secondaryHoverBackground
GitHub Workflowバッジ
github.com
が承認されたバッジソースのリストに追加されたため、公開された拡張機能のバッジリストにGitHub Workflowバッジを追加できるようになりました。
argv.jsonによる提案APIの有効化
enable-proposed-api
フィールドがargv.json
でサポートされるようになりました。これにより、拡張機能の作者は、コマンドラインからVS Codeを開いて--enable-proposed-api
CLIフラグを渡すことなく、リリースビルドで提案API拡張機能を長期的なドッグフーディング目的で実行できます。
新しいcodiconアイコン
codiconライブラリに以下の新しいアイコンを追加しました。
debug-alt-small
vm-connect
言語サーバープロトコル
セマンティックトークンと、補完項目における追加のテキスト編集の遅延解決のサポートが、今後の3.16仕様に追加されました。
提案された拡張API
各マイルストーンには新しい提案された API があり、拡張機能の作成者はそれらを試すことができます。いつものように、皆様のフィードバックをお待ちしております。提案された API を試すには、次の手順を実行する必要があります。
- 提案APIは頻繁に変更されるため、Insiders版を使用する必要があります。
- 拡張機能の
package.json
ファイルに次の行が必要です:"enableProposedApi": true
。 - 最新バージョンのvscode.proposed.d.tsファイルをプロジェクトのソース場所にコピーします。
提案APIを使用する拡張機能は公開できないことに注意してください。次のリリースで破壊的変更がある可能性があり、既存の拡張機能を壊したくありません。
ターミナルリンクプロバイダー
以前のリリースで追加されたターミナルの新しいリンクシステムに基づいて、この新しい提案window.registerLinkProvider
は、ホバー時に表示されるツールチップラベルを含む、拡張機能がターミナルにリンクをアタッチすることを可能にします。
これは、以前提案された(現在非推奨の)「リンクハンドラー」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ホバー
TreeItem
のtooltip
をMarkdownString
にすることを可能にする、新しい提案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++アプリケーションを開発するための新しいチュートリアル。
macOS用Java Packインストーラー
macOS用Visual Studio Code Java Packインストーラーは、macOSでVisual Studio CodeでのJava開発に必要な依存関係と拡張機能をダウンロードします。
注目すべき修正点
- 71291: 水平スクロールがツリーのレンダリングを壊す
- 93230: ローカル変数が煩わしい方法で折りたたまれる
- 98309: ワーキングコピーファイルサービスでの複数ファイル対応
- 99061: 閉じた差分エディターを再開できるようにする
- 99290: Git: 再読み込み時にdiffエディターを復元する
- 99704: トップデバッグセッション行が一時停止していないのに「一時停止中」と表示される
- 99786: デバッグツールバーの場所がドッキングされている場合、追加のセッションを開始できない
- 100524: SCMデコレーションが欠落している
- 101132: オフライン時にリリースノートを開こうとすると、その後は二度と開けない
ありがとうございます
最後に、今月 VS Code に貢献してくださった以下の皆様に、心からの感謝を申し上げます。
問題追跡への貢献者
- ジョン・マレー (@gjsjohnmurray)
- アンドリー・ディーイエフ (@IllusionMH)
- サイモン・チャン (@yume-chan)
- アルトゥーロ・デント (@ArturoDent)
- アレクサンダー (@usernamehw)
vscode
への貢献者
- AlexStrNik (@AlexStrNik): Fix #97526 PR #97611
- Anoesj Sadraee (@Anoesj): Add "pnpm" option to "npm.packageManager" setting PR #100654
- @champignoom: stage ibus-gtk3 to try to make ibus work PR #100480
- ダニエル・デイビス (@daniel-j-davis)
- コミットメッセージの自動補完に.git/SQUASH_MSGの検出を追加 #101078 PR #101114
- デバッグウィンドウでの貼り付けを許可 #100235 PR #100288
- Daybrush (Younkue Choi) (@daybrush): iOSの
metaKey
に対応 PR #100869 - Don Jayamanne (@DonJayamanne): 無題のノートブックの自動保存を無効にする PR #100256
- Dan Foad (@foad): 数値CLI引数を許可 PR #99540
- ジョン・マレー (@gjsjohnmurray)
- fix #99854 'Edit in settings.json'がオブジェクト型デフォルトを追加するように修正 PR #99912
- Fix #71295 Permit command URIs in markdownDescription of extension setting PR #100304
- fix #100068 suggest widget controlsの「もっと読む/もっと少なく読む」のヒントを改善 PR #100070
- フェドル・ネジーヴォイ (@gyzerok)
- iconv-lite-umdを0.6.4に更新(#79275用) PR #101213
- #79275のためにiconv-lite-umdを使うように変更 PR #100472
- vs/base/node/encoding.tsをノードストリームから切り離す #79275 PR #99413
- Move encoding to common for #79275 PR #100539
- アンドリー・ディーイエフ (@IllusionMH)
- ホバー時のMarkdownにテーブル固有のタグを許可 (fixes #99983) PR #99988
- ゼロ長一致の場合、サロゲートペアをステップオーバーする (fixes #100134) PR #100482
- 谭九鼎 (@imba-tjd): stackoverflowにhttpsを使用 PR #100655
- Ken (@irridia): 初期実装: \U\u\L\l 置換修飾子をサポート PR #96128
- ジャン=ピエール (@jeanp413)
- Fixes Error Cannot read property 'id' of undefined when dragging view to Panel with no pinned views PR #99582
- Fixes terminal Env Variables Icon Not Updating Position PR #98015
- ウェブアップロードでのフォルダ置換の体験を改善 PR #99601
- Fix pinned tabs do not preserve when joining editor groups PR #100344
- アクティビティアイコンをハンバーガーメニューの上にドラッグすると末尾にドロップされる問題を修正 PR #98050
- Fixes problems filter focus outline is cut off in pane header PR #97438
- Fixes focused status bar entry should use orange border when using the high contrast theme PR #99453
- Justin Hutchings (@jhutchings1): CodeQLセキュリティスキャンを追加 PR #99411
- Keshav Bohra (@keshav-bohr): 単語の修正 PR #100301
- Wenlu Wang (@Kingwl): ts/jsの非推奨サポートを追加 PR #97742
- リティック・バット (@lambainsaan)
- アウトラインペインの要素にフォーカスするための基本的なキーバインドを追加 PR #91799
- ジェネレータメソッドと併用した場合のバグのあるonEnter動作を修正 PR #100076
- マッズ・クリステンセン (@madskristensen)
- SchemaStore.orgにHTTPS URLを使用 PR #101047
- SchemaStore.org URLを修正 PR #101046
- Milo Moisson (@MrNossiom): ロギングを更新 PR #100657
- @nlchar: feedback window reopen時に状態復元を修正 PR #101074
- Noelle Caldwell (@noellelc): リッチナビゲーションワークフローを追加 PR #100014
- Pascal Fong Kye (@pfongkye): ファイル操作イベントが複数のリソースをサポート PR #98988
- Robert Massaioli (@robertmassaioli): for-inループをeslint:recommendedで動作するように更新 PR #99721
- Stoyan Nikolov (@stoyannk): SimpleFileDialogで冗長な'resolve'を削除し、alre…を再利用 PR #99432
- Arman Tabaddor (@tabaddor): テキストエリアにフォーカスしたときにターミナル名を追加 PR #100087
- Thibault Malbranche (@Titozzz): fix(search): Replace crash empty string pattern PR #101017
- @VoidNoire: POSIX準拠にして可搬性を高め、
bash
の依存関係を削除… PR #100145
vscode-extension-samples
への貢献
- Matt Petty (@lodestone): コメントを改善 PR #317
vscode-eslint
への貢献者
- Jimmy Yuen Ho Wong (@wyuenho): タイプミスを修正 PR #989
debug-adapter-protocol
への貢献者
- Lukas Zima (@zimlu02): Broadcom拡張機能を更新 PR #121
- Dave Holoway (@adelphes): Androidデバッグアダプターを追加 PR #125
language-server-protocol
への貢献者
- Sacha Ayoun (@giltho): logTrace通知を指定 PR #953
- Josh Soref (@jsoref): スペルと文法 PR #1027
- Radek Simko (@radeksimko): website: fix typo (Genernal -> General) PR #1035
vscode-languageserver-node
への貢献者
- Sacha Ayoun (@giltho): 言語サーバーをプロトコル提案と一致させる PR #611
- アンドリュー・アーノット (@AArnott)
vscode-css-languageservice
への貢献者
- Justin Hutchings (@jhutchings1): CodeQLセキュリティスキャンを追加 PR #218
node-jsonc-parser
への貢献
- Michael Bullington (@mbullington): 配列の変更を許可し、インプレースフォーマットオプションを追加。 PR #35
vscode-generator-code
への貢献者
- Pranav Shikarpur (@snpranav): ジェネレーター用のDockerfileを作成 PR #210
vscode-vsce
へのコントリビューション
- Adam S (@ItsMajestiX): Github Workflowsからのバッジを許可 PR #396
- トーマス (@viktomas)