に参加して、VS Code の AI 支援開発について学びましょう。

2025年8月 (バージョン 1.104)

リリース日: 2025年9月11日

アップデート 1.104.1: このアップデートでは、これらの問題に対処しています。

アップデート 1.104.2: このアップデートでは、これらの問題に対処しています。

アップデート 1.104.3: このアップデートでは、これらの問題に対処しています。

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


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

  • モデルの柔軟性

  • セキュリティ

    • 機密ファイルの編集を承認する (詳細を表示)
    • エージェントがターミナルコマンドを安全に実行できるようにする (詳細を表示)
  • 生産性

    • チャットファイル編集から注意散漫を取り除く (詳細を表示)
    • AGENTS.md を使用してチャットコンテキストを追加する (詳細を表示)

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

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

チャット

自動モデル選択 (プレビュー)

今回のイテレーションでは、チャットに自動モデル選択を導入しました。モデルピッカーで自動モデルを選択すると、VS Code が自動的にモデルを選択し、最適なパフォーマンスを確保し、レート制限を軽減します。

自動モデル選択は現在プレビュー段階であり、VS Code のすべての GitHub Copilot ユーザーに、個別の Copilot プランから数週間以内に展開される予定です。

Screenshot that shows the model picker in the Chat view, showing the Auto option.

組織がこれらのモデルへのアクセスを無効にしていない限り、自動は Claude Sonnet 4、GPT-5、GPT-5 mini、および GPT-4.1 のいずれかを選択します。自動モデル選択を使用する場合、VS Code は選択されたモデルに基づいて可変モデル乗数を使用します。有料ユーザーの場合、自動は10%のリクエスト割引を適用します。

Chat ビューで応答にカーソルを合わせると、選択されたモデルとモデル乗数を確認できます。

Screenshot of a chat response, showing the selected model on hover.

VS Code の自動モデル選択について詳しくはこちら。

機密ファイルの編集を承認する

設定: chat.tools.edits.autoApprove

エージェントモードでは、エージェントはワークスペース内のファイルを自律的に編集できます。これには、設定ファイルなどの重要なファイルを誤ってまたは悪意を持って変更したり削除したりすることが含まれる可能性があり、これによりマシンに即座に負の副作用が生じる可能性があります。AI を活用した開発ツールを使用する際のセキュリティ上の考慮事項について詳しくはこちら。

このリリースでは、エージェントが特定のファイルを編集する前に、ユーザーに明示的に確認を求めるようになりました。これにより、エージェントモードを使用する際の安全性がさらに向上します。chat.tools.edits.autoApprove 設定を使用して、確認が必要なファイルを示すファイルパターンを設定できます。

一般的なシステムフォルダー、ドットファイル、およびワークスペース外のファイルは、デフォルトで確認が必要です。

Screenshot showing the confirmation dialog for sensitive file edits in the Chat view.

AGENTS.md ファイルのサポート (実験的)

設定: chat.useAgentsMdFile

AGENTS.md ファイルを使用すると、エージェントにコンテキストと指示を提供できます。このリリースから、ワークスペースのルートに AGENTS.md ファイルがある場合、それはチャットリクエストのコンテキストとして自動的に認識されます。これは、複数の AI エージェントを使用するチームにとって役立ちます。

AGENTS.md ファイルのサポートはデフォルトで有効になっており、chat.useAgentsMdFile 設定で制御できます。AGENTS.md ファイルの詳細については、https://agents.md/ を参照してください。

VS Code でチャットを実践やチームのワークフローに合わせてカスタマイズする方法について詳しくはこちら。

改善された変更済みファイルエクスペリエンス

今回のイテレーションでは、変更済みファイルリストがいくつかの生活の質の向上を伴って再設計されました。これらの変更は、エージェントモードでの作業時にエクスペリエンスを向上させるはずです!

  • 変更済みファイルリストは、チャット会話にさらにスペースを与えるために、デフォルトで折りたたまれるようになりました。折りたたまれた状態でも、変更されたファイルの数と、追加または削除された行数を確認できます。

  • 提案された変更を保持または承認すると、ファイルは変更済みファイルリストから削除されます。

  • ソース管理ビューを使用してファイルをステージまたはコミットすると、提案されたファイル変更が自動的に承認されます。

  • リスト内の各項目について、ファイルごとの変更 (追加または削除された行数) が表示されるようになりました。

プロンプトファイルでカスタムチャットモードを使用する

プロンプトファイルは、再利用可能なチャットプロンプトを記述する Markdown ファイルです。プロンプトファイルを実行するには、チャット入力フィールドに / に続けてプロンプトファイル名を入力するか、エディターでプロンプトファイルを開いているときに再生ボタンを使用します。

プロンプトファイルの実行に使用するチャットモードを指定できます。以前は、プロンプトファイルで agenteditask などの組み込みチャットモードしか使用できませんでした。今回、プロンプトファイルでカスタムチャットモードも参照できるようになりました。

Screenshot showing IntelliSense for custom chat modes in prompt files.

