2025 年 8 月 (バージョン 1.104)¶
リリース日: 2025 年 9 月 11 日
更新 1.104.1: この更新では、これらの 問題 に対処しています。
Visual Studio Code の 2025 年 8 月のリリースへようこそ。このバージョンには多くの更新があり、皆様に気に入っていただけることを願っています。主なハイライトは次のとおりです:
モデルの柔軟性 | セキュリティ | 生産性 |
---|---|---|
VS Code に最適なモデルを選択させる 詳細 |
機密ファイルの編集を確認する 詳細 |
チャットファイルの編集から注意散漫になる要素を削除 詳細 |
VS Code 拡張機能を通じてモデルをコントリビュートする 詳細 |
エージェントにターミナルコマンドを安全に実行させる 詳細 |
AGENTS.md を使用してチャットコンテキストを追加する 詳細 |
これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com の Updates にアクセスしてください。
Insiders: 新機能をいち早く試したいですか?
夜間の Insiders ビルドをダウンロードして、利用可能になった最新の更新をすぐに試すことができます。
Download Insiders
チャット¶
自動モデル選択 (プレビュー)¶
このイテレーションでは、チャットに自動モデル選択を導入します。モデルピッカーで Auto モデルを選択すると、VS Code は自動的にモデルを選択し、最適なパフォーマンスを確保し、レート制限を削減します。
自動モデル選択は現在プレビュー段階であり、今後数週間で VS Code のすべての GitHub Copilot ユーザーに展開される予定です。まずは個人の Copilot プランから開始します。
Auto は、組織がこれらのモデルへのアクセスを無効にしていない限り、Claude Sonnet 4、GPT-5、GPT-5 mini、および GPT-4.1 の中から選択します。自動モデル選択を使用する場合、VS Code は選択されたモデルに基づいて可変のモデル乗数を使用します。有料ユーザーの場合、auto は 10% のリクエスト割引を適用します。
選択されたモデルとモデル乗数は、チャットビューの応答にカーソルを合わせることで確認できます。
VS Code での 自動モデル選択 について詳しく学びましょう。
機密ファイルの編集を確認する¶
設定: setting(chat.tools.edits.autoApprove)
エージェントモードでは、エージェントはワークスペース内のファイルを自律的に編集できます。これには、構成ファイルなどの重要なファイルを誤ってまたは悪意を持って変更または削除することが含まれる可能性があり、マシンに即座に悪影響を及ぼす可能性があります。AI を活用した開発ツールを使用する際の セキュリティに関する考慮事項 について詳しく学びましょう。
このリリースでは、エージェントは特定のファイルを編集する前に、ユーザーに明示的に確認を求めるようになりました。これにより、エージェントモードを使用する際の安全性がさらに向上します。setting(chat.tools.edits.autoApprove)
設定を使用すると、確認が必要なファイルを示すファイルパターンを構成できます。
一般的なシステムフォルダー、ドットファイル、およびワークスペース外のファイルは、デフォルトで確認が必要になります。
AGENTS.md ファイルのサポート (実験的)¶
設定: setting(chat.useAgentsMdFile)
AGENTS.md
ファイルを使用すると、エージェントにコンテキストと指示を提供できます。このリリースから、ワークスペースのルートに AGENTS.md
ファイルがあると、チャットリクエストのコンテキストとして自動的に取得されます。これは、複数の AI エージェントを使用するチームに役立ちます。
AGENTS.md
ファイルのサポートはデフォルトで有効になっており、setting(chat.useAgentsMdFile)
設定で制御できます。AGENTS.md
ファイルの詳細については、https://agents.md/ を参照してください。
あなたのプラクティスやチームのワークフローに合わせて VS Code でチャットをカスタマイズする 方法について詳しく学びましょう。
変更されたファイルの体験向上¶
このイテレーションでは、変更されたファイルのリストがいくつかの QoL (Quality-of-Life) 機能で再設計されました。これらの変更により、エージェントモードでの作業体験が向上するはずです!
- 変更されたファイルのリストは、チャットの会話により多くのスペースを確保するために、デフォルトで折りたたまれるようになりました。折りたたまれている間も、変更されたファイルの数と追加または削除された行数を確認できます。
- 提案された変更を保持または受け入れると、ファイルは変更されたファイルのリストから削除されます。
- ソース管理ビューを使用してファイルをステージングまたはコミットすると、提案されたファイルの変更が自動的に受け入れられます。
- リストの各項目に、ファイルごと の変更 (追加または削除された行) が表示されるようになりました。
プロンプトファイルでカスタムチャットモードを使用する¶
プロンプトファイルは、再利用可能なチャットプロンプトを記述する Markdown ファイルです。プロンプトファイルを実行するには、チャット入力フィールドに /
に続けてプロンプトファイル名を入力するか、エディターでプロンプトファイルを開いているときに再生ボタンを使用します。
プロンプトファイルの実行に使用するチャットモードを指定できます。以前は、プロンプトファイルで agent
、edit
、ask
などの組み込みチャットモードしか使用できませんでした。プロンプトファイルでカスタムチャットモードを参照することもできるようになりました。
プロンプトファイル、チャットモード、カスタム指示を使用して VS Code でチャットをカスタマイズする 方法について詳しく学びましょう。
プロンプトファイルの提案を構成する (実験的)¶
設定: setting(chat.promptFilesRecommendations)
チームは AI ワークフローを標準化するためにカスタムプロンプトファイルを作成することがよくありますが、これらのプロンプトはユーザーが最も必要とするときに見つけにくいことがあります。 अब, आप प्रासंगिक शर्तों के आधार पर चैट वेलकम व्यू में सुझाव के रूप में कौन सी प्रॉम्प्ट फाइलें दिखाई देती हैं, इसे कॉन्फ़िगर कर सकते हैं。
新しい setting(chat.promptFilesRecommendations)
設定は、コンテキストに応じた提案のために、単純なブール値と when 句の両方の式をサポートします。
{
"chat.promptFilesRecommendations": {
"plan": true, // 常に提案する
"a11y-audit": "resourceExtname == .html", // HTML ファイルの場合のみ
"document": "resourceLangId == markdown", // Markdown ファイルの場合のみ
"debug": false // 提案しない
}
}
これにより、チームは適切なタイミングで適切な AI ワークフローを提示でき、カスタムプロンプトがワークスペースやファイルタイプに対してより見つけやすく、関連性の高いものになります。
ツールセットでツールを選択する¶
ツールセット は、関連するツールをグループ化する便利な方法であり、VS Code には edit
や search
などのいくつかの組み込みツールセットがあります。
ツールピッカーには、各ツールセットにどのツールが含まれているかが表示され、各ツールを個別に有効または無効にできます。ツールピッカーには、チャットビューの Configure Tools...
ボタンからアクセスできます。
チャットで使用されるフォントを構成する¶
設定: setting(chat.fontFamily)
、setting(chat.fontSize)
VS Code では、エディター全体で使用するフォントを選択できますが、チャットビューにはその構成可能性がありませんでした。今回、チャットメッセージのフォントファミリー (setting(chat.fontFamily)
) とフォントサイズ (setting(chat.fontSize)
) を構成するための 2 つの新しい設定を追加しました。
注意: 現在、リストのコンテンツはこれらの設定を尊重しませんが、これは今後のリリースで修正に取り組んでいるものです。
コーディングエージェントとの共同作業 (実験的)¶
コーディングエージェントを使用すると、タスクを AI エージェントに委任してバックグラウンドで作業させることができます。複数のそのようなエージェントを並行して作業させることができます。コーディングエージェントとより効果的に共同作業できるように、チャットセッションの体験を進化させ続けています。
チャットセッションビュー¶
設定: setting(chat.agentSessionsViewLocation)
チャットセッションビューは、ローカルおよびコントリビュートされたチャットセッションの両方を管理するための単一の統一されたビューを提供します。チャットセッションビューを大幅に強化し、すべての主要な操作を実行できるようになり、コーディングタスクの反復と最終決定が容易になりました。
- ステータスバーの追跡: ステータスバーから直接、複数のコーディングエージェントの進捗を監視します。
- マルチセッションのサポート: 同じビューから複数のチャットセッションを起動および管理します。
- 拡張されたコンテキストメニュー: コーディングエージェントと効率的に対話するためのより多くのアクションにアクセスします。
- リッチな説明: リッチな説明を有効にすると、各リストエントリに関連情報をすばやく見つけるのに役立つ詳細なコンテキストが含まれるようになりました。
GitHub コーディングエージェントの統合¶
よりスムーズで直感的な体験を提供するために、GitHub コーディングエージェント とチャットセッションの統合を改善しました。
- チャットエディターのアクション: チャットエディターから直接、コードの変更を簡単に表示または適用し、プルリクエストをチェックアウトします。
- シームレスな移行: 継続性が向上し、ローカルチャットから GitHub エージェントタスクに移行します。
- より良いセッションレンダリング: 視覚的な明瞭さを向上させるためのカードとツールのレンダリングに関するさまざまな改善。
- パフォーマンスの向上: より応答性の高い体験のための高速なセッション読み込み。
コーディングエージェントへの委任¶
VS Code のローカルタスクを Copilot コーディングエージェントに委任する方法を引き続き拡張しました:
- コーディングエージェントで TODO を修正:
TODO
で始まるコメントに、コーディングエージェントセッションをすばやく開始するためのコードアクションが表示されるようになりました。
- チャットからの委任 (
setting(githubPullRequests.codingAgent.uiIntegration)
):チャットで Delegate to coding agent アクションを実行すると、ファイル参照を含む追加のコンテキストが GitHub コーディングエージェントに転送されるようになりました。これにより、タスクをコーディングエージェントに渡す前に正確に計画できます。新しいチャットエディターが開き、コーディングエージェントの進捗がリアルタイムで表示されます。
テーマ: Sharp Solarized (vscode.dev でプレビュー)
Google でのソーシャルサインイン¶
Google アカウントで GitHub Copilot にサインインまたはサインアップするオプションが一般提供され、VS Code のすべてのユーザーに展開されています。
詳細については、GitHub ブログの発表記事 を参照してください。
ターミナルの自動承認¶
設定: setting(chat.tools.terminal.enableAutoApprove)
ターミナルコマンドの自動承認は、エージェントとの対話を大幅に効率化できますが、セキュリティリスク も伴います。このリリースでは、使いやすさとセキュリティの両方を向上させるために、ターミナルの自動承認にいくつかの改善を導入しています。
setting(chat.tools.terminal.enableAutoApprove)
設定でターミナルの自動承認を有効または無効にできるようになりました。この設定は、デバイス管理 を介して組織が設定することもできます。
- ターミナルの自動承認が実際に有効になる前に、チャットビューのドロップダウンから明示的にオプトインする必要があります。
- チャットビューから、実行中のコマンドの自動承認ルールを簡単に追加したり、構成設定を開いたりできます:
テーマ: Sapphire (vscode.dev でプレビュー)
これには、
npm
ではなくnpm test
ルールを提案するなど、より適切なサブコマンドを提案するための基本的なサポートが含まれています。
- 自動承認されたコマンドの透明性を向上させるために、チャットビューにどのルールが適用されたかを表示し、そのルールを構成できるようにしました:
- 安全性を高め、ノイズを減らすためにデフォルトを改善しました。
settings.json
ファイルを開き、chat.tools.terminal.autoApprove
を入力してkbstyle(Tab)
で補完することで、設定のデフォルト値を確認してルールの完全なリストを表示できます。
- バックスラッシュまたはフォワードスラッシュ文字を含む非正規表現ルールは、パスとして扱われるようになり、その正確なパスだけでなく、どちらのスラッシュタイプや
./
プレフィックスも許可します。PowerShell を使用する場合、すべてのルールは大文字と小文字を区別しないように強制されます。
- エージェントモードが
curl
、wget
、Invoke-RestMethod
、またはInvoke-WebRequest
を使用してインターネットからコンテンツを取得しようとすると、警告が表示されるようになりました。これは、プロンプトインジェクション攻撃の一般的なベクトルであるためです。
ドキュメントで ターミナルの自動承認 について詳しく学びましょう。
グローバル自動承認¶
グローバル自動承認は v1.99 以降、実験的な設定 でした。私たちが観察したところによると、ユーザーは結果を深く考えずにこの設定を有効にしていました。さらに、一部のユーザーは setting(chat.tools.autoApprove)
設定を有効にすることがターミナルの自動承認を有効にするための前提条件であると考えていましたが、それは決して事実ではありませんでした。
これらの誤解に対処し、ユーザーをさらに保護するために、グローバル自動承認が初めて使用されようとするときに、当然のことながら恐ろしい見た目の警告が表示されるようになりました。これにより、ユーザーは簡単に元に戻して設定を無効にできます:
設定も、自動移行なしでより明確な setting(chat.tools.global.autoApprove)
に変更されました。そのため、すべてのユーザー (偶発的または意図的) は、再度明示的に設定する必要があります。
数式レンダリングがデフォルトで有効に¶
設定: setting(chat.math.enabled)
チャット応答での数式のレンダリングが一般提供され、デフォルトで有効になりました。この機能は setting(chat.math.enabled)
設定で無効にできます。
この機能は KaTeX を利用しており、インラインおよびブロックの両方の数式をサポートしています。インライン数式は、マークアップを単一のドル記号 ($...$
) で囲むことで記述でき、ブロック数式は 2 つのドル記号 ($$...$$
) を使用します。
チャットビューのデフォルトの可視性¶
設定: setting(workbench.secondarySideBar.defaultVisibility)
ワークスペースを初めて開くと、チャットビューのあるセカンダリサイドバーがデフォルトで表示され、すぐに質問したり、エージェントセッションを開始したりできます。この動作は setting(workbench.secondarySideBar.defaultVisibility)
設定を使用するか、チャットビュー自体のドロップダウンを使用して構成できます:
タスクサポートの改善¶
- 入力リクエストの検出
エージェントモードでタスクまたはターミナルコマンドを実行すると、エージェントはプロセスがユーザー入力を要求したことを検出し、チャットで応答するように促されます。プロンプトが表示されている間にターミナルに入力すると、プロンプトは自動的に非表示になります。オプションと説明が提供されている場合 (例:
[Y] Yes [N] No
)、これらは確認プロンプトに表示されます。
- 問題マッチャーを使用したタスクのエラー検出
問題マッチャーを使用するタスクの場合、エージェントは言語モデルに出力を評価させるのではなく、問題マッチャーの結果に基づいてエラーを収集して表示するようになりました。問題はチャットの進捗メッセージ内のドロップダウンに表示され、問題の場所に直接移動できます。これにより、現在のタスク実行に関連する場合にのみエラーが報告されるようになります。
- 複合タスクのサポート
エージェントモードは、複合タスクの実行をサポートするようになりました。複合タスクを実行すると、エージェントはユーザー入力のプロンプトを含む、各依存タスクの進捗と出力を示します。これにより、より複雑なワークフローと、複数ステップのタスク実行の可視性が向上します。
以下の例では、VS Code - Build タスクが実行されます。各依存タスクの出力が評価され、応答と進捗メッセージのドロップダウンでユーザーに問題が提示されます。
ターミナルサポートの改善¶
- より多くのターミナルツールをコアに移動
前回のリリースでの
runInTerminal
ツール と同様に、terminalSelection
とterminalLastCommand
ツールが拡張機能からコアに移動され、全体的な信頼性が向上するはずです。
- 構成可能なターミナルツールのシェル統合タイムアウト
runInTerminal
ツールがターミナルを作成しようとすると、シェル統合がアクティブになるまで一定期間待機します。非常に重い PowerShell プロファイルがあるなど、シェルの起動が特に遅い場合、以前は固定されていた 5 秒のタイムアウトを待っても、最終的に失敗する可能性がありました。このタイムアウトは、setting(chat.tools.terminal.shellIntegrationTimeout)
設定で構成できるようになりました。
- コマンドプロンプトの使用を防止
コマンドプロンプトでは、少なくとも Copilot が必要とする機能ではシェル統合が実際には不可能であるため、Copilot は代わりに Windows PowerShell を使用することを選択するようになりました。これにより、デフォルトでシェル統合が有効になるはずです。これにより、デフォルトのシェルがコマンドプロンプトの場合に
runInTerminal
ツールの信頼性が向上するはずです。何らかの理由で Copilot にコマンドプロンプトを使用させたい場合、現在は不可能です。近いうちに、Copilot が使用するターミナルプロファイルをカスタマイズする機能を追加する予定です。これは #253945 で追跡されています。
Todo リストツール¶
Todo リストツールは、エージェントが複雑な複数ステップのタスクをより小さなタスクに分解し、進捗を報告して個々の項目を追跡するのに役立ちます。このツールに改善を加え、デフォルトで有効になりました。
ツールの進捗は、チャットビューの上部にある Todo コントロールに表示されます。これは、Todo リストが処理されるにつれて自動的に折りたたまれ、進行中の現在のタスクのみが表示されます。
ツール呼び出しをスキップする¶
エージェントがツール呼び出しの確認を要求したときに、ツール呼び出しをスキップしてエージェントを続行させることを選択できるようになりました。チャット入力ボックスを介してリクエストをキャンセルしたり、新しいリクエストを入力したりすることもできます。
セマンティックワークスペース検索の改善¶
#codebase
ツールをアップグレードし、ワークスペース内のコードをセマンティック検索するための新しい 埋め込み モデルを使用するようにしました。この新しいモデルは、コード検索でより良い結果を提供します。新しい埋め込みはストレージスペースも少なく、各埋め込みで以前のモデルのディスク上のストレージサイズの 6% しか必要としません。
今後数週間で、この新しい埋め込みモデルを段階的に展開していきます。ワークスペースは自動的にこの新しい埋め込みモデルを使用するように更新されるため、アクションは必要ありません。VS Code Insiders はすでに新しいモデルを使用しているため、展開される前に試すことができます。
GitHub Copilot AI 機能を非表示および無効にする¶
設定: setting(chat.disableAIFeatures)
チャット、コード補完、次の編集候補など、GitHub Copilot が提供する組み込みの AI 機能を無効にして非表示にするための新しい設定 setting(chat.disableAIFeatures)
を導入します。
この設定には、以前のソリューションに比べて次の利点があります:
- 明示的に無効にしない限り、デバイス間で同期されます
- インストールされている場合、Copilot 拡張機能を無効にします
- プロファイルごとまたはワークスペースごとに設定を構成できるため、AI 機能を簡単に選択的に無効にできます
「Hide AI Features」コマンドは、この変更を反映するように名前が変更され、設定エディターでこの新しい設定が表示されるようになります。
注意: 以前に AI 機能を非表示にしていたユーザーは、引き続き AI 機能が非表示になります。選択をデバイス間で同期したい場合は、追加で設定を更新できます。
MCP¶
サーバー指示のサポート¶
VS Code は MCP サーバーの指示を読み取り、ベースプロンプトに含めるようになりました。
MCP 自動検出がデフォルトで無効に¶
設定: setting(chat.mcp.discovery.enabled)
VS Code は、Claude Code などの他のアプリにインストールされている MCP サーバーの自動検出 をサポートしています。VS Code での MCP サポートが成熟したため、自動検出はデフォルトで無効になりましたが、setting(chat.mcp.discovery.enabled)
設定を使用して再度有効にできます。
MCP を有効にする¶
設定: setting(chat.mcp.access)
以前に VS Code で MCP サーバーを実行できるかどうかを制御していた chat.mcp.enabled
設定は、より説明的なオプションを持つ新しい setting(chat.mcp.access)
設定に移行されました:
all
: すべての MCP サーバーの実行を許可します (以前のtrue
値に相当)none
: MCP サポートを完全に無効にします (以前のfalse
値に相当)
アクセシビリティ¶
チャット確認アクションにフォーカスする¶
コマンド Focus Chat Confirmation (kb(workbench.action.chat.focusConfirmation))
を追加しました。これは、確認ダイアログが存在する場合はそれにフォーカスし、存在しない場合はスクリーンリーダーユーザーに確認が不要であることをアナウンスします。
コード編集¶
構成可能なインライン提案の遅延¶
設定: setting(editor.inlineSuggest.minShowDelay)
新しい設定 setting(editor.inlineSuggest.minShowDelay)
を使用すると、入力後にインライン提案がどれだけ早く表示されるかを構成できます。これは、提案が早すぎて入力の邪魔になると感じる場合に便利です。
エディター体験¶
Windows でのウィンドウ境界線の色のサポート¶
設定: setting(window.border)
Windows で VS Code ウィンドウの周りに色付きの境界線を表示できる新しい設定 setting(window.border)
を追加できることを嬉しく思います。この設定には次のオプションがあります:
default
: カラーテーマの設定を尊重し、Windows の設定にフォールバックしますsystem
: Windows の設定のみを尊重します (ウィンドウタイトルのアクセントカラー)off
: 境界線の色を無効にします<color>
: Hex、RGB、RGBA、HSL、HSLA 形式の特定の色
ワークスペースごとに色を構成できるため、どのウィンドウでどのワークスペースが開かれているかを簡単に区別できます。
setting(window.border)
を default
として構成すると、テーマは window.activeBorder
と window.inactiveBorder
のカラーキーを使用して、アクティブおよび非アクティブなウィンドウの境界線の色を設定できます。これらの色は、setting(workbench.colorCustomizations)
設定からさらに上書きできます。
拡張機能のアカウント設定を管理する¶
コマンドパレットに Accounts: Manage Extension Account Preferences コマンドを追加しました。呼び出されると、認証アカウントにアクセスできる拡張機能のリストが表示され、それらの拡張機能が使用するアカウントを変更できます。リストから直接新しいアカウントにサインインすることもできます。
これは、1 年前に追加したアカウント管理機能 に基づいています。
エディタータブのインデックス¶
設定: setting(workbench.editor.showTabIndex)
エディタータブのラベルにタブのインデックスをレンダリングできるようになりました。これは、多くのタブを開いていて、キーボードショートカットを使用してそれらの間をすばやく移動したい場合に便利です。この機能は setting(workbench.editor.showTabIndex)
設定で有効にします。
エディタータブバーのスクロールバーの可視性¶
設定: setting(workbench.editor.titleScrollbarVisibility)
setting(workbench.editor.titleScrollbarVisibility)
を使用すると、エディタータブバーのスクロールバーがいつ表示されるかを制御できます。デフォルト値の auto
は、タブがオーバーフローし、タブがホバーされたときにのみスクロールバーを表示します。また、タブがオーバーフローしたときに常にスクロールバーを表示するには visible
に、表示しないようにするには hidden
に設定することもできます。
問題報告者の改善¶
組み込みの問題報告者を介して VS Code または拡張機能の問題を報告する際に、レポートボタンのドロップダウンから Create on GitHub または Preview on GitHub のいずれかを選択できるようになりました。ボタンがドロップダウンを表示せず、Create または Preview のみを表示する場合、これは拡張機能データをまだ読み込んでいるか、正しいスコープを提供する GitHub アカウントでサインインしていることを確認する必要があることを意味している可能性があります。
Notebooks¶
NES 提案の改善 (実験的)¶
設定: setting(github.copilot.chat.notebook.enhancedNextEditSuggestions.enabled)
ノートブックの次の編集提案の品質を向上させる実験を行っています。現在、言語モデルは提案を生成する際にアクティブなセルの内容にアクセスできます。setting(github.copilot.chat.notebook.enhancedNextEditSuggestions.enabled)
設定を有効にすると、言語モデルはノートブック全体にアクセスできるようになり、より正確で高品質な次の編集提案を生成できます。
ソース管理¶
Git worktree の変更をプレビューして移行する¶
ソース管理の変更ビューで worktree ファイルを右クリックしてコンテキストメニューを開き、Compare with Workspace を選択することで、worktree ファイルと現在のワークスペースとの違いをプレビューできるようになりました。
変更を確認した後、コマンドパレットから Migrate Worktree Changes... コマンド (kb(git.migrateWorktreeChanges)
) を使用して、worktree からのすべての変更を現在のワークスペースにマージできます。これにより、複数の worktree 間で作業し、選択的に変更をメインリポジトリに戻すことが容易になります。
VS Code での Git worktrees について詳しく学びましょう。
ターミナル¶
ターミナルウィンドウの発見可能性と洗練¶
ターミナルを別のウィンドウで開けるようにしてほしいという要望がよくあります。この機能は約 1 年半前から存在していましたが、特に発見しやすくはありませんでした。このイテレーションでは、この機能のための複数のエントリポイントを追加しました:
- 新しいコマンド
kb(workbench.action.terminal.newInNewWindow)
。 - 空のエディターとタブウェルのメニューに New Terminal エントリが追加されました。
- 新しいターミナルのドロップダウンが再編成され、New Terminal Window エントリが追加されました。
- トップレベルのターミナルメニューに New Terminal Window エントリが追加されました。
また、これらの新しいターミナルウィンドウがコンパクトモードで開くエクスペリエンスも洗練しました。ウィンドウに新しいタブを追加すると、自動的にコンパクトモードが終了します。
ターミナルエディターでのターミナルアクション¶
ターミナルビューで利用可能なアクション (新しいターミナルのドロップダウン、ターミナルのクリアなど) は、エディターエリアとターミナルウィンドウのターミナルでも利用できるようになりました。
ターミナルビューと同様に、アクションエリアを右クリックしてオーバーフローメニューから移動させることができます。
ターミナル IntelliSense の改善 (プレビュー)¶
このリリースでは、ターミナル IntelliSense にいくつかの改善が加えられています:
- 複数のパフォーマンス改善。これらは Windows でのエクスペリエンスに特に大きな影響を与えます。
- Windows で利用できない
sed
依存関係が削除されたため、git
補完が Windows でより信頼性が高くなりました。 git
補完には、コミット、ブランチ、リモート、スタッシュ、タグを表すおなじみのアイコンが表示されるようになりました。- 多数の補完仕様が追加されました:
adb
,basename
,bundle
,clear
,cut
,date
,dd
,diff
,dig
,dirname
,docker-compose
,docker
,dotnet
,env
,export
,fdisk
,fmt
,fold
,gh
,go
,htop
,id
,jq
,ln
,lsblk
,lsof
,mount
,nl
,od
,paste
,ping
,pkill
,readlink
,rsync
,ruby
,ruff
,sed
,seq
,shred
,sort
,source
,split
,stat
,su
,sudo
,tac
,tar
,tee
,time
,tr
,traceroute
,tree
,truncate
,uniq
,unzip
,wc
,where
,whereis
,which
,who
,xargs
,xxd
,yo
,zip
ターミナルのスティッキースクロールの改善¶
ターミナルのスティッキースクロールをデフォルトで有効にしました。ページャーを使用する際の動作の改善など、より良いエクスペリエンスのためにいくつかの改善を行いました。ターミナルのスティッキースクロールは、setting(editor.tabFocusMode)
設定と互換性があります。
言語¶
JavaScript と TypeScript¶
使用状況の数値をレビューした結果、組み込みの bower.json
IntelliSense を削除することにしました。Bower は 2017 年から非推奨 であり、私たちの組み込みサポートはほとんど使用されておらず、積極的にメンテナンスされていませんでした。
Bower は、ユーザーが npm
または yarn
に移行することを推奨しています。VS Code での Bower の継続的なサポートは、拡張機能によって提供できます。
Python¶
Python Environments 拡張機能の Pipenv サポート¶
Pipenv 環境が Python 拡張機能と同様に検出および選択できるようになりました。さらに、Python サイドバーの Environment Manager ビューに表示され、他の環境タイプと一緒にグループ化されて表示されます。
環境変数のインジェクションを構成する¶
新しい設定 setting(python.useEnvFile)
は、Python Environments 拡張機能が有効になっている場合に、.env
ファイルと setting(python.envFile)
設定からの環境変数がターミナルにインジェクトされるかどうかを制御します。
Python Environments 拡張機能の改善¶
Python Environments Extension は、安定版ユーザーへの制御されたロールアウトの一環として、バグ修正と改善を受け続けました。ロールアウト中に Python Environments 拡張機能を使用するには、拡張機能がインストールされていることを確認し、VS Code の settings.json
ファイルに以下を追加してください: "python.useEnvironmentsExtension": true
。
Pylance による AI を活用したホバー要約 (実験的)¶
Pylance の最新のプレリリースバージョンを使用している場合、Python で新しい実験的な AI ホバー要約機能が利用可能になりました。setting(python.analysis.aiHoverSummaries)
設定を有効にすると、ドキュメントがまだないシンボルに対して、その場で役立つ要約を取得できます。これにより、なじみのないコードを理解しやすくなり、Python プロジェクトを探索する際の生産性が向上します。AI ホバー要約は現在、GitHub Copilot Pro、Pro+、および Enterprise ユーザーが利用できます。
この実験的な体験を、近いうちに安定版の拡張機能バージョンに導入できることを楽しみにしています。
コードスニペット実行ツール¶
python -c "code"
のようなターミナルコマンドに頼ったり、実行するための一時ファイルを作成したりする代わりに、Pylance のコードスニペット実行ツールを使用すると、GitHub Copilot は Python スニペットを完全にメモリ内で実行できます。ワークスペースに構成された正しい Python インタープリターを自動的に使用し、ターミナル実行中に時々発生するシェルエスケープやクォーティングに関する一般的な問題を排除します。
際立った利点の 1 つは、stdout と stderr の両方が明確さのためにインターリーブされた、クリーンで適切にフォーマットされた出力を提供することです。これにより、GitHub Copilot でエージェントモードを使用して、ワークスペースのコンテキスト内で小さなコードブロックをテストしたり、クイックスクリプトを実行したり、Python 式を検証したり、インポートをチェックしたりするのに最適です。
試すには、Pylance 拡張機能の最新のプレリリースバージョンを使用してください。その後、チャットビューの Add context... > Tools メニューから pylancerunCodeSnippet
ツールを選択できます。
注意: すべての AI 生成コードと同様に、このツールを実行させる前に、生成されたコードを検査してください。コードのロジックと意図を確認することで、プロジェクトの目標に沿っており、安全性と正確性が維持されていることを確認できます。
すべての Python ドキュメントで Pylance IntelliSense が有効に¶
python.analysis.supportAllPythonDocuments
設定は最新の Pylance プレリリースバージョンから削除され、Pylance IntelliSense はターミナルや diff ビューを含むすべての Python ドキュメントでデフォルトで有効になりました。これは、VS Code で Python を扱う場所ならどこでも、リッチなコード補完、ホバー、コードナビゲーションを利用できることを意味します。
アクティベーションフック¶
Python アクティベーションフックは、シェルプロファイルを変更するために Python 環境拡張機能を必要とせず、シェル統合スクリプトから実行できるようになりました。これにより、setting(python-envs.terminal.autoActivationType)
が shellStartup
に設定されている場合に、より信頼性の高いターミナルアクティベーションが提供され、重要なことに、Copilot ターミナルが期待どおりにアクティベートされることが保証されます。
拡張機能への貢献¶
GitHub Pull Requests¶
プルリクエストやイシューの作業、作成、管理を可能にする GitHub Pull Requests 拡張機能でさらなる進展がありました。新機能は次のとおりです:
- 狭いウィンドウでサイドバーのコンテンツが折りたたまれる
- リロード後にプルリクエストとイシューの webview が復元される
- 新しい "TODO" コードアクションにより、Copilot コーディングエージェントに直接委任できる
setting(githubPullRequests.ignoreSubmodules)
でサブモジュールを無視できる
拡張機能の 0.118.0 リリースの変更履歴 を確認して、リリースのすべてについて学びましょう。
拡張機能のオーサリング¶
拡張機能が起動したターミナルの shellIntegrationNonce¶
shellIntegrationNonce
を TerminalOptions
と ExtensionTerminalOptions
の createTerminal
に渡せるようになりました。これにより、拡張機能は シェル統合エスケープシーケンス でコマンドを検証するために使用される nonce を制御できます。
Language Model Chat Provider API¶
このイテレーションで、LanguageModelChatProviders
API を最終決定しました。これにより、拡張機能はクラウドホストまたはローカルの 1 つ以上の言語モデルをコントリビュートできます。拡張機能をインストールすることで、ユーザーはチャットのモデルピッカーを通じてこれらのモデルを選択できます。
すでに、AI Toolkit for VS Code、Cerebras Inference、Hugging Face など、この API を利用して VS Code のチャットを追加モデルで拡張する複数の拡張機能があります。
この API の利用方法については、Language Model Chat Provider 拡張機能ガイド または 拡張機能サンプル で詳しく学ぶことができます。
注意: この API を通じて提供されるモデルは、現在 個人の GitHub Copilot プラン のユーザーのみが利用できます。
Proposed API¶
認証: getSession
での WWW-Authenticate
チャレンジのサポート¶
HTTP の確立されたパターンとして、API へのリクエストが 401 Unauthorized ステータスコードと WWW-Authenticate ヘッダーを返すことがあります。これは auth challenges を定義します。これらは本質的に、API が 401 を解決するために必要なものです。
これらのチャレンジを認証プロバイダーに渡して処理できるようにする Proposed API を導入しました。まず、呼び出し側から次のようにチャレンジを渡すことができます:
export interface AuthenticationWWWAuthenticateRequest {
/**
* このチャレンジをトリガーした生の WWW-Authenticate ヘッダー値。
*/
readonly wwwAuthenticate: string;
/**
* セッションのオプションのスコープ。
*/
readonly scopes?: readonly string[];
}
export namespace authentication {
// 注: 唯一の変更は 2 番目のパラメーターです。`getSession` の他のバリエーションも同じ変更があります
export function getSession(providerId: string, scopeListOrRequest: ReadonlyArray<string> | AuthenticationWWWAuthenticateRequest, options?: AuthenticationGetSessionOptions): Thenable<AuthenticationSession | undefined>;
}
認証プロバイダー側では、AuthenticationProvider
に次の 2 つの新しい関数を追加しました:
getSessionsFromChallenges(constraint: AuthenticationConstraint, options: AuthenticationProviderSessionOptions): Thenable<readonly AuthenticationSession[]>;
createSessionFromChallenges(constraint: AuthenticationConstraint, options: AuthenticationProviderSessionOptions): Thenable<AuthenticationSession>;
そして、認証プロバイダーは AuthenticationProviderOptions
の supportsChallenges: true
を介して登録されるときに、チャレンジのサポートを宣言できます。
例: Azure MFA¶
この作業は、当初 Azure API で MFA を要求する今後の変更 のために行われたため、この API の例としてもそれを使用しましょう。
Azure でリソースを作成する拡張機能があるとします。それは Azure RM API を呼び出すだけで、特別なことは何もありません... あなたの拡張機能は、この API を呼び出すために使用できる認証セッション (主にアクセストークン) を取得するために vscode.authentication.getSession
を呼び出すことにはすでにおなじみでしょう。さて、その認証セッションを最初に作成したとき、組織によっては、多要素認証 (MFA) を経由したかどうかが異なります。経由した場合、Azure API は満足します。MFA を経由しなかった場合、Azure の API は 401 と WWW-Authenticate
ヘッダーを返します。
ここで VS Code の新しい API が登場します... あなたがしなければならないのは、そのヘッダー値を取得し、それを vscode.authentication.getSession
に直接渡すことだけです:
const newRequest = {
wwwAuthenticate: theRawHeaderValue,
scopes: scopesFromPreviousRequest
}
const sessionWithMFA = await vscode.authentication.getSession('microsoft', newRequest, options)
これにより、そのヘッダー値が microsoft
認証プロバイダーに渡され、認証プロバイダーはチャレンジが満たされたセッションを作成する責任を負います。
次のステップ¶
次のイテレーションでは、この提案の getSession
(別名、認証を要求する拡張機能) の部分を最終決定する予定ですので、それに関するフィードバックや AuthenticationProvider
の変更の形状について何かあれば、お知らせください!完全な提案は GitHub でこちら で見つけることができます。
WWW-Authenticate
に関して近いうちに実現されるもう 1 つのユースケースは、MCP サーバーがより多くのスコープを持つトークンを要求する WWW-Authenticate
ヘッダーを発行することです。これについては MCP 仕様に提案があります。
セカンダリサイドバーのビューコンテナー¶
拡張機能は、activitybar
と panel
にビューコンテナーをコントリビュートできます。今回、secondarySidebar
へのコントリビュートのサポートも追加しました。これは現在、contribSecondarySideBar
Proposed API の背後にあります。この API を近いうちに最終決定したいと考えています。
エンジニアリング¶
VS Code の内部開発ループにおける Playwright と Playwright MCP の探求¶
エージェントモードやその他の VS Code の AI 機能は、VS Code チームが VS Code 自体を構築するためのコアツール (しゃれではありません) になりました。私たちは、これらの機能をさらに適用して、VS Code の内部開発ループをさらに改善する方法を探求したいと考えました。そのために、Playwright を使用する既存の smoke test 自動化プロジェクト を拡張して、ローカルの VS Code インスタンスを駆動できる MCP サーバーを作成する実験を行っています。これにより、ビルド/テスト時のアーティファクト (コンパイル、リンター、テストなど) からコンテキストを受け取ることに焦点を当てていた既存のエージェントフローが、ライブの VS Code インスタンスと対話できるようになり... 変更が実行時に望ましい効果をもたらすことを検証できます。
この作業の最初の部分は、vscode リポジトリの test/mcp フォルダー にあります。試してみたい場合は、非常に簡単に始めることができます:
- ローカルバージョンの Code OSS を実行するための コントリビューションガイドライン に従います
- 次に、私たちの (今のところ) ささいなプロンプトファイル を使用して、エージェントモードで
/playwright your question here
と質問できます。
これはまだ初期の探求ですが、内部開発ループで AI をさらに使用する可能性に興奮しています。基礎は築かれ、これをより堅牢でチームにとって有用なものにするために反復していきます。
この作業は最近 VS Code Insiders ポッドキャストで取り上げられ、この探求の動機といくつかの技術的な詳細について議論しました。VS Code Insiders ポッドキャスト のエピソードを聴くことができます。
注目すべき修正¶
- vscode#151902 - ターミナル: 選択時にコピー + 1.68 の新しいハイライトで CMD+F 時に前の用語がコピーされる
- vscode#222075 - ページャーでページダウンを使用すると、ターミナルのスティッキースクロールが 1 フレーム表示されることがある
- xtermjs/xterm.js#5390 - 代替バッファを終了した後のスクロールバーのテレポートを修正
謝辞¶
最後になりましたが、VS Code のコントリビューターの皆様に心から感謝申し上げます。
イシュートラッキング¶
私たちのイシュートラッキングへの貢献:
- @gjsjohnmurray (John Murray)
- @RedCMD (RedCMD)
- @IllusionMH (Andrii Dieiev)
- @albertosantini (Alberto Santini)
プルリクエスト¶
vscode
への貢献:
- @a-ariff (Ariff): docs: Development Container セクションの文法を修正 PR #264162
- @alexkozy (Alexey)
- fix: debugToolBar.ts の小さなメモリリークを修正 PR #259349
- fix: WorkerTextModelSyncClient を登録 PR #259442
- @alexvoedi (Alexander Vödisch): linkedEditing の非同期を修正 PR #242993
- @bluedog13
- Microsoft の URL 標準に合わせるために OAuth リダイレクト URI 形式を修正 PR #260446
- RFC 8707 に準拠するように OAuth2 リソースパラメーターを修正 PR #261815
- @CGNonofr (Loïc Mangeonjean): firefox で外部ウィンドウとテーマが同期されない問題を修正 PR #259839
- @Da-nie-elT: for-in ループスニペットを
Object.hasOwn()
で更新 PR #262682 - @DoctorKrolic:
.slnx
をxml
言語拡張機能リストに追加 PR #259049 - @DrSergei (Druzhkov Sergei): ウォッチウィンドウのメモリ参照処理を修正 PR #259753
- @gjsjohnmurray (John Murray)
- カバレッジソースのクイックピックに
Go to Test
を追加 PR #259600 - テストカバレッジツールバーのクイックピックで正しいアクティブエントリを設定 PR #259639
- テスト結果: uri がある場合のみ
Go to Test
を提供 (fix #260443) PR #260508
- カバレッジソースのクイックピックに
- @hihry (Himanshu Ravindra Iwanati): fix: 'Restore to Last Checkpoint' ホバーテキストの大文字小文字を更新 PR #259572
- @j3iiifn: プロンプトファイル名に数字を含めることはできません PR #261704
- @joelverhagen (Joel Verhagen)
- インストールフローから正規のパッケージ名とバージョンを返せるようにする PR #259081
- アシスト付き MCP インストールによって返される server.json をサポート PR #259634
- MCP アシスト付きインストールが失敗した場合のヘルプリンクのサポートを追加 PR #260215
- @kenherring (Ken Herring): terminal.copyOnSelection と terminalFindWidget - フォーカス時に選択をコピーしない PR #254065
- @kplates (kplates): feat: ファイル検索からファイルタイプを含める/除外する PR #254285
- @LeftPhalange (Ethan Bovard): DIFF_OPEN_SIDE コマンドを使用してコマンドパレットに Open Active Diff Side オプションを追加 PR #261699
- @remcohaszing (Remco Haszing)
- MonacoEnvironment のグローバルアクセスを修正 PR #248075
- markdown コードブロックでより多くの言語をハイライト PR #263550
- @rwoll (Ross Wollman)
- 自動化でエージェントループが終了するのを待つ PR #262370
- 自動化でのモデル切り替えをサポート PR #262420
- fix: chat.open コマンドでコマンドを解析 PR #263458
workbench.action.chat.export
がオプションでパスを受け入れるように PR #263507- fix: promise に基づいて応答を確認 PR #263894
- Revert "fix: confirm response based on promise (#263894)" PR #264047
- @SimonSiefke (Simon Siefke)
- fix: パターン入力ウィジェットのメモリリークを修正 PR #258152
- fix: codelens コントローラーのメモリリークを修正 PR #263136
- fix: アクセシビリティシグナルスケジューラのメモリリークを修正 PR #263147
- fix: QuickDiffModel のメモリリークを修正 PR #265007
- @swordjjjkkk (Truman): VSCode にタブインデックスを表示 PR #209196
- @terreng (Terren): タイトルのスクロールバーの可視性を制御する新しいオプションを実装 PR #246161
- @timheuer (Tim Heuer): テストカバレッジビューにすべて折りたたむ機能を追加 PR #258906
- @tmm1 (Aman Karmani)
- いくつかのタイプミスを修正 PR #259747
- terminalProcessManager: 使い捨てリークを修正 PR #261710
- storage: upsert 構文で sqlite の insert を最適化 PR #261999
- @Tritlo (Matthías Páll Gissurarson): extHostMcp: SSE/JSON 処理のために Content-Type パラメーターを受け入れる PR #262787
- @ttttotem (ttttotem): 「最初の 2 文字の間をクリックするとキャレットが 0 列目にジャンプする」を修正 PR #265131
- @JBlitzar (JBlitzar): 既存のインスタンスに接続するときに
app.dock.hide
を使用 PR #259352
vscode-copilot-chat
への貢献:
- @24anisha: github テレメトリに sku データを追加 PR #819
- @devm33 (Devraj Mehta): logprobs フィールドをオプションにする PR #325
- @iann0036 (Ian Mckay): fix: "GitHub" の大文字小文字の調整 PR #631
- @joelverhagen (Joel Verhagen)
- @jwangxx (James Wang)
- @lipido (Daniel Glez-Peña): エージェントのテストカバレッジを改善 PR #614
- @m4dc4p: getErrors (GetErrors / problems) ツールを更新 PR #394
- @rwoll (Ross Wollman)
- @shaunm-msft (Shaun Miller)
- @sridharavinash (Avinash Sridhar): 会話モデルメッセージにモードを追加 PR #517
- @yemohyleyemohyle: MSFT 内部テレメトリにメッセージ長イベントを追加 PR #473
- @zhichli (Zhichao Li)
vscode-eslint
への貢献:
- @AmarMuric04 (AmarMuric)
- @davidtaylorhq (David Taylor): Ember の glimmer-ts/glimmer-js 形式のプローブサポートを追加 PR #2069
vscode-extension-samples
への貢献:
- @Sepush (Artea): refactor(lsp-embedded-request-forwarding): 不要なコードをクリーンアップ PR #1196
vscode-js-debug
への貢献:
- @LittleLittleCloud (Xiaoyun Zhang): fix: constructInspectorWSUri 関数で localhost ホスト名を処理 PR #2260
vscode-jupyter
への貢献:
- @hunterhogan (Hunter Hogan): package.nls.json のタイプミス PR #16890
- @krassowski (Michał Krassowski): カスタム CDN URL のサポートを追加 PR #16885
vscode-languageserver-node
への貢献:
- @MariaSolOs (Maria José Solano):
textDocument/colorPresentation
に機能情報を追加 PR #1660
vscode-markdown-languageservice
への貢献:
- @remcohaszing (Remco Haszing): vscode/l10n をバージョン 0.0.18 に更新 PR #199
vscode-markdown-tm-grammar
への貢献:
- @c-schuhmann (Christian Schuhmann): SAP ABAP 構文のサポートを追加 PR #176
- @esmasth (Siddharth Sharma): YANG コードフェンスのサポートを追加 PR #169
- @Morikko (Eric Masseran): markdown コードブロックに restructuredtext のサポートを追加 PR #178
- @remcohaszing (Remco Haszing)
vscode-pull-request-github
への貢献:
- @krassowski (Michał Krassowski): タイプミス "will be replace" → "will be replaced" を修正 PR #7540
vscode-python-environments
への貢献:
- @almarouk (Abdelrahman AL MAROUK): fix: パスの存在チェックで conda 実行可能ファイルの取得を強化 PR #677
- @sjsikora (Sam Sikora): バグ修正: より厳密な pip list パッケージの解析 PR #698
vscode-vsce
への貢献:
- @tgrospic (Tomislav Grospić): prepublish コマンドに文字列形式を使用して Node.js DEP0190 警告を回避 PR #1188
debug-adapter-protocol
への貢献:
- @jborean93 (Jordan Borean): Ansible 実装を追加 PR #552
language-server-protocol
への貢献:
- @aartaka (Artyom Bologov): 実装リストに cl-lsp (Common Lisp) を追加 PR #2179
- @anakin4747 (Anakin Childerhose): kconfig-language-server を追加 PR #2177
- @asukaminato0721 (Asuka Minato): ty を追加 PR #2175
- @MariaSolOs (Maria José Solano):
textDocument/colorPresentation
に機能情報を追加 PR #2173 - @notpeter (Peter Tripp)
- @ribru17 (Riley Bruins): 3.18 メタモデルのバージョンを修正 PR #2180
- @skewb1k: 遅延プロパティの説明の文法と一貫性を修正 PR #2170
node-jsonc-parser
への貢献:
- @operagxsasha: docs: バッジテストへのリンクを編集 PR #98
- @pimterry (Tim Perry): パーサーエラーに startLine と startCharacter を追加 PR #102
python-environment-tools
への貢献:
- @almarouk (Abdelrahman AL MAROUK): conda env トレースメッセージを修正 PR #241
新機能が準備でき次第、試してくださる皆様に心から感謝しています。頻繁にチェックして、最新情報を入手してください。
以前の VS Code バージョンのリリースノートを読みたい場合は、code.visualstudio.com の Updates にアクセスしてください。