VS Codeのエージェントモードを拡張するには、を試してください!

2024年10月 (バージョン 1.95)

セキュリティ更新: 以下の拡張機能にセキュリティ更新があります: ms-python.python および ms-vscode-remote.remote-ssh

更新 1.95.1: この更新では、これらの問題に対処しています。

更新 1.95.2: この更新では、これらの問題に対処しています。

更新 1.95.3: この更新では、これらの問題に対処しています。

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


Visual Studio Code 2024年10月リリースへようこそ。このバージョンには多くの更新があり、気に入っていただけることを願っています。主なハイライトをいくつかご紹介します。

これらのリリースノートをオンラインで読むには、code.visualstudio.comUpdates にアクセスしてください。Insiders: 新しい機能をできるだけ早く試したいですか?毎晩のInsidersビルドをダウンロードして、最新のアップデートが利用可能になり次第お試しいただけます。

GitHub Copilot

Copilotの機能は、通常、設定を通じて有効化および構成される、さまざまな早期アクセス段階を経る可能性があります。

  • 実験的 - 実験的機能 (@tag:experimental) を表示

    この設定は、活発に開発中であり、不安定な可能性がある新機能を制御します。変更または削除される場合があります。

  • プレビュー - プレビュー機能 (@tag:preview) を表示

    この設定は、まだ改善中ですがすぐに使用できる新機能を制御します。フィードバックを歓迎します。

Copilot Editsでコード編集セッションを開始する

Copilot Editsは現在プレビュー中です

設定: github.copilot.chat.edits.enabled

Copilot Editsを使用すると、AIを活用したコード編集セッションを開始し、コード変更を迅速に反復処理できます。プロンプトに基づいて、Copilot Editsはワークスペース内の複数のファイルにわたるコード変更を提案します。これらの編集はエディターに直接適用されるため、周囲のコードの完全なコンテキストで、その場で素早く確認できます。

Copilot Editsは、複数のファイルにわたる大規模な変更を反復処理するのに最適です。Copilot Chatの会話の流れと、Inline Chatからの迅速なフィードバックを1つのエクスペリエンスにまとめました。サイドで継続的な多ターンチャット会話を行いながら、インラインコードの提案の恩恵を受けることができます。

Copilot Editsをわずか3ステップで始める

  1. チャットメニューからOpen Copilot Editsを選択するか、を押して編集セッションを開始します。

    Screenshot showing the Copilot menu in the Command Center, highlighting the Open Edit Session item

  2. 作業したいファイルをCopilotに示すために、関連ファイルを作業セットに追加します。

  3. Copilotに行いたい編集について伝えるプロンプトを入力してください!例えば、Add a simple navigation bar to all pagesUse vitest instead of jestなどです。

Copilot Editsの詳細については、ドキュメントをご覧ください。今すぐお試しいただき、私たちのissuesを通じてフィードバックをお寄せください!

セカンダリサイドバーでのチャット

チャットビューの新しいデフォルトの場所は、セカンダリサイドバーです。セカンダリサイドバーを使用することで、ファイルエクスプローラーやソース管理など、他のビューが利用可能な状態でも、いつでもチャットを開いておくことができます。これにより、VS Codeでより統合されたAI体験を提供します。⌃⌘I (Windows、Linux Ctrl+Alt+I) のキーボードショートカットを使用すると、素早くチャットにアクセスできます。

Chat view in its new location after having moved.

コマンドセンターの隣に新しいチャットメニューが導入されたことで、チャット付きのセカンダリサイドバーをワンクリックで呼び出すことができるようになりました。

チャットメニューは、Copilot Chatの最も一般的なタスクにアクセスできるようにします。このメニューを非表示にしたい場合は、新しい設定 chat.commandCenter.enabled が提供されています。

Chat menu in the Command Center.

注: 以前にGitHub Copilotをインストールしていた場合、以前Chatがあった場所にビューが表示され、それがより使いやすい場合は、Chatビューを以前の場所に戻すことができます。

Chat view in its old location showing that Chat has moved to the Secondary Side Bar.

Copilotコードレビュー

Copilotコードレビューは現在プレビュー中です

Visual Studio CodeのGitHub Copilotコードレビューにより、コードを記述しながらAIによる迅速なフィードバックを得たり、プッシュする前にすべての変更のレビューを要求したりできるようになりました。Visual Studio CodeのGitHub Copilotコードレビューは現在プレビュー中です。ぜひお試しいただき、私たちのissuesを通じてフィードバックをお寄せください。

