前書き
VSCode1.97のリリースノートをChatGPTで日本語に翻訳しました。
VSCode 1.97 Release Notes
2025年1月 (バージョン 1.97)
Visual Studio Codeの2025年1月リリースへようこそ。このバージョンには多くの更新があり、いくつかの主要なハイライトは以下の通りです:
- 次の編集提案 (プレビュー) - Copilotが次に行う可能性のある編集を予測します。
- コマンドパレットの再配置 - コマンドパレットとクイック入力を新しい位置にドラッグします。
- 自動編集受け入れ - 設定可能なタイムアウト後にCopilotからの編集を自動的に受け入れます。
- 拡張機能の発行者の信頼 - 拡張機能の発行者の信頼で環境を安全に保ちます。
- 複合ログ - 複数のログを単一の集約ログビューに結合します。
- 出力ログのフィルタリング - 出力パネルの内容をフィルタリングします。
- Gitの責任情報 - 豊富なGitの責任情報とGitHubで開く。
- デバッグ変数での値の検索 - デバッグ変数で特定の値をフィルタリングおよび検索します。
- ノートブックのインライン値 - ノートブックのコードセル変数のインライン値を表示します。
- Pythonの設定なしデバッグ - 設定なしでPythonスクリプトやモジュールをすばやくデバッグします。
GitHub Copilot
Copilot次の編集提案 (プレビュー)
github.copilot.nextEditSuggestions.enabled
GitHub Copilotのコード補完はオートコンプリートに優れていますが、ほとんどのコーディング活動が既存のコードの編集であるため、補完の自然な進化として編集の支援も行います。そこで、新しいプレビュー機能であるCopilot次の編集提案 (Copilot NES) をリリースすることに興奮しています。
行っている編集に基づいて、Copilot NESは次に行いたい編集の場所とその編集内容を予測します。NESは現在の作業に関連する将来の変更を提案し、Tabキーを押すだけで提案をすばやくナビゲートして受け入れることができます。
下記動画の例ではNESを無効にした状態だとコンストラクタを自動補間後、何も表示されません。
NESを有効にすると、行番号の左側(ガター)に「→」が表示されdistanceTo
関数やmidpoint
関数といった変更が提案されていることが分かるかと思います。
Copilot NESを有効にするには、VS Codeの設定
github.copilot.nextEditSuggestions.enabled
を使用します。
編集のサイズとタイプに基づいて、提案のレンダリングがサイドバイサイドから現在の行の下に動的に変更される場合があります。
editor.inlineSuggest.edits.renderSideBySide
設定を構成して、常に提案を現在の行の下にレンダリングするようにします。
Copilot NESは急速に進化しており、リポジトリの問題を通じてフィードバックをお待ちしています。NESエクスペリエンスを拡張する際に、Copilot NESの完全なドキュメント を読んで、より多くの情報とシナリオを確認してください。
注意: Copilot BusinessまたはEnterpriseユーザーの場合、組織の管理者がCopilot機能のプレビューの使用を選択する必要があります。
また、エディタで
github.copilot.nextEditSuggestions.enabled
を設定する必要があります。
Copilot Edits
Copilot Editsの一般提供
VS Codeの10月リリースで、Copilot Editsのプレビューを発表しました。今日は、Copilot Editsの一般提供を発表します!Copilot Editsはコード編集に最適化されており、ワークスペース内の複数のファイルにわたってコード変更を直接チャットから行うことができます。
改善されたエディタコントロール
編集は個別に受け入れたり破棄したりできるようになり、より多くの制御が可能になりました。また、新しい機能として、サイドバイサイドビューに切り替えたときに編集のエディタコントロールが表示されたままになります。これは、大きな変更を理解するのに役立ちます。
最後に、設定可能なタイムアウト後に編集提案を自動的に受け入れる新しい設定を追加しました。その設定は
chat.editing.autoAcceptDelay
で、変更が受け入れられるまでの秒数を指定します。受け入れボタンを操作したり、変更をレビューし始めるとカウントダウンが停止します。これは、週末に一気に視聴する人にはおなじみのはずです。
エディタで適用
Copilot Chatでは、コードブロックのツールバーにある「エディタに適用」アクションを使用して、ワークスペース内のファイルにコードブロックを適用できます。このエクスペリエンスを改善しました:
アクションのホバーには、コードブロックが生成されたファイルが表示されるようになりました。
コードブロックが存在しないファイル用の場合、ファイルを作成する場所を指定するように求められます。これは、Copilotが提案するファイルパス、無題のエディタ、または現在アクティブなエディタで行うことができます。
変更が計算されて適用されると、Copilot Editsと同じフローとUIが使用されます。各変更を個別にレビュー、改善、または破棄できます。
時間的コンテキスト
時間的コンテキストは、最近操作したファイルについて言語モデルに情報を提供することで、コードの編集や生成を支援します。その効果を実験し、測定していますが、手動で有効にすることもできます。
github.copilot.chat.editor.temporalContext.enabled
はインラインチャット用、
github.copilot.chat.edits.temporalContext.enabled
はCopilot Edits用です。
ワークスペースインデックスステータスUI
@workspaceまたは#codebaseを使用してプロジェクト内のコードについてCopilotに質問すると、関連するコードスニペットをコンテキストとして含めるためにコードベースを迅速かつ正確に検索するためのインデックスを使用します。このインデックスは、GitHubが管理するリモートインデックス、ローカルに保存されたインデックス、またはリモートインデックスを使用できない大規模プロジェクトのフォールバックとして使用される基本インデックスのいずれかです。
このイテレーションでは、Copilotが使用しているインデックスのタイプや、再インデックスされているファイルの数などの関連情報を示す新しいワークスペースインデックスをステータスバーの言語ステータスインジケーターに追加しました。これを見るには、VS Codeのステータスバーで{}アイコンを選択するだけです。
ワークスペースインデックスのタイプやそれらを切り替える方法についての詳細は、Copilotワークスペースドキュメント をご覧ください。
リモートワークスペースインデックスの構築
リモートワークスペースインデックスはGitHubによって管理されます。リモートインデックスは、大規模プロジェクトでも迅速に高品質な結果を提供できます。また、GitHubプロジェクトごとに一度だけ構築すればよく、ユーザーごとに構築する必要はありません。
これらの利点を考慮して、プロジェクトをリモートインデックスにアップグレードするための新しい方法をいくつか追加しました:
- 新しいGitHub Copilot: Build Remote Indexコマンドを実行します。
- ワークスペースインデックスステータスUIのBuild Indexボタンを選択します。これは、プロジェクトがリモートインデックスに適格な場合にのみ表示されます。
- 最初の@workspace応答で表示されるBuild Indexボタンを選択します。これは、プロジェクトが適格であり、ワークスペースごとに一度だけ表示されます。
現在、GitHubリモートを持つプロジェクトのみがリモートインデックスを使用できます。また、特にプロジェクトが大規模な場合、リモートインデックスの構築には時間がかかることがあります。リモートインデックスが完了したかどうかを確認するには、ワークスペースインデックスステータスUIを確認してください。
ワークスペース検索の改善
@workspaceおよび#codebaseのコード検索の最適化も続けています。ハイライトは以下の通りです:
- リモートインデックスを使用する際のローカルで変更されたファイルの追跡と処理の改善。
- ローカルインデックスでの変更されたファイルのバックグラウンド更新を追加し、@workspaceの質問がそれらの更新を待つ必要がなくなりました。
- 大規模プロジェクト向けの基本インデックスの最適化。
Gitの変更コンテキスト変数
ChatまたはEditsのクエリを作成する際に、Gitソースコントロールで変更されたファイルを#changesコンテキスト変数を使用して参照できるようになりました。たとえば、「#changesを要約してください」とプロンプトを出すことができます。
モデルの利用可能性
Copilotを使用する際に選択できるモデルがさらに増えました。以下のモデルがVisual Studio Codeおよびgithub.comチャットのモデルピッカーで利用可能になりました:
- OpenAIのo3-mini: OpenAIの最新の推論モデルがコーディングワークフローに徐々に展開され、GitHub Copilot Pro、Business、およびEnterpriseユーザーに利用可能になります。o3-miniモデルの利用可能性については、GitHubブログ投稿 をご覧ください。
- Gemini 2.0 Flash: Googleの最新モデルは、コード提案、ドキュメント、およびコードの説明に高い能力を示しています。このモデルは、Copilot Freeを含むすべてのGitHub Copilot顧客に利用可能です。Gemini 2.0 Flashモデルの利用可能性については、GitHubブログ投稿 をご覧ください。
アクセシビリティ
アクセシビリティサウンドの強化
ユーザーのフィードバックに基づいて、いくつかのアクセシビリティサウンドを改善し、明確さと区別を向上させました。更新されたサウンドは以下の通りです:
- accessibility.signals.save
- accessibility.signals.lineHasFoldedArea
- accessibility.signals.terminalQuickFix
- accessibility.signals.lineHasInlineSuggestion
これらの更新をプレビューするには、コマンドパレットから「Help: List Signal Sounds」コマンドを実行します。
Copilot Editsアクセシビリティヘルプダイアログ
スクリーンリーダーユーザーは、入力ボックス内でAlt+F1を呼び出すことで、Copilot Editsとの対話に関するガイダンスにアクセスできます。
さらに、エディタに保留中のCopilot編集が含まれている場合、このステータスがエディタヘルプダイアログに表示されるようになりました。また、次のナビゲーション用のキーボードショートカットAlt+F5 / 前のShift+Alt+F5、受け入れCtrl+Shift+Enter、破棄Ctrl+Shift+Backspace、差分ビューの切り替えShift+Alt+F7を導入しました。
ソースコントロールアクセシビリティヘルプダイアログ
ソースコントロールビューがフォーカスされている状態で「Show Accessibility Help」コマンドを呼び出すと、スクリーンリーダーユーザーに重要な情報を提供するためにソースコントロールアクセシビリティヘルプダイアログが開きます。このダイアログには、現在のソースコントロールの状態の概要と、ビューの一般情報、およびそれらをナビゲートする方法が含まれています。
スクリーンリーダー通知の改善
スクリーンリーダーが検出されると、関連する通知には追加のコンテキストとリソースを提供するリンクが含まれるようになりました。
テキスト読み上げでのコードブロックの無視
以前は、Copilotの応答を読み上げるためにテキスト読み上げを使用すると、コードブロックも読み上げられていました。accessibility.voice.ignoreCodeBlocks
設定を使用して、テキスト読み上げセッションからコードブロックを無視できます。
ワークベンチ
コマンドパレットとクイック入力の移動
コマンドパレットやその他のクイック入力をウィンドウの上部に固定するのではなく、新しい位置に移動できるようになりました。
機能:
- コマンドパレットやその他のクイック入力をドラッグアンドドロップして、中央や上部にスナップ
- リロードをまたいで位置を保持し、クイック入力の新しい恒久的な位置を設定可能
- カスタマイズレイアウトピッカーでプリセット位置が利用可能
拡張機能の発行者の信頼
発行者から拡張機能を初めてインストールする際に、拡張機能の発行者の信頼性を評価するためのダイアログが表示されるようになりました。この機能は、信頼できるソースからのみ拡張機能をインストールすることを保証し、開発環境のセキュリティを向上させます。
拡張機能パックや依存関係を持つ拡張機能をインストールする場合、発行者を信頼すると、それに伴ってインストールされる拡張機能の発行者も暗黙的に信頼されます。
VS Code 1.97リリースに更新すると、現在インストールされている拡張機能の発行者は自動的に信頼されます。Extensions: Manage Trusted Extensions Publishers
コマンドを使用して、信頼された拡張機能の発行者を管理できます。このコマンドを使用して、以前に信頼した発行者の信頼をリセットまたは取り消すことができます。
信頼された発行者のクイックピックリストを示すスクリーンショットで、発行者のチェックを外して信頼を取り消すことができます。
注意: VS Codeウィンドウが開いていない状態でCLIから拡張機能をインストールする場合 (code-insiders –install-extension pub.name)、拡張機能はインストールされますが、発行者は信頼リストに追加されません。
出力パネルのフィルタリング
出力パネルの内容をフィルタリングできるようになり、大量のログデータを扱う際にログの管理と分析が大幅に改善されます。
- ログレベルでフィルタリング: 重大度レベル (例: エラー、警告、情報) に基づいてログをフィルタリングします。これにより、最も重要な問題に最初に集中できます。
- カテゴリでフィルタリング: 特定のカテゴリでログを絞り込み、特定のソースやコンポーネントからのログを分離できます。カテゴリはログデータから自動的に取得されます。
- テキストでフィルタリング: ログ内の特定のテキストを検索して、関連するエントリをすばやく見つけます。
複合ログ
情報が複数のログに分散していることがあり、それらを一緒に表示して完全な画像を得る必要があります。複数のログを単一の複合ログビューで表示できるようになりました。新しいフィルタリング機能と組み合わせて、ログの分析が大幅に改善されました!
カスタム複合ログを作成するには、出力パネルのオーバーフローメニューで「Create Compound Log…」アクションを使用します。
複合ログをエディタや新しいVS Codeウィンドウで開いて、柔軟な監視と分析を行うこともできます。この機能により、関連するログの統合ビューを提供することで、問題の診断能力が向上します。
注意: 複合ログビューは、VS Codeの再起動をまたいで保持されません。
ログのエクスポートとインポート
出力ビューのオーバーフローメニューのアクションを使用して、ログをエクスポートおよびインポートできるようになりました。この機能により、ログの共有とレビューが容易になり、コラボレーションとログ管理が向上します。
出力パネルのオーバーフローメニューで対応する「Export Logs」または「Import Log」アクションを選択して、ログをエクスポートまたはインポートします。
設定エディタの検索修正
このイテレーションでは、文字が欠けている検索クエリが期待される結果を表示しないという回帰を修正しました。
たとえば、「editor formonpast」を検索したときに、設定エディタが
editor.formatOnPaste
設定を見つけられませんでした。
また、設定エディタが狭いエディタグループにある場合でも、検索中に目次を表示する問題を修正しました。
拡張機能フィルタの強化
更新可能な拡張機能を追跡し、最近更新された拡張機能を見つけるのに役立つように、拡張機能ビューに2つの新しいフィルタオプションを追加しました: @outdated
と @recentlyUpdated
。
SVG画像プレビューサポート
組み込みの画像プレビューがSVGファイルのプレビューを基本的にサポートするようになりました。
より高度なSVGプレビュー拡張機能については、Visual Studio Marketplace をご覧ください。
CLIからワークスペースからルートフォルダを削除
以前は、–addコマンドラインオプションを使用してマルチルートワークスペースにルートフォルダを追加できました。
新しい–removeコマンドラインオプションで、マルチルートワークスペースからルートフォルダを削除する機能も追加しました。
|
|
エディタ
検索と置換履歴の保持
前回のマイルストーンでは、エディタの検索コントロールに履歴の保持を導入しました。このマイルストーンでは、それを置換入力コントロールに拡張し、複数のセッションにわたって別々に保持できるようにしました。
置換履歴はワークスペースごとに保存され、
editor.find.replaceHistory
設定で無効にできます。
コメント
未送信コメントを閉じる際の確認
未送信コメントを含むコメントコントロールをescキーで閉じるか、その他の方法で閉じると、確認ダイアログが表示されます。この確認を無効にするには、
comments.thread.confirmOnCollapse
設定を使用します。
コメントエディタでのクイックアクション
コメントエディタからクイックアクションを使用できます。
ソースコントロール
Gitの責任情報
このマイルストーンでは、エディタとステータスバーにGitの責任情報を表示する機能を磨き続けました。また、エディタの装飾やステータスバーアイテムにホバーしたときに表示される情報を改善しました。
Gitの責任情報ステータスバーアイテムはデフォルトで有効になっており、
git.blame.statusBarItem.enabled
設定を使用して無効にできます。
git.blame.editorDecoration.enabled
設定を使用してGitの責任情報エディタ装飾を有効にします。
コマンドパレットやキーバインディングを使用してGitの責任情報を簡単に切り替えるためのコマンドも追加しました: Git: Toggle Git Blame Editor Decoration
と Git: Toggle Git Blame Status Bar Item
。
GitHubリポジトリ
GitHubにホストされているリポジトリの場合、タイムラインコンテキストメニューとホバー、ソースコントロールグラフコンテキストメニューとホバー、Gitの責任情報エディタ装飾とステータスバーアイテムホバーに新しいコマンド「Open on GitHub」を追加しました。
GitHubの問題とプルリクエストの参照は、タイムライン、ソースコントロールグラフ、Gitの責任情報エディタ装飾とステータスバーアイテムホバーでリンクとしてレンダリングされ、ブラウザで簡単に開くことができます。
最後に、タイムライン、ソースコントロールグラフ、Gitの責任情報エディタ装飾とステータスバーアイテムホバーにGitHubアバターも追加しました。
github.showAvatar
設定を使用してGitHubアバターのレンダリングを無効にします。
ソースコントロールグラフアクション
ソースコントロールグラフビューの機能を拡張し、履歴アイテム参照 (例: ブランチタグ) にスコープされたアクションをコンテキストメニューに追加しました。最初に追加したアクションは、ブランチ/タグを簡単にチェックアウト、削除するための「Checkout」、「Delete Branch」、「Delete Tag」です。
今後のマイルストーンでさらに多くのアクションを追加する予定です。
ノートブック
セル実行時のインライン値
ノートブックエディタは、
notebook.inlineValues
設定を使用してセル実行後にインライン値を表示することをサポートするようになりました。有効にすると、セルの実行が成功した後、登録されたInlineValueProviderの結果に基づいてインライン値が表示されます。
プロバイダーがない場合、フォールバックアプローチは、カーネルで見つかった値をセルドキュメントと単純な正規表現マッチングで一致させます。より正確な結果を確保するために、言語拡張からのプロバイダーを使用することをお勧めします。
Markdownセルのカスタムフォントファミリー
ノートブックエディタは、レンダリングされたMarkdownセルにカスタムフォントファミリーを設定することをサポートするようになりました。これは、
notebook.markup.fontFamily
設定で制御できます。空白のままにすると、デフォルトのワークベンチフォントファミリーが使用されます。
ターミナル
リガチャサポート
この機能は安定版と見なされるようになりました。前回のバージョンからの変更点の概要は以下の通りです:
- 有効化設定が
terminal.integrated.fontLigatures
から
terminal.integrated.fontLigatures.enabled
に変更されました。 - カーソルまたは選択がリガチャ内にある場合、リガチャは一時的に無効になります。
terminal.integrated.fontLigatures.featureSettings
を使用してリガチャセットとバリアントを設定します。これは、背後でCSSプロパティのfont-feature-settings
に渡されます。terminal.integrated.fontLigatures.fallbackLigatures
を使用して、ライブラリがサポートされていない場合にリガチャシーケンスを手動で設定します。
ConEmuの進捗エスケープシーケンスのサポート
ターミナルで進捗を報告するためにConEmuが先駆けたESC ] 9 ; 4エスケープシーケンスがサポートされるようになりました。これは、wingetなどの一部のCLIツールが進捗を報告するために使用します。ターミナルタブで進捗を表示するには、terminal.integrated.tabs.title
または terminal.integrated.tabs.description
に${progress}
を追加します。通常、進捗スピナーまたはパーセンテージとして表示されます。
切り捨てられたコマンドのためのスティッキースクロール
ターミナルのスティッキースクロール (terminal.integrated.stickyScroll.enabled
) は、コマンドが省略記号で切り捨てられた場合に表示されるようになりました:
最後のターミナルが閉じられたときの動作を構成する
新しい
terminal.integrated.hideOnLastClosed
設定を使用して、最後のターミナルが閉じられたときにパネルが閉じられるかどうかを構成できます。これに加えて、ターミナルが開いていない場合のエクスペリエンスが改善されました。
タスク
列番号変数
新しい ${columnNumber}
変数を使用して、tasks.json
および launch.json
でカーソル位置の列番号を参照できます。変数の完全なリストはVS Codeのドキュメント
をご覧ください。
デバッグ
値のフィルタリングと検索
変数ビューとウォッチビューでビュー内を検索 (Ctrl+Alt+F) して、変数と式の値をフィルタリングできるようになりました。名前だけでなく、値でもフィルタリングできます。
デバッグコンソールでの選択
デバッグコンソールは、より長く、より信頼性のあるコンテンツ選択をサポートするようになり、コピーと貼り付けが容易になりました。
JavaScriptデバッガー
スクリプトは、コマンドパレットまたはエディタアクションから「Debug: Pretty print for debugging」コマンドを使用して、デバッガーが現在停止しているソースでなくても、きれいに印刷できるようになりました。
言語
TypeScript 5.7.3
このリリースには、TypeScript 5.7.3のリカバリリリースが含まれています。このマイナーアップデートは、いくつかのインポートバグと回帰を修正します。
Markdownプレビューから画像を右クリックして開く
Markdownプレビューでワークスペース画像を右クリックして「Open Image」を選択し、新しいエディタで開くことができるようになりました。
これは、現在のワークスペースの一部であるすべての画像に対してサポートされています。
Markdownリンク検証ステータスアイテム
VS Codeの組み込みMarkdown機能は、ファイルや画像へのローカルリンクを自動的に検証することをサポートしています。これは、名前が変更されたヘッダーやディスク上に存在しなくなったファイルへのリンクなど、一般的なミスをキャッチするのに役立ちます。
この機能を発見するのに役立つように、リンク検証のための新しい言語ステータスアイテムを追加しました:
Markdownファイルを開いた状態で、ステータスバーの{}を選択してリンク検証ステータスを表示します。ステータスアイテムを使用して、リンク検証をすばやくオフにしたりオンにしたりすることもできます。
新しいRuby構文ハイライト文法
古い、メンテナンスされていないtextmate/ruby.tmbundleからのRuby文法を廃止し、Shopify/ruby-lspからRuby文法を取得するようになりました。
リモート開発
リモート開発拡張機能を使用すると、Dev Container、SSH経由のリモートマシンまたはリモートトンネル、またはWindows Subsystem for Linux (WSL) をフル機能の開発環境として使用できます。
ハイライトは以下の通りです:
- Linuxレガシーサーバーへの接続のための移行パス
- SSHチャット参加者の改善
- SSH構成の改善
- SSHのデフォルトリモート拡張機能
これらの機能についての詳細は、リモート開発リリースノート をご覧ください。
拡張機能への貢献
Microsoftアカウント
MicrosoftアカウントはMSAL (WindowsでのWAMサポート付き) を使用するようになりました
注意: 先月のMicrosoftのMSALベースの認証の展開は、重大なバグのためにロールバックする必要がありました。このバグは修正され、展開を進めています。
Microsoft認証の強力なセキュリティベースラインを確保するために、Microsoftアカウント拡張機能でMicrosoft Authentication Libraryを採用しました。
この作業の際立った特徴の1つは、WAM (Web Account Manager… ブローカーとも呼ばれる) 統合です。簡単に言えば、Microsoft認証フローのためにブラウザに移動する代わりに、OSと直接通信するようになりました。これは、Microsoft認証セッションを取得するための推奨方法です。さらに、OS上で既にログインしているアカウントを活用できるため、より高速です。
この新しいフローで問題が発生した場合はお知らせください。重大な問題が発生し、古いMicrosoft認証動作に戻す必要がある場合は、
microsoft-authentication.implementation
をclassic
に設定し、VS Codeを再起動することで戻すことができますが、この設定は長くは続かないことに注意してください。MSALフローに問題がある場合は、問題を報告してください。
Python
ターミナルからネイティブREPLを起動
ターミナルのREPLからVS CodeネイティブREPLを起動できるようになりました。
python.terminal.shellIntegration.enabled
をtrueに設定すると、ターミナルのPython REPLにクリック可能なリンクが表示され、ターミナルから直接VS CodeネイティブREPLを開くことができます。
設定なしデバッグ
新しい設定なしデバッグ機能の一部として、ターミナルから設定なしでPythonスクリプトやモジュールをデバッグできるようになりました!この機能の詳細とトラブルシューティングのヒントについては、wikiページ をご覧ください。
テスト検出のキャンセル
テストエクスプローラーUIからテスト検出をトリガーする際に、進行中のテスト検出呼び出しをキャンセルできるようになりました。検出中にリフレッシュボタンの代わりに表示されるキャンセルボタンを使用します。
実装に移動
Pylanceは、関数やメソッドの使用から直接実装に迅速に移動できる「実装に移動」をサポートするようになりました。これは、継承されたクラスを操作する際に特に役立つ機能です。
AIコードアクション: シンボルの生成 (実験的)
PylanceとCopilotを使用してシンボルを生成するための新しい実験的なAIコードアクションがあります。試してみるには、次の設定を有効にします:
|
|
次に、新しいシンボル (例: クラスや関数) を定義したら、「Generate Symbol with Copilot Code Action」を選択して、Copilotに実装を任せることができます!必要に応じて、Pylanceの「Move Symbol Code Actions」を活用して、別のファイルに移動することもできます。
GitHubプルリクエストと問題
GitHubプルリクエスト拡張機能の進展があり、プルリクエストや問題の作成、管理が可能になりました。新機能には以下が含まれます:
- 今日からの相対的な時間範囲を指定する変数を使用したグローバルプルリクエストクエリ (${today-7d}).
- :
: スタイルの絵文字がコメントでサポートされるようになりました。 - チェックアウトされていないプルリクエストの説明を開くと、すべての非古いコメントがコメントパネルに表示されます。
拡張機能の0.104.0リリースの変更ログ を確認して、他のハイライトを学んでください。
プレビュー機能
エージェントモード (実験的)
Copilot Editsの新しいエージェントモードに取り組んでいます。エージェントモードでは、Copilotがワークスペースを自動的に検索して関連するコンテキストを見つけ、ファイルを編集し、エラーをチェックし、ターミナルコマンドを実行して (許可を得て) タスクをエンドツーエンドで完了できます。
Copilot Editsビューのドロップダウンで、数ヶ月間使用していた現在の編集モードとエージェントモードを切り替えることができます。ドロップダウンを表示するには、
chat.agent.enabled
設定を有効にします。VS Code Insidersでエージェントモードを使用し始めることができます。VS Code Stableユーザーへの展開を徐々に進めていきます。Stableで設定が表示されない場合は、まだ有効になっていないことを意味します。
エージェントモードでは、Copilotは自律的に動作しますが、現在のワークスペース内のファイルのみを編集できます。ターミナルコマンドを実行したい場合は、コマンドを表示してレビューし、「Continue」を選択するまで待機します。
注意: エージェントモードでは多くのチャットリクエストを使用する可能性があるため、定期的に一時停止して続行するかどうかを尋ねます。
chat.agent.maxRequests
でこれをカスタマイズできます。デフォルトでは、Copilot有料ユーザーは15、Copilot Freeユーザーは5です。
VS Codeドキュメント でCopilot Editsのエージェントモードについて詳しく学んでください。
エージェンティックコードベース検索 (プレビュー)
クエリに#codebaseを追加すると、Copilot Editsがタスクに関連するファイルを発見します。ファイルとテキスト検索、Gitリポジトリの状態、ディレクトリの読み取りなどの追加ツールを使用して関連するファイルを発見するための実験的サポートを追加しました。以前は、#codebaseはセマンティック検索のみを行っていました。
github.copilot.chat.edits.codesearch.enabled
を使用して有効にし、フィードバックをお寄せください。
VS Code InsidersでのCopilot Vision (プレビュー)
VS Code InsidersのGitHub Copilot Chatのプレリリースバージョンでエンドツーエンドのビジョンサポートを導入しています。これにより、画像を添付してCopilot Chatプロンプトで画像と対話できます。たとえば、デバッグ中にエラーが発生した場合、VS Codeのスクリーンショットをすばやく添付して、Copilotに問題の解決を依頼できます。
Copilot Chatプロンプトに添付された画像を示すスクリーンショット。画像にホバーするとプレビューが表示されます。
いくつかの方法で画像を添付できるようになりました:
- OSまたはエクスプローラービューから画像をドラッグアンドドロップ
- クリップボードから画像を貼り付け
- VS Codeウィンドウのスクリーンショットを添付 (「Attach > Screenshot Window」を選択)
選択したモデルが現在画像を処理する能力を持っていない場合、警告が表示されます。現在サポートされている唯一のモデルはGPT 4oです。現在サポートされている画像タイプはJPEG/JPG、PNG、GIF、およびWEBPです。
再利用可能なプロンプト (実験的)
この機能により、再利用可能なプロンプトを作成、保存、共有できます。プロンプトファイルは、Copilot Chatでプロンプトを書くために使用される形式と同じ形式に従う.prompt.md Markdownファイルであり、他のファイルやプロンプトへのリンクを含めることができます。タスク固有のガイダンス、コード生成の支援、または後で使用するための完全なプロンプトを保持するためにプロンプトファイルを添付できます。
プロンプトファイルを有効にするには、
chat.promptFiles
をtrueに設定するか、{ "/path/to/folder": boolean }
表記を使用して別のパスを指定します。指定されていない場合、.github/promptsフォルダがデフォルトでプロンプトファイル (*.prompt.md) を見つけるために使用されます。
VS Codeドキュメント でプロンプトファイルについて詳しく学んでください。
Linuxでのカスタムタイトルバー (実験的)
このマイルストーンでは、Linuxユーザーの一部にカスタムタイトルバーを有効にする実験を開始しています。
実験の一部でない場合は、
window.titleBarStyle
をcustom
に手動で設定して試すことができます。
カスタムタイトルコンテキストメニューから、または
window.titleBarStyle
をnative
に設定して、ネイティブタイトル装飾に戻すことができます。
TypeScript 5.8ベータサポート
このリリースには、TypeScript 5.8ベータリリースのサポートが含まれています。このリリースで何が予定されているかについては、TypeScript 5.8ブログ投稿 をご覧ください。
TypeScript 5.8のプレビュービルドを使用し始めるには、TypeScript Nightly拡張機能 をインストールします。フィードバックを共有し、TypeScript 5.8でバグに遭遇した場合はお知らせください。
より多くのシェルのためのターミナル補完
前回のバージョンで導入された一般的なターミナル補完をさらに進化させ、新しい提案APIに基づいて構築しました。有効にすると、
terminal.integrated.suggest.enabled
で新しい補完が以前のPowerShell用の組み込みプロバイダーを置き換え、
terminal.integrated.suggest.providers
でカスタマイズできるようになりました。
このリリースの主な更新点は以下の通りです:
- エディタの提案ウィジェットに合わせたウィジェットのスタイリングと構成の強化。
- コンテキストアクションと情報を提供する構成可能なステータスバー
(terminal.integrated.suggest.showStatusBar
)。 - コマンドの引数認識の改善、例: code, code-insiders, cd, ls, rm, echo, mkdir, rmdir, touch。
- 追加の詳細としてコマンドまたはリソースパスを表示。
- ., .., ../../などのディレクトリナビゲーションショートカットのサポートを追加。
- スクリーンリーダーの使用を有効化。
- $PATHから取得されたエントリは、実行可能ファイルである場合にのみ表示されます。Windowsにはファイルメタデータに実行可能ビットの概念がないため、
拡張子のリストはterminal.integrated.suggest.windowsExecutableExtensions
で構成できます。これらは、利用可能な場合に実際のシェル環境を使用して、今後の提案APIを使用します。 - 詳細を切り替えるためのキーボードサポートの強化、Ctrl+Spaceと提案詳細フォーカスの切り替えCtrl+Alt+Space。
- 提案は常にすべてのタイプで行われ、エディタのクイック提案の動作に近づきます。
- PowerShell固有のグローバル補完 (例: Get-ChildItem, Write-Hostなど) が提案されるようになりました。
TypeScriptのためのTree-Sitterベースの構文ハイライト
多くのTextmate文法がもはやメンテナンスされていないため、構文ハイライトにTree-Sitterを使用することを検討しています。チームが自己ホストしてフィードバックを提供できるように、TypeScriptから始めました。
editor.experimental.preferTreeSitter
設定を使用して、早期プレビューを試してみてください。
拡張機能の作成
ドキュメントペーストAPI
ドキュメントペーストAPIは、拡張機能がテキストドキュメントでのコピー/ペースト操作にフックすることを可能にします。このAPIを使用して、拡張機能は次のことができます:
- コピー時にクリップボードにデータを書き込む。これには、ペースト時に取得できるメタデータの書き込みが含まれます。
- ペースト時にペーストを適用するカスタム編集を生成する。これにより、ペーストされるテキストコンテンツを変更したり、新しいファイルを作成するなどのより複雑なワークスペース編集を行うことができます。
- コンテンツをペーストする方法を複数提供する。
ユーザーはペーストコントロールまたはeditor.pasteAs.preferences
設定を使用して、コンテンツをペーストする方法を選択できます。
VS Codeは、JavaScriptおよびTypeScriptのペースト時のインポートの更新や、URLをペーストする際にMarkdownリンクを自動的に作成する機能を実装するためにドキュメントペーストAPIを使用しています。
ドキュメントペーストAPIを使用するには、ドキュメントペースト拡張サンプル を確認してください。より複雑な例については、組み込みのMarkdown拡張がMarkdownドキュメントに画像を挿入するために画像ファイルのペースト をどのように実装しているかを確認してください。
ファイルオープンラベルがシンプルなファイルピッカーに表示される
OpenDialogOptions
のopenLabel
プロパティが、以前はシステムファイルピッカーでのみサポートされていたのに対し、シンプルなファイルピッカーでもサポートされるようになりました。これにより、ファイルピッカーのボタンにカスタムラベルを提供できます。
ファイルレベルコメントAPI
コメントAPIは、ファイルレベルのコメントを作成および表示することをサポートしています。ファイルレベルのコメントは、ファイルの最初の行の前に表示されます。特定の行や範囲に添付されていません。ファイルレベルのコメントを表示するには、コメントの範囲をundefined
に設定します。コメント範囲プロバイダーからファイルレベルのコメントを残すことをサポートするには、CommentingRangeProvider
のenableFileComments
プロパティをtrue
に設定します。
提案されたAPI
ターミナル補完プロバイダー
ターミナル補完プロバイダーを登録し、このGitHubの問題 でフィードバックをお寄せください。
この例は、
terminal.integrated.suggest.enabled
を介して有効にされたときに補完を提供するターミナル提案拡張で見つけることができます。
ターミナルシェルタイプ
拡張機能は、現在アクティブなシェルタイプ情報にアクセスできるようになります。TerminalState
のshellType
フィールドの一部になります。
このシェルタイプ情報を使用して、必要なシェル固有の操作を実行します。
エンジニアリング
ハウスキーピング
12月の年次ハウスキーピング活動の一環として、すべてのリポジトリのGitHubの問題とプルリクエストをクリーンアップすることに焦点を当てました。今年は、3,821件の問題とプルリクエストの純減を達成し、バックログが関連性を保ち、管理可能であることを保証しました。
問題クリーンアップガイドに従って、古い、重複した、もはや関連性のない問題をレビューし、トリアージしました。これにより、効率的な開発ワークフローを維持し、ユーザーのためにVisual Studio Codeを改善することに集中できます。
コミュニティの継続的な関与とフィードバックに感謝します。あなたの貢献がVS Codeを毎日より良くしています!🚀
過去数年間のオープン問題の数の傾向を示すチャート。チャートは、毎年12月のハウスキーピング月に急激な減少を示しています。
TypeScriptワークスペースでのファイル監視のためのリソース最適化
大規模なTypeScriptワークスペース (数千のTypeScriptファイルまたはプロジェクト) でファイル監視が持つオーバーヘッドを削減するために、いくつかの最適化が行われました。具体的には、そのようなワークスペースを開いてウォッチャーを初期化する際に、CPUスパイクが発生しないか、CPU使用率がすぐに安定するはずです。
詳細については、このVS Codeの問題 をご覧ください。
注目すべき修正
- 160325 Ctrl+Dが押された後のターミナル起動失敗を抑制
- 230438 コードページ1125 (cp866u) のサポート
- 238577 デフォルトのウィンドウサイズの増加
- 197377 launch.jsonまたはtasks.jsonでのworkspaceFolder変数の置換は、仮想ファイルシステムのURIを使用する必要があります
- 229857 a11yビューは、行のコメントにフォーカスを当てた後に空白になります