プロンプトファイル、チャットモード、カスタム指示を使用して、VS Code でチャットをカスタマイズする方法について詳しくはこちら。

プロンプトファイルの提案を設定する (実験的)

設定: chat.promptFilesRecommendations

チームは AI ワークフローを標準化するためにカスタムプロンプトファイルを作成することがよくありますが、ユーザーが最も必要とするときにこれらのプロンプトを発見するのが難しい場合があります。これで、チャットのウェルカムビューに、状況に応じた条件に基づいてどのプロンプトファイルが提案として表示されるかを設定できるようになりました。

新しい chat.promptFilesRecommendations 設定は、コンテキストに応じた提案のために、単純なブール値と when-clause 式の両方をサポートしています。

{
  "chat.promptFilesRecommendations": {
    "plan": true,                            // Always suggest
    "a11y-audit": "resourceExtname == .html", // Only for HTML files
    "document": "resourceLangId == markdown", // Only for Markdown files
    "debug": false                           // Never suggest
  }
}

これにより、チームは適切なタイミングで適切な AI ワークフローを表面化させ、カスタムプロンプトをワークスペースとファイルタイプに関連付け、より発見しやすくすることができます。

ツールセットでツールを選択する

ツールセットは、関連するツールをグループ化する便利な方法であり、VS Code には editsearch などのいくつかの組み込みツールセットがあります。

ツールピッカーに、各ツールセットに含まれるツールが表示されるようになり、各ツールを個別に有効または無効にできます。Chat ビューの Configure Tools... ボタンからツールピッカーにアクセスできます。

Screenshot showing the tools picker with an expanded edit tool set, listing all available tools.

チャットで使用するフォントを設定する

設定: chat.fontFamily, chat.fontSize

VS Code では、エディター全体で使用するフォントを選択できますが、Chat ビューにはその設定機能がありませんでした。今回、チャットメッセージのフォントファミリー (chat.fontFamily) とフォントサイズ (chat.fontSize) を設定するための2つの新しい設定を追加しました。

Screenshot showing the Chat view with a custom font and font size.

: リストのコンテンツは現在、これらの設定を尊重していませんが、これは今後のリリースで修正に取り組んでいる点です。

コーディングエージェントとの共同作業 (実験的)

コーディングエージェントを使用すると、タスクを AI エージェントに委任してバックグラウンドで作業させることができます。複数のエージェントを並行して作業させることができます。私たちは、コーディングエージェントとより効果的に共同作業できるように、チャットセッションのエクスペリエンスを進化させ続けています。

チャットセッションビュー

設定: chat.agentSessionsViewLocation

チャットセッションビューは、ローカルと提供されたチャットセッションの両方を管理するための単一の統合ビューを提供します。チャットセッションビューを大幅に強化し、すべての主要な操作を実行できるようになり、コーディングタスクの反復と最終化が容易になりました。

  • ステータスバー追跡: ステータスバーから複数のコーディングエージェントの進捗状況を直接監視できます。
  • マルチセッションサポート: 同じビューから複数のチャットセッションを起動および管理できます。
  • 拡張されたコンテキストメニュー: コーディングエージェントと効率的に対話するためのより多くのアクションにアクセスできます。
  • 豊富な説明: 豊富な説明が有効になっている場合、各リストエントリには詳細なコンテキストが含まれるようになり、関連情報をすばやく見つけるのに役立ちます。

GitHub コーディングエージェントの統合

GitHub コーディングエージェントとチャットセッションの統合を改善し、よりスムーズで直感的なエクスペリエンスを提供しました。

  • チャットエディターアクション: チャットエディターから直接、コードの変更を簡単に表示または適用したり、プルリクエストをチェックアウトしたりできます。
  • シームレスな移行: ローカルチャットから GitHub エージェントタスクへの移行を、より連続性を持って行えます。
  • より良いセッションレンダリング: より視覚的な明瞭さのために、カードやツールのレンダリングに関するさまざまな改善を行いました。
  • パフォーマンス向上: より応答性の高いエクスペリエンスのために、セッションの読み込みが高速化されました。

コーディングエージェントに委任する

VS Code のローカルタスクを Copilot コーディングエージェントに委任する方法を拡大し続けました。

  • コーディングエージェントで TODO を修正する

    TODO で始まるコメントに、コーディングエージェントセッションを素早く開始するコードアクションが表示されるようになりました。

    Screenshot of a code action above a TODO comment called Delegate to coding agent.

  • チャットからの委任 (githubPullRequests.codingAgent.uiIntegration)

    チャットでコーディングエージェントに委任アクションを実行すると、ファイル参照を含む追加のコンテキストが GitHub コーディングエージェントに転送されるようになりました。これにより、タスクをコーディングエージェントに渡して完了させる前に、正確に計画を立てることができます。新しいチャットエディターが開き、コーディングエージェントの進捗状況がリアルタイムで表示されます。

テーマ: Sharp Solarized (vscode.dev でプレビュー)

Google を使用したソーシャルサインイン

Google アカウントで GitHub Copilot にサインインまたはサインアップするオプションが一般公開され、VS Code のすべてのユーザーに展開されています。

