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

2022年6月 (バージョン 1.69)

更新 1.69.1: この更新により、これらの問題が解決されます。

更新 1.69.2: この更新により、これらの問題が解決されます。

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


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

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

リリースパーティーを見る: VS Code チームが新機能について語る様子をご覧ください。イベントの録画はYouTubeチャンネルでご覧いただけます。

Insiders: 新機能をいち早く試したいですか?夜間ビルドのInsidersをダウンロードして、利用可能になり次第、最新の更新を試すことができます。

ワークベンチ

3ウェイマージエディター

今回のリリースでは、3ウェイマージエディターの作業を継続しました。この機能はgit.mergeEditortrueに設定することで有効にでき、今後のリリースではデフォルトで有効になります。

マージエディターを使用すると、Gitのマージの競合を素早く解決できます。有効にすると、ソース管理ビューで競合するファイルをクリックすることでマージエディターを開くことができます。彼らの変更 (Theirs) または あなたの変更 (Yours) の変更を受け入れ、結合するためのチェックボックスが利用可能です。

マージエディターでは、すべての言語機能(診断、ブレークポイント、テストを含む)が利用できるため、マージ結果の問題に関する即時のフィードバックが得られます。

結果を直接編集することもできます。チェックボックスが期待通りに更新されることに注目してください。

マージエディターを閉じるかマージを受け入れる際に、すべての競合が対処されていない場合は警告が表示されます。

マージエディターはワードレベルのマージをサポートしています。変更が交差しない限り、両方の側面を適用できます。挿入順序が重要な場合は、入れ替えることができます。いつでも、競合を手動で解決することもできます。

皆様からのフィードバックをお待ちしております!マージの競合を共有するには、Merge Editor (Dev): Copy Contents of Inputs, Base and Result from JSON コマンドを使用し、その内容をGitHubの課題に貼り付けてください。

コマンドセンター

コマンドセンターが磨き上げられ、試用できるようになりました。window.commandCenter設定で有効にできます。

コマンドセンターは通常のタイトルバーに取って代わり、プロジェクト内のファイルを素早く検索できます。メインセクションをクリックすると、最近のファイルと検索ボックスを含むQuick Openドロップダウンが表示されます。

The Command Center and its hover message atop the window

テーマ: GitHub Theme

コマンドセンターには、Quick Accessオプションを「?」で表示するための右側のボタンもあります。左側には、エディターの履歴をナビゲートするための戻る (Go Back) および 進む (Go Forward) ボタンがあります。

設定エディターの変更インジケーター

設定エディターに、設定が言語オーバーライドを持っている場合に表示されるようになりました。補足ですが、言語オーバーライドは常に非言語固有のオーバーライドよりも優先されるため、設定の値が特定の種類のファイルの動作に影響しないように見える場合、その設定には言語オーバーライドがある可能性があります。

インジケーターテキストがより明確で簡潔に変更されました。以下の短いビデオは、新しいModified elsewhereインジケーターを示しています。インジケーターにカーソルを合わせると、該当する場合に言語オーバーライドを示すホバーが表示されます。ビデオの後半では、新しいデフォルトオーバーライドインジケーターがDefault value changedというテキストで表示されています。

テーマ: Light Pink

集中モード

新しい集中モード (Do Not Disturb mode) は、有効にするとエラー以外の通知ポップアップをすべて非表示にします。進捗通知は自動的にステータスバーに表示されます。非表示の通知は、引き続き通知センターで確認できます。

Do Not Disturb mode shown in the Status bar and Notification center

集中モードを切り替えるには、通知センターを開き(ステータスバーの右側にあるベルアイコンを選択)、スラッシュベルアイコンをクリックします。集中モードは、ステータスバーにスラッシュベルアイコンで表示されます。

ライトテーマとダークテーマの切り替え

新しいコマンド Preferences: Toggle between Light/Dark Themes を使用すると、好みのライトテーマとダークテーマを切り替えることができます。ライトテーマの場合、コマンドはダークテーマに切り替わり、その逆も同様です。

ハイコントラストテーマの場合、コマンドはハイコントラストのままで、反対のカラーテーマの好みのハイコントラストテーマに切り替わります。

推奨テーマは以下の設定で定義されます。

  • workbench.preferredDarkColorTheme
  • workbench.preferredLightColorTheme
  • workbench.preferredHighContrastColorTheme
  • workbench.preferredHighContrastLightColorTheme

ミニマップコンテキストメニュー

VS Code のミニマップは、エディターのサイドにソースコードファイルの概要をハイレベルで表示します。ミニマップの表示は、表示: ミニマップの表示/非表示 (View: Toggle Minimap) コマンドを使用して切り替えたり、エディター > ミニマップ: 有効 (Editor > Minimap: Enabled) (editor.minimap.enabled) 設定でミニマップを完全に無効にしたりすることができました。今回のリリースでは、ミニマップを簡単に表示または非表示にするためのコンテキストメニューが追加されました。

Minimap context menu

また、サイズ (Size) (editor.minimap.size)、スケール (Scale) (editor.minimap.scale)、スライダー (Slider) (editor.minimap.showSlider) の設定で外観を調整することもできます。ミニマップが非表示の場合でも、サイドのガターを右クリックすることでコンテキストメニューを表示できます。

共有メニュー

vscode.dev リンクをコピー (Copy vscode.dev Link) コマンドは、ファイル (File) > 共有 (Share) サブメニューから使用でき、開いている GitHub リポジトリの vscode.dev リンクを素早く取得できます。共有 (Share) サブメニューは、エディターのコンテキストメニューからも利用できます。

ターミナル

シェル統合

PowerShell、bash、zshのシェル統合は、1月のリリース以来プレビュー版でしたが、今回プレビューを終了しました!1.70リリースではデフォルトで有効にする予定です。

シェル統合機能を有効にするには、設定エディターで ターミナル (Terminal) > 統合 (Integrated) > シェル統合: 有効 (Shell Integration: Enabled) をチェックするか、settings.jsonで値を設定します。

"terminal.integrated.shellIntegration.enabled": true

シェル統合により、VS Code のターミナルがシェル内部で何が起こっているかをより理解し、より多くの機能を有効にできるようになります。シェル統合の目標の1つは、ゼロ設定で動作することでした。これは、設定が有効になっているときに、シェル引数や環境変数を通じてシェル統合スクリプトをシェルセッションに自動的に「注入」することで実現されました。サブシェルや一部の複雑なシェル設定など、これが機能しないケースもありますが、これらのより高度なケースには手動インストールルートも用意しています。