VS CodeでCopilotコードレビューを使用する方法は2つあります。

  • 選択範囲のレビュー: 素早いレビューのために、エディターでコードを選択し、エディターのコンテキストメニューからCopilot > Review and Commentを選択するか、コマンドパレットからGitHub Copilot: Review and Commentコマンドを使用します。(この機能はプレビュー版です。)

  • 変更のレビュー: コミットされていないすべての変更を詳細にレビューするには、ソース管理ビューでCopilot Code Reviewボタンを選択します。これはGitHub.comのプルリクエストでも実行できます。(待機リストに参加してください。Copilot購読者全員に公開されています)

    Request review of uncommitted changes

Copilotのフィードバックは、エディター内のコメントとして、コードの行に添付されて表示されます。可能な場合、コメントには実行可能なコードの提案が含まれており、ワンアクションで適用できます。

Screenshot showing a comment reviewing a code selection

Copilotコードレビューの詳細については、GitHubコードレビューのドキュメントをご覧ください。

コード選択に対するCopilotのクイックレビューは、適切なコンテキストを与えることで、チームやプロジェクトの特定の慣行に合致するフィードバックを提供できます。カスタムレビュー指示で選択範囲をレビューする場合、それらの特定の要件はgithub.copilot.chat.reviewSelection.instructions設定を介して定義できます。コード生成とテスト生成の指示と同様に、指示を直接設定で定義することも、別のファイルに保存して設定で参照することもできます。

次のコードスニペットは、レビュー指示の例を示しています。

  "github.copilot.chat.reviewSelection.instructions": [
    {
      "text": "Logging should be done with the Log4j ."
    },
    {
      "text": "Always use the Polly library for fault-handling."
    },
    {
      "file": "code-style.md" // import instructions from file `code-style.md`
    }
  ],

code-style.mdファイルの内容の例

Private fields should start with an underscore.

A file can only contain one class declaration.

チャット参加者の自動検出

設定: chat.experimental.detectParticipant.enabled

GitHub Copilotには、@workspaceのような組み込みのチャット参加者がいくつかあり、チャット参加者を提供する他の拡張機能をインストールしている場合もあります。

自然言語でチャット参加者を使用しやすくするために、Copilot Chatは可能な場合、あなたの質問を適切な参加者またはチャットコマンドに自動的にルーティングします。

自動的に選択された参加者があなたの質問に適切でない場合でも、チャット応答の上部にあるrerun withoutリンクを選択して、Copilotに質問を再送することができます。

Screenshot of Chat view that shows how the '@workspace' participant is automatically detected.

今月は、リクエストごとにこの検出動作をスキップできるアクションも追加しました。チャットプロンプトを入力する際のデフォルトのアクションはSend and dispatchで、これには参加者検出が含まれます。Sendを選択すると、リクエストは直接Copilot Chatに送信され、チャット参加者に自動的にディスパッチされることはありません。

The list of available "send" commands in the chat view.

chat.experimental.detectParticipant.enabled 設定を使用して、自動参加者検出を完全に無効にすることもできます。

現在のエディターコンテキストの制御

Copilot Chatは常に、現在の選択範囲または現在表示されているコードを、チャットリクエストのコンテキストとして自動的に含めてきました。大規模言語モデル (LLM) は、一般的にコンテキストの一部が関連性があるかどうかを理解するのに優れています。しかし、現在のエディターとは関係のない質問をする場合、このコンテキストを含めることが、モデルが質問を解釈する方法に影響を与える可能性があります。

現在、チャット入力に特別な添付コントロールが表示され、エディターのコンテキストに関するヒントを提供し、エディターのコンテキストを含めるかどうかを切り替えることができます。

The current editor context control in the chat input, which shows that the context is not included.

エディターコンテキストの動作に変更はありません。アクティブなエディターに選択範囲がある場合、選択範囲のみが含まれます。それ以外の場合は、スクロールして表示されているコードのみが含まれます。クリップボタンを使用するか、チャットプロンプトに#を入力することで、他のファイルやファイル全体を添付することもできます。

Copilot Chatの一般的な使用例は、ワークスペース内のコードに関する質問をすることです。例えば、選択したコードの新しいユニットテストを生成するために/testsを使用したり、プロジェクト内の特定のクラスや関数を見つけるために@workspaceに質問したりできます。今回のマイルストーンでは、Copilotがチャット応答で言及するワークスペースシンボルに対して、強化されたリンクを追加しました。これらのシンボルリンクは、Copilotの応答をよりよく理解し、使用されているシンボルについてさらに学ぶのに役立ちます。