Screenshot showing the sign in dialog showing the option to use a Google account.

詳細については、GitHub の発表ブログ記事を参照してください。

ターミナルの自動承認

設定: chat.tools.terminal.enableAutoApprove

ターミナルコマンドを自動承認することで、エージェントとの対話を大幅に効率化できますが、セキュリティリスクも伴います。このリリースでは、使いやすさとセキュリティの両方を向上させるために、ターミナルの自動承認にいくつかの改善が導入されています。

  • これで、chat.tools.terminal.enableAutoApprove 設定でターミナルの自動承認を有効または無効にできるようになりました。この設定は、組織がデバイス管理を通じて設定することもできます。

  • ターミナルの自動承認が実際に有効になる前に、Chat ビューのドロップダウンメニューから明示的にオプトインする必要があります。

    Screenshot of a terminal command in the Chat view, showing the Enable Auto Approve dropdown.

  • Chat ビューから、実行中のコマンドに自動承認ルールを便利に追加したり、設定を開いたりできます。

    Screenshot that shows the three standard options are presented for "foo --arg && bar".

    テーマ: Sapphire (vscode.dev でプレビュー)

    これは、たとえば `npm` ではなく `npm test` ルールを提案するなど、より適切な場合にサブコマンドを提案するための基本的なサポートを備えています。

  • 自動承認されたコマンドに関する透明性を向上させるために、チャットビューでどのルールが適用されたかを表示し、そのルールを設定することもできます。

    Screenshot showing the new links added under the tool call in the Chat view for adding new auto approve rules.

  • 安全性を高め、ノイズを減らすためにデフォルトを改善しました。完全なルールリストを表示するには、settings.json ファイルを開き、chat.tools.terminal.autoApprove と入力し、Tab で補完することで、設定のデフォルト値を確認できます。

  • バックスラッシュまたはスラッシュ文字を含む非正規表現ルールはパスとして扱われ、その正確なパスを承認するだけでなく、どちらのスラッシュタイプと ./ プレフィックスも許可します。PowerShell を使用する場合、すべてのルールは強制的に大文字と小文字を区別しません。

  • エージェントモードが curlwgetInvoke-RestMethod、または Invoke-WebRequest を使用してインターネットからコンテンツをプルしようとすると、プロンプトインジェクション攻撃の一般的な経路であるため、警告が表示されるようになりました。

詳細については、ドキュメントのターミナルの自動承認を参照してください。

グローバル自動承認

グローバル自動承認は、v1.99 以降、実験的な設定でした。私たちが観察したところ、ユーザーは結果について十分に深く考えずにこの設定を有効にしていました。さらに、一部のユーザーは、chat.tools.autoApprove 設定を有効にすることがターミナルの自動承認を有効にするための前提条件であると考えていましたが、これは決してそうではありませんでした。

これらの誤解を解消し、ユーザーをさらに保護するために、グローバル自動承認が初めて使用されようとすると、当然ながら恐ろしい警告が表示されるようになり、ユーザーは簡単に中断して設定を無効にすることができます。

Screenshot of a warning dialog that appears when global auto approve is used for the first time.

設定も、より明確な chat.tools.global.autoApprove に変更され、自動移行は行われないため、すべてのユーザー (意図的か否かに関わらず) は再度明示的に設定する必要があります。

数式レンダリングがデフォルトで有効に

設定: chat.math.enabled

チャット応答での数式のレンダリングが一般提供され、デフォルトで有効になりました。この機能は、chat.math.enabled 設定で無効にできます。

Screenshot of the Chat view, showing inline and block equations in a chat response.

この機能はKaTeXを搭載しており、インラインおよびブロックの数式をサポートしています。インライン数式は単一のドル記号 ($...$) でマークアップを囲むことで記述でき、ブロック数式は2つのドル記号 ($$...$$) を使用します。

チャットビューのデフォルトの可視性

設定: workbench.secondarySideBar.defaultVisibility

ワークスペースを初めて開くと、チャットビューを含むセカンダリサイドバーがデフォルトで表示され、すぐに質問したり、エージェントセッションを開始したりすることができます。この動作は、workbench.secondarySideBar.defaultVisibility 設定またはチャットビュー自体のドロップダウンメニューを使用して設定できます。

Screenshot showing Chat view menu with the option to set the default Secondary Side Bar visibility.

タスクサポートの改善

  • 入力リクエストの検出

    エージェントモードでタスクまたはターミナルコマンドを実行すると、プロセスがユーザー入力を要求したときにエージェントがそれを検出し、チャットで応答するように促されるようになりました。プロンプトが表示されているときにターミナルで入力すると、プロンプトは自動的に非表示になります。オプションと説明が提供されている場合 (例: [Y] はい [N] いいえ)、これらは確認プロンプトに表示されます。

  • 問題マッチングを使用したタスクのエラー検出

    問題マッチングを使用するタスクの場合、エージェントは言語モデルが出力を評価するのではなく、問題マッチングの結果に基づいてエラーを収集して表示するようになりました。問題はチャットの進捗メッセージ内のドロップダウンで表示され、問題の場所に直接移動できます。これにより、エラーは現在のタスク実行に関連する場合にのみ報告されるようになります。

  • 複合タスクのサポート

    エージェントモードで複合タスクを実行できるようになりました。複合タスクを実行すると、エージェントは各依存タスクの進捗と出力を示し、ユーザー入力のプロンプトも含まれます。これにより、より複雑なワークフローと複数ステップのタスク実行の可視性が向上します。

    以下の例では、VS Code - ビルドタスクが実行されます。各依存タスクの出力が評価され、応答と進捗メッセージのドロップダウンに問題がユーザーに表面化されます。