以下は、シェル統合が現在提供している機能の概要です。

コマンド装飾と概要ルーラー

シェル統合には、ターミナル内で実行されたコマンドの終了コードを取得する機能があります。この情報を使用して、コマンドが成功したか失敗したかを示す装飾が、行の左側に追加されます。これらの装飾は、エディターと同様に、スクロールバーの概要ルーラーにも表示されます。

Blue circles appear next to successful commands, red circles with crosses appear next to failed commands. The color of the circles appears in the scroll bar

この装飾は、コマンドの再実行のようなコンテキストアクションをサポートできます。

Clicking a successful command decoration shows a context menu containing items: Copy Output, Copy Output as HTML, Rerun Command and How does this work?

コマンドの装飾は、以下の設定で設定できます。

  • terminal.integrated.shellIntegration.decorationIcon
  • terminal.integrated.shellIntegration.decorationIconSuccess
  • terminal.integrated.shellIntegration.decorationIconError

コマンドナビゲーション

シェル統合によって検出されたコマンドは、コマンドナビゲーション機能 (Ctrl/Cmd+Up, Ctrl/Cmd+Down) に供給され、より信頼性の高いコマンド位置を提供します。この機能により、コマンド間を素早く移動し、その出力を選択できます。

最近のコマンドを実行

ターミナル: 最近のコマンドを実行 (Terminal: Run Recent Command) コマンドは、さまざまなソースからの履歴をクイックピックに表示し、シェルのリバース検索 (Ctrl+R) と同様の機能を提供します。最近のコマンドは、現在のセッションの履歴、このシェルタイプの以前のセッションの履歴、および共通のシェル履歴ファイルから取得されます。

The "run recent command" command shows a Quick Pick with commands ran previously that can be filtered similar to the Go to File command

コマンドのその他の機能

  • 現在のセクションでは、クイックピックの右側にクリップボードアイコンがあり、コマンド出力をエディターで開きます。
  • Altキーを押しながらテキストをターミナルに書き込むと、実行されません。
  • 前のセッションセクションに保存される履歴の量は、terminal.integrated.shellIntegration.history設定によって決定されます。

最近のコマンドを実行 (Run Recent Command) には現在、デフォルトでキーバインディングは割り当てられていませんが、例として、以下のキーバインディングでCtrl+Spaceにフックすることができます。

{
    "key": "ctrl+space",
    "command": "workbench.action.terminal.runRecentCommand",
    "when": "terminalFocus"
},

最近のディレクトリへ移動

「最近のコマンドを実行」機能と同様に、「ターミナル: 最近のディレクトリへ移動 (Terminal: Go to Recent Directory)」コマンドは、訪問したディレクトリを追跡し、素早くフィルタリングしてそこに移動 (cd) できます。

<video src="/assets/updates/1_69/terminal-si-go-to-dir.mp4" autoplay loop controls muted title="「最近のディレクトリへ移動」コマンドは、以前に移動したディレクトリのクイックピックを表示し、いずれかを選択すると「cd パス」が実行されます。">

Altキーを押しながらテキストをターミナルに書き込むと、実行されません。

現在の作業ディレクトリの検出

シェル統合は、現在の作業ディレクトリが何かを教えてくれます。この情報は、これまでWindowsでは多くのハックなしでは判別できませんでしたし、macOSやLinuxではポーリングが必要で、パフォーマンスには良くありませんでした。

現在の作業ディレクトリは、相対リンクの解決、最近のコマンドが実行されたディレクトリの表示、および現在の作業ディレクトリの分割機能"terminal.integrated.splitCwd": "inherited"のサポートに使用されます。

シェル設定のサポートの拡大

今回のリリースでは、bash-preexecとの統合が改善され、powerlevel10kの基本的なサポートが追加され、シェル統合が機能しないケースがさらに検出され、この機能は適切に無効化されます。この分野での改善は、今後も長期にわたって続くと予想されます。

SetMarkシーケンスのサポート

ターミナルは現在、iTerm2 によって最初に作成されたシーケンス 'OSC 1337 ; SetMark ST' をサポートしており、行の左側とスクロールバーにマークを追加できるようになりました。

When the sequence is written to the terminal, a small grey circle will appear to the left of the command, with a matching annotation in the scroll bar

テーマ: Sapphire Theme

スクリプトでこれをトリガーする方法の例をいくつか示します。

  • bash: echo -e 'Mark this line\x1b]1337;SetMark\x07'
  • pwsh: Write-Host "Mark this line`e]1337;SetMark`a"

シンプルなPowerlineグリフのカスタムレンダリング

ターミナルでGPUアクセラレーションが有効になっている場合、一般的な4つの角度付きブラケット Powerline 記号が、ボックス描画およびブロック文字と同様にカスタムレンダリングされるようになりました。これにはいくつかの利点があります。

  • サブピクセルアンチエイリアシングは決して使用されず、両側に醜い赤色または青色の輪郭を引き起こし、「パワーライン」を破壊する可能性があります。
  • これらの文字は、パッチ適用済みフォントをインストールせずに機能します。
  • 行の高さがこれらの文字に影響します。

以前

Line height would not be respected, leading to a Powerline symbol with a different height to adjacent cells. Additionally, a blue outline could appear when sub-pixel anti-aliasing was used

以後

Line height is now respected and greyscale anti-aliasing is used for improved rendering

VS Codeからのメッセージの一貫したフォーマット

以前、プロセスではなくVS Codeによって直接書き込まれたターミナル内のメッセージは、いくつかの異なるフォーマットを使用していました。これは現在、全体的に一貫しており、派手なフォーマットと、より繊細なフォーマットが用意されています。

Loud formatting starts the line with an asterisk with the inverted style, followed by a message using a blue background

Subtle formatting starts the line with an asterisk with the inverted style, followed by a message using the default background

アクセシビリティの改善

今回のイテレーションで、ターミナルはアクセシビリティに関していくつかの改善点が見られました。

  • ターミナル: 検出されたリンクを開く... (Terminal: Open Detected Link...) コマンドで、より多くのリンクがデフォルトで利用可能になり、ターミナルバッファの残りの部分を検索する機能が追加されました。
  • ターミナル: 最近のコマンドを実行 (Terminal: Run Recent Command) コマンドで、Altキーを押しながら実行せずに結果のコマンドを入力できるようになりました。
  • ターミナルでの検索が、スクリーンリーダーによるアナウンスが改善されました。
  • ナビゲーションモード (Ctrl+Up) 内で、修飾キーなしで上下に移動できるようになりました。
  • ナビゲーションモード (Ctrl+Up) で、ページアップとページダウンを使用してページごとにスクロールできるようになりました。

