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月リリースへようこそ。このバージョンには多くの更新があり、気に入っていただけることを願っています。主なハイライトをいくつかご紹介します。
- Copilot Edits - 複数のファイルにわたる大規模な変更を迅速に反復処理
- セカンダリサイドバーでのCopilot Chat - 作業中にCopilot Chatを開いたままにしてすぐに使えるようにする
- 複数のGitHubアカウント - VS Codeで複数のGitHubアカウントに同時にログイン
- Copilotコードレビュー - 未コミットの変更を素早く確認したり、より詳細なレビューを受けたりする
- PylanceによるDocstring - クラスやメソッドのdocstringテンプレートを生成
- プレビュー設定インジケーター - 設定エディターで実験的設定とプレビュー設定を表示
- Copilot拡張性 - VS CodeでのCopilot拡張性の紹介
これらのリリースノートをオンラインで読むには、code.visualstudio.com の Updates にアクセスしてください。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ステップで始める
-
チャットメニューからOpen Copilot Editsを選択するか、を押して編集セッションを開始します。
-
作業したいファイルをCopilotに示すために、関連ファイルを作業セットに追加します。
-
Copilotに行いたい編集について伝えるプロンプトを入力してください!例えば、
Add a simple navigation bar to all pages
やUse vitest instead of jest
などです。
Copilot Editsの詳細については、ドキュメントをご覧ください。今すぐお試しいただき、私たちのissuesを通じてフィードバックをお寄せください!
セカンダリサイドバーでのチャット
チャットビューの新しいデフォルトの場所は、セカンダリサイドバーです。セカンダリサイドバーを使用することで、ファイルエクスプローラーやソース管理など、他のビューが利用可能な状態でも、いつでもチャットを開いておくことができます。これにより、VS Codeでより統合されたAI体験を提供します。⌃⌘I (Windows、Linux Ctrl+Alt+I) のキーボードショートカットを使用すると、素早くチャットにアクセスできます。
コマンドセンターの隣に新しいチャットメニューが導入されたことで、チャット付きのセカンダリサイドバーをワンクリックで呼び出すことができるようになりました。
チャットメニューは、Copilot Chatの最も一般的なタスクにアクセスできるようにします。このメニューを非表示にしたい場合は、新しい設定 chat.commandCenter.enabled が提供されています。
注: 以前にGitHub Copilotをインストールしていた場合、以前Chatがあった場所にビューが表示され、それがより使いやすい場合は、Chatビューを以前の場所に戻すことができます。
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購読者全員に公開されています)
Copilotのフィードバックは、エディター内のコメントとして、コードの行に添付されて表示されます。可能な場合、コメントには実行可能なコードの提案が含まれており、ワンアクションで適用できます。
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に質問を再送することができます。
今月は、リクエストごとにこの検出動作をスキップできるアクションも追加しました。チャットプロンプトを入力する際のデフォルトのアクションはSend and dispatchで、これには参加者検出が含まれます。Sendを選択すると、リクエストは直接Copilot Chatに送信され、チャット参加者に自動的にディスパッチされることはありません。
chat.experimental.detectParticipant.enabled 設定を使用して、自動参加者検出を完全に無効にすることもできます。
現在のエディターコンテキストの制御
Copilot Chatは常に、現在の選択範囲または現在表示されているコードを、チャットリクエストのコンテキストとして自動的に含めてきました。大規模言語モデル (LLM) は、一般的にコンテキストの一部が関連性があるかどうかを理解するのに優れています。しかし、現在のエディターとは関係のない質問をする場合、このコンテキストを含めることが、モデルが質問を解釈する方法に影響を与える可能性があります。
現在、チャット入力に特別な添付コントロールが表示され、エディターのコンテキストに関するヒントを提供し、エディターのコンテキストを含めるかどうかを切り替えることができます。
エディターコンテキストの動作に変更はありません。アクティブなエディターに選択範囲がある場合、選択範囲のみが含まれます。それ以外の場合は、スクロールして表示されているコードのみが含まれます。クリップボタンを使用するか、チャットプロンプトに#
を入力することで、他のファイルやファイル全体を添付することもできます。
インタラクティブなワークスペースシンボルリンク
Copilot Chatの一般的な使用例は、ワークスペース内のコードに関する質問をすることです。例えば、選択したコードの新しいユニットテストを生成するために/tests
を使用したり、プロジェクト内の特定のクラスや関数を見つけるために@workspace
に質問したりできます。今回のマイルストーンでは、Copilotがチャット応答で言及するワークスペースシンボルに対して、強化されたリンクを追加しました。これらのシンボルリンクは、Copilotの応答をよりよく理解し、使用されているシンボルについてさらに学ぶのに役立ちます。
シンボルリンクは、前回のマイルストーンで追加したファイルリンクと同様に、応答内で小さな「ピル」としてレンダリングされます。シンボルについて詳しく学び始めるには、シンボルリンクを選択してそのシンボルの定義にジャンプするだけです。
シンボルリンクにカーソルを合わせると、そのシンボルがどのファイルで定義されているかを確認することもできます。
シンボルをより詳細に探索するには、シンボルリンクを右クリックして、Go to ImplementationsやGo to Referencesなどのオプションを含むコンテキストメニューを表示します。
基本的なシンボルリンクは、「定義へ移動」をサポートする任意の言語で機能するはずです。実装へ移動などのより高度なIntelliSenseオプションも、その言語のサポートを必要とします。Copilotの応答で使用されるプログラミング言語の最適なシンボルサポートを得るには、言語拡張機能をインストールしてください。
問題のホバーでCopilotアクションを使用して修正
エディターで問題にカーソルを合わせると、Copilotを使用して問題を修正するアクションが含まれるようになりました。このアクションは、修正が利用可能で、かつその修正がCopilotによって生成される問題に対して利用できます。
ワークスペースのインデックス作成
@workspace
を使用すると、現在のプロジェクトのコードについて質問できます。これは、GitHubのコード検索またはVS Codeが構築するスマートなローカルインデックスを使用して実装されています。今回のマイルストーンでは、このワークスペースインデックスがどのように使用されているかを理解できるUI要素をいくつか追加しました。
まず、新しいGitHub Copilot: Build Local Workspace indexコマンドを使用すると、現在のワークスペースのインデックス作成を明示的に開始できます。このインデックス作成は通常、@workspace
の質問を初めて行ったときに自動的に開始されます。新しいコマンドを使用すると、代わりにいつでもインデックス作成を開始できます。このコマンドは、現在最大2000ファイル(node_modules
やout
ディレクトリなどの無視されたファイルを除く)までの大規模なワークスペースのインデックス作成も有効にします。
インデックスが構築されている間、ステータスバーに進捗状況を表示するようになりました。
数百ものファイルがあるワークスペースのインデックスを作成するには、少し時間がかかります。インデックスが構築されている間に@workspace
の質問をしようとすると、Copilotは待機する代わりに、より迅速に構築できるシンプルなローカルインデックスを使用して素早く応答しようとします。このような場合、応答に警告が表示されるようになりました。
この場合、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アカウントに同時にログインできるようになりました。
複数のアカウントが必要となる可能性のあるシナリオをいくつかご紹介します。
- 設定同期にはアカウント1を使用し、GitHubプルリクエスト拡張機能にはアカウント2を使用する
- GitHub拡張機能 (プッシュ用) にはアカウント1を使用し、GitHub Copilotにはアカウント2を使用する
この機能を使用するには、ログインアクション (設定同期などの組み込み機能、または拡張機能) をトリガーするだけで、別のアカウントにログインするオプションが提供されます。この機能は、後で選択したアカウントを変更する必要がある場合に、アカウント設定クイックピックともうまく連携します。
ほとんどの機能は既存の拡張機能と連携して動作し続けるはずですが、一部の動作はまだこの複数アカウントの世界とうまく連携しない可能性があります。改善の余地があると思われる場合は、それらの拡張機能で問題を開いてください。比較的新しいvscode.authentication.getAccounts('github')
APIの助けを借りて、拡張機能は複数のアカウントを処理するための多くの権限を持っています。
アカウント設定の変更時に追加アカウントを追加
先月、アカウント設定クイックピックを導入しました。これは、何らかの理由で拡張機能に使用する優先アカウントを変更する必要がある場合に便利です。
私たちが受け取ったフィードバックの1つは、まだログインしていないアカウントを簡単に追加する方法に関するものでした。このマイルストーンでは、クイックピックにそれを可能にする新しい項目を導入しました。Use a new account...項目を使用して認証フローを開始し、そのアカウントにアカウント設定を一度に設定できます。
実験的およびプレビュー設定の設定エディターインジケーター
これまで、設定エディターを見ただけでは、どの設定が実験的またはプレビューであるかが常に明確ではありませんでした。実験的および今後登場する機能を強調するため、設定エディターでは実験的設定とプレビュー設定の横にインジケーターが表示されるようになりました。設定エディターの検索ボックスに@tag:experimental
または@tag:preview
と入力すると、それに応じて設定をフィルタリングできます。
拡張機能の作成者は、設定に「experimental」または「preview」タグを追加して、設定エディターに該当するインジケーターを表示できます。
テーマ: Light Pink (vscode.devでプレビュー)
プロファイルのアイコンを増やす
今回、プロファイル用のアイコンをさらに追加しました。プロファイルをカスタマイズするために、より幅広いアイコンから選択できるようになりました。
パネル内のビューアイコン
Workbenchのパネル領域では、ビューは通常、タイトルバーにラベルとして表示されます (例: TERMINAL または OUTPUT)。しかし、小さい画面では、これらのラベルが利用可能なスペースを超過し、一部のビューがドロップダウンメニューにオーバーフローする原因となることがあります。
これに対処するため、新しい設定workbench.panel.showLabelsを追加しました。これを無効にすると、ビューはラベルの代わりにアイコンとして表示され、横方向のスペースを節約し、オーバーフローを減らします。
workbench.panel.showLabels: true
workbench.panel.showLabels: false
エディター
出現箇所の強調表示遅延
今回のマイルストーンでは、エディターで出現箇所が強調表示されるまでの遅延を制御できる設定editor.occurrencesHighlightDelayを導入しました。この遅延値を下げると、セマンティックハイライトを使用する際に、より応答性の高いエディターエクスペリエンスが得られます。
Web 用 VS Code
Web版VS Codeがローカルファイルイベントをサポート
ChromeまたはEdgeバージョン129以降を使用している場合、ローカルフォルダーでhttps://insiders.vscode.devを開くと、ファイルイベントがサポートされるようになりました。開いているワークスペースのファイルやフォルダーをブラウザー外で変更した場合、これらの変更はブラウザー内に即座に反映されます。
この機能は、Webの新しいAPIとして提案されている新しいFileSystemObserver
インターフェースを活用しています。
拡張機能への貢献
Copilot拡張機能の紹介
今回のマイルストーンでは、チームはVS CodeにおけるCopilot拡張性を紹介するいくつかの拡張機能の構築に取り組みました。これらの拡張機能は、以下の機能を示しています。
- チャット参加者およびツールAPI
- prompt-tsx
- GitHub 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を検索できます。
issueを表示する際、@githubpr
はMarkdownテーブルを表示し、検索に基づいて表示する最適な列を選択しようとします。
Copilotによる要約と修正
問題ビューにリストされている各issueには、選択したissueを要約しチャットパネルを開く新しいアクションSummarize With Copilotが追加されました。また、選択したissueを要約し、ワークスペースコンテキストを使用して修正を提案する別の新しいアクションFix With Copilotも追加しました。
Copilotによる通知の優先順位付け (実験的)
今回のマイルストーンでは、リポジトリを横断する未読通知をリスト表示する実験的な通知ビューを追加しました。デフォルトでは、通知は最終更新日の降順でソートされますが、ビュータイトルの...
メニューからCopilotを使用して優先度でソートアクションを使用して、Copilotに通知の優先順位付けをさせることができます。各通知を選択すると、Copilotを使用して通知を要約するアクションがトリガーされます。このビューには、通知を既読にする、またはGitHub.comで通知を開くための簡単にアクセスできるアクションも含まれています。
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?
のように手動で呼び出すことができます。
チャットツール
この拡張機能は#websearch
チャット言語モデルツールも提供します。これは参加者と似ていますが、他のチャット参加者でウェブからのコンテキストを提供するのに役立ちます。例えば、
@workspace /new #websearch 最も人気のあるフレームワークを使用してPythonで書かれた新しいWebアプリを作成
さらに、独自のチャット参加者またはツールを開発している場合、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キーを使用して、チャットビューで画像添付フローを体験できます。クリップボードから画像を簡単に添付したり、チャットに直接ドラッグしたりして開始できます。
テーマ: Sapphire (vscode.devでプレビュー)
クイックフィックス付きVision
さらに、提供されたコードアクションを使用して、Markdown、HTML、JSX、またはTSXドキュメント内の画像の代替テキストを生成または修正できるため、より良いコンテキストとアクセシビリティのために記述テキストを組み込むプロセスが簡素化されます。代替テキストのクイックフィックスは、ワークスペース内の画像と画像URLで機能します。
この拡張機能は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と静的解析の両方の良いところ取りができるようになりました!この機能には、PylanceとGitHub Copilotの両方の拡張機能が必要です。試すには、抽象クラスを継承するクラスを定義する際に、Implement all inherited abstract classes with Copilotコードアクションを選択できます。
ユーザー設定で"python.analysis.aiCodeActions": {"implementAbstractClasses": false}
と設定することで、この機能を無効にできます。
拡張機能の作成
言語モデル用ツール
LanguageModelTool
APIが完成しました!このAPIにより、チャット拡張機能は言語モデルを外部データソースに接続したり、アクションを実行したりすることで、より強力なエクスペリエンスを構築できます。APIには主に2つの部分があります。
-
拡張機能がツールを登録する機能。ツールとは、言語モデルによって使用されることを意図した機能の一部です。例えば、ファイルのGit履歴の読み取りなどです。ツールが
lm.registerTool
メソッドを使用して登録されると、lm.tools
リスト内の他の拡張機能からもアクセスできます。これにより、チャット拡張機能は共有ツールのエコシステムを介して他の拡張機能とシームレスに統合できるようになります。 -
言語モデルがツールをサポートするメカニズム。例えば、拡張機能がリクエストを行う際にツールを渡す、言語モデルがツール呼び出しを要求する、拡張機能がツール呼び出しの結果を返すといったものです。
言語モデルツールの使用は複雑であり、この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)
を使用することで実行できます。
チャット参加者のモデルピッカーへのアクセス
チャットビューに、チャットリクエストに使用されるモデルを選択できるモデルピッカーがあることにお気づきかもしれません。
このモデルピッカーを使用するには、チャット参加者拡張機能が新しい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
への貢献者
- @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): 「in none full screen mode」のタイプミスを修正 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: docs: テーマカラーリファレンス内の重複エントリを削除 PR #7639
- @RonakRahane: C#の新しいコードカバレッジに関するドキュメントを追加 Fixes #7635 PR #7664
vscode-js-debug
への貢献者
- @marcusball (Marcus Ball): feat: WebSocketアドレスを検索する際に
remoteHostHeader
オプションを使用する PR #2111
vscode-languageserver-node
への貢献者
- @DanTup (Danny Tuppeny): CompletionList "applyKind" のサポートを追加し、デフォルト値と項目ごとのcommitCharacters/dataの組み合わせ方を制御する 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.applyKind
のサポートを追加し、completionList.itemDefaults
とcompletion
からの値がどのように結合されるかを決定する PR #2018 - @DavyLandman (Davy Landman): 関連するLSP実装者セクションにRascalを追加 PR #2029
- @g-plane (Pig Fang): 句読点のタイプミスを修正 PR #2048
- @nthykier (Niels Thykier):
debputy
言語サーバーを追加 PR #2044 - @RainCmd (渴望蓝天): LSPにRain言語サーバーを追加 PR #2039
- @WilsonZiweiWang (ziweiwang): BitBake言語サーバーを追加 PR #2049
- @yasmewad (Yash Mewada): LSPにSmithy言語サーバーのリンクを追加 PR #2036
lsprotocol
への貢献
- @nobodywasishere (Margret Riegert): READMEにCrystalプラグインを追加 PR #403
tolerant-php-parser
への貢献
- @TysonAndre (Tyson Andre): PHP 8.4の暗黙的にnull許容されるパラメーターに関する通知を修正 PR #410