ターミナルサポートの改善

  • より多くのターミナルツールをコアに移動

    前回のリリースでの runInTerminal ツールと同様に、terminalSelectionterminalLastCommand ツールが拡張機能からコアに移動され、全体的な信頼性の向上が期待されます。

  • 設定可能なターミナルツールシェル統合タイムアウト

    runInTerminal ツールがターミナルを作成しようとすると、シェル統合がアクティブになるまで一定期間待機します。シェルが特に起動に時間がかかる場合、たとえば非常に重い PowerShell プロファイルがある場合、以前固定されていた5秒のタイムアウトを待っても最終的に失敗する可能性がありました。このタイムアウトは、chat.tools.terminal.shellIntegrationTimeout 設定で設定できるようになりました。

  • コマンドプロンプトの使用を禁止

    コマンドプロンプトではシェル統合が Copilot に必要な機能では現実的に不可能なため、Copilot は代わりに Windows PowerShell を使用するように選択するようになりました。Windows PowerShell はデフォルトでシェル統合を備えているはずです。これにより、デフォルトシェルがコマンドプロンプトの場合の runInTerminal ツールの信頼性が向上するはずです。

    何らかの理由で Copilot にコマンドプロンプトを使用させたい場合、現時点では不可能です。Copilot が使用するターミナルプロファイルをカスタマイズする機能を近いうちに追加する予定であり、これは#253945で追跡されています。

Todo リストツール

Todo リストツールは、エージェントが複雑な複数ステップのタスクをより小さなタスクに分解し、進捗状況を報告して個々の項目を追跡するのに役立ちます。このツールには改善が加えられ、デフォルトで有効になりました。

ツールの進捗状況は、Chat ビューの上部にある Todo コントロールに表示されます。Todo リストが処理されると自動的に折りたたまれ、現在進行中のタスクのみが表示されます。

ツール呼び出しをスキップする

エージェントがツール呼び出しの確認を要求した場合、ツール呼び出しをスキップしてエージェントに続行させることができるようになりました。リクエストをキャンセルしたり、チャット入力ボックスから新しいリクエストを入力したりすることは引き続き可能です。

ワークスペース内のコードのセマンティック検索に、新しいエンベディングモデルを使用するように #codebase ツールをアップグレードしました。この新しいモデルは、コード検索でより良い結果を提供します。また、新しいエンベディングはストレージスペースを少なく消費し、各エンベディングに必要なディスク上のストレージサイズは以前のモデルのわずか6%です。

この新しいエンベディングモデルは、今後数週間で段階的に展開されます。ワークスペースは自動的にこの新しいエンベディングモデルを使用するように更新されるため、アクションは不要です。VS Code Insiders ではすでに新しいモデルが使用されていますので、展開される前に試してみたい場合はご利用ください。

GitHub Copilot AI 機能を非表示にして無効にする

設定: chat.disableAIFeatures

チャット、コード補完、次回の編集提案など、GitHub Copilot が提供する組み込みの AI 機能を無効にして非表示にする新しい設定 chat.disableAIFeatures を導入します。

この設定には、以前のソリューションと比較して以下の利点があります。

  • 明示的に無効にしない限り、デバイス間で同期されます。
  • Copilot 拡張機能がインストールされている場合は無効にします。
  • プロファイルごとまたはワークスペースごとに設定を構成でき、AI 機能を選択的に無効にするのが容易になります。

「AI 機能を非表示」コマンドは、この変更を反映するように名前が変更され、設定エディターでこの新しい設定が表示されるようになりました。

: 以前に AI 機能を非表示にしていたユーザーは、引き続き AI 機能が非表示になっているのを確認できます。デバイス間で選択を同期したい場合は、追加で設定を更新できます。

MCP

サーバー指示のサポート

VS Code が MCP サーバー指示を読み取り、それらを基本プロンプトに含めるようになりました。

MCP 自動検出がデフォルトで無効に

設定: chat.mcp.discovery.enabled

VS Code は、Claude Code のような他のアプリにインストールされている MCP サーバーの自動検出をサポートしています。VS Code での MCP サポートが成熟したため、自動検出はデフォルトで無効になりましたが、chat.mcp.discovery.enabled 設定を使用して再度有効にすることができます。

MCP を有効にする

設定: chat.mcp.access