プロセスの再接続と復元機能の改善

ターミナル永続化機能は、UXと信頼性の両面で改善されました。

  • 以前は、ウィンドウを `n` 回リロードすると `n` 回セッション復元メッセージが表示されていました。今後は、特定のセッションに入力があった場合にのみセッション復元メッセージが表示されるはずです。
  • 以前は日付が含まれていたセッション復元メッセージは、「履歴を復元しました」というシンプルな表示に変更され、ノイズが減りました。
  • 環境変数コレクション機能(拡張機能が環境を変更したい場合にユーザーに通知する機能、例えばGit自動認証をサポートするため)が、リロードをまたいでも動作するようになりました。

タスク

デコレーション

数回のイテレーション前、シェル統合機能のおかげで、ターミナルバッファと概要ルーラーにデコレーションを追加し、ターミナルのナビゲーションを改善しました。デコレーションは、タスクの興味深いポイントもマークするようになり、コマンドナビゲーション機能 (Ctrl/Cmd+Up, Ctrl/Cmd+Down) でジャンプできます。

開始/停止タスクの場合、タスクの開始位置の隣に装飾が表示され、もしあれば、実行の終了コードに応じてスタイルが設定されます。

A task fails and an error decoration is added. A task succeeds and a success decoration is added

監視タスクの場合、各コンパイルで最初に報告された問題の横に装飾が表示されます。

A watch task's first error is marked with a decoration

アイコンと色のサポート

タスクにCodicon id とターミナル ANSI color プロパティを持つ icon を設定できるようになりました。例:

{
  "label": "test",
  "type": "shell",
  "command": "echo test",
  "icon": { "id": "light-bulb", "color": "terminal.ansiBlue" }
}

The task custom icon appears in the terminal tabs list

kind プロパティが test に設定されているタスクは、デフォルトで beaker アイコンを使用します。

ソース管理

Gitリポジトリのコミット「アクションボタン」

1.61リリースでは、GitリポジトリにPublishおよびSync Changesの「アクションボタン」が追加されました。このマイルストーンでは、主要なアクションと一連の補助アクションを持つCommitボタンを追加しました。補助アクションはgit.postCommitCommand設定で制御でき、コミット後にプッシュまたは同期を行うこともできます。

コミット「アクションボタン」の追加に伴い、ソース管理ビューに表示されるGitアクションボタンを制御するための新しい設定git.showActionButtonが追加されました。引き続き、一般的なscm.showActionButton設定を使用して、ソース管理プロバイダーを実装する拡張機能によって提供されるすべてのアクションボタンの表示をグローバルに無効にすることができます。

エディターを使ったコミットメッセージの作成

今回のマイルストーンでは、コミット入力ボックスにメッセージが提供されていない場合に、フルテキストエディターを使用してコミットメッセージを作成できるようになりました。この新しいフローを使用するには、コミットメッセージを提供せずにコミット (Commit) ボタンをクリックします。

これで、エディターでコミットメッセージを作成できるようになりました。コミットメッセージを承認してコミット操作を完了するには、エディタータブを閉じるか、エディターツールバーのコミットメッセージを承認 (Accept Commit Message) ボタンを選択します。コミット操作をキャンセルするには、テキストエディターの内容をクリアしてエディタータブを閉じるか、エディターツールバーのコミットメッセージを破棄 (Discard Commit Message) ボタンを選択します。

この新しいフローを無効にし、クイック入力コントロールを使用する以前の体験に戻すには、git.useEditorAsCommitInput設定を切り替えます。設定を変更した後、変更を有効にするにはVS Codeを再起動する必要があります。

統合ターミナルで実行されるgit commitコマンドにも同じフローを使用するには、git.terminalGitEditor設定を有効にします。設定を有効にした後、ターミナルセッションを再起動する必要があります。

ブランチ保護インジケーター

前回のマイルストーンで、特定のブランチを保護するように設定できるgit.branchProtection設定を追加しました。今回のマイルストーンでは、保護されているブランチに対してステータスバーとブランチピッカーに視覚的なインジケーター(ロックアイコン)が追加されました。

ステータスバー

The branch protection icon is shown in the Status bar

ブランチピッカー

The branch protection icon is shown in the branch picker

デバッグ

「ターゲットにステップイン」UIの改善

一部のデバッガーでは、行で一時停止したときに特定の関数呼び出しに直接ステップインできます。今回のイテレーションで、このUIが改善されました。

  • ソース行上のターゲット領域を右クリックしてターゲットにステップイン (Step Into Target) を選択すると、ターゲット領域が存在する場合、自動的にそこにステップインします。
  • 新しいコマンドデバッグ: ターゲットにステップイン (Debug: Step Into Target) がコマンドパレットで利用可能になり、⌘F11 (Windows, Linux Ctrl+F11) のキーボードショートカットで利用できます。

デバッグコンソールでのナビゲーション

クイックアクセスメニューからコンソールにアクセス

デバッグコンソールのリストを表示するクイックアクセスメニューが利用可能になりました。メニューでコンソール名を選択すると、下部パネルに表示されます。ここで、コンソール名を検索およびフィルタリングできます。

テーマ: GitHub Dark Dimmed

このクイックアクセスメニューにアクセスするには、3つの異なる方法があります。

  • クイックオープンメニュー (⌘P (Windows, Linux Ctrl+P)) で?と入力し、デバッグコンソールを表示するオプションを選択します。

  • デバッグ: デバッグコンソールの選択 (Debug: Select Debug Console) コマンドを使用します。

  • クイックオープンメニューでdebug consoles (末尾にスペースを含む) を手動で入力します。

ビューメニューからコンソールにアクセス

既存のビューメニュー内からも、デバッグコンソールの一覧にアクセスできます。クイックオープンメニューでview (末尾にスペースを含む) と入力し、デバッグコンソール (Debug Console) パネルヘッダーまでスクロールします。利用可能なデバッグコンソールの一覧が表示されます。

コンソールの切り替え