シンボルリンクは、前回のマイルストーンで追加したファイルリンクと同様に、応答内で小さな「ピル」としてレンダリングされます。シンボルについて詳しく学び始めるには、シンボルリンクを選択してそのシンボルの定義にジャンプするだけです。

シンボルリンクにカーソルを合わせると、そのシンボルがどのファイルで定義されているかを確認することもできます。

Hovering over a symbol link to see the file it's defined in.

シンボルをより詳細に探索するには、シンボルリンクを右クリックして、Go to ImplementationsGo to Referencesなどのオプションを含むコンテキストメニューを表示します。

Using the context menu on a symbol link to learn more about a symbol.

基本的なシンボルリンクは、「定義へ移動」をサポートする任意の言語で機能するはずです。実装へ移動などのより高度なIntelliSenseオプションも、その言語のサポートを必要とします。Copilotの応答で使用されるプログラミング言語の最適なシンボルサポートを得るには、言語拡張機能をインストールしてください。

問題のホバーでCopilotアクションを使用して修正

エディターで問題にカーソルを合わせると、Copilotを使用して問題を修正するアクションが含まれるようになりました。このアクションは、修正が利用可能で、かつその修正がCopilotによって生成される問題に対して利用できます。

The Problem hover showing a Fix using Copilot action.

ワークスペースのインデックス作成

@workspaceを使用すると、現在のプロジェクトのコードについて質問できます。これは、GitHubのコード検索またはVS Codeが構築するスマートなローカルインデックスを使用して実装されています。今回のマイルストーンでは、このワークスペースインデックスがどのように使用されているかを理解できるUI要素をいくつか追加しました。

まず、新しいGitHub Copilot: Build Local Workspace indexコマンドを使用すると、現在のワークスペースのインデックス作成を明示的に開始できます。このインデックス作成は通常、@workspaceの質問を初めて行ったときに自動的に開始されます。新しいコマンドを使用すると、代わりにいつでもインデックス作成を開始できます。このコマンドは、現在最大2000ファイル(node_modulesoutディレクトリなどの無視されたファイルを除く)までの大規模なワークスペースのインデックス作成も有効にします。

インデックスが構築されている間、ステータスバーに進捗状況を表示するようになりました。

A status bar item showing the progress of indexing the current workspace.

数百ものファイルがあるワークスペースのインデックスを作成するには、少し時間がかかります。インデックスが構築されている間に@workspaceの質問をしようとすると、Copilotは待機する代わりに、より迅速に構築できるシンプルなローカルインデックスを使用して素早く応答しようとします。このような場合、応答に警告が表示されるようになりました。

A warning showing on a response telling the user the Copilot index is being constructed.

この場合、Copilotはより高度なインデックスではなく、よりシンプルなローカルインデックスを使用したにもかかわらず、質問に答えることができたことに注意してください。より曖昧または複雑な質問は、よりスマートなインデックスが構築されてからでなければ回答できない場合がありますが、これはよくあることです。また、ワークスペースがGitHubリポジトリによってバックアップされている場合、質問に答えるためにGitHubのコード検索を使用できることにも留意してください。これは、よりシンプルなローカルインデックスの代わりにコード検索が使用されることを意味します。

チャットのフォローアップの改善

設定: github.copilot.chat.followUps

チャットビューでのチャット会話のためにより多くのスペースを確保するため、フォローアッププロンプトをより簡潔にし、デフォルトでは最初のターンでのみ表示されるようにしました。フォローアッププロンプトが表示されるタイミングを変更するには、github.copilot.chat.followUps設定を構成してください。

  • firstOnly (デフォルト) - フォローアッププロンプトは最初のターンでのみ表示されます
  • always - フォローアッププロンプトは常に表示されます
  • never - フォローアッププロンプトを無効にします

セマンティック検索での関連度によるソート (実験的)

設定: github.copilot.chat.search.semanticTextResults

前回のマイルストーンでは、Copilotを使用してセマンティック検索を実行し、クエリに意味的に関連する検索結果を取得する機能が導入されました。今回、検索結果を関連度でソートすることで改善しました。より関連性の高いスニペットからのキーワード一致は、全体としてより関連性が高いと見なされます。

Workbench

複数のGitHubアカウント

先月の機能をデフォルト動作に移行し、VS Codeで複数のGitHubアカウントに同時にログインできるようになりました。

Multiple GitHub Accounts in the Account menu.

複数のアカウントが必要となる可能性のあるシナリオをいくつかご紹介します。

  • 設定同期にはアカウント1を使用し、GitHubプルリクエスト拡張機能にはアカウント2を使用する
  • GitHub拡張機能 (プッシュ用) にはアカウント1を使用し、GitHub Copilotにはアカウント2を使用する