以前は MCP サーバーが VS Code で実行できるかどうかを制御していた chat.mcp.enabled 設定は、より記述的なオプションを持つ新しい chat.mcp.access 設定に移行されました。

  • all: すべての MCP サーバーの実行を許可する (以前の true 値と同等)
  • none: MCP サポートを完全に無効にする (以前の false 値と同等)

アクセシビリティ

チャット確認アクションにフォーカス

コマンド Focus Chat Confirmation (kb(workbench.action.chat.focusConfirmation)) が追加されました。これにより、確認ダイアログが存在する場合はそれにフォーカスし、存在しない場合はスクリーンリーダーユーザーに確認が不要であることを通知します。

コード編集

インライン提案の遅延を設定可能に

設定: editor.inlineSuggest.minShowDelay

新しい設定 editor.inlineSuggest.minShowDelay により、入力後にインライン提案が表示される速度を設定できます。これは、提案が表示されるのが早すぎて入力の妨げになっていると感じる場合に役立ちます。

エディター体験

Windows でのウィンドウボーダーカラーサポート

設定: window.border

Windows で新しい設定 window.border が追加され、VS Code ウィンドウの周りに色付きのボーダーを表示できるようになりました。この設定には以下のオプションがあります。

  • default: カラーテーマ設定を尊重し、Windows 設定にフォールバックします
  • system: Windows 設定のみを尊重します (ウィンドウタイトルのアクセントカラー)
  • off: ボーダーカラーを無効にします
  • <color>: Hex、RGB、RGBA、HSL、HSLA 形式の特定の色

ワークスペースごとに色を設定できるため、どのウィンドウでどのワークスペースが開いているかを区別しやすくなります。

Screenshot of several VS Code windows with different border colors.

window.borderdefault に設定すると、テーマは window.activeBorder および window.inactiveBorder カラーキーを使用してアクティブおよび非アクティブなウィンドウのボーダーカラーを設定できます。これらの色は、workbench.colorCustomizations 設定からさらに上書きできます。

拡張機能アカウント設定の管理

コマンドパレットに アカウント: 拡張機能アカウント設定の管理 コマンドを追加しました。このコマンドを呼び出すと、認証アカウントにアクセスできる拡張機能のリストが表示され、それらの拡張機能が使用するアカウントを変更できます。リストから直接新しいアカウントにサインインすることもできます。

これは、1年前に追加したアカウント管理機能に基づいています。

エディタータブインデックス

設定: workbench.editor.showTabIndex

エディタータブのインデックスをタブのラベルに表示できるようになりました。これは、多くのタブを開いており、キーボードショートカットを使用してそれらの間を素早く移動したい場合に役立ちます。この機能は、workbench.editor.showTabIndex 設定で有効にできます。

Screenshot of editor tabs with numbers in front of them, indicating their index.

エディタータブバーのスクロールバーの可視性

設定: workbench.editor.titleScrollbarVisibility

workbench.editor.titleScrollbarVisibility は、エディターのタブバーのスクロールバーがいつ表示されるかを制御できます。デフォルト値の auto は、タブがオーバーフローし、タブにカーソルが置かれている場合にのみスクロールバーを表示します。タブがオーバーフローしたときに常にスクロールバーを表示するように visible に設定することも、決して表示しないように hidden に設定することもできます。

問題レポーターの改善

組み込みの問題レポーターを通じて VS Code または拡張機能の問題を報告する際、報告ボタンのドロップダウンから GitHub で作成または GitHub でプレビューを選択できるようになりました。ボタンにドロップダウンが表示されず、作成またはプレビューのみが表示される場合、拡張機能データの読み込み中であるか、適切なスコープを提供する GitHub アカウントでサインインしていることを確認する必要がある可能性があります。

Screenshot of a dropdown showing Create on Github and Preview on Github in the issue reporter.

ノートブック

NES 提案の改善 (実験的)

設定: github.copilot.chat.notebook.enhancedNextEditSuggestions.enabled

ノートブックの次の編集提案の品質向上を実験しています。現在、言語モデルは提案を生成する際にアクティブセルの内容にアクセスできます。github.copilot.chat.notebook.enhancedNextEditSuggestions.enabled 設定を有効にすると、言語モデルはノートブック全体にアクセスできるようになり、より正確で高品質な次の編集提案を生成できるようになります。

ソース管理

Git ワークツリーの変更をプレビューして移行する

ソース管理の変更ビューでワークツリーファイルを右クリックしてコンテキストメニューを開き、ワークスペースと比較を選択することで、ワークツリーファイルと現在のワークスペース間の違いをプレビューできるようになりました。

Screenshot of the context menu shown in the SCM view on a changed file in a worktree, with the Compare with Workspace option selected.

変更を確認した後、コマンドパレット () から ワークツリーの変更を移行... コマンドを使用して、ワークツリーからのすべての変更を現在のワークスペースにマージできます。これにより、複数のワークツリー間で作業し、変更を選択的にメインリポジトリに戻すのが容易になります。

VS Code の Git ワークツリーについて詳しくはこちら。

ターミナル

ターミナルウィンドウの発見可能性と磨き上げ

