🚀 VS Codeでで入手しましょう!

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

セキュリティアップデート: 以下の拡張機能にセキュリティアップデートがあります: ms-python.python および ms-vscode-remote.remote-ssh

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

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

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

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


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

これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com更新情報にアクセスしてください。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の会話フローとインラインチャットからの迅速なフィードバックを1つのエクスペリエンスにまとめます。インラインコードの提案の恩恵を受けながら、継続的な複数ターンのチャット会話をサイドで行うことができます。

Copilot Editsを始めるための3つのステップ

  1. チャットメニューから Copilot Editsを開く を選択するか、⇧⌘I (Windows Ctrl+Shift+I, Linux Ctrl+Shift+Alt+I) を押して、編集セッションを開始します。

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

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

  3. プロンプトを入力して、実行したい編集についてCopilotに伝えます! たとえば、すべてのページにシンプルなナビゲーションバーを追加jestの代わりにvitestを使用 などです。

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

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

チャットビューの新しいデフォルトの場所は、セカンダリサイドバーです。セカンダリサイドバーを使用すると、チャットをいつでも開いたままにすることができ、ファイルエクスプローラーやソース管理などの他のビューも利用できます。これにより、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 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コードレビューは現在プレビュー段階です。ぜひお試しいただき、issueを通じてフィードバックをお寄せください。

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

  • 選択範囲のレビュー: 簡単なレビューパスの場合、エディターでコードを選択し、エディターのコンテキストメニューから Copilot > レビューとコメント を選択するか、コマンドパレットから GitHub Copilot: レビューとコメント コマンドを使用します。(この機能はプレビュー段階です。)

  • 変更のレビュー: 未コミットのすべての変更の詳細なレビューの場合、ソース管理 ビューで Copilotコードレビュー ボタンを選択します。これはGitHub.comのプルリクエストでも実行できます。順番待ちリストに参加してください。すべてのCopilotサブスクライバーが対象です)

    Request review of uncommitted changes

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

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は質問を適切な参加者またはチャットコマンドに自動的にルーティングします。

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

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

今月は、リクエストごとにこの検出動作をスキップできるアクションも追加しました。チャットプロンプトを入力したときのデフォルトのアクションは 送信してディスパッチ であり、参加者検出が含まれています。送信 を選択すると、リクエストは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.

シンボルをより詳細に調べ始めるには、シンボルリンクを右クリックして、実装へ移動参照へ移動 などのオプションを含むコンテキストメニューを表示します

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: ローカルワークスペースインデックスを構築 コマンドを使用すると、現在のワークスペースのインデックス作成を明示的に開始できます。このインデックス作成は通常、最初に@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を使用してセマンティック検索を実行し、クエリに対して意味的に関連性の高い検索結果を取得する機能を紹介しました。検索結果の関連性でソートすることで、検索結果を改善しました。より関連性の高いスニペットからのキーワード一致は、全体的により関連性が高いと見なされます。

ワークベンチ

複数のGitHubアカウント

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

Multiple GitHub Accounts in the Account menu.

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

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

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

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

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

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

受け取ったフィードバックの1つは、まだログインしていないアカウントを簡単に追加する方法が欲しいということでした。このマイルストーンでは、まさにそれを実現できる新しいアイテムをクイックピックに導入しました。新しいアカウントを使用... アイテムを使用して、認証フローを開始し、アカウント設定をそのアカウントに一度に設定します。

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

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

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

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

テーマ: ライトピンク (vscode.dev でプレビュー)

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

このマイルストーンでは、プロファイルのアイコンを増やしました。より幅広いアイコンから選択して、プロファイルをカスタマイズできるようになりました。

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

パネルのアイコンを表示

ワークベンチパネル領域では、ビューは通常、タイトルバーにラベルとして表示されます(たとえば、ターミナル出力)。ただし、画面が小さい場合、これらのラベルが使用可能なスペースを超え、一部のビューがドロップダウンメニューにオーバーフローする可能性があります。

これに対処するために、新しい設定を追加しました: 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 を導入しました。この遅延値を小さくすると、セマンティックハイライトを使用する場合に、より応答性の高いエディターエクスペリエンスにつながる可能性があります。

VS Code for the Web

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

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

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

拡張機能への貢献

Copilot拡張機能のショーケース

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

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

拡張機能 リンク
GitHub Pull Requests マーケットプレイス
Copilot用Web検索 マーケットプレイス, ソースコード
CopilotによるMermAId図生成 マーケットプレイス
Copilot用データ分析 マーケットプレイス, ソースコード
VS Code Commander マーケットプレイス
Copilotプレビューのビジョン マーケットプレイス

GitHub Pull Requests

GitHub Pull Requests拡張機能のバージョン0.100.0でCopilot統合が追加されました

  • チャットビューで @githubpr チャット参加者を使用して、issueの検索、issue/プルリクエストの要約、issueの修正案の提示を行います。@githubpr は、これを実現するために多数の言語モデルツールを使用します。
  • GitHub通知を表示する新しい 通知 ビューもあり、Copilotで優先順位を付けるアクションがあります。