この機能を使用するには、ログインアクション (設定同期などの組み込み機能、または拡張機能) をトリガーするだけで、別のアカウントにログインするオプションが提供されます。この機能は、後で選択したアカウントを変更する必要がある場合に、アカウント設定クイックピックともうまく連携します。

ほとんどの機能は既存の拡張機能と連携して動作し続けるはずですが、一部の動作はまだこの複数アカウントの世界とうまく連携しない可能性があります。改善の余地があると思われる場合は、それらの拡張機能で問題を開いてください。比較的新しいvscode.authentication.getAccounts('github') APIの助けを借りて、拡張機能は複数のアカウントを処理するための多くの権限を持っています。

アカウント設定の変更時に追加アカウントを追加

先月、アカウント設定クイックピックを導入しました。これは、何らかの理由で拡張機能に使用する優先アカウントを変更する必要がある場合に便利です。

私たちが受け取ったフィードバックの1つは、まだログインしていないアカウントを簡単に追加する方法に関するものでした。このマイルストーンでは、クイックピックにそれを可能にする新しい項目を導入しました。Use a new account...項目を使用して認証フローを開始し、そのアカウントにアカウント設定を一度に設定できます。

Use a new account option in the account preference Quick Pick.

実験的およびプレビュー設定の設定エディターインジケーター

これまで、設定エディターを見ただけでは、どの設定が実験的またはプレビューであるかが常に明確ではありませんでした。実験的および今後登場する機能を強調するため、設定エディターでは実験的設定とプレビュー設定の横にインジケーターが表示されるようになりました。設定エディターの検索ボックスに@tag:experimentalまたは@tag:previewと入力すると、それに応じて設定をフィルタリングできます。

拡張機能の作成者は、設定に「experimental」または「preview」タグを追加して、設定エディターに該当するインジケーターを表示できます。

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

プロファイルのアイコンを増やす

今回、プロファイル用のアイコンをさらに追加しました。プロファイルをカスタマイズするために、より幅広いアイコンから選択できるようになりました。

Image showing all available profile icons, highlighting the newly added icons.

パネル内のビューアイコン

Workbenchのパネル領域では、ビューは通常、タイトルバーにラベルとして表示されます (例: TERMINAL または OUTPUT)。しかし、小さい画面では、これらのラベルが利用可能なスペースを超過し、一部のビューがドロップダウンメニューにオーバーフローする原因となることがあります。

これに対処するため、新しい設定workbench.panel.showLabelsを追加しました。これを無効にすると、ビューはラベルの代わりにアイコンとして表示され、横方向のスペースを節約し、オーバーフローを減らします。

workbench.panel.showLabels: true

Panel area showing the labels for each panel.

workbench.panel.showLabels: false

Panel area showing an icon for each panel and no label.

エディター

出現箇所の強調表示遅延

今回のマイルストーンでは、エディターで出現箇所が強調表示されるまでの遅延を制御できる設定editor.occurrencesHighlightDelayを導入しました。この遅延値を下げると、セマンティックハイライトを使用する際に、より応答性の高いエディターエクスペリエンスが得られます。

Web 用 VS Code

Web版VS Codeがローカルファイルイベントをサポート

ChromeまたはEdgeバージョン129以降を使用している場合、ローカルフォルダーでhttps://insiders.vscode.devを開くと、ファイルイベントがサポートされるようになりました。開いているワークスペースのファイルやフォルダーをブラウザー外で変更した場合、これらの変更はブラウザー内に即座に反映されます。

この機能は、Webの新しいAPIとして提案されている新しいFileSystemObserverインターフェースを活用しています。

拡張機能への貢献

Copilot拡張機能の紹介

今回のマイルストーンでは、チームはVS CodeにおけるCopilot拡張性を紹介するいくつかの拡張機能の構築に取り組みました。これらの拡張機能は、以下の機能を示しています。

これらの拡張機能を試して、独自の拡張機能でCopilotを拡張する方法を確認してください。

拡張機能 リンク
GitHubプルリクエスト マーケットプレース
Copilot用ウェブ検索 マーケットプレースソースコード
CopilotによるMermaid図生成 マーケットプレース
Copilot用データ分析 マーケットプレースソースコード
VS Code Commander マーケットプレース
Copilotプレビュー用Vision マーケットプレース

GitHubプルリクエスト