ターミナルを別のウィンドウで開きたいという要望が多く寄せられていました。この機能は1年半ほど前から存在していましたが、特に発見しやすいものではありませんでした。今回のイテレーションでは、この機能の複数のエントリーポイントを追加しました。

  • 新しいコマンド ⌃⇧⌥` (Windows, Linux Ctrl+Shift+Alt+`)
  • 空のエディターとタブウェルのメニューに 新しいターミナル エントリーが追加されました。
  • 新しいターミナルドロップダウンがシャッフルされ、新しいターミナルウィンドウ エントリーが追加されました。
  • トップレベルのターミナルメニューに 新しいターミナルウィンドウ エントリーが追加されました。

また、これらの新しいターミナルウィンドウがコンパクトモードで開かれるエクスペリエンスも磨き上げました。ウィンドウに新しいタブを追加すると、自動的にコンパクトモードを終了します。

Screenshot of the terminal window open in compact mode, hiding tabs to make more room for terminal content.

ターミナルエディターでのターミナルアクション

ターミナルビューで利用できるアクション (新しいターミナルドロップダウン、ターミナルクリアなど) が、エディター領域とターミナルウィンドウのターミナルでも利用できるようになりました。

Screenshot of different terminal actions in the editor actions menu.

ターミナルビューと同様に、アクション領域を右クリックしてオーバーフローメニューから移動できます。

ターミナル IntelliSense の改善 (プレビュー)

今回のリリースで、ターミナル IntelliSense がいくつかの改善を受けました。

  • 複数のパフォーマンス改善があり、特に Windows での体験に大きな影響を与えます。
  • Windows で利用できない sed 依存関係が削除されたため、Windows での git 補完の信頼性が向上しました。
  • git 補完に、コミット、ブランチ、リモート、スタッシュ、タグを表す見慣れたアイコンが表示されるようになりました。「git checkout」の補完でタグとブランチに新しいアイコンが表示されているスクリーンショット
  • 多数の補完仕様が追加されました: 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

ターミナルのスティッキースクロールの改善

ターミナルのスティッキースクロールがデフォルトで有効になりました。ページャーを使用する際の動作の改善など、より良いエクスペリエンスのためにいくつかの改善が行われました。ターミナルのスティッキースクロールは、editor.tabFocusMode 設定と互換性があります。

言語

JavaScript および TypeScript

利用状況の数字をレビューした結果、組み込みの bower.json IntelliSense を削除することを決定しました。Bower は2017年から非推奨になっており、組み込みサポートはほとんど利用されておらず、積極的にメンテナンスされていませんでした。

Bower は、ユーザーが npm または yarn に移行することを推奨しています。VS Code での Bower の継続的なサポートは、拡張機能によって提供されます。

Python

Python Environments 拡張機能の Pipenv サポート

Python 拡張機能と同様に、Pipenv 環境が検出および選択できるようになりました。さらに、Python サイドバーの環境マネージャービューに表示され、他の環境タイプと一緒にグループ化されて表示されます。

Screenshot showing the Python sidebar with Pipenv environments expanded.

環境変数インジェクションを設定する

新しい設定 python.useEnvFile は、Python Environments 拡張機能が有効になっているときに、.env ファイルおよび python.envFile 設定からの環境変数がターミナルに注入されるかどうかを制御します。

Python Environments 拡張機能の改善

Python Environments Extension は、安定版ユーザーへの段階的ロールアウトの一環として、バグ修正と改善が引き続き行われました。ロールアウト中に Python Environments 拡張機能を使用するには、拡張機能がインストールされていることを確認し、VS Code の settings.json ファイルに "python.useEnvironmentsExtension": true を追加してください。

Pylance による AI 駆動のホバーサマリー (実験的)

最新の Pylance プレリリース版を使用している場合、Python 用の新しい実験的な AI ホバーサマリー機能が利用可能になりました。python.analysis.aiHoverSummaries 設定を有効にすると、まだドキュメントがないシンボルについて、その場で役立つサマリーを取得できます。これにより、慣れないコードを理解しやすくなり、Python プロジェクトを探索する際の生産性が向上します。AI ホバーサマリーは現在、GitHub Copilot Pro、Pro+、および Enterprise ユーザーが利用できます。

この実験的なエクスペリエンスを近いうちに安定版拡張機能バージョンに提供できることを楽しみにしています。

コードスニペットツールを実行

Pylance のコードスニペット実行ツールは、python -c "code" のようなターミナルコマンドに依存したり、実行する一時ファイルを作成したりする代わりに、GitHub Copilot が Python スニペットを完全にメモリ内で実行できるようにします。ワークスペース用に設定された正しい Python インタープリタを自動的に使用し、ターミナル実行中に時々発生するシェルエスケープや引用符に関する一般的な問題を解消します。

最も優れた利点の1つは、stdout と stderr の両方を明確にインターリーブして提供する、クリーンで書式設定された出力です。これにより、GitHub Copilot とエージェントモードを使用して、ワークスペースのコンテキスト内で小さなコードブロックをテストしたり、簡単なスクリプトを実行したり、Python 式を検証したり、インポートをチェックしたりする場合に理想的です。