すべてを試すには、次の設定を行います

  • githubPullRequests.experimental.chat
  • githubPullRequests.experimental.notificationsView
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には、選択したissueを要約するチャットパネルを開く新しいアクション Copilotで要約 が追加されました。選択したissueを要約し、ワークスペースコンテキストを使用してその修正案を提示する別のアクション Copilotで修正 も追加しました。

Copilotを使用した通知の優先順位付け(試験的)

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

Notifications View

Copilot用Web検索

この拡張機能のショーケース

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

ソースコードはGitHubで入手できます

説明

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

これは、websearch.preferredEngine で構成された2つの異なる検索エンジンのいずれかによって強化されています

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

チャット参加者

この拡張機能は、インターネットからのライブ情報を必要とする可能性のある質問を処理できる @websearch チャット参加者を提供します。@websearch vscodeでワークスペース信頼はいつリリースされましたか? を使用して手動で呼び出すことができます

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

チャットツール

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

  • @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) 拡張機能は、Mermaid(Markdownにインスパイアされたダイアグラムおよびチャート作成ツール)を使用してコードの視覚化を構築および変更するための新しいチャット参加者をGitHub Copilotに提供します。

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

チャット会話を通じてMermaidでサポートされている任意のタイプのダイアグラムを作成し、/iterate スラッシュコマンドを使用してダイアグラムを改良します。スラッシュコマンドは、モデルに追加のガイダンスを提供するために、特定のダイアグラムタイプで使用できます。

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

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

ビジュアルアウトライン ビューを開いて、アクティブなエディターからダイアグラムを動的に生成します。チャットに移行して、より細かく制御できます。

チャットツール

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

Copilot用データ分析

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

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

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

データ分析と視覚化
  • CSVファイルが与えられたら、ファイルを分析 #<ファイル名> などのプロンプトを入力するか、より具体的なプロンプトを作成します (以下の記録を参照)
  • チャート、プロットなどの視覚化の生成をリクエストするために、フォローアッププロンプトを提供します

データ分析の実行に使用されるコードのエクスポート
  • 分析と視覚化の生成に使用されるPythonコードを表示できます
  • コードはJupyter NotebookまたはPythonファイルにエクスポートできます

CSVファイルのEditorおよびエクスプローラーの統合
  • 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 for Copilot Preview拡張機能 (vscode:extension/ms-vscode.vscode-copilot-vision) を使用すると、画像をコンテキスト入力として直接添付して、会話を豊かにし、より動的で視覚的にサポートされた応答を可能にできます。この拡張機能は、最終的にはGithub Copilot Chatの組み込み画像フローに置き換えられる予定です。

チャットでのビジョン

当面の間、独自の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.

テーマ: サファイア (vscode.dev でプレビュー)

クイックフィックス付きビジョン

さらに、提供されているコードアクションを使用して、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.

この拡張機能は、提案されたAPI ChatReferenceBinaryData を使用します。ソースコードでの使用方法の例を自由に確認してください。GitHubで入手できます

Python

ネイティブREPL変数ビュー

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

Pylanceでdocstringを生成

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

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

すべてのdocstringを折りたたむ

ドキュメント文字列は、コードのコンテキストと説明を提供するのに最適ですが、コード自体に集中するために折りたたみたい場合があります。新しい Pylance: すべてのDocstringを折りたたむ コマンドでdocstringを折りたたむことで、より簡単に行えるようになりました。これは、選択したキーバインドにバインドすることもできます。展開するには、Pylance: すべてのDocstringを展開 コマンドを使用します。

インポート候補の改善

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

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

試験段階の AI コードアクション: 抽象クラスの実装

新しい試験段階の抽象クラス実装コードアクションにより、AI と静的解析の両方の長所を活用できるようになりました。この機能を使用するには、PylanceGitHub Copilot 拡張機能の両方が必要です。試してみるには、抽象クラスを継承するクラスを定義する際に、Copilot で継承されたすべての抽象クラスを実装 コードアクションを選択できます。

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

拡張機能の作成

言語モデルのツール

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

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

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

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

チャット参加者の検出

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

VS Code Speech

VS Code Speech 拡張機能が、Azure Speech SDK の 8 月バージョンに更新され、音声テキスト変換認識用の新しいモデルが付属しています。Copilot Chat などの VS Code の音声テキスト変換統合で、このアップデートによる改善された結果が得られるはずです。

コメント スレッド collapsibleState

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

ウェルカムビューの Codicon

ウェルカムビューが 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 を採用する必要があります。ピッカー内のモデルの LanguageModelChat インスタンスに設定される、ChatRequest オブジェクトの新しい model プロパティを完成させました。これは 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 を使用する拡張機能がある場合、チャットに画像 (pngjpegbmpgif、および 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 用のプロンプト作成ライブラリ

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

AMD コードの削除と Web での ESM の使用拡大

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

さらに、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 のコントリビューターの皆様に心から感謝申し上げます。

Issue tracking

Issue tracking への貢献

プルリクエスト

vscode への貢献

vscode-docs への貢献

vscode-js-debug への貢献

vscode-languageserver-node への貢献

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

vscode-mypy への貢献

vscode-vsce への貢献

language-server-protocol への貢献

lsprotocol への貢献

tolerant-php-parser への貢献