2024 年 10 月 (バージョン 1.95)¶
アップデート 1.95.1: このアップデートはこれらの 問題 に対処します。
Visual Studio Code の 2024 年 10 月リリースへようこそ。このバージョンには多くの更新が含まれており、いくつかの主要なハイライトは次のとおりです:
- Copilot Edits - 複数のファイルにわたる大規模な変更を迅速に反復処理します
- セカンダリ サイドバーの Copilot チャット - 作業中に Copilot チャットを開いてすぐに使用できるようにします
- 複数の GitHub アカウント - VS Code で複数の GitHub アカウントに同時にログインします
- Copilot コード レビュー - コミットされていない変更のクイック レビュー パスまたは詳細なレビューを取得します
- Pylance を使用したドックストリング - クラスまたはメソッドのドックストリング テンプレートを生成します
- プレビュー設定インジケーター - 設定エディターで実験的およびプレビュー設定を表示します
- Copilot 拡張機能 - VS Code での Copilot 拡張機能を紹介します
これらのリリース ノートをオンラインで読みたい場合は、code.visualstudio.com の 更新プログラム にアクセスしてください。 Insiders: できるだけ早く新機能を試してみたいですか? ナイトリー Insiders ビルドをダウンロードして、最新の更新プログラムをすぐに試すことができます。
GitHub Copilot¶
Copilot 機能は、通常、設定を通じて有効化および構成されるさまざまな早期アクセス段階を経ることがあります。
-
実験的 - 実験的機能 (
@tag:experimental
) を表示しますこの設定は、積極的に開発されており、不安定な可能性がある新機能を制御します。変更または削除される可能性があります。
-
プレビュー - プレビュー機能 (
@tag:preview
) を表示しますこの設定は、まだ改良中ですが、使用する準備ができている新機能を制御します。フィードバックを歓迎します。
Copilot Edits でコード編集セッションを開始する¶
Copilot Edits は現在プレビュー中です
設定: setting(github.copilot.chat.edits.enabled)
Copilot Edits を使用すると、AI を活用したコード編集セッションを開始して、コード変更を迅速に反復処理できます。プロンプトに基づいて、Copilot Edits はワークスペース内の複数のファイルにわたるコード変更を提案します。これらの編集はエディターに直接適用されるため、周囲のコードの完全なコンテキストでインプレースで迅速にレビューできます。
Copilot Edits は、複数のファイルにわたる大規模な変更を反復処理するのに最適です。Copilot チャットの会話の流れとインライン チャットからの迅速なフィードバックを 1 つのエクスペリエンスにまとめます。サイドで進行中の複数ターンのチャット会話を行いながら、インライン コードの提案を活用できます。
Copilot Edits を使用して開始するには、次の 3 つの手順を実行します:
-
チャット メニューから Copilot Edits を開く を選択するか、
kb(workbench.action.chat.openEditSession)
を押して編集セッションを開始します。 -
関連するファイルを 作業セット に追加して、Copilot に作業するファイルを示します。
-
プロンプトを入力して、行いたい編集について Copilot に伝えます。たとえば、
すべてのページにシンプルなナビゲーション バーを追加する
またはjest の代わりに vitest を使用する
などです。
ドキュメントで Copilot Edits の詳細を確認してください。今すぐ試して、問題 を通じてフィードバックを提供してください。
セカンダリ サイドバーのチャット¶
チャット ビューの新しいデフォルトの場所は セカンダリ サイドバー です。セカンダリ サイドバーを使用すると、ファイル エクスプローラーやソース管理などの他のビューを引き続き使用できる状態で、いつでもチャットを開くことができます。これにより、VS Code でより統合された AI エクスペリエンスが提供されます。kb(workbench.action.chat.open)
キーボード ショートカットを使用して、すばやくチャットにアクセスできます。
コマンド センターの横に新しいチャット メニューが導入されたことで、チャットを使用したセカンダリ サイドバーをすぐに表示できます:
チャット メニューを使用すると、Copilot チャットの最も一般的なタスクにアクセスできます。このメニューを非表示にしたい場合は、新しい設定 setting(chat.commandCenter.enabled)
が提供されます。
注: 以前に GitHub Copilot をインストールしていた場合、チャット ビューを以前の場所に復元できるビューが表示されます。これにより、以前の場所にチャット ビューを復元できます。
Copilot コード レビュー¶
Copilot コード レビューは現在プレビュー中です
Visual Studio Code の GitHub Copilot コード レビューを使用すると、コードの記述中に迅速な AI 駆動のフィードバックを受け取ったり、プッシュする前にすべての変更のレビューをリクエストしたりできます。Visual Studio Code の GitHub Copilot コード レビューは現在プレビュー中です。ぜひ試してみて、問題 を通じてフィードバックを提供してください。
VS Code で Copilot コード レビューを使用する方法は 2 つあります:
- 選択のレビュー: クイック レビュー パスの場合、エディターでコードを選択し、エディター コンテキスト メニューから Copilot > レビューとコメント を選択するか、コマンド パレットから GitHub Copilot: レビューとコメント コマンドを使用します。(この機能はプレビュー中です。)
- 変更のレビュー: コミットされていないすべての変更の詳細なレビューの場合、ソース管理 ビューで Copilot コード レビュー ボタンを選択します。これを GitHub.com のプル リクエストでも行うことができます。(すべての Copilot サブスクライバーに公開されているウェイトリスト に参加します)
Copilot のフィードバックは、エディター内のコード行に添付されたコメントとして表示されます。可能な場合、コメントには実行可能なコードの提案が含まれており、1 回のアクションで適用できます。
Copilot コード レビューの詳細については、GitHub コード レビュー ドキュメント を参照してください。
Copilot のコード選択に関するクイック レビューは、適切なコンテキストを提供することで、チームやプロジェクトの特定のプラクティスに一致するフィードバックを提供できます。カスタム レビュー指示を使用して選択をレビューする場合、setting(github.copilot.chat.reviewSelection.instructions)
設定を使用して、これらの特定の要件を定義できます。コード生成およびテスト生成指示と同様に、指示を設定に直接定義するか、別のファイルに保存して設定で参照することができます。
次のコード スニペットは、レビュー指示の例を示しています:
"github.copilot.chat.reviewSelection.instructions": [
{
"text": "ログは Log4j を使用して行う必要があります。"
},
{
"text": "フォールト ハンドリングには常に Polly ライブラリを使用してください。"
},
{
"file": "code-style.md" // ファイル `code-style.md` から指示をインポートします
}
],
code-style.md
ファイルの内容の例:
プライベート フィールドはアンダースコアで始める必要があります。
ファイルには 1 つのクラス宣言のみを含めることができます。
チャット参加者の自動検出¶
設定: setting(chat.experimental.detectParticipant.enabled)
GitHub Copilot には @workspace
などのいくつかの組み込みチャット参加者があり、他の拡張機能をインストールしてチャット参加者を追加することもできます。
自然言語でチャット参加者を使用しやすくするために、Copilot チャットは可能な場合に質問を適切な参加者またはチャット コマンドに自動的にルーティングします。
自動的に選択された参加者が質問に適していない場合は、チャット応答の上部にある 再実行しない リンクを選択して、質問を Copilot に再送信できます。
今月、リクエストごとにこの検出動作をスキップするアクションも追加しました。チャット プロンプトを入力するときのデフォルトのアクションは 送信してディスパッチ であり、参加者の検出が含まれます。送信 を選択すると、リクエストは Copilot チャットに直接送信され、チャット参加者に自動的にディスパッチされません。
setting(chat.experimental.detectParticipant.enabled)
設定を使用して、自動参加者検出を完全に無効にすることもできます。
現在のエディター コンテキストを制御する¶
Copilot チャットは常に、チャット リクエストのコンテキストとして現在の選択または現在表示されているコードを自動的に含めていました。大規模言語モデル (LLM) は、コンテキストが関連しているかどうかを理解するのが得意です。ただし、現在のエディターに関する質問をしていない場合、このコンテキストを含めると、モデルが質問を解釈する方法に影響を与える可能性があります。
現在、チャット入力に特別な添付コントロールを表示して、エディター コンテキストに関するヒントを提供し、エディター コンテキストを含めるかどうかを切り替えることができます。
エディター コンテキストの動作に変更はありません。アクティブなエディターに選択がある場合は、選択のみが含まれます。それ以外の場合は、表示されているコードのみが含まれます。ペーパークリップ ボタンを使用するか、チャット プロンプトに #
を入力して、他のファイルや完全なファイルを添付することもできます。
インタラクティブなワークスペース シンボル リンク¶
Copilot チャットの一般的な使用例は、ワークスペース内のコードに関する質問をすることです。たとえば、選択したコードの新しい単体テストを生成するために /tests
を使用したり、プロジェクト内の特定のクラスや関数を見つけるために @workspace
を使用したりします。このマイルストーンでは、Copilot がチャット応答で言及するワークスペース シンボルのリンクを強化しました。これらのシンボル リンクは、Copilot の応答をよりよく理解し、それらで使用されるシンボルについて詳しく学ぶのに役立ちます。
シンボル リンクは、前回のマイルストーンで追加したファイル リンクと同様に、応答内で小さなピルとしてレンダリングされます。シンボルについて詳しく知るには、シンボル リンクを選択してそのシンボルの定義にジャンプします:
シンボル リンクにカーソルを合わせると、シンボルが定義されているファイルを確認できます:
シンボルを詳しく調べるには、シンボル リンクを右クリックして、実装に移動 や 参照に移動 などのオプションを含むコンテキスト メニューを表示します:
基本的なシンボル リンクは、定義に移動をサポートする任意の言語で機能するはずです。実装に移動などの高度な IntelliSense オプションも、その言語のサポートが必要です。Copilot の応答で使用されるプログラミング言語に最適なシンボル サポートを得るために、言語拡張機能をインストールしてください。
問題ホバーで Copilot アクションを使用して修正する¶
エディターで問題にカーソルを合わせると、現在、Copilot を使用して問題を修正するアクションが含まれています。このアクションは、修正可能な問題に対して利用可能であり、修正は Copilot によって生成されます。
ワークスペースのインデックス作成¶
@workspace
を使用すると、現在のプロジェクトのコードに関する質問をすることができます。これは、GitHub のコード検索または VS Code が構築するスマートなローカル インデックスを使用して実装されます。このマイルストーンでは、このワークスペース インデックスの使用方法を理解するためのいくつかの新しい UI 要素を追加しました。
まず、新しい GitHub Copilot: ローカル ワークスペース インデックスの構築 コマンドを使用して、現在のワークスペースのインデックス作成を明示的に開始できます。このインデックス作成は、通常、最初に @workspace
質問をするときに自動的に開始されます。新しいコマンドを使用すると、いつでもインデックス作成を開始できます。このコマンドは、現在最大 2000 ファイル (たとえば、node_modules
や out
ディレクトリなどの無視されたファイルを含まない) の大規模なワークスペースのインデックス作成も有効にします。
インデックスが構築されている間、ステータス バーに進行状況アイテムが表示されるようになりました:
数百のファイルを含むワークスペースのインデックス作成には少し時間がかかる場合があります。インデックスが構築されている間に @workspace
質問をしようとすると、待機する代わりに、Copilot はより迅速に構築できるシンプルなローカル インデックスを使用して迅速に応答しようとします。この場合、応答に警告が表示されるようになりました:
この場合、Copilot はより高度なインデックスではなく、シンプルなローカル インデックスを使用しても質問に答えることができました。これはよくあることですが、より曖昧または複雑な質問は、スマートなインデックスが構築された後にのみ回答できる場合があります。また、ワークスペースが GitHub リポジトリによってバックアップされている場合、代わりに GitHub のコード検索 を使用して質問に回答できることに注意してください。つまり、コード検索はシンプルなローカル インデックスの代わりに使用されます。
チャットのフォローアップの改善¶
設定: setting(github.copilot.chat.followUps)
チャット ビューでのチャット会話のスペースを増やすために、フォローアップ プロンプトをより簡潔にし、デフォルトでは最初のターンにのみ表示されるようにしました。setting(github.copilot.chat.followUps)
設定を構成して、フォローアップ プロンプトが表示されるタイミングを変更します:
firstOnly
(デフォルト) - フォローアップ プロンプトは最初のターンにのみ表示されますalways
- フォローアップ プロンプトは常に表示されますnever
- フォローアップ プロンプトを無効にします
セマンティック検索で関連性で並べ替え (実験的)¶
設定: setting(github.copilot.chat.search.semanticTextResults)
前回のマイルストーンでは、Copilot を使用してセマンティックに関連する検索結果を取得するセマンティック検索を実行する機能を導入しました。検索結果を関連性で並べ替えることで、検索結果を改善しました。より関連性の高いスニペットからのキーワード一致が全体的により関連性が高いと見なされます。
ワークベンチ¶
複数の GitHub アカウント¶
先月の機能をデフォルトの動作に昇格させ、VS Code で複数の GitHub アカウントに同時にログインできるようになりました。
複数のアカウントが必要なシナリオの例を次に示します:
- Account1 を設定同期に使用し、Account2 を GitHub プル リクエスト拡張機能に使用する
- Account1 を GitHub 拡張機能 (プッシュ用) に使用し、Account2 を GitHub Copilot に使用する
この機能を使用するには、(設定同期などの組み込み機能や拡張機能を使用して) ログイン アクションをトリガーし、別のアカウントにログインするオプションが表示されます。この機能は、後でアカウントを変更する必要がある場合に便利なアカウント優先設定クイック ピックとも相性が良いです。
ほとんどの機能は既存の拡張機能で引き続き動作するはずですが、一部の動作はこのマルチアカウント環境に完全には適合しない場合があります。改善の余地があると思われる場合は、それらの拡張機能に対して問題を報告してください。比較的新しい vscode.authentication.getAccounts('github')
API を使用すると、拡張機能は複数のアカウントを処理するための多くの機能を利用できます。
アカウント優先設定を変更する際に追加のアカウントを追加する¶
先月、アカウント優先設定クイック ピックを導入しました。これは、何らかの理由で拡張機能に使用する優先アカウントを変更する必要がある場合に便利です。
受け取ったフィードバックの 1 つは、まだログインしていないアカウントを簡単に追加したいというものでした。このマイルストーンでは、新しいアカウントを追加して、認証フローを開始し、そのアカウントにアカウント優先設定を設定できる新しい項目をクイック ピックに追加しました。新しいアカウントを使用... 項目を使用して、認証フローを開始し、アカウント優先設定をそのアカウントに設定します。
設定エディターの実験的およびプレビュー設定のインジケーター¶
以前は、設定エディターを見ても、どの設定が実験的またはプレビューであるかが常に明確ではありませんでした。実験的および今後の機能を強調するために、設定エディターは現在、実験的およびプレビュー設定の横にインジケーターを表示します。設定エディターの検索ボックスに @tag:experimental
または @tag:preview
と入力して、設定をフィルタリングできます。
拡張機能の作成者は、設定エディターに対応するインジケーターを表示するために、設定に「experimental」または「preview」タグを追加できます。
テーマ: Light Pink (プレビュー vscode.dev)
プロファイルのアイコンを追加¶
このマイルストーンでは、プロファイルのアイコンを追加しました。プロファイルをカスタマイズするために、より多くのアイコンから選択できます。
パネルのビュー アイコン¶
ワークベンチのパネル領域では、ビューは通常、タイトル バーにラベルとして表示されます (たとえば、TERMINAL や OUTPUT)。ただし、画面が小さい場合、これらのラベルが使用可能なスペースを超えて表示され、一部のビューがドロップダウン メニューにオーバーフローすることがあります。
これに対処するために、新しい設定を追加しました: setting(workbench.panel.showLabels:false)
。無効にすると、ビューはラベルの代わりにアイコンとして表示され、水平スペースを節約し、オーバーフローを減らします。
workbench.panel.showLabels: true
workbench.panel.showLabels: false
エディター¶
出現のハイライト遅延¶
このマイルストーンでは、エディターで出現がハイライトされるまでの遅延を制御するための設定 setting(editor.occurrencesHighlightDelay)
を導入しました。この遅延値を下げると、セマンティック ハイライトを使用する際にエディターの応答性が向上します。
Web 用 VS Code¶
Web 用 VS Code はローカル ファイル イベントをサポートします¶
バージョン 129 以降の Chrome または Edge を使用する場合、ローカル フォルダーを使用して https://insiders.vscode.dev を開くと、ファイル イベントがサポートされるようになりました。ブラウザー外で開かれたワークスペースのファイルやフォルダーに変更を加えると、これらの変更がブラウザー内ですぐに反映されます。
この機能は、新しい API として提案されている FileSystemObserver
インターフェイスを活用しています。
拡張機能への貢献¶
Copilot 拡張機能の紹介¶
このマイルストーンでは、VS Code での Copilot 拡張機能を紹介するいくつかの拡張機能の構築に取り組みました。これらの拡張機能は、次の機能を示しています:
- チャット参加者 & ツール API
- prompt-tsx
- GitHub Copilot が提供する言語モデルを活用する方法
これらの拡張機能を試して、独自の拡張機能で Copilot をどのように拡張できるかを確認してください。
拡張機能 | リンク |
---|---|
GitHub プル リクエスト | Marketplace |
Copilot 用 Web 検索 | Marketplace, ソース コード |
Copilot を使用した MermAId 図の生成 | Marketplace |
Copilot 用データ分析 | Marketplace, ソース コード |
VS Code コマンダー | Marketplace |
Copilot プレビューのビジョン | Marketplace |
GitHub プル リクエスト¶
GitHub プル リクエスト 拡張機能のバージョン 0.100.0 には、Copilot 統合が追加されました:
- チャット ビューで
@githubpr
チャット参加者を使用して、問題を検索したり、問題/プルリクエストを要約したり、問題の修正を提案したりできます。@githubpr
は、これを実現するために多くの言語モデル ツールを使用します。 - GitHub 通知を表示する新しい 通知 ビューもあり、Copilot を使用して通知を優先順位付けするアクションがあります。
すべてを試すには、次の設定を行います:
setting(githubPullRequests.experimental.chat:true)
setting(githubPullRequests.experimental.notificationsView:true)
Copilot を使用した問題検索¶
新しい @githubpr
チャット参加者は、GitHub で問題を検索できます。
問題を表示する際、@githubpr
は Markdown テーブルを表示し、検索に基づいて最適な列を選択しようとします。
Copilot を使用した要約と修正¶
問題 ビューにリストされている各問題には、選択した問題を要約する Copilot で要約 アクションが新たに追加されました。また、選択した問題を要約し、ワークスペース コンテキストを使用して修正を提案する Copilot で修正 アクションも追加しました。
Copilot を使用した通知の優先順位付け (実験的)¶
このマイルストーンでは、リポジトリ全体の未読通知をリストする実験的な 通知 ビューを追加しました。デフォルトでは、通知は最新の更新順に降順で並べ替えられますが、ビュー タイトルの ...
メニューから Copilot を使用して優先順位を付ける アクションを使用して、Copilot に通知の優先順位を付けさせることができます。各通知を選択すると、Copilot を使用して通知を要約するアクションがトリガーされます。このビューには、通知を既読としてマークしたり、GitHub.com で通知を開いたりするための簡単にアクセスできるアクションも含まれています。
Copilot 用 Web 検索¶
この拡張機能は次の機能を示しています:
- チャット参加者 & ツール API
- prompt-tsx
- GitHub Copilot が提供する言語モデルを活用する方法
ソース コードはGitHub でこちらにあります。
説明¶
Copilot で Web から最新かつ関連性の高い情報を取得します。
これは、setting(websearch.preferredEngine)
で構成された 2 つの異なる検索エンジンのいずれかによって提供されます:
ユーザーとして、この拡張機能を使用するには、これらのサービスのいずれかから API キーを取得する必要があります。初回使用時にそのキーを要求し、VS Code の組み込みシークレット ストレージを使用して保存し、GitHub アカウントと同様に VS Code の認証スタックを介して管理できます。
チャット参加者¶
この拡張機能は、インターネットからのライブ情報が必要な質問を処理できる @websearch
チャット参加者を提供します。
@websearch when did Workspace Trust ship in vscode?
を手動で使用して呼び出すことができます。
チャット ツール¶
この拡張機能は、#websearch
チャット言語モデル ツールも提供します。これは参加者と似ていますが、他のチャット参加者で Web からのコンテキストを提供するのに役立ちます。たとえば:
@workspace /new #websearch create a new web app written in Python using the most popular framework
さらに、独自のチャット参加者またはツールを作成している場合は、vscode.lm.invokeTool
API を介してこのチャット ツールを使用できます。
Copilot を使用した MermAId 図の生成¶
vscode-mermAId (vscode:extension/ms-vscode.copilot-mermaid-diagram
) 拡張機能は、GitHub Copilot に新しいチャット参加者を提供し、Mermaid を使用してコードの視覚化を作成および変更します。Mermaid は、Markdown にインスパイアされた図表およびチャート作成ツールです。
図の作成とレンダリング¶
チャット会話を通じて Mermaid がサポートする任意のタイプの図を作成し、/iterate
スラッシュ コマンドを使用して図を洗練させます。スラッシュ コマンドは、モデルに追加のガイダンスを提供するために特定の図に対して利用できます。
フローなどの特定の図の種類には、図を作成するために収集された参照に戻るリンクが追加されます。
Mermaid ビジュアル アウトライン ビュー¶
ビジュアル アウトライン ビューを開いて、アクティブなエディターから動的に図を生成します。詳細な制御のためにチャットに分岐できます。
チャット ツール¶
この拡張機能は、ファイルまたはワークスペース全体内のシンボル情報を収集するツールを提供し、この拡張機能がインストールされている場合に他のチャット参加者が使用できます。
Copilot 用データ分析¶
Copilot 用データ分析拡張機能は、データ サイエンス分野の人々に力を与えます。.csv
ファイルのクリーンアップから、さまざまな統計測定、グラフ、予測モデルを活用した高度なデータ分析まで、@data
チャット参加者は、データ タスクに対してより高度で情報に基づいた意思決定を行うためのカスタマイズされた洞察とインタラクティビティを提供します。
この拡張機能は、Pyodide を使用して Python コードを実行し、関連する Python コードの実行結果を取得するために LLM が使用できるツールを提供します。エラーが発生した場合に、より適切または適切な実行結果を得るためにスマートに再試行することもできます。分析を実行するために使用されるコード (または視覚化を生成するコード) を Jupyter Notebook または Python ファイルにエクスポートすることもできます。
拡張機能はマーケットプレイスからダウンロードでき、ソースはGitHub でこちらにあります。
データ分析と視覚化¶
- CSV ファイルが与えられた場合、
Analyze the file #<file name>
などのプロンプトを入力するか、より具体的なプロンプトを入力します (以下の録画を参照)。 - フォローアップ プロンプトを提供して、チャート、プロットなどの視覚化の生成をリクエストします
データ分析を実行するために使用されるコードのエクスポート¶
- 分析を実行し、視覚化を生成するために使用される Python コードを表示できます
- コードを Jupyter Notebook または Python ファイルにエクスポートできます
CSV ファイルのエディターおよびエクスプローラー統合¶
- CSV ファイルを右クリックして分析します
- CSV ファイルを開き、Copilot アイコンを使用してファイルを分析します
VS Code コマンダー拡張機能¶
VS Code コマンダー拡張機能 (vscode:extension/ms-vscode.vscode-commander
) は、VS Code 内での個人アシスタントとして機能します。この強力なツールを使用すると、会話形式の自由形式のテキストを使用して VS Code 環境を構成できます。VS Code コマンダーを使用すると、次のことができます:
- さまざまな設定やコマンドを発見して探索します
- 開発環境をニーズに合わせて調整します
これらのアクションは、シンプルで直感的なチャット インターフェイスを通じて実行できるため、VS Code 構成の管理がこれまで以上に簡単になります。
Copilot プレビュー拡張機能のビジョン¶
Copilot プレビュー拡張機能のビジョン (vscode:extension/ms-vscode.vscode-copilot-vision
) を使用すると、画像をコンテキスト入力として直接添付でき、会話が豊かになり、より動的で視覚的にサポートされた応答が可能になります。この拡張機能は、最終的に GitHub Copilot チャットの組み込み画像フローに置き換えられます。
チャットでのビジョン¶
現在のところ、独自の OpenAI、Azure OpenAI、Anthropic、または Gemini キーを使用して、チャット ビューで画像添付フローを体験できます。クリップボードから画像を簡単に添付するか、チャットに直接ドラッグして開始します。
テーマ: Sapphire (プレビュー vscode.dev)
クイック修正を使用したビジョン¶
さらに、提供されたコード アクションを使用して、Markdown、HTML、JSX、または TSX ドキュメント内の画像の代替テキストを生成または洗練することで、説明テキストを簡単に組み込んでコンテキストとアクセシビリティを向上させることができます。代替テキストのクイック修正は、ワークスペース内の画像と画像 URL に対して機能します。
この拡張機能は、提案された ChatReferenceBinaryData
API を使用します。ソース コードの使用例を確認するには、GitHub でこちらにあります。
Python¶
ネイティブ REPL 変数ビュー¶
ネイティブ Python REPL は、組み込みの変数ビューの最新の変数を提供します。これにより、ファイルからコードを実行したり、REPL 入力ボックスを通じてコードを実行したりする際に、インタープリターの状態を詳しく調べることができます。
Pylance を使用してドックストリングを生成する¶
Pylance のドックストリング テンプレート生成機能を使用して、Python コードのドキュメントをより便利に生成できるようになりました! """
または '''
を入力し、kbstyle(Ctrl+Space)
を押すか、電球を選択して ドックストリングの生成 コード アクションを呼び出すことで、クラスまたはメソッドのドックストリング テンプレートを生成できます。生成されたドックストリングには、関数の説明、パラメーター、パラメーターの種類、戻り値、および戻り値の種類のフィールドが含まれます。
この機能は現在実験的な設定の背後にありますが、すぐにデフォルトのエクスペリエンスにする予定です。setting(python.analysis.supportDocstringTemplate:true)
設定を有効にして、今日から試してみてください。
すべてのドックストリングを折りたたむ¶
ドキュメント ストリングは、コードにコンテキストや説明を提供するのに最適ですが、コード自体に集中するために折りたたみたい場合があります。新しい Pylance: すべてのドックストリングを折りたたむ コマンドを使用して、ドックストリングを折りたたむことができるようになりました。このコマンドは、選択したキー バインディングにバインドすることもできます。折りたたみを解除するには、Pylance: すべてのドックストリングを折りたたみ解除 コマンドを使用します。
インポート提案の改善¶
Pylance の強力な機能の 1 つは、自動インポート提案を提供する機能です。デフォルトでは、Pylance はシンボルが定義されている場所からインポート提案を提供しますが、シンボルがインポートされているファイル (つまり、エイリアス) からインポートすることを希望する場合があります。新しい setting(python.analysis.includeAliasesFromUserFiles:true)
設定を使用して、Pylance が自動インポート提案やインポートの追加クイック修正でユーザー ファイルからエイリアス シンボルを含めるかどうかを制御できるようになりました。
この設定を有効にすると、特に大規模なコードベースでは、Pylance がより多くのシンボルをインデックス化し、変更のためにより多くのファイルを監視する必要があるため、パフォーマンスに悪影響を与える可能性があることに注意してください。これにより、リソース使用量が増加する可能性があります。
実験的な AI コード アクション: 抽象クラスの実装¶
新しい実験的なコード アクションを使用して、AI と静的解析の両方の利点を享受できます! この機能には、Pylance 拡張機能と GitHub Copilot 拡張機能の両方が必要です。試してみるには、抽象クラスを継承するクラスを定義するときに Copilot を使用してすべての継承された抽象クラスを実装 コード アクションを選択します。
この機能を無効にするには、ユーザー設定で "python.analysis.aiCodeActions": {"implementAbstractClasses": false}
を設定します。
拡張機能の作成¶
言語モデルのツール¶
LanguageModelTool
API を最終化しました! この API を使用すると、チャット拡張機能が言語モデルを外部データ ソースに接続したり、アクションを実行したりすることで、より強力なエクスペリエンスを構築できます。API には 2 つの主要な部分があります:
-
拡張機能が*ツール*を登録する機能。ツールは、言語モデルによって使用されることを目的とした機能の一部です。たとえば、ファイルの Git 履歴を読み取ることができます。ツールは
lm.registerTool
メソッドを使用して登録されると、lm.tools
リスト内の他の拡張機能でもアクセスできます。これにより、共有ツールのエコシステムを介してチャット拡張機能が他の拡張機能とシームレスに統合できるようになります。 -
言語モデルがツールをサポートするためのメカニズム。たとえば、拡張機能がリクエスト時にツールを渡し、言語モデルがツールの呼び出しを要求し、拡張機能がツールの呼び出し結果を拡張機能に通知するメカニズムです。
言語モデル ツールの使用は複雑であり、この API はその複雑さを隠しません。ツールを登録したり、チャット参加者でツールを使用したりする場合は、拡張機能サンプルから始めることをお勧めします。
チャット参加者の検出¶
GitHub Copilot がユーザーの質問を処理するためにチャット参加者または参加者コマンドを自動的に選択できるようにするための API を最終化しました。詳細なチュートリアルと推奨事項については、ドキュメントを確認してください。
VS Code Speech¶
VS Code Speech 拡張機能は、Azure Speech SDKの 8 月バージョンに更新され、音声からテキストへの認識のための新しいモデルが提供されます。この更新により、Copilot チャットなどの VS Code での音声からテキストへの統合で改善された結果が得られるはずです。
コメント スレッド collapsibleState
¶
CommentThread
の展開/折りたたみ状態は、新しい CommentThread.collapsibleState
プロパティを使用して変更できます。以前は、このプロパティはコメント スレッドが最初に表示されたときにのみ尊重されていました。
ウェルカム ビューでの Codicons¶
ウェルカム ビューは、codicons をレンダリングする機能をサポートするようになりました。ウェルカム ビューで通常の $(icon-name)
を使用してこれを行うことができます。
モデル ピッカーへのチャット参加者アクセス¶
チャット ビューにあるモデル ピッカーに気付いたかもしれません。これを使用すると、チャット リクエストに使用されるモデルを選択できます。
このモデル ピッカーを使用するには、チャット参加者拡張機能が新しい 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 {
/**
* バイナリ データの MIME タイプ。
*/
readonly mimeType: string;
/**
* 参照のバイナリ データを取得します。
* @returns Uint8Array としてのバイナリ データに解決される promise。
*/
data(): Thenable<Uint8Array>;
/**
* @param mimeType バイナリ データの MIME タイプ。
* @param data 参照のバイナリ データ。
*/
constructor(mimeType: string, data: () => Thenable<Uint8Array>);
}
拡張機能の作成者は、画像がドラッグ アンド ドロップまたはクイック ピックから添付された場合は URI
、貼り付けられた画像の場合は ChatReferenceBinaryData
になる request.references
を介してチャット ハンドラーを作成した後にこれにアクセスできます。
エンジニアリング¶
LLM 用のプロンプト作成ライブラリ¶
今月、言語モデル プロンプトの作成に過去 1 年間 Copilot チャットで開発および使用してきた @vscode/prompt-tsx ライブラリをオープンソース化しました。このライブラリを使用すると、React に似た TSX/JSX 構文を使用してプロンプトを作成でき、プロンプトのトークン予算を最大限に活用するためのさまざまなツールが含まれています。
Web での AMD コードの削除と ESM の使用の拡大¶
ソースから AMD (非同期モジュール定義) の最後の痕跡を削除しました。主に、リカバリ リリースが必要な場合に AMD をサポートするために保持していたビルド スクリプトから削除しました。
さらに、https://vscode.dev も現在 100% ESM (ECMAScript モジュール) のみで実行されています。
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
への貢献:
- @Abrifq (Arda Aydın):
window.experimentalControlOverlay
のスコープをアプリケーションに変更する PR #230593 - @asemdreibati (Asem Dreibati): Iterable 名前空間の slice 関数のエッジケースを処理する (#230683) PR #232134
- @BABA983 (BABA)
- GPU ステータスを表示する開発者アクションを追加する PR #222291
- スタイル変更時にデバッグ コンソールがクリアされる問題を修正する PR #224694
- git エディターでエディターを開くことをサポートする PR #226967
- @Bistard (SIHAN LI): 修正:
||
を使用する場合、コンテキスト ビュー アンカー オプションが解除される可能性があるタイプミス PR #228896 - @cobey (Cody Beyer): mistral ai npm パッケージを追加する PR #229865
- @elias-pap (Elias Papavasileiou): 修正: 保存時にトリガーされるアクションの設定説明を改善する PR #230052
- @gjsjohnmurray (John Murray): 拡張機能のコマンド ページのメニュー コンテキスト情報を修正する (fix #229258) PR #229260
- @hamirmahal (Hamir Mahal): スタイル: 読みやすさのために文字列フォーマットを簡素化する PR #231763
- @injust (Justin Su): 「フルスクリーン モードではない」タイプミスを修正する PR #229914
- @jamesharris-garmin (James Harris): --locate-shell-integration-path で __dirname が欠落している問題を修正する PR #231423
- @jeanp413 (Jean Pierre): logOutputChannel が破棄された後に再作成されると消える問題を修正する PR #225709
- @Kaidesuyoo (Kaidesuyo): パフォーマンスの最適化 PR #230804
- @kkshinkai (Kk Shinkai): エミッター オプションで
onDidAddListener
イベントを正しくトリガーする PR #230259 - @Parasaran-Python (Parasaran): 228640: 非表示にする設定が有効な場合、プレランチ タスク ポップアップを非表示にする PR #231225
- @quiple (Minseo Lee): 韓国語フォントの優先順位を変更する PR #230195
- @r3m0t (Tomer Chachamu): 新しいテストが開始されるときのテスト結果のスクロールを修正する (fixes #229531) PR #229532
- @sandersn (Nathan Shively-Sanders): TS 拡張機能: CopilotRelated を copilot 拡張機能に登録する PR #228610
- @ShadowRZ (夜坂雅): 修正: package.json で適切なデスクトップ名を使用する PR #231472
- @trevor-scheer (Trevor Scheer): マーカー メッセージのホワイトスペース
nowrap
->pre
PR #229454 - @vietanhtwdk: スティッキー スクロールのリサイズ時に再レンダリングする PR #227400
- @yanglb (Yanblb): デコレーターに型チェックを追加する PR #230626
vscode-docs
への貢献:
- @Cecil0o0 (hj)
- @echofly: v1_94.md を更新する PR #7677
- @ghosted-sound
- @gjsjohnmurray (John Murray)
- @oleschri: 引数 --update-extensions を追加する PR #7681
- @partev: URL リダイレクトを修正する PR #7640
- @ptrptrd: ドキュメント: テーマ カラー参照の重複エントリを削除する PR #7639
- @RonakRahane: C# の新しいコード カバレッジのドキュメントを追加する Fixes #7635 PR #7664
vscode-js-debug
への貢献:
- @marcusball (Marcus Ball): 機能: websocket アドレスを検索する際に
remoteHostHeader
オプションを使用する PR #2111
vscode-languageserver-node
への貢献:
- @DanTup (Danny Tuppeny): デフォルトとアイテムごとの commitCharacters/data がどのように組み合わされるかを制御するために CompletionList "applyKind" をサポートする PR #1558
vscode-mypy
への貢献:
- @jwhitaker-gridcog (Jarrad): 最寄りの pyproject.toml または mypy.ini のディレクトリで mypy を実行する PR #316
vscode-vsce
への貢献:
- @andrewlayer: api.ts に unpublish を追加する PR #1061
- @deribaucourt (Enguerrand de Ribaucourt): 作業ディレクトリのシンボリック リンクに関する回帰を修正する PR #1053
- @dtivel (Damon Tivel):
Content-Disposition
ヘッダーのfilename
値を引用する PR #1060
language-server-protocol
への貢献:
- @asukaminato0721 (Asuka Minato)
- @DanTup (Danny Tuppeny):
completionList.itemDefaults
とcompletion
からの値がどのように組み合わされるかを決定するためにcompletionList.applyKind
をサポートする。 PR #2018 - @DavyLandman (Davy Landman): Rascal を関連する LSP 実装者セクションに追加する PR #2029
- @g-plane (Pig Fang): 句読点のタイプミスを修正する PR #2048
- @nthykier (Niels Thykier):
debputy
言語サーバーを追加する PR #2044 - @RainCmd (渴望蓝天): Rain 言語サーバーを LSP に追加する PR #2039
- @WilsonZiweiWang (ziweiwang): BitBake 言語サーバーを追加する PR #2049
- @yasmewad (Yash Mewada): Smithy 言語サーバーのリンクを LSP に追加する PR #2036
lsprotocol
への貢献:
- @nobodywasishere (Margret Riegert): README に Crystal プラグインを追加する PR #403
tolerant-php-parser
への貢献:
- @TysonAndre (Tyson Andre): 暗黙的に null 許容のパラメーターに関する php 8.4 の通知を修正する PR #410