試すには、Pylance 拡張機能の最新のプレリリース版を使用していることを確認してください。その後、Chat ビューのコンテキストを追加... > ツールメニューから pylancerunCodeSnippet ツールを選択できます。

: すべての AI 生成コードと同様に、このツールが実行されることを許可する前に、生成されたコードを必ず確認してください。コードのロジックと意図をレビューすることで、プロジェクトの目標に合致し、安全性と正確性を維持できます。

Pylance IntelliSense がすべての Python ドキュメントで有効に

python.analysis.supportAllPythonDocuments 設定は最新の Pylance プレリリースバージョンから削除され、Pylance IntelliSense がターミナルや差分ビューを含むすべての Python ドキュメントでデフォルトで有効になりました。これにより、VS Code で Python を扱う場所ならどこでも、豊富なコード補完、ホバー、コードナビゲーションを利用できるようになります。

アクティベーションフック

Python のアクティベーションフックは、Python 環境拡張機能がシェルプロファイルを変更する必要なく、シェル統合スクリプトから実行できるようになりました。これにより、python-envs.terminal.autoActivationTypeshellStartup に設定されている場合に、より信頼性の高いターミナルアクティベーションが提供され、重要なことに Copilot ターミナルが期待どおりにアクティブ化されることが保証されます。

拡張機能への貢献

GitHubプルリクエスト

GitHub Pull Requests 拡張機能は、プルリクエストや課題の作業、作成、管理を可能にし、さらなる進歩を遂げました。新しい機能には以下が含まれます。

  • 狭いウィンドウではサイドバーのコンテンツが折りたたまれる
  • プルリクエストと issue のウェブビューはリロード後に復元されます
  • 新しい「TODO」コードアクションを使用すると、Copilot コーディングエージェントに直接委任できます。
  • サブモジュールは githubPullRequests.ignoreSubmodules で無視できます。

リリースのすべてについて学ぶには、拡張機能の 0.118.0 リリースの変更履歴を確認してください。

拡張機能の作成

拡張機能が起動するターミナル用の shellIntegrationNonce

shellIntegrationNonceTerminalOptions および ExtensionTerminalOptionscreateTerminal に渡せるようになりました。これにより、拡張機能は、シェル統合エスケープシーケンスでコマンドを検証するために使用されるノンスを制御できます。

言語モデルチャットプロバイダー API

今回のイテレーションで、LanguageModelChatProviders API を完成させました。これにより、拡張機能は、クラウドホスト型またはローカルの1つ以上の言語モデルを提供できるようになります。拡張機能をインストールすることで、ユーザーはチャットのモデルピッカーを通じてこれらのモデルを選択できます。

すでに複数の拡張機能がこの API を利用して、VS Code 用 AI ToolkitCerebras InferenceHugging Face など、追加のモデルで VS Code のチャットを拡張しています。

この API の利用方法の詳細については、Language Model Chat Provider 拡張機能ガイドまたは拡張機能サンプルを参照してください。

: この API を通じて提供されるモデルは現在、個別の GitHub Copilot プランのユーザーのみが利用できます。

提案されたAPI

認証: getSession での WWW-Authenticate チャレンジのサポート

HTTP のよく確立されたパターンとして、API へのリクエストが 401 Unauthorized ステータスコードと WWW-Authenticate ヘッダーを返すことがあります。このヘッダーは認証チャレンジを定義します。これらは基本的に、API が 401 を解決するために必要なものです。

これらのチャレンジを認証プロバイダーに渡して処理することを可能にする提案された API を導入しました。まず、呼び出し側からは、次のようにチャレンジを渡すことができます。

export interface AuthenticationWWWAuthenticateRequest {
  /**
   * The raw WWW-Authenticate header value that triggered this challenge.
   */
  readonly wwwAuthenticate: string;

  /**
   * Optional scopes for the session.
   */
  readonly scopes?: readonly string[];
}

export namespace authentication {
  // NOTE: The only change is the 2nd parameter, the other variations of `getSession` have the same change
  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>;

また、認証プロバイダーは、AuthenticationProviderOptionssupportsChallenges: true を介して登録する際に、チャレンジのサポートを宣言できます。

例: Azure MFA

この作業は当初、Azure API で MFA を必須とする今後の変更のために行われたため、これもこの API の例として使用しましょう。

Azure でリソースを作成する拡張機能があるとします。それは Azure RM API を呼び出すだけで、特別なことは何もありません... おそらくあなたの拡張機能は、この API を呼び出すために使用できる認証セッション、主にアクセストークンを取得するために vscode.authentication.getSession を呼び出すことにすでに慣れているでしょう。さて、最初にその認証セッションを発行したとき、あなたの組織によっては、多要素認証 (MFA) を経たかどうかは不明です。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 提案 API の背後にあります。この API を近いうちに最終決定できることを期待しています。

エンジニアリング

VS Code の内部開発ループでの Playwright と Playwright MCP の探索

エージェントモードとその他の VS Code の AI 機能は、VS Code チームが VS Code 自体を構築するための主要なツール (洒落を言うつもりはありません) となっています。VS Code の内部開発ループをさらに改善するために、これらの機能をどのようにさらに適用できるかを探求したいと考えました。そのために、Playwright を使用する既存の統合テスト自動化プロジェクトを拡張して、ローカルの VS Code インスタンスを駆動できる MCP サーバーを作成する実験を行ってきました。これにより、ビルド/テスト時の成果物 (コンパイル、リンター、テストなど) からコンテキストを受け取ることに焦点を当てていた既存のエージェントフローが、ライブの VS Code インスタンスとも対話できるようになり、変更が実行時に望ましい効果を持つことを検証できます。

この作業の最初の部分は、vscode リポジトリのtest/mcp フォルダーで見つけることができます。試してみたい場合は、非常に簡単に開始できます。

