2024年3月 (バージョン 1.88)
更新 1.88.1: この更新では、これらの問題に対処しています。
ダウンロード: Windows: x64 Arm64 | Mac: ユニバーサル Intel シリコン | Linux: deb rpm tarball Arm snap
Visual Studio Code 2024 年 3 月リリースへようこそ。このバージョンには多くの更新が含まれており、皆様に気に入っていただけることを願っています。主なハイライトをいくつかご紹介します。
- カスタムエディターラベルの適用 - 同じファイル名のエディターを区別します。
- ロックされたスクロール - 同期スクロールでエディターを並べて比較します。
- 拡張機能の更新の改善 - リロードせずに拡張機能を再起動し、VS Code リリースで拡張機能を更新します。
- テストカバレッジ API - VS Code のネイティブコードカバレッジサポート。
- ミニマップの折りたたみマーカー - ミニマップからコードセクションを簡単に識別してナビゲートします。
- クイック検索の改善 - 固定ファイルパス区切り文字と区切りボタン。
- ノートブックのセクションでセルを実行 - ノートブックセクション内のすべてのセルをすばやく実行します。
- Copilot の改善 - インラインチャット UI、コミットメッセージ、および使用された参照の改善。
- Python の自動検出の改善 - Flask および Django の起動ファイルを検出し、Hatch 環境を発見します。
- プレビュー: ターミナルインラインチャット - ターミナルから直接 Copilot インラインチャット会話を開始します。
これらのリリースノートをオンラインで読むには、Updates ( code.visualstudio.com) にアクセスしてください。Insiders: 最新機能をいち早く試したいですか? nightly Insiders ビルドをダウンロードして、最新の更新が利用可能になり次第お試しください。
アクセシビリティ
音声録音のサウンド
音声録音用の新しいアクセシビリティ信号サウンドを追加しました。
- 音声録音開始 -
accessibility.signals.voiceRecordingStarted
設定で構成 - 音声録音終了 -
accessibility.signals.voiceRecordingStopped
設定で構成
差分エディターのアクセシビリティの向上
スクリーンリーダーを使用している場合、差分エディターがアクティブなエディターになるとアナウンスが通知されるようになりました。この動作は、accessibility.verbosity.diffEditorActive
設定で無効にできます。
キーボードユーザーに役立つコマンドである差分エディター: 左右を入れ替えに関する情報も、アクセシビリティヘルプダイアログに追加しました。
アクセシビリティ信号が差分エディターの両側で動作するようになりました。以前は、変更された側でのみ利用可能でした。
アクセシブルビューのチャットコードブロックコマンド
アクセシブルビューでチャット応答を検査すると、チャットビューで利用可能なコードブロックコマンドとキーバインドを使用できるようになりました。
これらには、チャット: カーソル位置に挿入、チャット: ターミナルに挿入、チャット: 新規ファイルに挿入が含まれます。
ノートブックセルの aria ラベルの更新
ノートブックセルの Aria ラベルが、セルが現在実行中または実行保留中の場合にインジケーターを表示するように更新されました。
ワークベンチ
フローティングウィンドウでのカスタムエディターのサポート
フローティングウィンドウにエディターを開くためのサポートを、カスタムエディター、および一般的にwebview APIを使用するすべてのエディターに拡張しました。これには、Markdown プレビュー、ブラウザープレビュー、およびhex editorなどの複雑なカスタムエディターが含まれます。
注: 技術的な制限により、webview ベースのエディターをウィンドウ間で移動するには、そのエディターのコンテンツをリロードする必要があります。その後、以前に蓄積した状態を復元するのはエディター次第です。場合によっては、最初にエディターを開いたかのように状態がリセットされることがあります。
開いているエディターのカスタムラベル
エディタータブと [開いているエディター] ビューの表示ラベルをカスタマイズできるようになりました。この機能は、同じ名前のファイルのエディターを区別するのに役立ちます。
workbench.editor.customLabels.patterns
設定の下にエントリを追加することで、これらのラベルを好みに合わせて調整できます。各エントリには、ファイルパスに一致するグロブパターンと、エディタータブの新しい名前を定義するテンプレートを含める必要があります。このカスタマイズは、ファイルのパスが指定されたパターンと一致する場合にのみ適用されます。パターンが一致するかどうかは、相対ファイルパスパターンまたは絶対ファイルパスパターンのどちらとして定義されているかによって異なります。
テンプレートには、${filename}
、${extname}
、${dirname}
、${dirname(N)}
などの変数を組み込むことができ、これらはファイルのパスからの値で動的に置き換えられます。
これらのカスタムラベルを有効または無効にするには、workbench.editor.customLabels.enabled
設定を使用します。これにより、カスタムパターンを削除しなくても、いつでも元のエディター名に切り替えることができます。
ロックされたスクロール
表示: エディター間でロックされたスクロールを切り替えコマンドを使用すると、表示されているすべてのエディター間でスクロールを同期できるようになりました。これは、1 つのエディターでスクロールすると、他のすべてのエディターも同じ量だけスクロールし、すべてが整列された状態になることを意味します。この機能は、ファイルを並べて比較する必要がある場合に役立ちます。
ロックされたスクロールの有効化と無効化をより細かく制御したい場合は、特定のキーバインドを押している場合にのみスクロール同期をアクティブ化するように選択できます。workbench.action.holdLockedScrolling
コマンドのキーボードショートカットを設定すると、必要なときにいつでもエディター間のスクロールを一時的にロックできます。
下部のアクティビティバー
以前に、アクティビティバーをサイドバーの上部に移動するオプションを導入しました。アクティビティバーを下部に移動することもできるようになりました。これを行うには、workbench.activityBar.location
設定を bottom
に変更します。
アクティビティバーが上部に配置されている場合の外観も改善し、インターフェイスの残りの部分にうまく適合するようにしました。
検索エディターのシングルクリック動作
search.searchEditor.singleClickBehaviour
設定を構成して、検索エディターエントリをシングルクリックしたときに何が起こるかを決定できるようになりました。現在、この設定は [定義をピーク] を開くことのみをサポートしています。
クイック検索の改善
固定ファイルパス
クイック検索では、検索結果が関連付けられているファイルをより明確にするために、ファイル名区切り文字を固定にしました。これは、ファイル内に検索語の出現箇所が多数ある場合に役立ちます。
ファイルパス区切りボタン
特定のファイルのファイル結果にカーソルを合わせるか、結果まで矢印キーで移動すると、ファイルパス区切り文字にもボタン (たとえば、ファイルを開くボタン) が表示されます。
クイックピッカー区切りナビゲーションキーバインド
クイックピッカーで区切り文字間をナビゲートできると便利だというフィードバックをいただきました。今回のイテレーションでは、これを実現するためのキーバインドを追加しました。Windows および Linux では Alt+Up/Down
、macOS では Cmd+Up/Down
を使用できます。次のビデオ例では、アクティブなアイテムが次のように移動する様子を確認できます。
- コマンドパレットの
最近使用したコマンド
とその他のコマンド
の区切り文字の間 - クイック検索のファイルパス区切り文字の間
クイックピッカーの無効なチェックボックス項目
今回のイテレーションでは、クイックピッカーに無効になっている項目が表示される場合をより明確にしました。この例は、ログインしている任意のアカウントでアクセスできる [信頼済み拡張機能の管理] クイックピッカーにあります。
拡張機能の更新の改善
拡張機能の再起動
拡張機能が更新されると、ウィンドウをリロードする代わりに拡張機能を再起動できるようになりました。
注: WSL、SSH、Dev Container などのリモートサーバーに接続している場合は、拡張機能を更新するためにウィンドウをリロードする必要があります。
VS Code の更新による拡張機能の更新
拡張機能の自動更新
を有効にしている場合、VS Code は、更新が利用可能な新しいバージョンの VS Code と互換性のある拡張機能を更新するようになりました。新しいバージョンの拡張機能が現在のバージョンの VS Code と互換性がない場合、新しいバージョンの拡張機能は、VS Code を更新した後にのみ有効になります。
コメント返信へジャンプ
コメントビューのコメントスレッドのコンテキストメニューに、コメントスレッドが返信を許可する場合に [返信] アクションが含まれるようになりました。これにより、返信入力ボックスにすばやくジャンプして返信を入力できます。
エディター
ミニマップセクションヘッダー
ミニマップは、TypeScript の //#region
や MARK:
を使用するコメントなど、折りたたみマーカーによって定義されたセクションを認識してレンダリングするようになりました。これにより、大きなファイルをすばやくスキャンしてナビゲートできます。
リファクタリングプレビューキーバインド
シンボルの名前変更リファクタリング (F2) の編集をプレビューするためのキーバインドを更新し、コードアクションなどの他のコンテキストでのリファクタリングのプレビューとの一貫性を維持するようにしました。⌘Enter (Windows, Linux Ctrl+Enter) (以前は Shift + Enter
) を使用して編集をプレビューできるようになりました。
コードアクションにカーソルを合わせると、⌘Enter (Windows, Linux Ctrl+Enter) もワークベンチで [リファクタリングプレビュー] パネルを開きます。
差分エディターステージ/元に戻す選択ボタン
差分エディターに、ステージおよび元に戻すコントロール用の別のガターが追加されました。これらのアクションを使用すると、変更されたコードブロックをステージングまたは元に戻すことができます。
変更の一部をテキスト選択すると、これらのボタンを使用して、選択した変更 (選択範囲内のすべての変更された文字) をステージングまたは元に戻すことができます。
diffEditor.renderGutterMenu
を false
に設定すると、差分エディターガターを非表示にできます。
名前変更候補の動作
名前変更候補の使用フローを改善し、クイックピッカーのフローと一致するようにしました。リストから名前変更候補を選択すると、入力値がそれに応じて更新されるようになり、候補をさらに変更できるようになります。
ソース管理
受信変更ファイル装飾
リモートからの変更をマージ/リベースするときに潜在的な競合を回避するために、受信変更があり、フェッチされたがまだマージ/リベースされていないすべてのファイルにファイル装飾が表示されるようになりました。この機能を利用するには、git.autofetch
と git.decorations.enabled
の両方の設定を有効にする必要があります。
テーマ: GitHub Sharp (vscode.dev でプレビュー)
ターミナル
デバッグターミナルのシェル統合
ユーザーと拡張機能に拡張機能を提供するために、デバッグ時に起動されるターミナルでシェル統合が自動的に有効になるようになりました。
最近のコマンドの実行の改善
シェル統合を活用した最近のコマンドの実行 (⌃⌥R (Windows, Linux Ctrl+Alt+R)) は、可能な場合、コマンドが最後に実行された時刻までスクロールして表示するようになりました。コマンドを実行するか、クイックピッカーをキャンセルすると、ターミナルは以前の状態に戻ります。
テーマ: Sapphire (vscode.dev でプレビュー)
検出されたリンクを開く機能の改善
検出されたリンクを開くコマンド (⇧⌘G (Windows, Linux Ctrl+Shift+G)) が、エディターでリンク結果をプレビューし、ターミナルでリンクソースを強調表示するようになりました。
さらに、重複するリンクがリストから除外され、すべてのリンクが一貫した形式で表示されるようになりました。
ワードリンクの追加コンテキスト
ワードリンクは terminal.integrated.wordSeparators
設定で定義され、ファイル/フォルダー/URI が見つからない場合のフォールバックです。アクティブ化されると、これらのリンクには、検索が発生する行と列の情報を含む追加の周囲コンテキストが含まれるようになりました。
スクリーンショットでは、リンク terminalLinkParsing
が選択されていますが、結果の検索にはリンクに続く行番号も含まれていることに注意してください。
新しいリンク形式
パスにスペースが含まれていても、次のリンク形式がターミナルで検出されるようになりました。
FILE パス:行:列
ターミナルスティッキースクロール透明度サポート
ターミナルのスティッキースクロールが透明度をサポートするようになりました。テーマは、terminalStickyScroll.background
テーマの色を透明な値に構成するか、settings.json
でオーバーライドを指定することで、これを使用できます。例:
{
"workbench.colorCustomizations": {
"[Default Dark Modern]": {
"terminalStickyScroll.background": "#181818c0"
}
}
}
これにより、透明なスティッキースクロール背景が得られ、背後のテキストが透けて見えるようになります。
テスト
テストカバレッジ
今回のイテレーションでは、テストカバレッジ API を完成させ、ネイティブカバレッジサポートを VS Code に導入しました。テストシステムがサポートしている場合は、新しい カバレッジ付きで実行 ボタンを使用してカバレッジを取得できます。
同様に、カバレッジ付きで実行するための新しいキーバインドがあります。たとえば、Ctrl+; Ctrl+Shift+A はすべてのテストをカバレッジ付きで実行し、Ctrl+; Ctrl+Shift+L は最後に実行したテストセットをカバレッジ付きで実行します。
カバレッジ情報は、デフォルトで行番号のオーバーレイとして表示されますが、インラインカバレッジの切り替えを使用して、ソースファイルの完全な詳細情報を表示できます。
テーマ: Codesong (vscode.dev でプレビュー)
テストカバレッジを使用するには、拡張機能が新しい API を実装している必要があります。Test Runner for Java や node:test runner などの一部の拡張機能は、すでにサポートしています。Java 用テストカバレッジの詳細については、チームの12月および1月の更新情報を参照してください。
拡張機能作成者は、テストカバレッジ API の詳細をテスト API ドキュメントで確認できます。
テストメッセージの色コードサポート
テストが失敗した場合に表示されるテキストテストメッセージなど、テキストテストメッセージを色付けするためにターミナルカラーコードを解析するようになりました。生の「印刷不可」データコードを表示するのではなく、色付けします。
言語
TypeScript 5.4
VS Code に TypeScript 5.4 が含まれるようになりました。このメジャーアップデートでは、型チェックと IntelliSense が新しく改善され、いくつかのバグが修正されています。詳細については、TypeScript 5.4 リリースブログ投稿を参照してください。
Markdown での画像とリンクのよりスマートな挿入
画像またはファイルを Markdown ファイルにドロップまたは貼り付けると、VS Code は自動的に Markdown 画像またはリンク構文を挿入します。コードブロックや Markdown 構文をサポートしていないその他のコンテキストに挿入する場合、この動作をスマートに無効にするようになりました。
ドロップ/ペーストウィジェットを使用して、いつでも Markdown 構文の挿入に戻すことができます。この動作は、markdown.editor.drop.enabled
および markdown.editor.filePaste.enabled
設定を使用して構成できます。
ノートブック
ノートブック出力のキーボードショートカット
ノートブック出力で標準的なキーボードショートカットの一部をサポートするようになりました。
- 出力は、キーボードで Ctrl+A および Ctrl+C キーバインドを使用して選択およびコピーできます。
- スクロール可能な出力は、キーボードで 上 および 下 キーバインドを使用してスクロールできます。
- スクロール可能な出力の先頭と末尾へのスクロールは、キーボードで Ctrl+Home および Ctrl+End キーバインドを使用して実現できます (macOS では Cmd+Up および Cmd+Down)。
- 現在の選択ポイントから出力の先頭または末尾までの出力を選択することは、キーボードで Ctrl+Shift+Up および Ctrl+Shift+End キーバインドを使用して実現できます (macOS では Shift+Cmd+Up および Shift+Cmd+Down)。
セルのエラー診断
拡張機能は、失敗したセルのエラー詳細を提供できるようになりました。これにより、セルの内部にエラー診断が表示されます。セルコンテナーにフォーカスがあるときに、notebook.cell.openFailureActions
(⌘. (Windows, Linux Ctrl+.)) は、そのエラーのクイックアクションメニューにジャンプします。診断は、クイックアクションを提供する言語モデルが利用可能な場合にのみ表示されます。
セクションでセルを実行
ノートブック内の関連するセルをより簡単に実行するために、セクションでセルを実行アクションを使用して、Markdown セクションヘッダーによってグループ化されたセルを実行できるようになりました。このアクションは、ノートブックのアウトラインビューとスティッキースクロール要素で使用できます。
スティッキースクロール要素内で、選択したヘッダーを右クリックし、コンテキストメニューのアクションを介してセクションを実行します。アウトラインビュー内で、カーソルを合わせるか選択時に表示されるツールバーアイコンを選択し、表示されたアクションを介して単一のセルまたはセルのセクションを実行します。
アウトラインビューのフィルターサポート
ノートブックのアウトラインビューで使用できるフィルターが追加され、Markdown ヘッダー、コードセル、およびコードセルシンボルの包含を制御できます。フィルターは、次の設定に対応しています。
notebook.outline.showMarkdownHeadersOnly
notebook.outline.showCodeCells
notebook.outline.showCodeCellSymbols
閉じる際にインタラクティブウィンドウを保存するかどうかを確認するプロンプト
interactiveWindow.promptToSaveOnClose
設定を有効にすると、インタラクティブウィンドウを閉じる際にコンテンツを保存するかどうかを確認するプロンプトが表示され、作業内容が失われないようにします。現在サポートされているファイル形式は .ipynb
のみです。
リモート開発
リモート開発拡張機能を使用すると、Dev Container、SSH または Remote Tunnels 経由のリモートマシン、またはWindows Subsystem for Linux (WSL) をフル機能の開発環境として使用できます。
ハイライト:
- 拡張サポート付きディストリビューション用の代替サーバーダウンロード
- URI クエリ文字列に基づくポート転送
- Dev Containers 拡張機能が Docker を自動的に起動
- グループポリシーを介した Dev Tunnels およびポート転送へのアクセス制限
これらの機能の詳細については、リモート開発リリースノートを参照してください。
拡張機能への貢献
VS Code Speech
遅延アクティベーション
VS Code Speech 拡張機能は、VS Code で音声テキスト変換サービスが要求された場合にのみアクティブ化されるようになりました。これにより、拡張機能が拡張機能ホストの起動時間に悪影響を与えないようにします。
表示言語をデフォルトの音声言語として使用する
デフォルトでは、VS Code speech 拡張機能は、VS Code の表示言語を音声言語として使用し、その言語がサポートされている場合は対応するモデルを選択するようになりました。
accessibility.voice.speechLanguage
設定の場合、auto
が新しいデフォルトです。
GitHub Copilot
インラインチャットの改善
インラインチャットがフローティングコントロールとして起動するようになり、より軽量になりました。最初の要求の後、コントロールは拡張されてより多くのスペースを占有します。また、チャットビューやクイックチャットなど、他のチャットエクスペリエンスとの一貫性を高めるようにレンダリングを調整しました。
テーマ: GitHub Light Colorblind (Beta)
再実行およびフィードバックコントロールの位置を変更し、[承諾] ボタンと [破棄] ボタンとともに差分を表示するための切り替えコントロールをより目立つようにしました。
テーマ: GitHub Light Colorblind (Beta)
ノートブックカーネルの状態をコンテキストとして
ノートブックを使用している場合、カーネルの状態 (たとえば、変数と利用可能なパッケージ) がインラインチャットのコンテキストとして自動的に含まれるようになりました。これにより、Copilot はノートブックの現在の状態を使用して、より適切な補完を提供できます。
テーマ: GitHub Dark
コミットメッセージ生成の改善
生成されたコミットメッセージの品質を向上させるために、リポジトリの最新 10 件のコミットのコミットメッセージと、現在のユーザーの最新 10 件のコミットのコミットメッセージも追加のコンテキストとして含めるようになりました。
ワークスペース作成の改善
@workspace /new
コマンドは、チャットプロンプトに適した一致が検出された場合、GitHub リポジトリからキュレーションされたサンプルプロジェクトを候補として提供するようになりました。
@workspace /new
コマンドも、コンテキストと履歴をより効果的に管理するように強化されました。これにより、「JavaScript の代わりに TypeScript を使用する」や「bootstrap も追加する」などのフォローアップクエリを要求することで、提案されたワークスペース構造とファイルコンテンツを改良できます。
@terminal /explain スラッシュコマンド
新しい @terminal /explain
スラッシュコマンドが利用可能になりました。これは、コマンドまたはエラーの説明に最適化されています。/explain
がない場合、@terminal
は修正案を提案するように最適化されています。このスラッシュコマンドは、Copilot を使用して説明するクイックフィックスまたは選択範囲を説明するアクションで使用されます。
プレビュー: ターミナルインラインチャット
ターミナルインラインチャットのプレビューが今回のリリースで利用可能になり、Copilot の機能にターミナルから直接便利にアクセスできるようになりました。
terminal.integrated.experimentalInlineChat
設定でターミナルインラインチャットを有効にできます。ターミナルでインラインチャットを呼び出すには、⌘I (Windows, Linux Ctrl+I) キーバインドを使用します。
ターミナルインラインチャットは、統合ターミナルのシェルとそのコンテンツに関するコンテキストを持つ @terminal
チャット参加者を使用します。
コマンドが提案されたら、⌘Enter (Windows, Linux Ctrl+Enter) を使用してターミナルでコマンドを実行するか、⌥Enter (Windows, Linux Alt+Enter) を使用してコマンドをターミナルに挿入します。コマンドは、実行する前に Copilot の応答で直接編集することもできます (現在、Windows および Linux では Ctrl+down、Tab、Tab、macOS では Cmd+down、Tab、Tab)。
認証フローの明確化
認証に関する明確さは非常に重要です。認証方法と要求内容を明確にしたいと考えています。VS Code でプライベートリポジトリを開き、このシナリオに適した認証がない場合は、認証ダイアログが表示されます。ダイアログには、認証が必要な理由の説明と、これらの要件の詳細を確認するための 詳細情報 ボタンがあります。
詳細情報ボタンをクリックすると、認証要件に関するドキュメントに移動します。
変数参照
チャット応答の 使用された参照 セクションには、使用されているコンテキストに関する情報が表示されます。以前は、このセクションには暗黙的にプルインされたコンテキストのみが表示されていました。チャットプロンプトで明示的に言及した変数 (#file
や #editor
など) も表示されるようになりました。変数が [使用された参照] に表示されない場合は、言語モデルのコンテキストウィンドウに対して大きすぎるために無視された可能性があります。
セカンダリチャット送信アクション
チャットビューでは、チャット送信ボタンに、より多くのアクションに簡単にアクセスできるドロップダウンが追加されました。
- @workspace に送信すると、クエリが
@workspace
チャット参加者に送信されます。これは、ワークスペースのコンテンツに関する質問に役立ちます。 - 新しいチャットに送信すると、新しい空のチャットが開始され、クエリが送信されます。
Copilot: これを説明する
を使用する場合のスコープ選択
アクティブなエディターで選択範囲なしで /explain
を使用し、関心のあるスコープが複数ある場合、説明するシンボルまたはブロックスコープを明確にするためのプロンプトのサポートを追加しました。
この動作は現在オプトインであり、github.copilot.chat.scopeSelection
設定の背後にあります。
Python
FlaskとDjangoのためのデバッグ構成選択の改善
FlaskとDjangoアプリの起動構成の作成がより簡単になりました! Webアプリ用のlaunch.json
を作成する際に、ワークスペース内の可能性のあるスタートアップファイルを検出するための改善が行われました。
Djangoの場合、Python Debugger拡張機能は、ワークスペースのルートまたは1レベル下のサブディレクトリにある manage.py
または app.py
ファイルを探します。 Flaskの場合、拡張機能はFlaskアプリケーションの宣言(例:app = Flask()
)を含む wsgi.py
、app.py
、または init.py
ファイルを探します。
これらのファイルがプロジェクトで見つからない場合でも、ファイルが存在しない可能性があっても、ドロップダウンには対応するプロジェクトタイプの Default オプションが表示されます。
Hatch環境の検出
Hatch環境は、Venv、Conda、Poetryなどの他の一般的な環境と同様に、デフォルトで検出およびアクティブ化されるようになりました。 さらに、明示的な環境識別子が登録されていないHatchの場合、拡張機能は環境ロケーターから環境タイプ(Hatch)を判別できます。
pipenv、pyenv、およびPoetryプロジェクトの自動環境選択
ワークスペースに pipenv、pyenv、または Poetry 環境が含まれている場合、対応する環境がワークスペースに対して自動的に選択されるようになりました。 以前は、拡張機能はこれらの環境を正しく検出しましたが、デフォルトのグローバルインタープリターを選択したため、ワークスペースに適した環境を手動で選択する必要がありました。
現在、Python拡張機能は、環境の存在と対応する構成ファイルに基づいて、アクティブ化された環境を推測します。 たとえば、pyenvの場合、拡張機能は .python-version
ファイルを見て、ワークスペースに適したインタープリターを自動的に選択します。
問題の報告コマンドの改善
Python および Python Debugger 拡張機能により、リポジトリへの問題報告がより簡単になりました! 問題の報告 コマンド(workbench.action.openIssueReporter
)を使用して問題を提出すると、ほとんどの面倒な作業はすでに完了しており、チームが遭遇している問題を効率的にトリアージできるように、追加情報の入力を求められるだけです。
@vscode-python または @vscode-python-debugger の ヘルプ: 問題の報告 コマンドを使用して問題を提出するには、拡張機能ドロップダウンからそれぞれ Python または Python Debugger を選択します。
GitHubプルリクエスト
プルリクエストとIssueの作業、作成、および管理を可能にする GitHub Pull Requests 拡張機能でさらに進捗がありました。 新機能は次のとおりです。
- コメントビューでは、古いコメントは現在のコメントとは異なる方法で表示されます。
githubPullRequests.createDefaultBaseBranch
の新しいauto
値は、フォークリポジトリのベースブランチとしてアップストリームのデフォルトブランチを使用します。- コメントビューのコメントスレッドには、インラインアクション(解決/未解決、および古いコメントの「HEADとのコメントの差分」)とコンテキストメニューアクションがあります。
他のハイライトについて学ぶには、拡張機能の 0.86.0リリースの変更ログ を確認してください。
Jupyter
セル実行分析の改善
最新のPylanceプレリリースでは、Jupyterセルの依存関係分析が改善されました。 モジュールインポートを理解するようになり、前のセルで定義されたモジュールをインポートするセルがある場合に特に役立ちます。
この機能を有効にするには、VS Code Insidersに最新の Pylance プレリリースをインストールし、jupyter.executionAnalysis.enabled
および notebook.consolidatedRunButton
設定を有効にします。
拡張機能の作成
拡張機能のバグ報告にIssue Reporterコマンドを使用する
前回のイテレーションで、VS CodeのIssue Reporter経由でGitHubに送信する際に、拡張機能が追加データまたはテンプレートを提供する方法を最終決定しました。 拡張機能は、ヘルプ: 問題の報告... コマンドからアクセスできるコマンドを提供できます。 拡張機能を選択すると、提供されたコマンドが実行されます。 これが拡張機能でどのように機能するかについての詳細は、問題報告のドキュメント/リリースノート を参照してください。
さらに、インストールされているすべての拡張機能は、クイックオープンを介してすばやく報告できます。 クイックオープン(⌘P (Windows, Linux Ctrl+P)) で issue
と入力すると、報告するインストール済み拡張機能をすばやく選択または検索できます。
特定の拡張機能は、この新しい問題報告フローの利用に移行し始め、コマンドパレットに直接提供されるカスタムの Report Issue...
コマンドは不要になります。
プレビュー機能
ターミナルでの重なり合うグリフの再スケーリング
新しい設定 terminal.integrated.rescaleOverlappingGlyphs
が利用可能になり、後続のセルと重なり合うグリフを再スケーリングします。 これは、曖昧な幅の文字を対象としており、フォントグリフがバックアップpty/unicodeバージョンが考えているものと一致しない場合があります。 たとえば、ほとんどのフォントでは、ローマ数字のユニコード文字(U+2160+
)は通常複数のセルを占めるため、この設定が有効になっていると水平方向に再スケーリングされます。
再スケーリングなし
再スケーリングあり
再スケーリングが発生するタイミングのルールはまだ調整されており、将来的に安定したらデフォルトで有効にすることを検討しています。 これを試してみて、再スケーリングされるべきではない文字が再スケーリングされている場合は、Issueを作成 してください。
ローカルワークスペース拡張機能
ワークスペースに拡張機能を直接パッケージ化できる、この新しいプレビュー機能を導入できることを嬉しく思います。 この機能は、特定のワークスペースのニーズに対応し、よりカスタマイズされた開発エクスペリエンスを提供するために設計されています。
この機能を使用するには、ワークスペース内の .vscode/extensions
フォルダーに拡張機能をパッケージ化する必要があります。 VS Codeは、拡張機能ビューの ワークスペースの推奨 セクションにこの拡張機能を表示し、ユーザーはそこからインストールできます。 VS Codeはこの拡張機能をそのワークスペース専用にインストールします。 また、この拡張機能をインストールして実行する前に、ユーザーがワークスペースを信頼する必要があります。
たとえば、VS Codeリポジトリ の vscode-selfhost-test-provider
拡張機能を考えてみてください。 この拡張機能はテスト機能をプラグインし、コントリビューターがワークスペース内で直接テストを表示および実行できるようにします。 次のスクリーンショットは、拡張機能ビューのワークスペースの推奨セクションにある vscode-selfhost-test-provider
拡張機能と、それをインストールする機能を示しています。
この機能は、extensions.experimental.supportWorkspaceExtensions
を介して、Insiders リリースでプレビューできます。 ぜひ試してみて、VS Codeリポジトリ にIssueを作成してフィードバックをお知らせください。
提案されたAPI
ターミナルシェル統合API
シェル統合アクティブ化されたターミナルによって提供される情報の一部にアクセスできるようにする、新しい提案されたAPIが利用可能になりました。 このAPIを使用すると、ターミナルで実行されているコマンドの受信データと終了コードをリッスンできます。 また、プロンプトが利用可能になるのを待ってからコマンドを送信する、より信頼性の高いコマンド実行方法も導入されており、さまざまなシェルセットアップで発生する可能性のある競合/競合状態を修正するのに役立ちます。
これは、Terminal.shellIntegration.executeCommand
提案の使用例です
// Execute a command in a terminal immediately after being created
const myTerm = window.createTerminal();
window.onDidActivateTerminalShellIntegration(async ({ terminal, shellIntegration }) => {
if (terminal === myTerm) {
const command = shellIntegration.executeCommand('echo "Hello world"');
const code = await command.exitCode;
console.log(`Command exited with code ${code}`);
}
}));
// Fallback to sendText if there is no shell integration within 3 seconds of launching
setTimeout(() => {
if (!myTerm.shellIntegration) {
myTerm.sendText('echo "Hello world"');
// Without shell integration, we can't know when the command has finished or what the
// exit code was.
}
}, 3000);
これは、コマンドのデータストリームをリッスンする例です
// Create a terminal and log all data via console.log
const myTerm = window.createTerminal();
window.onDidStartTerminalShellExecution(execution => {
if (execution.terminal === myTerm) {
const stream = execution.createDataStream();
for await (const data of stream) {
console.log(data);
}
}
});
新しいAPIは こちら で確認できます。
認証APIのLearn Moreプロパティ
今回のイテレーションでは、AuthenticationForceNewSessionOptions
に learnMore
プロパティを指定できるようにする、新しい提案されたAPIを追加しました。 アイデアは、オプションで forceNewSession
プロパティを指定して getSession
を呼び出す場合、認証を求める理由の詳細をユーザーに提示する URI
を含めることができるということです。 これは、それがどのように見えるかの例です
コードでどのように見えるかは次のとおりです
vscode.authentication.getSession('github', ['repo'], {
forceNewSession: {
detail: l10n.t('To show you more relevant Copilot Chat results, we need permission to read the contents of your repository on GitHub.'),
learnMore: Uri.parse('https://aka.ms/copilotRepoScope')
};
});
新しいAPIは こちら で確認できます。
古いコメント
新しいコメントスレッド applicability
プロパティを使用すると、コメントビューでコメントスレッドを古いものとしてマークできます
API提案は こちら で確認できます。
コメントビューメニュー
commentsView/commentThread/context
提案されたメニューを使用すると、コメントビューのコメントスレッドの右クリックコンテキストメニューにアクションを追加できます。 通常の inline
グループも尊重されるため、アクションはコメントビューのインラインに表示されます。
エンジニアリング
Electron 28のアップデート
今回のイテレーションでは、安定版リリースでElectron 28アップデートをユーザーにプロモーションしています。 このアップデートには、Chromium 120.0.6099.291とNode.js 18.18.2が付属しています。 Insidersビルドでセルフホストし、早期フィードバックを提供してくれたすべての人に感謝します。
注目すべき修正
- 204886 単純なファイルピッカーで、異なるパスにあるが同じ名前のファイルを開くと失敗する
ありがとうございました
最後になりましたが、VS Codeの貢献者の皆様に心から 感謝申し上げます。
Issueトラッキング
Issueトラッキングへの貢献
- @gjsjohnmurray (John Murray)
- @IllusionMH (Andrii Dieiev)
- @RedCMD (RedCMD)
- @starball5 (starball)
- @the-coder-o (Abdul basit)
- @ArturoDent (ArturoDent)
プルリクエスト
vscode
への貢献
- @333fred (Fred Silberberg): 文字列または正規表現の一部である場合、空白をトリムしない PR #198164
- @89netraM (Mårten Åsberg): インターバル設定の最終行番号をレンダリングする PR #207227
- @a-stewart (Anthony Stewart)
- QuickAccessでプレフィックスを変更するときにカーソルがジャンプするのを止める - v2 PR #204702
- nls.mock.tsでILocalizedStringをエクスポートする PR #206449
- @akbyrd (Adam Byrd)
- 複数のカーソルが存在する場合、プライマリカーソルとセカンダリカーソルに別々の色を実装する PR #181991
- editor.action.focusNextCursorを、すべてのカーソルではなくプライマリカーソルを表示するように変更する PR #182148
- @AndreasBackx (Andreas Backx): Linux Waylandのスムーズスクロールを修正。 PR #205122
- @andrewbranch (Andrew Branch): [typescript-language-features] Windowsで動作するようにautoImportFileExcludePatterns形式を修正 PR #202762
- @andyscho (Andy Schoenberger): onDidChangeSelectedNotebooksのカーネルのサブスクライバーは1つのみ PR #204417
- @BABA983 (BABA): テストサイドバーの再試行された色を改善 PR #207949
- @BrandonXLF (Brandon Fowler): ターミナルタブイメージアイコンのCSSコンテンツをオーバーライドする PR #207220
- @BrookMaoDev (Brook Mao): editor.useTabStops設定の説明を改善 PR #206552
- @btwiuse: cli:
code serve-web
コマンドに --server-base-path フラグを追加 PR #207932 - @BusinessDuck (Dmitriy Yurov): ブラウザの自動入力フォームイベントで「e.getModifierState is not a function」エラーを修正 PR #206883
- @cchanche (Clément Chanchevrier): ターミナルのリサイズ方向 PR #205015
- @CGNonofr (Loïc Mangeonjean)
- キーボードレイアウト検出を修正 PR #205193
- bodyに直接ない場合のフルスクリーンコンテナの寸法検出を修正 PR #205884
- @cpendery (Chapman Pendery)
- fix: ファジー スコアでソートするようにターミナル候補を修正 PR #208486
- fix: キーバインディングがシェルに送信されるときにターミナル候補を表示しないように修正 PR #208523
- fix: 補完の受け入れ時に候補ウィジェットが永続化する問題を修正 PR #208524
- @deyihu (hu de yi): エディターのペーストイベントの結果でClipboardEventを返すように修正 PR #192732
- @dgileadi (David Gileadi): Xcodeのようなミニマップセクションヘッダーを導入 PR #190759
- @futurist (James Yang): feat: IPCServerにipcLoggerとtimeoutDelayを追加 PR #193896
- @gjsjohnmurray (John Murray): 出力ビューからチャネルログレベルを設定可能にする PR #205159
- @harbin1053020115 (ermin.zem): fix: ビルトインのウォークスルーが存在しない場合、初回起動時に最初の拡張機能ウォークスルーを選択するように修正。 PR #207303
- @hickford (M Hickford): 行のソート: 何も選択されていない場合はすべての行をソートするように修正。 PR #200325
- @hsfzxjy (Xie Jingyi)
- エディターリスト項目のオーバーフロー設定を修正 PR #206681
- ガターの中央クリックにログポイントを追加 PR #206684
- @IncognitaDev (Luis Sousa): Feat: CaseActionsにPascalCaseを追加 PR #206259
- @its-miroma (Miroma): デフォルトのYAML拡張機能を変更 PR #206447
- @jeanp413 (Jean Pierre): パンくずリストウィジェットのサイズが正しく変更されない問題を修正 PR #200591
- @jeremy-rifkin (Jeremy Rifkin): ルール内で状態アクセスを許可するようにmonarch機能を拡張 PR #183463
- @jhasse (Jan Niklas Hasse): LineCommentCommandにtabSizeの代わりにindentSizeを使用 PR #193811
- @Krzysztof-Cieslak (Krzysztof Cieślak)
- インライン編集での削除のレンダリングにおけるオフバイワンエラーを修正 PR #205890
- インライン編集 - フォーカスがぼやけたときに進行中のリクエストをキャンセルするように修正 PR #206430
- インライン編集 - 新しい編集をリクエストする前に、受け入れの完了を確実にするように修正 PR #206525
- @lusingander (Kyosuke Fujimoto):
editor.cursorSurroundingLinesStyle
設定の壊れた説明を修正 PR #201482 - @mahmoudsalah1993 (Mahmoud Salah): diffエディターの場合、変更されたエディターを解決してc…でテストを実行できるようにする PR #206026
- @marrej (Marcus Revaj): # インライン補完ハンドルに部分的な受け入れの種類を追加 PR #202668
- @mkasenberg: searchEditor: シングルクリックでピークするオプションを追加 PR #204413
- @mroch (Marshall Roch): 「拡張機能 [object Object] は不明です」を修正 PR #207764
- @NriotHrreion (NoahHrreion): ホバーウィジェットの予期しない位置を修正 PR #205502
- @orgads (Orgad Shaneh)
- トンネル: ポートマッピングルックアップをクエリ文字列にも拡張 (テイク 2) PR #204807
- トンネル: ポートマッピングの単体テストを再追加 PR #207249
- @PmcFizz (Fizz): IActionDescriptor.precondition descを更新 PR #176124
- @raphaelgpalma (Raphael Palma): 文法エラーを修正: 'But allow them if the are made from inside an…' PR #207584
- @rehmsen (Ole): ブラウザのサイドバイサイドビューのリソーステレメトリもログに記録する。 PR #208196
- @russelldavis (Russell Davis): javascriptおよびtypescriptのdecreaseIndentPatternを修正 PR #201425
- @samdenty (Sam Denty): feat(web/lifecycleService): startupKindを修正 PR #206563
- @Sidebail (VLADIMIR VATSURIN): ファイル相対パスリンクを修正 PR #181475
- @SimonSiefke (Simon Siefke): fix: notebook baseCellViewModelのメモリリークを修正 PR #205499
- @solimant: GitHubブランド名のケースを尊重する PR #208503
- @thegecko (Rob Moran): Web拡張機能ホストが開始されたときにextensionPathsを更新 PR #193849
- @vinistock (Vinicius Stock): Rubyコメントの
in
およびwhen
のインデント解除の誤りを修正 PR #206132 - @yamachu (Yusuke Yamada): 検索結果で最も深いディレクトリにあるファイルを表示するように修正 PR #206609
- @Yesterday17 (Yesterday17): ノードの深さ順にGestureEventをディスパッチ PR #200612
- @yiliang114 (易良): Webviewでコピー/カットコマンドが動作しない問題を修正 PR #206529
- @yutotnh (yutotnh): 単語操作で単語ロケールを認識するサポートを追加 (#_50045) PR #203605
vscode-css-languageservice
への貢献
- @balaji-sivasakthi (Balaji Sivasakthi): feat: scssのホバーツールチップをサポート PR #367
vscode-eslint
への貢献
- @JoshuaKGoldberg (Josh Goldberg ✨): feat: eslint.probe設定でjson、json5、jsoncをサポート PR #1787
- @remcohaszing (Remco Haszing)
vscode-extension-samples
への貢献
- @juliankasimir (Julian Kasimir): feat(lang): showQuickPick関数でドイツ語を英語に置き換える PR #983
vscode-hexeditor
への貢献
vscode-js-debug
への貢献
- @Beanyy: 説明が設定されていない場合のリモートオブジェクトで数値0のフォーマットを修正 PR #1968
- @mdh1418 (Mitchell Hwang): [CDP] DotnetDebuggerエラーイベントのテレメトリを送信 PR #1961
- @relief-melone (Relief.Melone): ビルドのプロキシサポートを追加 PR #1965
vscode-json-languageservice
への貢献
- @denisw (Denis Washington): ネストされた末尾のカンマの場合のソートエラーを修正 PR #223
vscode-pull-request-github
への貢献
- @ipcjs (ipcjs): fix:
review.openLocalFile
がキーボードからのトリガーをサポートするように修正。 PR #5840 - @mohamedamara1 (Mohamed Amara): IssueOverviewPanelのIDを修正 PR #5822
vscode-pylint
への貢献
- @MGasiewski: チルダをホーム環境に置き換えるロジックを追加 PR #524
vscode-python-debugger
への貢献
- @bersbersbers:
launch.json
スキーマを更新 PR #243 - @StephanTLavavej (Stephan T. Lavavej): タイプミスを修正 PR #217
debug-adapter-protocol
への貢献
- @andyw8 (Andy Waite): Ruby LSPのアダプターリストを更新 PR #471
- @svaante (Daniel Pettersson): Emacs dapeパッケージを実装ツールセクションに追加 PR #469
inno-updater
への貢献
- @ChayimFriedman2 (Chayim Refael Friedman): 不要な
unsafe impl Send
を削除 PR #25
language-server-protocol
への貢献
- @asukaminato0721 (Asuka Minato)
- @iliaamiri (Ilia Abedianamiri): 要約段落の小さなタイプミス PR #1903
- @lukaskesch (Lukas Kesch): footer.htmlの著作権年を2024年に更新 PR #1909
- @MariaSolOs (Maria José Solano): 診断メッセージでのMarkupContentサポートの仕様 PR #1905
- @oliviacrain (Olivia Crain): rnix-lspのサーバーエントリを削除 PR #1902
monaco-editor
への貢献
- @jeremy-rifkin (Jeremy Rifkin): C++ raw文字列リテラルの強調表示に関するバグを修正 PR #4436
node-pty
への貢献