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

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.comアップデート をご覧ください。インサイダー: 新機能をいち早く試したいですか?夜間の インサイダー ビルドをダウンロードして、最新の更新プログラムが利用可能になり次第すぐに試すことができます。

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 つのエクスペリエンスにまとめます。サイドで継続的な複数ターンのチャット会話を行いながら、インラインコードの提案からメリットを得ることができます。

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

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

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

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

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

ドキュメントで Copilot Edits の詳細を確認してください。今すぐ試して、私たちの問題からフィードバックを提供してください!

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

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

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

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

  • 変更点のレビュー: コミットされていないすべての変更点のより深いレビューには、ソース管理ビューのCopilot コードレビューボタンを選択します。これは 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 は、可能な場合、質問を適切な参加者またはチャットコマンドに自動的にルーティングします。

自動的に選択された参加者が質問に適切でない場合でも、チャット応答の上部にある再実行せずリンクを選択して、質問を 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 を使用してセマンティック検索を実行し、クエリにセマンティックに関連する検索結果を取得する機能が導入されました。今回、検索結果を関連度でソートすることで改善しました。より関連性の高いスニペットからのキーワードマッチは、全体としてより関連性が高いと見なされます。

Workbench

複数の GitHub アカウント

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

Multiple GitHub Accounts in the Account menu.

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

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

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

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

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

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

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

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.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

出現箇所の強調表示の遅延

このマイルストーンでは、エディターで出現箇所が強調表示されるまでの遅延を制御するための設定 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 用 Web 検索 マーケットプレイスソースコード
Copilot を使用した MermAId ダイアグラム生成 マーケットプレイス
Copilot 用データ分析 マーケットプレイスソースコード
VS Code Commander マーケットプレイス
Copilot Preview のビジョン マーケットプレイス

GitHubプルリクエスト

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

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

すべてを試すには、次の設定を行うことができます。

Copilot を使用した問題検索

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

Copilot issue search for most open bugs.

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

Copilot issue search for closed October issues.

Copilot を使用した要約と修正

問題ビューにリストされている各問題には、新しいアクションCopilot で要約が追加され、チャットパネルを開いて選択した問題を要約します。また、別の新しいアクション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 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チャット言語モデルツールも提供します。これは参加者と似ていますが、他のチャット参加者で 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) 拡張機能は、Markdown 風の図表作成ツールである Mermaid を使用して、コードの視覚化を構築および変更するための新しいチャット参加者を GitHub Copilot に提供します。

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

チャット会話を通じて Mermaid でサポートされるあらゆる種類のダイアグラムを作成し、/iterateスラッシュコマンドを使用してダイアグラムを改良します。スラッシュコマンドは、モデルに特別なガイダンスを提供するために特定のダイアグラムで利用できます。

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

Mermaid Visual Outline ビュー

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

チャットツール

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

Copilot 用データ分析

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

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

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

データ分析と視覚化
  • CSV ファイルがある場合、ファイル #<ファイル名> を分析するなどのプロンプトを入力するか、より具体的なプロンプトを記述します(以下の記録を参照)。
  • チャート、プロットなどの視覚化の生成を要求するフォローアッププロンプトを提供します

データ分析に使用されたコードのエクスポート
  • 分析と視覚化の生成に使用された 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 の構成をこれまで以上に簡単に管理できます。

Vision for Copilot Preview 拡張機能

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.

テーマ: Sapphire (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.

この拡張機能は、ChatReferenceBinaryData提案 API を使用します。ソースコードでの使用例をGitHub でこちらから確認してください。

Python

ネイティブ REPL 変数ビュー

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

Pylance を使用した Docstring の生成

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

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

すべてのドキュメント文字列を折りたたむ

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

インポート候補の改善

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 はその複雑さを隠しません。ツールを登録したり、チャット参加者でツールを使用したりする場合は、拡張機能サンプルから始めることをお勧めします。

チャット参加者の検出

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

VS Code Speech

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

コメントスレッド collapsibleState

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

ウェルカムビューでの Codicons

ウェルカムビューが Codicons のレンダリングをサポートするようになりました。ウェルカムビューで通常の$(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 を使用する拡張機能がある場合、チャットに画像 (pngjpegbmpgiftiff) を貼り付けることができるようになりました。

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 (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への貢献

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