  1. Code OSS のローカルバージョンを実行するための貢献ガイドラインに従ってください。
  2. その後、私たちの単純な (今のところ) プロンプトファイルを使用して、エージェントモードで /playwright あなたの質問はこちら と質問できます。

これはまだ初期の探索ですが、これにより私たちの内部開発ループで AI をさらに活用できる可能性に興奮しています。基盤はすでに築かれており、チームにとってより堅牢で有用なものにするために反復作業を進めていきます。

この作業は最近、VS Code Insiders ポッドキャストで取り上げられ、この探索の動機といくつかの技術的な詳細について議論しました。VS Code Insiders ポッドキャストのエピソードを聴くことができます。

注目すべき修正点

  • vscode#151902 - ターミナル: 選択時にコピー + 1.68 の新しいハイライトで CMD+F で前の単語がコピーされる
  • vscode#222075 - ページャーでページダウンを使用すると、ターミナルのスティッキースクロールが1フレーム表示されることがある
  • xtermjs/xterm.js#5390 - 代替バッファー終了後のスクロールバーのテレポートを修正

ありがとうございます

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

問題追跡

問題追跡への貢献者

プルリクエスト

vscodeへの貢献者

vscode-copilot-chatへの貢献

  • @24anisha: github テレメトリに sku データを追加 PR #819
  • @devm33 (Devraj Mehta): logprobs フィールドをオプションにする PR #325
  • @iann0036 (Ian Mckay): fix: "GitHub" の大文字小文字の調整 PR #631
  • @joelverhagen (Joel Verhagen)
    • .NET SDK を使用して NuGet パッケージを検索し、イベントを発行し、すべてのパッケージタイプについてテストを追加 PR #546
    • コマンドエグゼキューター抽象化を追加し、CI 上でのみ dotnet CLI テストを実行 PR #607
    • MCP サーバーインストール中にパッケージ名をハッシュ化 PR #618
  • @jwangxx (James Wang)
    • "onExP" タグを enableRetryAfterFilteredResponse 設定に追加 PR #479
    • フィルタリングされた応答後に再試行するための実験的な設定を削除 PR #830
  • @lipido (Daniel Glez-Peña): エージェントのテストカバレッジを改善 PR #614
  • @m4dc4p: getErrors (GetErrors / problems) ツールを更新 PR #394
  • @rwoll (Ross Wollman)
    • 自動化された VSC Extension Host で実行される Copilot Chat の認証を修正 PR #609
    • シナリオモードでより多くのサービスを許可 PR #653
    • ChatErrorDetailscode を追加 PR #680
  • @shaunm-msft (Shaun Miller)
    • 理解されていないコンテキストからメッセージ copilot_cache_control フィールドを削除 PR #554
    • PR 665 をシミュレーターに移植 PR #694
  • @sridharavinash (Avinash Sridhar): 会話モデルメッセージにモードを追加 PR #517
  • @yemohyleyemohyle: MSFT 内部テレメトリにメッセージ長イベントを追加 PR #473
  • @zhichli (Zhichao Li)
    • 機能: チャットデバッグビューにチャットプロンプトログの JSON エクスポートを追加 PR #672
    • チャットデバッグ JSON エクスポートにツールやその他のメタデータを追加 PR #789
    • チャットデバッグからエクスポートされた request タイプ JSON ログからツール呼び出しを削除 PR #794

vscode-eslintへの貢献者

vscode-extension-samplesへの貢献

vscode-js-debugへの貢献者

vscode-jupyterへの貢献者

vscode-languageserver-nodeへの貢献者

vscode-markdown-languageservice への貢献

vscode-markdown-tm-grammar への貢献

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

vscode-python-environmentsへの貢献

vscode-vsceへのコントリビューション

debug-adapter-protocolへの貢献者

language-server-protocolへの貢献者

node-jsonc-parserへの貢献

python-environment-toolsへの貢献

新しい機能は、準備ができ次第、皆様に試していただけることを大変嬉しく思います。頻繁にここをチェックして、新機能をご覧ください。

以前の VS Code バージョンのリリースノートをご覧になるには、code.visualstudio.comアップデート にアクセスしてください。

© . This site is unofficial and not affiliated with Microsoft.