GitHubプルリクエスト拡張機能のバージョン0.100.0でCopilot統合が追加されました。

  • チャットビューで@githubprチャット参加者を使用して、issueの検索、issue/PRの要約、issueの修正提案を行うことができます。@githubprは、これを達成するためにいくつかの言語モデルツールを使用します。
  • また、GitHub通知を表示する新しい通知ビューがあり、Copilotでそれらを優先順位付けするアクションも含まれています。

すべてを試すには、次の設定を構成できます。

CopilotによるIssue検索

新しい@githubprチャット参加者は、GitHubでissueを検索できます。

Copilot issue search for most open bugs.

issueを表示する際、@githubprはMarkdownテーブルを表示し、検索に基づいて表示する最適な列を選択しようとします。

Copilot issue search for closed October issues.

Copilotによる要約と修正

問題ビューにリストされている各issueには、選択したissueを要約しチャットパネルを開く新しいアクションSummarize With Copilotが追加されました。また、選択したissueを要約し、ワークスペースコンテキストを使用して修正を提案する別の新しいアクションFix With Copilotも追加しました。

Copilotによる通知の優先順位付け (実験的)

今回のマイルストーンでは、リポジトリを横断する未読通知をリスト表示する実験的な通知ビューを追加しました。デフォルトでは、通知は最終更新日の降順でソートされますが、ビュータイトルの...メニューからCopilotを使用して優先度でソートアクションを使用して、Copilotに通知の優先順位付けをさせることができます。各通知を選択すると、Copilotを使用して通知を要約するアクションがトリガーされます。このビューには、通知を既読にする、またはGitHub.comで通知を開くための簡単にアクセスできるアクションも含まれています。

Notifications View

Copilot用ウェブ検索

この拡張機能は以下を紹介します。

  • チャット参加者およびツールAPI
  • prompt-tsx
  • GitHub Copilotによって提供される言語モデルを活用する方法

ソースコードはGitHubで入手可能です。

説明

最新かつ関連性の高い情報をウェブから直接Copilotで取得します。

これは、websearch.preferredEngineによって設定される2つの異なる検索エンジンのいずれかによって機能します。

ユーザーとして、この拡張機能を使用するには、これらのサービスのいずれかからAPIキーを取得する必要があります。初回使用時にそのキーを要求し、VS Codeの組み込みのシークレットストレージを使用して保存します。また、GitHubアカウントの場合と同様に、VS Codeの認証スタックを介して管理することもできます。

チャット参加者

この拡張機能は、インターネットからのリアルタイム情報が必要となる可能性のある質問を処理できる@websearchチャット参加者を提供します。@websearch when did Workspace Trust ship in vscode?のように手動で呼び出すことができます。

The question "when did Workspace Trust ship in vscode" and the answer showing the references and details.

チャットツール

この拡張機能は#websearchチャット言語モデルツールも提供します。これは参加者と似ていますが、他のチャット参加者でウェブからのコンテキストを提供するのに役立ちます。例えば、

  • @workspace /new #websearch 最も人気のあるフレームワークを使用してPythonで書かれた新しいWebアプリを作成

The question "create a new web app written in Python using the most popular framework" using the websearch variable with /new. The result is a project using Django.

さらに、独自のチャット参加者またはツールを開発している場合、vscode.lm.invokeTool APIを介してこのチャットツールを利用できます。

CopilotによるMermaid図生成

vscode-mermAId (vscode:extension/ms-vscode.copilot-mermaid-diagram) 拡張機能は、Markdownに着想を得たダイアグラムおよびチャート作成ツールであるMermaidを使用して、コードの視覚化を構築および変更するために、GitHub Copilotに新しいチャット参加者を提供します。

ダイアグラムの作成とレンダリング

チャット会話を通じてあらゆる種類のMermaid対応ダイアグラムを作成し、/iterateスラッシュコマンドを使用してダイアグラムを洗練させます。特定のダイアグラムには、モデルに追加のガイダンスを提供するためのスラッシュコマンドが利用可能です。

フローなどの特定のダイアグラムタイプには、ダイアグラムを構築するために収集された参照元を指すリンクが追加されています。

Mermaidビジュアルアウトラインビュー

ビジュアルアウトラインビューを開くと、アクティブなエディターからダイアグラムを動的に生成できます。より細かい制御のためにチャットに切り替えることもできます。

チャットツール

この拡張機能は、ファイル内またはワークスペース全体のシンボル情報を収集するツールを提供し、この拡張機能がインストールされている場合、他のチャット参加者によって利用できます。

Copilot用データ分析