これで、⇧⌘[ (Windows, Linux Ctrl+PageUp) を使用して前のデバッグコンソールに移動し、⇧⌘] (Windows, Linux Ctrl+PageDown) を使用して次のコンソールに移動できるようになりました。

ロードされたスクリプトの検索とフィルタリング

以前は、ロードされたスクリプトを実行とデバッグ (Run and Debug) メニューのツリービューからのみ表示できました。今回、新しいデバッグ: ロードされたスクリプトを開く... (Debug: Open Loaded Script...) コマンドを使用して、スクリプトを検索して移動できるようになりました。これはファイルへ移動... (Go to File...) コマンドとまったく同じように機能しますが、ロードされたスクリプトに移動できます。

JavaScriptデバッグ

ソースマップの切り替え

コールスタックビューのタイトルにある🧭コンパスアイコンをクリックするだけで、ソースマップを簡単にオン/オフできるようになりました。ソースマップがオフになっている場合でも、ソースコードに設定されたブレークポイントは機能しますが、コンパイル済みコードの同等の位置に移動し、デバッガーはソースコードではなくコンパイル済みコードをステップ実行します。

テーマ: Codesong

ソースマップがオフの場合、デバッグツールバーに同様のボタンが表示され、オンに戻すことができます。切り替え状態はワークスペースに保持されます。

toString() 変数プレビュー

変数またはプロパティにカスタムの toString() メソッドがある場合、それが呼び出されて変数 (VARIABLES) ビューおよびホバーにプレビューがレンダリングされます。これは、優れた文字列表現を持つ複雑な型に対する汎用オブジェクトプレビューの改善です。

たとえば、VS Code の Range には toString メソッドがあり、一目で内容を把握しやすくなっています。

Displaying the toString() method output in the Variables view

「ターゲットにステップイン」のサポート

JavaScriptデバッガーは「ターゲットにステップイン (Step Into Target)」をサポートするようになり、コード行の関数呼び出しに簡単にステップインできるようになりました。

Step Into Targets dropdown

これは、デバッグ: ターゲットにステップイン (Debug: Step Into Target) コマンド (⌘F11 (Windows, Linux Ctrl+F11)) または行を右クリックすることでアクセスできます。

JavaScriptデバッグにおけるバインドされていないブレークポイントの警告アイコン

TypeScript/JavaScriptプロジェクトをデバッグしていて、ソースマップの設定やブレークポイントのバインドに問題がある場合、VS CodeはブレークポイントビューにJavaScriptデバッガーのブレークポイントトラブルシューティングツールへのリンク付きのヒントメッセージを表示するようになりました。エディターの灰色のブレークポイントアイコンにホバーしてもヒントが表示されます。

hovering the breakpoint warning icon

このヒントを表示するAPIが最終化されれば、他のデバッガーも独自の適切なメッセージでヒントを表示できるようになります。

エディター

プレビュー付きリファクタリング

以前は、リファクタリングによって適用される変更を確認する方法がありませんでした。リファクタリングエクスペリエンスを向上させるために、コマンドパレットからアクセスできる新しいプレビュー付きリファクタリング (Refactor with Preview) コマンドが追加されました。プレビュー付きリファクタリング... (Refactor with Preview...)リファクタリング... (Refactor...) コマンドとまったく同じように機能しますが、リファクタリングプレビューパネルを開きます。ユーザーはリファクタリングプレビューを選択して、エディターでリファクタリングプレビューのより大きなビューを開くことができます。今回のイテレーションは主にリファクタリングからのコード変更のプレビューに焦点を当てており、今後の機能とカスタムのコードアクションメニューコントロールが続きます。

Refactor preview panel showing a refactoring that results in two changes

プレビュー付きリファクタリング (Refactor with Preview...) は、ワークベンチにペインを開き、リファクタリングプレビューエディタービューを開きます。

言語

Markdownでは、スペースやその他の特殊文字を含むリンクの宛先を記述するために山括弧を使用できます。

[Some link](<path to file with spaces.md>)

今回のイテレーションでは、山括弧リンクのサポートが改善され、エディターで正しくハイライトされ、クリックできるようになりました。

Emmetインライン補完設定

Emmetには、ファイル内でインライン補完を可能にする新しい設定emmet.useInlineCompletionsがあります。現時点では、HTMLおよびCSSファイルの編集のみにこの設定を有効にすることをお勧めします。

以下の短いビデオは、すべてのエントリについてeditor.quickSuggestions設定をoffに設定した状態で記録されました。

言語インジケーターのJSON通知

折りたたみ範囲、ドキュメントシンボル、またはカラーデコレーターが多すぎて表示できない場合、VS Codeは通知を使用せず、JSON言語インジケーターを使用してユーザーに通知するようになりました。

JSON notifications from the Status bar JSON language indicator

HTMLの最終改行フォーマッター設定の変更

html.format.endWithNewline設定は、files.insertFinalNewlineを優先して削除されました。

files.insertFinalNewlineはすべてのプログラミング言語に適用されます。言語ごとに異なる設定が必要な場合は、言語スコープを使用できます。

{
  "[html]": {
    "files.insertFinalNewline": true
  }
}

ノートブック

ノートブック内の拡張機能の推奨事項のサポート

必要な拡張機能がインストールされていない場合のノートブックの利用開始体験を向上させるため、拡張機能の推奨フローを更新し、ノートブックウィンドウから直接拡張機能をインストールできるようにしました。これにより、VS Code内で拡張機能がインストールされていない状態から実行可能なセルに移行するのに必要なステップ数が大幅に削減されます。今回のイテレーションでは、Python Jupyterノートブックでこの体験を有効にし、今後さらに多くのノートブックの種類と言語に対応する予定です。

A Quick Pick depicting two entries. The top entry is selected that has a light bulb to its left and says 'Install suggested extensions Python + Jupyter'

コメント

エディターコメント機能の切り替え

新しいコマンドコメント: エディターのコメント機能を切り替える (Comments: Toggle Editor Commenting) は、コメント範囲ガターデコレーション、行ホバー時の「+」ボタン、およびすべてのエディターコメントウィジェットを含む、すべてのエディターコメント機能を切り替えます。禅モードでは、コメント機能は自動的に無効になります。

複数行コメントのドラッグ

コメントを追加する「+」ボタンをドラッグして、複数行コメントを追加できます。

エンタープライズ

WindowsのUpdateModeグループポリシー

VS Codeは現在、Windows Registry-based Group Policyのサポートを追加しました。これにより、システム管理者は管理対象のマシンにポリシーを作成および展開できます。

