2024 年 11 月 (バージョン 1.96)¶
Visual Studio Code の 2024 年 11 月リリースへようこそ。このバージョンには多くの更新が含まれており、いくつかの主要なハイライトは次のとおりです:
- 上書きモード - エディターで上書きモードと挿入モードを切り替え
- 貼り付け時にインポートを追加 - コードを貼り付けるときに不足している TS/JS インポートを自動的に追加
- テストカバレッジ - 特定のテストによってカバーされているコードをすばやくフィルタリング
- ビューの移動 - プライマリおよびセカンダリサイドバー間でビューを簡単に移動
- ターミナルのリガチャ - ターミナルでリガチャを使用
- 拡張機能の許可リスト - 組織内でインストールできる拡張機能を設定
- Copilot でデバッグ -
copilot-debug
ターミナルコマンドを使用してデバッグセッションを開始 - チャットコンテキスト - シンボルやフォルダーをコンテキストチャットおよび編集として追加
- チャットから Copilot Edits への移行 - チャットからのコード提案を適用するために Copilot Edits に切り替え
これらのリリースノートをオンラインで読みたい場合は、Updates を code.visualstudio.com でご覧ください。 Insiders: 新機能をできるだけ早く試してみたいですか?ナイトリー Insiders ビルドをダウンロードして、最新の更新をすぐに試すことができます。
GitHub Copilot¶
Copilot Edits¶
前回のマイルストーンでは、自然言語を使用して複数のファイルを一度に迅速に編集できる Copilot Edits (現在プレビュー中) を導入しました。それ以来、エクスペリエンスの改善を続けています。Copilot Edits を試すには、コマンドセンターの Copilot メニューを開き、Open Copilot Edits を選択するか、kb(workbench.action.chat.openEditSession)
をトリガーします。
進行状況とエディターコントロール¶
Copilot Edits は異なるファイルに複数の変更を加えることができます。編集がストリーミングされると、その進行状況がより明確に表示されるようになりました。また、エディターオーバーレイコントロールを使用して、すべての変更を簡単にサイクルし、それらを受け入れるか破棄することができます。
チャットセッションを Copilot Edits に移動¶
チャットビューを使用して、コードの変更に関するアイデアを探ることができます。個々のコードブロックを適用する代わりに、チャットセッションを Copilot Edits に移動して、セッションからのすべてのコード提案を適用できます。
作業セットの推奨ファイル¶
Copilot Edits では、作業セットが Copilot Edits が変更を提案できるファイルを決定します。Git リポジトリの場合、Copilot Edits は既に追加したファイルに基づいて追加のファイルを提案できるようになりました。たとえば、Copilot Edits は、既に追加したファイルと一緒に変更されることが多いファイルを提案します。
Copilot は作業セットの Add Files ボタンの横に推奨ファイルを表示します。また、Add Files を選択し、Related Files を選択して、推奨ファイルのリストから選択することもできます。
再起動後の編集セッションの復元¶
編集セッションは、VS Code を再起動した後に完全に復元されます。これには、作業セット、受け入れ状態、およびすべての過去の編集ステップのファイル状態が含まれます。
エクスプローラー、検索、およびエディターから作業セットに追加¶
検索ビューの検索結果やエクスプローラービューのファイルに対して、新しい Add File to Copilot Edits コンテキストメニューアクションを使用して、ファイルを Copilot Edits 作業セットに追加できます。さらに、エディターのコンテキストメニューからテキスト選択を Copilot Edits に添付することもできます。
Copilot でデバッグ¶
新しいプロジェクトや言語で作業しているときに、デバッグの設定は難しい場合があります。このマイルストーンでは、VS Code を使用してプログラムをデバッグするのに役立つ新しい copilot-debug
ターミナルコマンドを導入しています。通常のコマンドの前に copilot-debug
を付けて使用できます。たとえば、通常は python foo.py
コマンドを使用してプログラムを実行する場合、copilot-debug python foo.py
を実行してデバッグセッションを開始できます。
プログラムが終了した後、プログラムを再実行するか、使用された VS Code launch configuration を表示、保存、または再生成するオプションが表示されます。
テーマ: Codesong (vscode.dev でプレビュー)
タスクサポート¶
Copilot のデバッグ機能には、copilot-debug
および /startDebugging
インテントが含まれており、デバッグ前にコンパイルステップが必要なコードのために preLaunchTask
を生成します。これは、Rust や C++ などのコンパイル言語の場合によくあります。
コンテキストの追加¶
Copilot Chat および Copilot Edits にシンボルやフォルダーをコンテキストとして含める新しい方法を追加しました。これにより、ワークフロー中に関連情報を参照しやすくなります。
シンボル¶
シンボルは、アウトラインビューやブレッドクラムからチャットビューにドラッグアンドドロップすることで、簡単に Copilot Chat および Copilot Edits に追加できます。
また、チャット入力でシンボル補完を導入しました。#
に続けてシンボル名を入力すると、最近作業したファイルからのシンボルの提案が表示されます。
プロジェクト全体のシンボルを参照するには、#sym
を使用してグローバルシンボルピッカーを開くことができます。
フォルダー¶
フォルダーは、エクスプローラー、ブレッドクラム、または他のビューから Copilot Chat にドラッグすることでコンテキストとして追加できます。
フォルダーが Copilot Edits にドラッグされると、フォルダー内のすべてのファイルが作業セットに含まれます。
Copilot 使用状況グラフ¶
VS Code 拡張機能は、VS Code API を使用して Copilot の機能を拡張 できます。Runtime Status ビューで拡張機能の Copilot 使用状況のグラフを表示できるようになりました。このグラフは、拡張機能が過去 30 日間に行ったチャットリクエストの数を示しています。
コミットメッセージ生成のカスタム指示¶
Copilot は、行った変更に基づいてコミットメッセージを生成するのに役立ちます。このマイルストーンでは、コミットメッセージを生成する際のカスタム指示のサポートを追加しました。たとえば、コミットメッセージが特定の形式に従う必要がある場合、カスタム指示にその形式を記述できます。
setting(github.copilot.chat.commitMessageGeneration.instructions)
設定を使用して、カスタム指示を指定するか、ワークスペース内のファイルを指定できます。これらの指示は、コミットメッセージを生成するために使用されるプロンプトに追加されます。カスタム指示の使用方法についての詳細は、カスタム指示の使用 を参照してください。
インラインチャット¶
このマイルストーンでは、インラインチャットのユーザーエクスペリエンスをさらに改善しました。進行状況の報告をより控えめにし、変更がストリーミングされる間、波線が無効になり、検出されたコマンドがより見やすくレンダリングされます。
また、擬似コード検出を改善し、行が主に自然言語である場合にインラインチャットを続行できるヒントを表示するようになりました。この機能により、エディターで擬似コードを入力し、それがインラインチャットのプロンプトとして使用されます。このフローは、kb(inlineChat.startWithCurrentLine)
を押すことでトリガーすることもできます。
さらに、空行にインラインチャットのヒントを表示する新しい実験的な設定があります。この設定は setting(inlineChat.lineEmptyHint)
を介して有効にできます。デフォルトでは、この設定は無効になっています。
ターミナルチャット¶
ターミナルインラインチャットは、エディターインラインチャットに非常に近い外観と感触を持つように新しいコートを塗られました:
ここでは、行われた他の注目すべき改善点をいくつか紹介します:
- ウィジェットのレイアウトと位置が改善され、一般的により良い動作をします
- モデルピッカーがあります
- 下部のボタンがより一貫性を持つようになりました
@workspace
のパフォーマンス改善¶
@workspace
を使用して現在開いているワークスペースについて Copilot に質問するとき、最初にワークスペースを関連するコードスニペットのセットに絞り込み、それを Copilot にコンテキストとして渡す必要があります。ワークスペースが GitHub リポジトリによってバックアップされている場合、GitHub コード検索を使用してこれらの関連するスニペットを迅速に見つけることができます。ただし、コード検索インデックスはリポジトリのメインブランチを追跡しているため、ローカルの変更やブランチにいる場合には信頼できませんでした。
このマイルストーンでは、GitHub 検索の速度向上をブランチやプルリクエストに適用する作業を行いました。これにより、リモートインデックスをリポジトリのメインブランチに基づいて検索し、ローカルで変更されたファイルも検索します。これらの結果を統合し、Copilot に迅速かつ最新のスニペットセットを提供します。詳細については、GitHub コード検索とその有効化方法 を参照してください。
アクセシビリティ¶
コードアクションのアクセシビリティ信号¶
一部のコードアクションは完了するまでに時間がかかる場合があります。たとえば、外部サービスを呼び出して画像の alt テキストを生成するクイックフィックスなどです。これらがトリガーされたときや完全に適用されたときに明確でない場合があります。したがって、コードアクションがトリガーされたことや適用されたことを示すアクセシビリティ信号を追加しました。
これらの信号は、setting(accessibility.signals.codeActionTriggered)
および setting(accessibility.signals.codeActionApplied)
設定を使用して有効にできます。
REPL の自動フォーカスマネジメント¶
REPL で作業する際のアクセシビリティを向上させるために、新しい設定を導入しました。setting(accessibility.replEditor.autoFocusReplExecution)
を使用して、コードが実行されるたびにフォーカスが変更されない (none
)、入力ボックスに移動する (input
)、または最も最近実行されたセルに移動する (lastExecution
) かを指定できます。デフォルトでは、フォーカスは入力ボックスに移動します。
ワークベンチ¶
拡張機能の検索結果の改善¶
拡張機能ビューでフリーフォームテキストを使用して拡張機能を検索すると、インストールされている拡張機能が検索結果の上部に表示されるようになりました。これにより、マーケットプレイスを検索する際にインストールされている拡張機能を見つけて管理しやすくなります。
拡張機能ビューから拡張機能をダウンロード¶
VS Code から直接拡張機能をダウンロードできるようになりました。拡張機能ビューの拡張機能のコンテキストメニューでダウンロードアクションを使用します。これにより、拡張機能をインストールせずにダウンロードすることができます。
拡張機能のディスクスペース¶
拡張機能エディターで拡張機能のディスク上のメモリ使用量を確認できるようになりました。これにより、拡張機能が使用しているディスクスペースの量を理解するのに役立ちます。
エクスプローラーでの検索の改善¶
9 月のリリースでは、プロジェクト全体でエクスプローラー内のファイルを検索する機能を導入しましたが、この更新によりハイライトモードが一時的に削除され、特定のアクションが制限されました。
このリリースでは、ハイライトモードを復活させました。この機能により、ワークスペース全体のファイルやフォルダーを簡単に見つけることができ、一致する結果が強調表示されて視認性が向上します。さらに、折りたたまれたフォルダーに一致する項目が隠れている場合に新しい視覚的なインジケーターを追加しました。
フィルタートグルは引き続き利用可能で、一致する項目以外の項目を非表示にしてクエリに一致するファイルやフォルダーに集中することができます。前のリリースで無効にしたすべてのコンテキストメニューアクションも再度有効にしました。
検索コントロールを使用する際のユーザーエクスペリエンスも向上させました。ファイルエクスプローラーの上部にスクロールすると、追加のスペースが作成され、コントロールが検索結果を妨げないようにします。
プライマリおよびセカンダリサイドバー間でビューを移動¶
既に ビューコンテナを移動 することができましたが、ドラッグアンドドロップや Move View コマンドを使用して、ビューコンテナをプライマリサイドバー、セカンダリサイドバー、またはパネルエリアの間で直接移動することができるようになりました。
タイトルエリアのナビゲーションコントロールを非表示にする¶
一部の人々は、タイトルエリアをできるだけクリーンに保つことを好みます。新しい設定 setting(workbench.navigationControl.enabled)
を追加し、タイトルエリアの戻る/進むボタンを非表示にすることができるようにしました。
この設定は、タイトルエリアを右クリックし、Navigation Controls を選択することでアクセスできます。
エディター¶
貼り付けおよびドロップの動作を設定する¶
ファイルをテキストエディターにドラッグアンドドロップまたはコピー&ペーストすると、VS Code はそのファイルに挿入する方法を複数提供します。デフォルトでは、VS Code はファイルのワークスペース相対パスを挿入しようとします。現在、ドロップ/ペーストコントロールを使用して、リソースの挿入方法を切り替えることができます。拡張機能は、Markdown で Markdown リンクを挿入する編集を提供する など、カスタマイズされた編集を提供することもできます。
新しい setting(editor.pasteAs.preferences)
および setting(editor.dropIntoEditor.preferences)
設定を使用して、デフォルトで使用される編集タイプの優先順位を指定できるようになりました。たとえば、コピー/ペーストが常に貼り付けられたファイルの絶対パスを挿入するようにするには、次のように設定します:
"editor.pasteAs.preferences": [
"uri.path.absolute"
]
これらの設定は編集の種類の順序付きリストです。優先される種類の最初の一致する編集がデフォルトで適用されます。デフォルトの編集が適用された後でも、ドロップ/ペーストコントロールを使用して別の種類の編集に変更することができます。
これらの新しい設定は、JavaScript および TypeScript の新しいコピー&ペーストとインポートのサポート とうまく連携します。この機能は、JavaScript または TypeScript ファイル間でコードをコピー&ペーストするときにインポートを自動的に追加します。ワークフローを中断しないように、デフォルトでは、ペーストはプレーンテキストを挿入し、ペーストコントロールで paste with imports
オプションが提供されます。ただし、VS Code が常にインポートを使用してペーストするようにしたい場合は、次のように設定します:
"editor.pasteAs.preferences": [
"text.updateImports"
]
これで、VS Code は可能な場合に自動的にインポートを使用してペーストし、paste with imports
編集が利用できない場合はプレーンテキストのペーストにフォールバックします。現在、これは JavaScript および TypeScript にのみ対応していますが、将来的には他の言語もサポートすることを期待しています。
最後に、editor.action.pasteAs
キーバインディングを設定するときに、優先するペーストスタイルを指定できるようになりました。次のキーバインディングは、常にインポートを更新してペーストしようとします:
{
"key": "ctrl+shift+v",
"command": "editor.action.pasteAs",
"args": {
"preferences": [
"text.updateImports"
]
}
}
エディター検索履歴の永続化¶
検索コントロールは、セッション間で検索履歴を永続化し、VS Code の再起動後に復元できるようになりました。検索履歴はワークスペースごとに保存され、setting(editor.find.history)
設定を使用して無効にすることができます。
上書きモード¶
多くのリクエストに応じて、エディターでテキストを挿入する代わりに上書きする上書きモードを追加しました。Markdown テーブルを編集する際に、テーブルセルの境界をきれいに整列させたい場合に便利です。
このモードは、View: Toggle Overtype/Insert Mode コマンドで切り替えることができます。上書きモードにいるとき、ステータスバーに OVR
インジケーターが表示されます。さらに、上書きモードでの貼り付けが上書きまたは挿入されるかを決定する設定 setting(editor.overtypeOnPaste)
があります。デフォルトの動作は、貼り付けテキストを挿入することです。
上書きモード中にカーソルスタイルを変更することも可能です。設定 setting(editor.overtypeCursorStyle)
を使用します。
ソースコントロール¶
Git blame 情報 (実験的)¶
このマイルストーンでは、エディターデコレーションとステータスバーアイテムを使用して blame 情報を表示する実験的なサポートを追加しました。この機能は、setting(git.blame.editorDecoration.enabled:true)
および setting(git.blame.statusBarItem.enabled:true)
設定を使用して有効にできます。blame 情報にホバーすると、さらに詳細なコミット情報が表示されます。
エディターとステータスバーに表示されるメッセージの形式は、setting(git.blame.editorDecoration.template)
および setting(git.blame.statusBarItem.template)
設定を使用してカスタマイズできます。最も一般的な情報の変数を使用できます。たとえば、次のテンプレートは、コミットの件名、著者の名前、および著者の日付を相対的に表示します:
{
"git.blame.editorDecoration.template": "${subject}, ${authorName} (${authorDateAgo})"
}
エディターデコレーションの色を調整したい場合は、git.blame.editorDecorationForeground
テーマカラーを使用します。
この実験的な機能を試して、フィードバックをお寄せください。
ソースコントロールグラフのタイトルアクション¶
ユーザーのフィードバックに基づいて、ソースコントロールグラフビューのタイトルバーにプルおよびプッシュアクションを復活させました。これらのアクションは、現在の履歴アイテム参照がソースコントロールグラフに表示されている場合に有効になります。
これらのアクションやソースコントロールグラフビューのタイトルバーの他のアクションを使用したくない場合は、タイトルバーを右クリックして非表示にすることができます。
ノートブック¶
セル間の選択ハイライト¶
ノートブック内で選択ハイライトがサポートされるようになり、複数のセルにわたるテキスト選択に基づくハイライトが可能になりました。これは、既存の設定 setting(editor.selectionHighlight)
で制御されます。
マルチカーソル:検索一致のすべての出現を選択¶
ノートブックは、検索一致のすべての出現を選択 のキーボードショートカットをサポートするようになりました。これは、コマンド ID notebook.selectAllFindMatches
で見つけることができ、デフォルトでは kb(notebook.selectAllFindMatches)
キーストロークで使用できます。
Markdown のセクション内のセルを実行¶
ノートブックには、Markdown セルのセルツールバーに Run Cells in Section アクションが表示されるようになりました。Markdown セルにヘッダーがある場合、セクションおよび子セクション内のすべてのセルが実行されます。ヘッダーがない場合、可能であれば周囲のセクション内のすべてのセルが実行されます。
セルの実行時間の詳細表示¶
セルステータスバー内の実行時間情報には、詳細表示のオプションが追加されました。これは、設定 setting(notebook.cellExecutionTimeVerbosity)
を使用して有効にでき、実行タイムスタンプと実行時間を表示できます。
ターミナル¶
リガチャサポート¶
リガチャは、GPU アクセラレーション が使用されているかどうかに関係なく、ターミナルでサポートされるようになりました。この機能は、設定 setting(terminal.integrated.fontLigatures)
で有効にできます:
この機能を使用するには、リガチャをサポートするフォント setting(terminal.integrated.fontFamily)
も使用してください。
ターミナルタブのカスタマイズ用の新しい変数¶
ターミナルタブに表示されるテキストは、terminal.integrated.tabs.title
および terminal.integrated.tabs.description
設定によって決定され、さまざまな変数を使用できます。次の新しい変数がサポートされるようになりました:
${shellType}
- ターミナルで使用されているシェルの検出されたタイプ。これはデフォルト値に似ていますが、git コマンドを実行しているときにgit
に変更されません。-
${shellCommand}
- ターミナルで実行されているコマンド。これには シェル統合 が必要です。-
${shellPromptInput}
- ターミナルで実行されているコマンドまたは現在の検出されたプロンプト入力。これには シェル統合 が必要です。
最近のコマンドの実行に履歴ソースファイルを表示¶
最近のコマンドの実行 シェル統合機能には、履歴ファイルを含むコマンドのソースのフルサイズヘッダーと、便利なボタンが追加されました。
このコマンドのデフォルトのキーバインディングは Ctrl+Alt+R
です。
新しいサポートされるリンク形式¶
/path/to/file.ext, <line>
形式のリンクは、ターミナルでリンクとして検出されるようになりました。
テスト¶
帰属可能なカバレッジ¶
このマイルストーンでは、拡張機能がテストごとにカバレッジを提供できる API を最終化しました。これにより、特定のテストが実行したコードを正確に確認できます。帰属可能なカバレッジが利用可能な場合、テストカバレッジビュー、エディターアクション、テストカバレッジツールバー (Test: Test Coverage Toolbar コマンドを使用して切り替え) にフィルターボタンが表示されます。または、Test: Filter Coverage by Test コマンドを使用します。
テーマ: Codesong (vscode.dev でプレビュー)
インラインエラーメッセージの再設計¶
テストエラーメッセージをより目立ちやすく、邪魔にならないように再設計しました。これは、SCM や Copilot Edits からの差分など、忙しいシナリオで特に役立ちます。エラーメッセージを選択すると、エラーの詳細を表示するピークコントロールが開きます。
継続的な実行 UI の改善¶
以前は、テストエクスプローラービューの "目" アイコンを使用して切り替え可能な継続的なテスト実行のグローバル状態は、デフォルトの実行プロファイルセットで継続的な実行をオンまたはオフに切り替えていました。
継続的な実行 UI を再設計し、プロファイルごとに個別に継続的な実行をオンまたはオフにするドロップダウンメニューを追加しました。インジケーターを選択すると、最後に使用した実行プロファイルセットがオンまたはオフに切り替わります。
言語¶
TypeScript 5.7¶
JavaScript および TypeScript のサポートは、TypeScript 5.7 を使用するようになりました。この主要なアップデートには、多くの言語およびツールの改善、重要なバグ修正、およびパフォーマンスの最適化が含まれています。
TypeScript 5.7 リリースの詳細は、TypeScript ブログ をご覧ください。以下のセクションでは、いくつかのツールのハイライトも紹介しています。
JavaScript および TypeScript のインポート付きペースト¶
コードをファイル間で移動した後にインポートを追加するのにうんざりしていませんか?TypeScript 5.7+ のインポート付きペースト機能を試してみてください。JavaScript または TypeScript 間でコードをコピー&ペーストするたびに、VS Code がペーストされたコードのインポートを追加できます。
ペーストされたコードで使用されたローカル変数の新しいエクスポートも追加されることに注目してください!
この機能は大幅な時間節約になると考えていますが、既存のワークフローを中断することにも敏感です。そのため、デフォルトでは、コピー&ペーストが常にペーストされたテキストのみを挿入するようにしています。paste with imports
編集が利用可能な場合、ペーストコントロールが表示され、paste with imports
編集を選択できます。
常にインポート付きでペーストすることを好む場合は、新しい editor.pasteAs.preferences
設定 を使用できます:
"editor.pasteAs.preferences": [
"text.updateImports"
]
これにより、インポート付きのペースト編集が利用可能な場合は常にインポート付きでペーストしようとします。
インポート付きでペーストするためのキーバインディングを設定することもできます:
{
"key": "ctrl+shift+v",
"command": "editor.action.pasteAs",
"args": {
"preferences": [
"text.updateImports"
]
}
}
逆に、インポート付きのペーストをデフォルトにし、プレーンテキストとしてペーストするためのキーバインディングを追加することもできます:
"editor.pasteAs.preferences": [
"text.updateImports"
]
{
"key": "ctrl+shift+v",
"command": "editor.action.pasteAs",
"args": {
"preferences": [
"text.plain"
]
}
}
最後に、paste with imports
を完全に無効にしたい場合は、setting(typescript.updateImportsOnPaste.enabled)
および setting(javascript.updateImportsOnPaste.enabled)
を使用できます。
リモート開発¶
リモート開発拡張機能 を使用すると、Dev Container、SSH 経由のリモートマシンまたは Remote Tunnels、または Windows Subsystem for Linux (WSL) を使用して、フル機能の開発環境を利用できます。
ハイライトには次のものが含まれます:
remote-ssh
Copilot チャット参加者- セッションログの強化
これらの機能の詳細については、リモート開発リリースノート をご覧ください。
エンタープライズサポート¶
許可された拡張機能を設定する¶
VS Code でインストールできる拡張機能を setting(extensions.allowed)
設定を使用して制御できるようになりました。この設定を使用して、パブリッシャー、特定の拡張機能、およびバージョンごとに許可または禁止された拡張機能を指定できます。拡張機能またはバージョンが禁止されている場合、既にインストールされている場合は無効になります。次の種類の拡張機能セレクターを指定できます:
- パブリッシャーからのすべての拡張機能を許可または禁止する
- 特定の拡張機能を許可または禁止する
- 特定の拡張機能バージョンを許可する
- 特定の拡張機能バージョンおよびプラットフォームを許可する
- 拡張機能の安定バージョンのみを許可する
- パブリッシャーからの安定拡張機能バージョンのみを許可する
次の JSON スニペットは、さまざまな設定値の例を示しています:
"extensions.allowed": {
// 'microsoft' パブリッシャーからのすべての拡張機能を許可します。キーに '.' が含まれていない場合、それはパブリッシャー ID と見なされます。
"microsoft": true,
// 'github' パブリッシャーからのすべての拡張機能を許可します
"github": true,
// prettier 拡張機能を許可します
"esbenp.prettier-vscode": true,
// docker 拡張機能を許可しません
"ms-azuretools.vscode-docker": false,
// eslint 拡張機能のバージョン 3.0.0 のみを許可します
"dbaeumer.vscode-eslint": ["3.0.0"],
// figma 拡張機能の複数のバージョンを許可します
"figma.figma-vscode-extension": ["3.0.0", "4.2.3", "4.1.2"]
// Windows および macOS で rust 拡張機能のバージョン 5.0.0 を許可します
"rust-lang.rust-analyzer": ["5.0.0@win32-x64", "5.0.0@darwin-x64"]
// GitHub Pull Requests 拡張機能の安定バージョンのみを許可します
"github.vscode-pull-request-github": "stable",
// redhat パブリッシャーからの安定バージョンのみを許可します
"redhat": "stable",
}
パブリッシャーはそのパブリッシャー ID で指定します。キーにピリオド (.
) が含まれていない場合、それはパブリッシャー ID と見なされます。キーにピリオドが含まれている場合、それは拡張機能 ID と見なされます。ワイルドカードの使用は現在サポートされていません。
microsoft
をパブリッシャー ID として使用して、Microsoft によって公開されたすべての拡張機能を参照できます。これらの拡張機能は異なるパブリッシャー ID を持っている場合でもです。
バージョン範囲はサポートされていません。複数のバージョンの拡張機能を許可する場合は、各バージョンを個別に指定する必要があります。バージョンをプラットフォームごとにさらに制限するには、@
記号を使用してプラットフォームを指定します。たとえば、"rust-lang.rust-analyzer": ["5.0.0@win32-x64", "5.0.0@darwin-x64"]
のようにします。詳細については、エンタープライズドキュメント を参照してください。
管理者は、この設定を Windows のグループポリシーを介して設定することもできます。詳細については、エンタープライズドキュメントの Windows のグループポリシー セクションを参照してください。
事前インストールされた拡張機能で VS Code をセットアップする¶
事前インストールされた拡張機能 (ブートストラップ) を使用して VS Code をセットアップできます。この機能は、マシンイメージ、仮想マシン、またはクラウドワークステーションを準備し、VS Code が事前インストールされ、特定の拡張機能がすぐに利用可能な場合に役立ちます。
注: 拡張機能の事前インストールのサポートは現在 Windows のみで利用可能です。
次の手順に従って拡張機能をブートストラップします:
-
VS Code インストールディレクトリに
bootstrap\extensions
フォルダーを作成します。 -
事前インストールしたい拡張機能の VSIX ファイル をダウンロードし、
bootstrap\extensions
フォルダーに配置します。 -
ユーザーが VS Code を初めて起動すると、
bootstrap\extensions
フォルダー内のすべての拡張機能がバックグラウンドでサイレントにインストールされます。
ユーザーは事前インストールされた拡張機能をアンインストールすることができます。拡張機能をアンインストールした後に VS Code を再起動しても、拡張機能は再インストールされません。
拡張機能への貢献¶
Python¶
Python Environments 拡張機能¶
このリリースでは、Python Environments 拡張機能を導入しており、現在プレビュー版がマーケットプレイスで利用可能です。
この拡張機能は、Python 環境の管理を簡素化し、環境の作成、削除、および管理のための UI を提供し、パッケージ管理のためのインストールおよびアンインストール機能を提供します。
さまざまな API を介して好みの環境マネージャーとシームレスに統合するように設計されており、デフォルトでグローバル Python インタープリター、venv、および Conda をサポートします。開発者は、拡張機能を構築して、お気に入りの Python 環境マネージャーのサポートを追加し、拡張機能の UI と統合して機能とユーザーエクスペリエンスを向上させることができます。
Python Environments をマーケットプレイスでダウンロードし、Python 拡張機能のプレリリースバージョンと一緒に使用できます。
Python テストの強化¶
- pytest の
--rootdir
引数は、ワークスペースにpython.testing.cwd
設定が存在するかどうかに基づいて動的に調整されるようになりました。 - テストデバッグセッションの再起動は、指定されたテストのみを再実行します。
- カバレッジサポートが
NoSource
例外を処理するように更新されました。 pytest-describe
プラグインは、テストの検出と UI での実行をサポートします。- テストのリライトは、デバッグ前にコンパイルステップが必要なコードのために
preLaunchTask
を生成します。これは、Rust や C++ などのコンパイル言語の場合によくあります。 - リライトがデフォルトステータスに近づいています:このリリースでは、テストのリライトの最後の既知の問題を解決し、さらなる問題が発生しない限り、リライト実験をオフにし、2025 年初頭にリライトをデフォルトに設定します。
Python REPL の強化¶
- ネイティブ REPL へのスマート送信後にエディターにフォーカスを残す
- ネイティブ REPL のリロード後の処理を改善
- VS Code ターミナルでの Python 3.13 のインデントエラーの問題を修正
Pylance の "full" 言語サーバーモード¶
python.analysis.languageServerMode
設定は、full
モードもサポートするようになり、Pylance の完全な機能と最も包括的な IntelliSense エクスペリエンスを活用できます。これには、特に大規模なコードベースでリソースを多く消費するため、パフォーマンスが低下するという代償が伴います。
python.analysis.languageServerMode
設定は、light
、default
、または full
に設定されているかどうかに応じて、次の設定のデフォルト値を変更します:
設定 | light | default | full |
---|---|---|---|
python.analysis.exclude | ["**"] | [] | [] |
python.analysis.useLibraryCodeForTypes | false | true | true |
python.analysis.enablePytestSupport | false | true | true |
python.analysis.indexing | false | true | true |
python.analysis.autoImportCompletions | false | false | true |
python.analysis.showOnlyDirectDependenciesInAutoImport | false | false | true |
python.analysis.packageIndexDepths | [ { "name": "sklearn", "depth": 2 }, { "name": "matplotlib", "depth": 2 }, { "name": "scipy", "depth": 2 }, { "name": "django", "depth": 2 }, { "name": "flask", "depth": 2 }, { "name": "fastapi", "depth": 2 } ] |
[ { "name": "sklearn", "depth": 2 }, { "name": "matplotlib", "depth": 2 }, { "name": "scipy", "depth": 2 }, { "name": "django", "depth": 2 }, { "name": "flask", "depth": 2 }, { "name": "fastapi", "depth": 2 } ] |
{ "name": "", "depth": 4, "includeAllSymbols": true } |
python.analysis.regenerateStdLibIndices | false | false | true |
python.analysis.userFileIndexingLimit | 2000 | 2000 | -1 |
python.analysis.includeAliasesFromUserFiles | false | false | true |
python.analysis.functionReturnTypes | false | false | true |
python.analysis.pytestParameters | false | false | true |
python.analysis.supportRestructuredText | false | false | true |
python.analysis.supportDocstringTemplate | false | false | true |
TypeScript¶
TypeScript 拡張可能なホバー (実験的)¶
このマイルストーンでは、TS サーバーからの情報を展開/縮小して表示できるようにしました。拡張機能は、エディターホバーに +
および -
マーカーを表示して、情報を表示または非表示にするために Expandable Hover API を使用します。
実験的な設定は setting(typescript.experimental.expandableHover)
を使用して有効にできます。この設定を機能させるには、TypeScript バージョン 5.8 以上を使用する必要があります。TypeScript バージョンを変更するには、TypeScript: Select TypeScript Version...
コマンドを使用します。
Microsoft アカウントは MSAL を使用するようになりました (Windows で WAM サポート)¶
Microsoft 認証の強力なセキュリティベースラインを確保するために、Microsoft アカウント拡張機能で Microsoft Authentication Library を採用しました。
この作業の注目すべき機能の 1 つは WAM (Web Account Manager... 別名 Broker) 統合です。簡単に言えば、Microsoft 認証フローのためにブラウザに移動する代わりに、OS に直接話しかけることができ、これは Microsoft 認証セッションを取得するための推奨方法です。さらに、OS に既にログインしているアカウントを活用できるため、より高速です。
この新しいフローに問題がある場合はお知らせください。重大な問題が発生し、古い Microsoft 認証の動作に戻す必要がある場合は、setting(microsoft-authentication.implementation)
を使用して (それを classic
に設定し、VS Code を再起動します) できますが、この設定は長くは続かないことに注意してください。したがって、MSAL フローに問題がある場合は、問題を報告してください。
拡張機能の作成¶
vscode/chat-extension-utils¶
拡張機能の作成者が GitHub Copilot と統合するための チャット および 言語モデル 拡張 API を数か月間提供してきました。しかし、LLM を使用して高品質のチャット拡張機能を構築することは本質的に複雑であり、特にツールコールを使用する場合はそうです。
拡張機能の作成者がチャット参加者をできるだけ簡単に立ち上げて実行できるようにすることを目的とした npm パッケージ @vscode/chat-extension-utils
を公開しました。このパッケージは、他の方法で自分で行う必要があるいくつかのことを引き受けるため、数行のコードでチャット参加者を実装できます。このパッケージには、@vscode/prompt-tsx で使用するための便利で高品質な要素のコレクションも含まれています。
完全なドキュメントは chat-extension-utils
リポジトリ で確認でき、サンプルチャット拡張機能 で実際に動作している様子を見ることができます。新しい LanguageModelTool API ドキュメント では、その使用方法についても説明しています。
帰属可能なカバレッジ API¶
テストカバレッジ API は、拡張機能がテストごとにカバレッジ情報を提供できるようになりました。この API を実装するには、FileCoverage
の includesTests?: TestItem[]
プロパティを設定して、そのファイルでコードを実行したテストを示し、TestRunProfile.loadDetailedCoverageForTest
を実装してステートメントおよび宣言カバレッジを提供します。
ユーザーにとっての例については、上記の帰属可能なカバレッジセクション を参照してください。
JavaScript デバッグターミナルへの貢献¶
JavaScript デバッガーには、他の拡張機能が JavaScript デバッグターミナルの作成に参加できるメカニズムがあります。これにより、フレームワークや Node.js 以外のランタイムが同じおなじみの場所でデバッグを有効にできます。詳細については、JavaScript デバッガードキュメント を参照してください。
Node.js fetch
API のプロキシサポート¶
グローバル fetch
関数には、プロキシサポートが有効になりました (setting(http.fetchAdditionalSupport)
)。これは、すでにプロキシサポートがあった https
モジュールに似ています。
プレビュー機能¶
チャットコンテキストにコードを貼り付ける¶
以前は、ファイルをコンテキストとして Copilot Chat に添付することができました。コンテキストをより細かく制御するために、コードフラグメントを貼り付けてチャットのコンテキストとして添付できるようになりました。これにより、必要なファイル情報と対応する行番号が追加されます。現在のワークスペース内のファイルからのコードのみを貼り付けることができます。
これを試すには、いくつかのコードをコピーして、インラインチャット、クイックチャット、またはチャットビューに貼り付けます。表示されるペーストコントロールを選択し、Pasted Code Attachment
を選択します。代わりに、setting(editor.pasteAs.preferences)
設定を使用することもできます:
"editor.pasteAs.preferences": [
"chat.attach.text"
]
より多くのシェルのターミナル補完¶
以前のイテレーションで pwsh
のターミナル補完の実験的サポートを追加しました。このリリースでは、これを他のシェルに拡張する作業を開始しました。現在は bash
および zsh
を対象としていますが、この新しいアプローチは拡張ホスト API によってサポートされているため、ほとんどのシェルに対して一般的なサポートを提供する予定です。
現在の作業を試すには、setting(terminal.integrated.suggest.enabled)
および setting(terminal.integrated.suggest.enableExtensionCompletions)
を設定します。現在は cd
、code
、および code-insiders
の引数のみがサポートされています。
提案された API¶
Quick Pick の提案された値選択 API¶
InputBox
では、プログラムで入力の一部または全体を選択できる "値選択" を設定できました。このマイルストーンでは、QuickPick での値選択の提案された API を追加しました。
これがどのように見えるかの例を次に示します:
const qp = vscode.window.createQuickPick();
qp.value = '12345678';
qp.valueSelection = [4, 6];
qp.items = [
{ label: '12345678', description: 'desc 1' },
{ label: '12345678', description: 'desc 2' },
{ label: '12345678', description: 'desc 3' },
];
qp.show();
valueSelectionInQuickPick 提案 を試してみて、この GitHub issue でフィードバックをお寄せください!
提案されたネイティブウィンドウハンドル API¶
このマイルストーンでは、フォーカスされたウィンドウのネイティブウィンドウハンドルを取得するための新しい提案された API を追加しました。ネイティブウィンドウハンドルは、特定のウィンドウへのポインタを提供する OS の概念です。これは、ネイティブコードと対話し、たとえばウィンドウの上にネイティブダイアログをレンダリングする必要がある場合に役立ちます。
declare module 'vscode' {
export namespace window {
/**
* 現在アクティブなウィンドウのネイティブウィンドウハンドルを取得します。
* これは、アクティブなウィンドウが変更されると更新されます。
*/
export const nativeHandle: Uint8Array | undefined;
}
}
これは、Microsoft Authentication の MSAL の採用 のために特に追加されました。これにより、ネイティブハンドルを OS に渡して、VS Code の上に認証ダイアログをレンダリングできます。
nativeWindowHandle 提案 に対するユースケースやフィードバックがある場合は、この GitHub issue でお知らせください!
エンジニアリング¶
vscode-unpkg サービスを使用した拡張機能の更新の最適化¶
マーケットプレイスインフラストラクチャへの負荷を軽減するために、VS Code は拡張機能の更新を確認するために vscode-unpkg
サービスの新しいエンドポイントを使用するようになりました。このサービスは、10 分の TTL でサーバー側のキャッシュを実装しており、マーケットプレイスへの直接リクエストの数を大幅に削減します。この最適化は、setting(extensions.gallery.useUnpkgResourceApi)
設定 (デフォルトで有効) によって制御されます。
拡張機能の更新に問題がある場合は、setting(extensions.gallery.useUnpkgResourceApi:false)
を使用してこの機能を無効にし、マーケットプレイスのバージョンチェックに直接戻すことができます。
エディターでの GPU アクセラレーションの基盤作業¶
エディターでの GPU アクセラレーションを有効にする作業を開始したことをお知らせします。これは、ターミナルと同様 です。この取り組みの目標は、主に入力遅延を減らし、スクロールパフォーマンスを向上させることで、全体的なコーディングエクスペリエンスを向上させることです。
これはまだ初期段階であり、テストする準備はできていませんが、進捗状況についていくつかの詳細を共有したいと思います:
- GPU レンダラーは、WebGPU を使用しています。
- 現在は、パフォーマンスよりも機能のパリティと正確性に焦点を当てています。
- GPU アクセラレーションが有効な場合のフォールバックメカニズムがあり、完全にサポートされていない場合は行が DOM レンダリングにフォールバックします。これにより、初期段階で自己ホストでき、現在互換性のない行は DOM アプローチを使用して表示されます。現在フォールバックする行の例としては、200 文字を超える行、特定のモナコデコレーション (例:未使用の変数のフェード) を持つ行、折り返し行などがあります。
- モナコのインラインデコレーションは、実際の文字を含む要素をスタイル設定するために CSS を使用しているため、この機能にとって大きな課題でした。これらのデコレーションに添付された CSS を検出し、一般的な CSS プロパティのサブセットをサポートし、すべてのスタイルがサポートされていない場合はフォールバックするアプローチを使用して、ほとんどのインラインデコレーションをサポートすることにしました。
この機能が動作しているスクリーンショットを次に示します。黄色の行はフォールバックレンダリングを使用していることを示しています。この特定のケースでは、dontShow
パラメーターが未使用のためインラインデコレーションを持っているため、フォールバックレンダリングを使用しています:
この作業を追跡する問題は #221145 であり、進捗状況が頻繁に更新され、詳細が提供されます。
macOS 10.15 の EOL 警告¶
VS Code デスクトップは、次の数か月で Electron 33 に更新されます。Electron 33 の更新により、VS Code デスクトップは macOS Catalina では実行されなくなります。このマイルストーンでは、影響を受けるプラットフォームのユーザーに移行の準備を促すための非推奨通知を追加しました。上記の OS バージョンを使用している場合は、追加情報について FAQ をご覧ください。
注目の修正¶
- 233915 拡張機能ビューの拡張機能のコンテキストメニューで Copy Link アクションを使用して、他の人と拡張機能を共有します。
- 231542 ファイルを保存できないことが頻繁に発生するか、ファイルデータが消去されるエラー EBUSY
- 233304
onDidChangeCheckboxState
が 1.95 で壊れている - 232263 クロスプロセスコールがバッチ処理されるようにツリービューを最適化する
- 156723 wayland を使用しているときのドラッグアンドドロップサポートの修正
ありがとう¶
最後になりましたが、VS Code の貢献者の皆さんに大きな ありがとう を伝えたいと思います。
問題追跡¶
問題追跡への貢献:
プルリクエスト¶
vscode
への貢献:
- @a-stewart (Anthony Stewart): サイドバーとパネルのタイトルとビューの間に境界線を追加するサポートを追加 PR #157318
- @aravind-n (Aravind Nidadavolu): fish シェル統合の実行順序を修正 PR #226589
- @BABA983 (BABA): ShellIntegrationDecorationsEnabled の markdownDescription の修正 PR #233387
- @BenLocal (benshi): Cli serve_web がパスプレフィックスを /
- / に設定し、コミット値の解析エラー PR #233986 - @BlackHole1 (Kevin Cui): 修正:Windows で vscode-win32-x64 を使用すると VS Code を開けない PR #233285
- @BugGambit (Fredrik Anfinsen): 'foo,
' 形式のリンクを追加 PR #231775 - @cachandlerdev: 拡張機能リンクのコピー PR #234210
- @CrafterKolyan (Nikolai Korolev): 拡張機能 API の QuickPick に値選択を追加するインターフェースを追加 PR #233275
- @davidmartos96 (David Martos): Fish の PATH 先頭追加の修正 PR #232291
- @dibarbet (David Barbet): C# の文字列としての補間トークンをマークしない PR #232772
- @duncpro (Duncan): 修正:新しいファイル/フォルダ作成ボタンのクリック可能性 PR #232130
- @elias-pap (Elias Papavasileiou): feat: Vite のアイコンを追加 PR #234620
- @gjsjohnmurray (John Murray)
- 拡張機能が非表示の出力ビューを表示しないようにする
workbench.view.showQuietly
設定オブジェクトを追加 (fix #105270) PR #205225 Go to Current History Item
の破損を修正 (fix #235063) PR #235067- 参照ピッカーの変更後に
Go to Current History Item
を正しく有効にする (fix #235132) PR #235134
- 拡張機能が非表示の出力ビューを表示しないようにする
- @iisaduan (Isabel Duan): typescript organizeImports 設定の修正 PR #232676
- @jeanp413 (Jean Pierre): VS Code Web タブをブラウザでリロードした後に古い extensionHost プロセスがすぐに終了しない問題を修正 PR #234944
- @Kannav02 (Kannav Sethi): "Organize Imports" コマンドラベルを "Optimize Imports" に変更 PR #232869
- @LionelJouin (Lionel Jouin): 修正:go 文法の更新 (#232142) PR #232335
- @LitoMore (LitoMore): Microsoft 関連のロゴを削除 PR #215758
- @Logicer16 (Logicer): activeOnStart 説明の文法を修正 PR #197536
- @RedCMD (RedCMD):
.winget
ファイル拡張子を YAML に追加 PR #232218 - @ribru17 (Riley Bruins): JSDoc の例を typescript コードとしてレンダリング PR #234143
- @sandersn (Nathan Shively-Sanders): copilotRelated を copilot で登録しないようにリバート PR #233729
- @nickdiego (Nick Yamane): wayland を使用しているときのドラッグアンドドロップサポートの修正 Chromium CL
vscode-emmet-helper
への貢献:
- @onlurking (Diogo Felix): emmet に欠落している HTML タグを追加 PR #90
vscode-eslint
への貢献:
- @MariaSolOs (Maria José Solano): 貢献の手順を更新 PR #1947
vscode-extension-samples
への貢献:
- @olguzzar (Olivia Guzzardo): Chat チュートリアルを request.model を使用するように更新 PR #1125
- @phil294 (Philip Waritschlager): webview-codicons: codicons 依存関係を devDependencies から dependencies に移動 PR #1005
- @witsaint (gaodingqiang): 修正:
lsp-embedded-language-service
cleaninterval 引数の型 PR #1126
vscode-extension-telemetry
への貢献:
- @kmagiera (Krzysztof Magiera): セッション ID メタデータの伝播 PR #215
vscode-hexeditor
への貢献:
- @Antecer (Antecer): WYSIWYG コピー方法が必要 PR #540
- @Hexa3333 (Alp Yılmaz): 修正:DisplayContextSelection 読み取り違反 (#547) PR #548
- @jogo-: CHANGELOG.md の更新 PR #549
- @tomilho (Tomás Silva): 修正:caps lock がアクティブな場合の ctrl+f の動作 PR #555
vscode-json-languageservice
への貢献:
- @jeremyfiel (Jeremy Fiel): 修正:
then
説明のタイプミス PR #251 - @Legend-Master (Tony): 大規模な oneof 検証の遅延を修正 PR #247
- @sumimakito (Makito): feat(completion): スキーマからの詳細をサポート PR #243
vscode-jupyter
への貢献:
- @gjsjohnmurray (John Murray):
connor4312.esbuild-problem-matchers
推奨を追加 PR #16195 - @pwang347 (Paul): カーネルの初期化後の公開 API イベントを追加 PR #16214
vscode-mypy
への貢献:
- @hamirmahal (Hamir Mahal): 修正:
npm audit
によって報告された dev-dependency の問題 PR #327 - @taesungh (Taesung Hwang): グローバル設定の
ignorePatterns
デフォルトを使用 PR #325
vscode-python-debugger
への貢献:
vscode-python-tools-extension-template
への貢献:
vscode-test-web
への貢献:
- @Cecil0o0 (hj): VS Code main が npm に戻ったため、それをキャッチできる PR #148
inno-updater
への貢献:
- @BlackHole1 (Kevin Cui): 修正:サイレントが true の場合にダイアログが表示される PR #29
language-server-protocol
への貢献:
- @EwanDubashinski (Ivan Dubashinskii): PL/SQL 言語サーバーへのリンクを追加 PR #2057
- @gquerret (Gilles Querret): OpenEdge ABL を言語サーバーリストに追加 PR #2056
- @orbitalquark: Textadept 用のクライアント実装へのリンクを追加 PR #2058