Copilot用データ分析拡張機能は、データサイエンス分野の人々を支援します。.csvファイルのクリーンアップから、さまざまな統計測定、グラフ、予測モデルを活用したより高度なデータ分析まで、@dataチャット参加者は、データタスクに合わせた洞察とインタラクティブ性を提供することで、より高度で情報に基づいた意思決定を支援します。

この拡張機能は、LLMがPyodideを使用してPythonコードの実行を要求し、関連するPythonコード実行の結果を取得できるツールを提供します。また、エラーが発生した場合に、より良いまたはより適切な実行結果を得るために、スマートに再試行することもできます。分析(または視覚化の生成)に使用されるコードをJupyter NotebookまたはPythonファイルにエクスポートすることもできます。

拡張機能はマーケットプレースからダウンロードでき、ソースコードはGitHubで入手可能です。

データ分析と視覚化
  • CSVファイルが与えられた場合、Analyze the file #<file name>のようなプロンプトを入力するか、より具体的なプロンプトを記述します (以下の記録を参照)。
  • グラフやプロットなどの視覚化の生成を要求するために、フォローアッププロンプトを提供します。

データ分析に使用したコードのエクスポート
  • 分析と視覚化の生成に使用されたPythonコードは表示できます。
  • コードはJupyterノートブックまたはPythonファイルでエクスポートできます。

CSVファイルのエディターおよびエクスプローラー統合
  • CSVファイルを右クリックして分析します。
  • CSVファイルを開き、Copilotアイコンを使用してファイルを分析します。

VS Code Commander拡張機能

VS Code Commander拡張機能 (vscode:extension/ms-vscode.vscode-commander) は、VS Code内であなたのパーソナルアシスタントとして機能します。この強力なツールを使用すると、会話形式の自由なテキストを使用してVS Code環境を構成できます。VS Code Commanderを使用すると、次のことができます。

  • さまざまな設定とコマンドを発見および探索する
  • ニーズに合わせて開発環境を調整する

これらのアクションは、シンプルで直感的なチャットインターフェースを通じて実行できるため、VS Codeの設定管理がこれまでになく容易になります。

Copilotプレビュー用Vision拡張機能

Copilotプレビュー用Vision拡張機能 (vscode:extension/ms-vscode.vscode-copilot-vision) を使用すると、画像をコンテキスト入力として直接添付でき、会話を豊かにし、より動的で視覚的にサポートされた応答を可能にします。この拡張機能は、最終的にGitHub Copilot Chatの組み込み画像フローに置き換えられる予定です。

チャットでのVision

現時点では、独自のOpenAI、Azure OpenAI、Anthropic、またはGeminiキーを使用して、チャットビューで画像添付フローを体験できます。クリップボードから画像を簡単に添付したり、チャットに直接ドラッグしたりして開始できます。

Screenshot of a chat exchange. A user asks for HTML and CSS for a landing page. The response provides a basic HTML structure with a header, navigation links (Home, About, Contact), and a link to an external CSS file.

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

クイックフィックス付きVision

さらに、提供されたコードアクションを使用して、Markdown、HTML、JSX、またはTSXドキュメント内の画像の代替テキストを生成または修正できるため、より良いコンテキストとアクセシビリティのために記述テキストを組み込むプロセスが簡素化されます。代替テキストのクイックフィックスは、ワークスペース内の画像と画像URLで機能します。

An example markdown document displays a quick fix feature for generating alt text, resulting in the automatic insertion of an alt tag and a value. The user is then prompted with a different quick fix to refine the alt text using an input box. After the user enters and submits their refined description, the alt text is updated accordingly.

この拡張機能はChatReferenceBinaryData提案APIを使用します。ソースコードでの使用例は、GitHubで入手可能ですので、ぜひご確認ください。

Python

ネイティブREPL変数ビュー

ネイティブPython REPLは、組み込みの変数ビューに最新の変数を提供するようになりました。これにより、ファイルから、またはREPL入力ボックスを介してコードを実行する際に、インタープリターの状態を深く掘り下げることができます。

Pylanceでdocstringを生成