最初にサポートされるVS CodeポリシーはUpdateModeで、これはupdate.mode設定を上書きし、新しいバージョンがリリースされたときにVS Codeが自動的に更新されるかどうかを制御します。

詳細については、EnterpriseドキュメントのWindows上のグループポリシーを参照してください。

Web 用 VS Code

テーマテスターが組み込みテーマをサポート

テーマテスターは、vscode.devのルートであり、インストールせずにカラーテーマを披露したり試したりするのに使用できます。これは、マーケットプレイスのテーマ拡張機能で、拡張機能IDとテーマ名を指定することで利用できました。例えば、GitHubテーマ拡張機能(拡張機能ID github.github-vscode-theme)の「GitHub Dark Default」テーマを見るには、次のURLでvscode.devを起動します。

https://vscode.dev/editor/theme/github.github-vscode-theme/GitHub%20Dark%20Default

Color theme tester with vscode.dev showing GitHub Theme extension GitHub Dark Default

テーマテスターは、VS Codeに組み込まれているテーマでも使用できるようになりました。拡張機能IDプレースホルダーにはvscode.theme-defaultsを使用し、その後チェックアウトしたいテーマ名を指定します。

例えば、「High Contrast Light」テーマをテストするには、以下のURLを使用します。

https://vscode.dev/editor/theme/vscode.theme-defaults/Default%20High%20Contrast%20Light

拡張機能の部分的なローカライズサポート

前回のイテレーションでは、vscode.devでコア製品が提供する文字列のローカライズを導入しました。今回のイテレーションでは、より多くの文字列、特に拡張機能マニフェストで拡張機能が提供する静的な文字列を含めています。拡張機能が提供する文字列にはまだローカライズが必要なセグメント(ソースコードで宣言された文字列)があるため、次回のイテレーションでもその作業を継続します。

表示言語の設定コマンド

一部のユーザーにとって、ブラウザで使用される言語を設定することは不可能です。これを回避するため、Web版のVS Codeには、ブラウザのデフォルト設定を上書きできる表示言語の設定 (Configure Display Language) コマンドが追加されました。

さらに、表示言語の設定をクリア (Clear Display Language Preference) コマンドを使用して、この上書きを削除できます。

VS Code Server (プライベートプレビュー)

VS Codeでは、ユーザーが最も生産性を高められる環境をシームレスに活用できるようにしたいと考えています。VS Codeリモート開発拡張機能を使用すると、Windows Subsystem for Linux (WSL)、SSH経由のリモートマシン、開発コンテナ内でVS Codeから直接作業できます。これらの拡張機能は、リモート環境にサーバーをインストールし、ローカルのVS Codeがリモートソースコードとランタイムとスムーズにやり取りできるようにします。

現在、スタンドアロンの「VS Code Server」のプライベートプレビューを提供しています。これは、リモート拡張機能で使用されている基盤となるサーバーと同じものに、インタラクティブなCLIや、SSH接続を必要とせずにvscode.devへの安全な接続を容易にするなど、いくつかの追加機能が組み込まれたサービスです。

The VS Code Server's help menu and a remote VS Code connection

私たちの最終的な目標は、プロジェクトがどこに保存されていても、デスクトップ版とWeb版の両方のVS Codeインスタンスを開くために現在使用しているcode CLIを強化することです。私たちはこれに向けて積極的に取り組んでいますが、VS Code Serverは、皆様からのフィードバックを得るためにプライベートプレビューとしてリリースすることを楽しみにしている素晴らしいマイルストーンです。

VS Code Serverの使用開始方法については、発表されたブログ記事ビデオで詳しく学ぶことができ、さらに詳細はドキュメントで確認できます。

拡張機能への貢献

ESLint

ESLint 拡張機能のバージョン 2.2.6 がリリースされました。様々なバグ修正に加えて、サポートされているすべてのESLint言語でノートブックセルでのリンティングサポートが追加されました。

ESlint validating notebook cells

Jupyter

IPyWidgets

IPyWidgetsは、Python以外のカーネル、例えばCommon LispIHaskellでもサポートされるようになりました。

リソース(画像、スクリプトなど)のロードに関連する多くのIPyWidgetの問題が解決され、それによってVegaFusionipyleafletChemiscopemobilechelonianipyturtleなどのウィジェットのサポートが向上しました。

その他の注目すべきIPyWidgetの修正には、Jupyter Outputウィジェット内での複雑な出力やネストされた出力(インタラクティブなものも含む)の表示が含まれます。

Web拡張機能

Jupyter 拡張機能のWeb版で、より多くのコア機能をサポートするための進捗がありました。

今月、以下の機能がWeb拡張機能に移植されました。

  • インタラクティブウィンドウのエクスポート
  • インタラクティブウィンドウのデバッグ
  • インタラクティブウィンドウの折りたたみ可能なセル

機能を試してみたい場合は、ローカルマシンからJupyterを起動してください。

jupyter notebook --no-browser --NotebookApp.allow_origin_pat=https://.*\.vscode-cdn\.net

その後、vscode.dev内からJupyter: 接続するJupyterサーバーを指定コマンドを使用してそれに接続します。

詳細(およびコメント)については、このディスカッション項目を参照してください。

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

プルリクエストやイシューの作業、作成、管理ができるGitHubプルリクエストとイシュー拡張機能には、さらに進展がありました。今回のリリースのハイライトは以下の通りです。

  • プルリクエストのブランチを無視するための新しい設定"githubPullRequests.ignoredPullRequestBranches"
  • "githubPullRequests.pushBranch"設定を使用してPRを作成する際に、ブランチを公開しますか? (Publish branch?) ダイアログをスキップできます。
  • 概要 (Overview) エディターに自動マージチェックボックスが追加されました。

その他のハイライトについては、拡張機能の0.46.0 の変更履歴をご覧ください。

プレビュー機能

TypeScript 4.8 サポート

今回のアップデートには、今後のTypeScript 4.8リリースへのサポートが含まれています。TypeScriptチームが現在取り組んでいることの詳細については、TypeScript 4.8 イテレーション計画をご覧ください。

TypeScript 4.8ナイトリービルドの使用を開始するには、TypeScript Nightly 拡張機能をインストールしてください。

Markdownファイルのリンク検証を改善し続けています。この実験的機能は、Markdownファイル内の画像やヘッダーへの壊れたリンクを検出するのに役立ちます。