Pylanceのdocstringテンプレート生成機能を使用して、Pythonコードのドキュメントをより便利に生成できるようになりました!"""または'''を入力し、Ctrl+Spaceを押すか、電球アイコンを選択してGenerate Docstringコードアクションを呼び出すことで、クラスまたはメソッドのdocstringテンプレートを生成できます。生成されたdocstringには、関数の説明、パラメーター、パラメーター型、戻り値、戻り値の型に関するフィールドが含まれます。

この機能は現在、実験的な設定の背後にありますが、近いうちにデフォルトのエクスペリエンスにすることを楽しみにしています。本日、python.analysis.supportDocstringTemplate設定を有効にして試すことができます。

すべてのdocstringを折りたたむ

ドキュメンテーション文字列は、コードのコンテキストと説明を提供するのに非常に役立ちますが、コード自体に焦点を当てるためにそれらを折りたたみたい場合があります。新しいPylance: Fold All Docstringsコマンドを使用してdocstringを折りたたむことで、より簡単に行えるようになりました。このコマンドは、任意のキーバインディングに割り当てることもできます。それらを展開するには、Pylance: Unfold All Docstringsコマンドを使用します。

インポート提案の改善

Pylanceの強力な機能の1つは、自動インポート提案を提供する機能です。デフォルトでは、Pylanceはシンボルが定義されている場所からのインポート提案を提供しますが、シンボルがインポートされているファイル(つまりエイリアス化されているファイル)からインポートしたい場合があるかもしれません。新しいpython.analysis.includeAliasesFromUserFiles設定を使用すると、Pylanceが自動インポート提案またはインポート追加クイックフィックスにユーザーファイルからのエイリアスシンボルを含めるかどうかを制御できるようになりました。

この設定を有効にすると、特に大規模なコードベースでは、Pylanceがより多くのシンボルをインデックス化し、より多くのファイルの変更を監視する必要があるため、パフォーマンスに悪影響を与える可能性があることに注意してください。これにより、リソース使用量が増加する可能性があります。

実験的なAIコードアクション: 抽象クラスの実装

新しい実験的なコードアクションで、AIと静的解析の両方の良いところ取りができるようになりました!この機能には、PylanceGitHub Copilotの両方の拡張機能が必要です。試すには、抽象クラスを継承するクラスを定義する際に、Implement all inherited abstract classes with Copilotコードアクションを選択できます。

ユーザー設定で"python.analysis.aiCodeActions": {"implementAbstractClasses": false}と設定することで、この機能を無効にできます。

拡張機能の作成

言語モデル用ツール

LanguageModelTool APIが完成しました!このAPIにより、チャット拡張機能は言語モデルを外部データソースに接続したり、アクションを実行したりすることで、より強力なエクスペリエンスを構築できます。APIには主に2つの部分があります。

  1. 拡張機能がツールを登録する機能。ツールとは、言語モデルによって使用されることを意図した機能の一部です。例えば、ファイルのGit履歴の読み取りなどです。ツールがlm.registerToolメソッドを使用して登録されると、lm.toolsリスト内の他の拡張機能からもアクセスできます。これにより、チャット拡張機能は共有ツールのエコシステムを介して他の拡張機能とシームレスに統合できるようになります。

  2. 言語モデルがツールをサポートするメカニズム。例えば、拡張機能がリクエストを行う際にツールを渡す、言語モデルがツール呼び出しを要求する、拡張機能がツール呼び出しの結果を返すといったものです。

言語モデルツールの使用は複雑であり、このAPIはその複雑さを隠しません。ツールを登録したり、チャット参加者でツールを使用したい場合は、拡張機能のサンプルから始めることをお勧めします。

チャット参加者の検出

チャット参加者検出のためのAPIが完成しました。これにより、GitHub Copilotがユーザーの質問を処理するために、あなたのチャット参加者または参加者コマンドを自動的に選択できるようになります。詳細なチュートリアルと推奨事項については、当社のドキュメントをご確認ください。

VS Code Speech

VS Code Speech拡張機能は、Azure Speech SDKの8月バージョンに更新され、音声認識用の新しいモデルが含まれています。Copilot Chatなど、VS Codeの音声認識統合について、この更新により改善された結果が見られるはずです。

コメントスレッド collapsibleState

CommentThreadの展開/折りたたみ状態は、スレッドがすでに表示された後でも、新しいCommentThread.collapsibleStateプロパティを使用して変更できます。以前は、このプロパティはコメントスレッドが最初に表示されたときにのみ尊重されていました。

ようこそビューでのCodicons

ようこそビューでcodiconをレンダリングする機能がサポートされるようになりました。これは、ようこそビューで通常の$(icon-name)を使用することで実行できます。

A sample welcome view showing the use of text, links, buttons, and codicons.

チャット参加者のモデルピッカーへのアクセス

チャットビューに、チャットリクエストに使用されるモデルを選択できるモデルピッカーがあることにお気づきかもしれません。

Copilot model picker control in the Chat view enables switching to another language model.

このモデルピッカーを使用するには、チャット参加者拡張機能が新しいAPIを採用する必要があります。ChatRequestオブジェクトに新しいmodelプロパティが確定されました。これは、ピッカー内のモデルのLanguageModelChatインスタンスに設定されます。これをlm.selectChatModelsメソッドの代わりに使用できます。選択されたモデル以外の特定のモデルを使用したい場合は、引き続きlm.selectChatModelsを使用できます。

プレビュー機能

TypeScript 5.7

近日公開予定のTypeScript 5.7リリースに対するサポートを改善し続けています。詳細については、TypeScript 5.7ベータ版ブログ投稿TypeScript 5.7計画をご覧ください。

TypeScript 5.7のプレビュービルドの使用を開始するには、TypeScript Nightly拡張機能をインストールしてください。

JavaScriptおよびTypeScriptで貼り付け時のインポートを更新

ファイル間でコードを移動した後、インポートを追加するのにうんざりしていませんか?貼り付け時にインポートを更新する実験的なサポートを試してみてください!エディター間でコードをコピー&ペーストすると、VS Codeはコードが貼り付けられたときに自動的にインポートを追加します。

インポートを追加しただけでなく、貼り付けられたコードで使用されていたローカル変数に新しいエクスポートまで追加していることに注目してください!

今すぐこれを試すには、TypeScript 5.7以降を使用していることを確認してください。次に、javascript.experimental.updateImportsOnPaste/typescript.experimental.updateImportsOnPasteを有効にします。現在、これは同じVS Codeウィンドウ内のテキストエディター間で貼り付ける場合にのみサポートされています。

提案されたAPI

画像添付のためのチャット参照バイナリデータ

ChatReferencebinaryData提案APIを使用する拡張機能がある場合、チャットで画像 (png, jpeg, bmp, gif, tiff) を貼り付けることができるようになりました。

export class ChatReferenceBinaryData {
  /**
   * The MIME type of the binary data.
   */
  readonly mimeType: string;

  /**
   * Retrieves the binary data of the reference.
   * @returns A promise that resolves to the binary data as a Uint8Array.
   */
  data(): Thenable<Uint8Array>;

  /**
   * @param mimeType The MIME type of the binary data.
   * @param data The binary data of the reference.
   */
  constructor(mimeType: string, data: () => Thenable<Uint8Array>);
}

拡張機能の作成者は、チャットハンドラーを作成した後、request.referencesを介してこれにアクセスできます。これは、画像をドラッグアンドドロップまたはクイックピックから添付する場合はURIになり、貼り付けられた画像の場合はChatReferenceBinaryDataになります。

エンジニアリング

LLM向けプロンプト構築ライブラリ

今月、私たちは@vscode/prompt-tsxライブラリをオープンソース化しました。これは、過去1年間Copilot Chatで言語モデルのプロンプトを作成するために開発および使用してきたものです。このライブラリにより、開発者はReactと同様のTSX/JSX構文を使用してプロンプトを作成でき、プロンプトのトークン予算を最大限に活用するためのさまざまなツールが含まれています。

AMDコードの削除とウェブでのESMの使用増加

ソースコードからAMD (Asynchronous Module Definition) の最後の痕跡を削除しました。主に、リカバリーリリースで必要となる場合に備えてAMDをサポートするために残しておいたビルドスクリプトからのものです。

さらに、https://vscode.devも現在、100% ESM (ECMAScript Modules) のみで動作しています。

ESLint 9への移行

主要なVS Codeリポジトリとすべての拡張機能のサンプルの両方をESLint 9を使用するように更新しました。これには、すべてのESLint設定を最新のフラット設定を使用するように移行することも含まれていました。

Electron 32への更新

今回のマイルストーンでは、安定版リリースのユーザー向けにElectron 32への更新を進めています。この更新には、Chromium 128.0.6613.186とNode.js 20.18.0が含まれています。Insidersビルドで自己ホストし、早期のフィードバックを提供してくださったすべての方々に感謝いたします。

注目すべき修正点

  • 177046 拡張機能パネルで検索するとクラッシュする

ありがとうございます

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

問題追跡

問題追跡への貢献者

プルリクエスト

vscodeへの貢献者

vscode-docsへの貢献

vscode-js-debugへの貢献者

vscode-languageserver-nodeへの貢献者

  • @DanTup (Danny Tuppeny): CompletionList "applyKind" のサポートを追加し、デフォルト値と項目ごとのcommitCharacters/dataの組み合わせ方を制御する PR #1558

vscode-mypyへの貢献

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

language-server-protocolへの貢献者

lsprotocolへの貢献

tolerant-php-parserへの貢献