いくつかのバグを修正し、パフォーマンスを改善しただけでなく、機能がより明確になるように設定の一部を改名しました。新しい設定名は以下の通りです。

  • markdown.experimental.validate - すべてのリンク検証機能を有効/無効にします。
  • markdown.experimental.validate.fileLinks.enabled - ローカルファイルへのリンクの検証を有効/無効にします: [link](/path/to/file.md)
  • markdown.experimental.validate.fileLinks.markdownFragmentLinks - ローカルファイルへのリンクのフラグメント部分の検証を有効/無効にします: [link](/path/to/file.md#some-header)
  • markdown.experimental.validate.fragmentLinks.enabled - 現在のファイル内のヘッダーへのリンクの検証を有効/無効にします: [link](#_some-header)
  • markdown.experimental.validate.referenceLinks.enabled - 参照リンクの検証を有効/無効にします: [link][ref]
  • markdown.experimental.validate.ignoreLinks - 検証をスキップするリンクのリスト。ディスク上に存在しないが、Markdownが公開されると存在するファイルへのリンクに便利です。

ぜひお試しいただき、この新機能についてのご意見をお聞かせください!

設定プロファイル

ここ数ヶ月間、コミュニティからの最も人気の高い要望の一つである 設定プロファイル (Settings Profiles) のサポートに取り組んできました。このマイルストーンで、この機能がInsidersリリースでworkbench.experimental.settingsProfiles.enabled設定を介してプレビュー可能になったことをお知らせできることを嬉しく思います。ぜひこの機能をお試しいただき、VS Code リポジトリで課題を作成するか、課題 #116740にコメントしてフィードバックをお聞かせください。

設定プロファイルは、設定、キーボードショートカット、拡張機能、状態、タスク、スニペットで構成されます。Web、機械学習のような異なる開発環境、Python、Javaのような複数のプログラミング言語の教室、または仕事やデモのような個人的なモードに合わせてVS Codeをカスタマイズし、それらを設定プロファイルとして保存できます。作業中のプロジェクト、参加している教室、またはプレゼンテーションを行っている場合に基づいて、異なるプロファイルで複数のワークスペース(フォルダー)を同時に開くことができます。

以下は、Web開発環境向けにVS Codeをカスタマイズし、そこから設定プロファイルを作成するデモンストレーションです。

開発プロファイルからデモプロファイルへ簡単に切り替える方法を示しています。

以下の図に示すように、Web開発プロファイルでReactプロジェクトを、PythonクラスプロファイルでPythonクラスプロジェクトを同時に開くことができます。

Multiple opened Profiles

設定の以下の色カスタマイズキーを使用して、設定プロファイルのステータスバーエントリのフォアグラウンドと背景色をカスタマイズできます。

"workbench.colorCustomizations": {
    "statusBarItem.settingsProfilesBackground": "#ce4918",
    "statusBarItem.settingsProfilesForeground": "#e0dfdb",
}

設定ギアメニューの設定プロファイル (Settings Profiles) サブメニューにある設定プロファイルを削除... (Remove Settings Profile...) アクションを使用して、設定プロファイルを管理および削除できます。

Removing Settings Profiles

プロファイルごとにVS Codeをカスタマイズできますが、アプリケーションレベルでのみカスタマイズできる設定がいくつかあります。たとえば、update.mode、言語パック拡張機能、設定同期の有効化、ワークスペース信頼状態など、すべてのアプリケーションスコープの設定は、すべてのプロファイル間でアプリケーションレベルでカスタマイズされます。

VS Code for the Web とデスクトップ間での編集セッションへのアクセス

今回のマイルストーンでは、VS Codeの編集セッション (edit sessions) のプレビューを発表します。編集セッションを使用すると、コミットされていない変更を、VS Codeが利用可能な場所であればどこでも、Web版VS Code、デスクトップ版VS Code、または異なるマシン間で、リポジトリでの作業を続行する際に引き継ぐことができます。

例えば、編集セッションを使用して作業中の変更を転送・アクセスできます。

  • github.dev のリポジトリから、そのリポジトリのローカルデスクトップクローンへ。
  • Windowsデバイス上のリポジトリのクローンから、macOSデバイス上のそのリポジトリのクローンへ。

編集セッションは現在、workbench.experimental.editSessions.enabled設定の背後でプレビュー中です。この初期リリースでは、以下のコマンドを使用して作業中の変更を保存および再開できます。

  • 編集セッション: 現在の編集セッションを保存 (Edit Sessions: Store Current Edit Session)
  • 編集セッション: 最新の編集セッションを再開 (Edit Sessions: Resume Latest Edit Session)

編集セッションを開始するには、編集セッション: 現在の編集セッションを保存 (Edit Sessions: Store Current Edit Session) コマンドを使用し、プロンプトが表示されたらGitHubまたはMicrosoft認証でサインインします。その後、別のマシンまたはVS Codeインスタンスのレポジトリで編集セッション: 最新の編集セッションを再開 (Edit Sessions: Resume Latest Edit Session) コマンドを使用して、変更されたすべてのファイルの作業内容をワークスペースに復元します。編集セッション: サインアウト (Edit Sessions: Sign Out) コマンドを使用して、いつでも編集セッションからサインアウトできます。

編集セッションの体験を引き続き改善していきますので、ぜひお試しいただき、課題 #141293へのコメントを通じてフィードバックをお寄せください。

拡張機能作成

反復可能な vscode.d.ts コレクション型

vscode.d.tsのコレクション型を扱いやすくするために、今回のイテレーションですべてを反復可能にしました。これにより、これらの型でfor...ofループとスプレッドを使用できるようになります。

const data: vscode.DataTransfer = ...;
for (const [mime, item] of data) {
    const str = await item.asString();
    ...
}

新しく反復可能になった型の全セットは以下の通りです。

  • DiagnosticCollection
  • DataTransfer
  • EnvironmentVariableCollection
  • TestItemCollection

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

ノートブックレンダラーを使用すると、拡張機能はノートブックでセルと出力がどのようにレンダリングされるかをカスタマイズできます。今回のイテレーションでは、レンダラーがVS Codeの組み込みレンダラーの一部を含む別のレンダラーを拡張できるように、ノートブックレンダラーAPIを拡張しました。これにより、拡張機能は完全なレンダラーを再実装することなく、ノートブックレンダリングに新しい機能を追加できます。また、ユーザーは正しくレンダリングされたコンテンツを見るために新しいレンダラーに切り替える必要がないため、より良いユーザーエクスペリエンスを提供します。

Notebook Extend Markdown Renderer Sample は、拡張機能がVS Codeの組み込みMarkdownレンダラーを絵文字サポートで拡張する方法を示しています。主要な部分を簡単に見てみましょう!

拡張可能なノートブックレンダラーのAPIは意図的に緩く定義されています。まず、拡張機能は新しいノートブックレンダラーを提供する必要があります。既存のレンダラーを拡張するため、ここではentrypointフィールドを使用して、拡張するレンダラーのID(この場合はVS Codeの組み込みvscode.markdown-it-renderer)と、ロードするレンダラースクリプトへのパスの両方を指定します。

"notebookRenderer": [
    {
        "id": "sample.markdown-it.emoji-extension",
        "displayName": "Markdown it Emoji renderer",
        "entrypoint": {
            "extends": "vscode.markdown-it-renderer",
            "path": "./out/emoji.js"
        }
    }
]

このレンダラーは、vscode.markdown-it-rendererがアクティブ化されるたびにアクティブ化されるようになります。

さて、vscode.markdown-it-rendererを拡張するには、レンダラーがベースレンダラーのメソッドを呼び出すことができます。このメソッドはベースレンダラーに固有のものです。この場合、まずgetRendererを使用してベースレンダラーを取得し、次にその上でextendMarkdownItを呼び出して、レンダリングに使用するMarkdown-Itのインスタンスを拡張します。

import type * as MarkdownIt from 'markdown-it';
import type { RendererContext } from 'vscode-notebook-renderer';

interface MarkdownItRenderer {
    extendMarkdownIt(fn: (md: MarkdownIt) => void): void;
}

export async function activate(ctx: RendererContext<void>) {
    // Acquire the base renderer
    const markdownItRenderer = await ctx.getRenderer('vscode.markdown-it-renderer') as MarkdownItRenderer | undefined;
    if (!markdownItRenderer) {
        throw new Error(`Could not load 'vscode.markdown-it-renderer'`);
    }

    // Load our Markdown-It extension
    const emoji = require('markdown-it-emoji');

    // Call the base renderer's extension method (extendMarkdownIt) to augment
    // the Markdown-It with emoji support.
    markdownItRenderer.extendMarkdownIt((md: MarkdownIt) => {
        return md.use(emoji, {});
    });
}

ここで注目すべき重要な点は、extendMarkdownItが単にベースレンダラーによって返されるメソッドであるということです。他の拡張可能なレンダラーは、独自の拡張ポイントを簡単に返すことができます。

VS Codeの組み込みMarkdown-Itレンダラーを拡張する完全な例については、Notebook Extend Markdown Renderer Sample をご覧ください。

DataTransfersから外部ファイルを読み込む

拡張機能は、DataTransferを使用して外部ファイルを読み込めるようになりました。これは、ツリーのドラッグアンドドロップAPIや、エディターへのドロップAPIの提案でも使用できます。

export class TestViewDragAndDrop implements vscode.TreeDataProvider<Node>, vscode.TreeDragAndDropController<Node> {

    public async handleDrop(target: Node | undefined, sources: vscode.DataTransfer, token: vscode.CancellationToken): Promise<void> {
        // Get a list of all files
        const files: vscode.DataTransferFile[] = [];
        sources.forEach((item) => {
            const file = item.asFile();
            if (file) {
                files.push(file);
            }
        });

        const decoder = new TextDecoder();

        // Print out the names and first 100 characters of the file
        for (const file of files) {
            const data = await file.data();
            const text = decoder.decode(data);
            const fileContentsPreview = text.slice(0, 100);
            console.log(file.name + ' — ' + fileContentsPreview + '\n');
        }

        ...
    }
}

Webビューでのハイコントラストライト

ウェブビューで、vscode-high-contrast-light CSS クラスを使用して、ハイコントラストライトカラーテーマをターゲットにできるようになりました。

.vscode-high-contrast-light .error {
    color: red;
}

vscode-high-contrast-lightクラスは、Webビューのbody要素に自動的に追加されます。

Test Itemラベルのアイコン

標準の$(icon)形式のCodiconsTestItem.labelで使用できるようになり、Test Explorerビューとテスト結果にアイコンを表示できます。

ソース管理入力ボックスの有効化

拡張機能の作者は、enabledプロパティを使用して、ソース管理ビューの入力ボックスの有効化を切り替えられるようになりました。

JSONの単語パターン変更

すべての言語には、その言語においてどの文字が単語に属するかを定義する単語パターンがあります。JSONは、文字列リテラルの引用符と文字列リテラルの完全な内容を含んでいた点で、他のすべての言語とは異なっていました。現在は他の言語に従い、文字、数字、ハイフンのみを含んでいます。

この変更により、選択範囲の拡大(コマンド: 選択範囲を拡大 (Expand Selection))時の問題が修正され、文字列内の単語補完が可能になり、一部のコード提案の異常が修正されます。

単語パターンに依存していた拡張機能(たとえば、コード補完におけるデフォルトの置換範囲など)は、すべての補完に対して置換範囲を明示的に指定するように実装を更新する必要があります。

デバッグアダプタープロトコル

  • ターゲットにステップイン (Step Into Target) 機能のユーザーエクスペリエンスを向上させるため、DAPのStepInTarget型に追加情報が加えられました。linecolumnendLineendColumnの4つのプロパティにより、ステップインターゲットを対応するソース範囲にリンクできるようになりました。
  • デバッガーにプログラム引数を渡すことは、2つの相反する目標によって妨げられています。一部のユーザーはすべての文字をデバッガーに渡したいと考えていますが、他のユーザーは基礎となるシェルと対話するために一部の文字を使用したいと考えています。両方のユースケースをより良くサポートするために、DAPのrunInTerminalリクエストでプログラム引数内の特殊文字のエスケープを制御する作業を進めています。提案はすでに利用可能です。このDAPの追加に関心のあるデバッグ拡張機能の作者の方は、フィードバックをお寄せいただければ幸いです。
  • さらに、デバッグアダプタープロトコルのいくつかのドキュメントに関する問題に対処しました。これには、「クライアント」と「falsey」という用語に関する明確化、チェックサムと日付文字列のより正確な仕様、Source.originの表現の改善が含まれます。

提案されたAPI

すべてのマイルストーンには新しい提案された API が含まれており、拡張機能の作者はそれらを試すことができます。いつものように、皆様からのフィードバックを歓迎します。提案された API を試す手順は次のとおりです。

  1. 試したい提案を見つけて、その名前をpackage.json#enabledApiProposalsに追加します。
  2. 最新のvscode-dtsを使用して、vscode-dts devを実行してください。これにより、対応するd.tsファイルがワークスペースにダウンロードされます。
  3. これで提案に対してプログラミングできます。

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

貼り付け編集プロバイダー

documentPaste APIの提案を更新し、特に複数カーソルで作業する場合に、より正確に実装できるようにしました。

再確認ですが、このAPIは拡張機能がテキストエディター内のコピー&ペーストにフックすることを可能にします。拡張機能はこれを使用して、貼り付け時に挿入されるテキストを変更できます。ドキュメント貼り付け拡張機能サンプルは、更新されたAPIの動作を示しています。

/**
 * Provider that maintains a count of the number of times it has copied text.
 */
class CopyCountPasteEditProvider implements vscode.DocumentPasteEditProvider {
  private readonly countMimeTypes = 'application/vnd.code.copydemo-copy-count';

  private count = 0;

  prepareDocumentPaste?(
    _document: vscode.TextDocument,
    _ranges: readonly vscode.Range[],
    dataTransfer: vscode.DataTransfer,
    _token: vscode.CancellationToken
  ): void | Thenable<void> {
    dataTransfer.set(this.countMimeTypes, new vscode.DataTransferItem(this.count++));
    dataTransfer.set('text/plain', new vscode.DataTransferItem(this.count++));
  }

  async provideDocumentPasteEdits(
    _document: vscode.TextDocument,
    _ranges: readonly vscode.Range[],
    dataTransfer: vscode.DataTransfer,
    _token: vscode.CancellationToken
  ): Promise<vscode.DocumentPasteEdit | undefined> {
    const countDataTransferItem = dataTransfer.get(this.countMimeTypes);
    if (!countDataTransferItem) {
      return undefined;
    }

    const textDataTransferItem = dataTransfer.get('text') ?? dataTransfer.get('text/plain');
    if (!textDataTransferItem) {
      return undefined;
    }

    const count = await countDataTransferItem.asString();
    const text = await textDataTransferItem.asString();

    // Build a snippet to insert
    const snippet = new vscode.SnippetString();
    snippet.appendText(`(copy #${count}) ${text}`);

    return { insertText: snippet };
  }
}

export function activate(context: vscode.ExtensionContext) {
  // Enable our provider in plaintext files
  const selector: vscode.DocumentSelector = { language: 'plaintext' };

  // Register our provider
  context.subscriptions.push(
    vscode.languages.registerDocumentPasteEditProvider(
      selector,
      new CopyCountPasteEditProvider(),
      {
        pasteMimeTypes: ['text/plain']
      }
    )
  );
}

Web上でのWebUSB、WebSerial、WebHIDアクセス

Web拡張機能からWebUSBWeb SerialWebHIDを使用するための実験的なサポートが追加されました。

これらのAPIにアクセスするには、拡張機能はまず以下のいずれかのコマンドを実行して、目的のデバイスへのアクセスを要求する必要があります。

  • workbench.experimental.requestUsbDevice
  • workbench.experimental.requestSerialPort
  • workbench.experimental.requestHidDevice

これらのコマンドは、ユーザーにデバイスの選択を促します。各コマンドは、引数としてデバイスフィルターのリストを受け取ります。例:

import * as vscode from 'vscode';

await vscode.commands.executeCommand('workbench.experimental.requestUsbDevice', {
  filters: [
    { vendorId: 0x404 } // Your custom filter or empty if you want users to select any device
  ]
});

コマンドが完了すると、拡張機能は通常のWeb APIを使用して、ユーザーがアクセスを許可したデバイスにアクセスできます。

const devices = await navigator.usb.getDevices();
// Do something with devices

requestDevice のようにユーザーにUI要素を表示する必要があるものを除き、通常のウェブデバイスAPIはすべて機能するはずです。

現時点では、この機能はWeb上でのみ動作し、ChromeとEdgeブラウザに限定されています。また、この機能はまだ実験段階であるため、デザインが変更される可能性があることに留意してください。ぜひお試しいただき、フィードバックをお寄せください!

エンジニアリング

Electron 18へのアップデート

今回のマイルストーンで、Electron 18をVS Codeデスクトップにバンドルする探求を終え、Insidersでセルフホスティングに協力してくださったすべての方々に感謝いたします。このアップデートには、Chromium 100.0.4896.160とNode.js 16.13.2が含まれています。

ドキュメント

TypeScriptの編集とリファクタリング

VS CodeのTypeScriptの編集リファクタリングに焦点を当てた新しい2つのトピックがあります。そこでは、インレイヒントCodeLens、TypeScript固有の書式設定オプション、および利用可能なコードリファクタリングなどの特定の機能について学ぶことができます。

注目すべき修正点

  • 109565 Caps Lockを使って入力ソースを切り替えると、ターミナルが常に大文字を表示する
  • 146491 アクティブと非アクティブなメニューの色差がなくなった
  • 149538 中国でMicrosoftまたはGitHubアカウントにログインできない
  • 149890 アイテムをドラッグして空のツリービューにドロップできない
  • 150934 RPMはバンドルされたライブラリを「provides」としてリストすべきではない
  • 151158 ノートブックを保存する際に、名前のないノートブックで選択されたカーネルを保持する
  • 151664 スクリーンリーダーでコードをステップ実行する際のアナウンス効率を改善
  • 151739 コメントスレッドに初めて返信する際にworkbench.action.submitCommentが機能しない & コメント編集時に混乱する
  • 152067 コメントスレッドの範囲はコメントが展開されている場合にのみ表示
  • 152141 プロセス終了時にタスクステータスをドロップする
  • 152642 ウォッチ式をワンクリックで削除するボタンを追加

ありがとうございます

最後に、VS Codeの貢献者の皆様に心からの感謝を申し上げます。

Web拡張機能

Web拡張機能としてコードを実行する拡張機能を有効にした拡張機能開発者 (以下のリストは2022年6月7日から7月4日までのものです)

問題追跡

問題追跡への貢献者

プルリクエスト

vscodeへの貢献者

vscode-generator-codeへの貢献者

vscode-js-debugへの貢献者

vscode-pull-request-githubへの貢献者

debug-adapter-protocolへの貢献者

devcontainers/cliへの貢献