VSCode1.100のリリースノート(日本語訳)

JavaScriptを有効にしてください

まえがき

VSCode1.100のリリースノートをChatGPTで日本語に翻訳しました。
VSCode 1.100 Release Notes

最新のVSCode1.102のリリースノートの日本語訳は下記をお読みください。
VSCode1.102のリリースノート(日本語訳)

2025年4月 (バージョン 1.100)

リリース日: 2025年5月8日
更新: VS Code StableでNext Edit Suggestions (NES)をデフォルトで有効にしました(詳細… )。
更新 1.100.1: この更新はこれらのセキュリティ問題 に対処します。
更新 1.100.2: この更新はこれらの問題 に対処します。
更新 1.100.3: この更新はこれらの問題 に対処します。

Visual Studio Codeの2025年4月リリースへようこそ。このバージョンには多くの更新があり、いくつかの主要なハイライトは以下の通りです。

Chat

カスタム指示と再利用可能なプロンプト(詳細… )。
GitHub、拡張機能、ノートブック用のツールを使用したよりスマートな結果(詳細… )。
MCPのための画像とストリーム可能なHTTPサポート(詳細… )。

Chatのパフォーマンス

繰り返しのチャットリクエストに対するより速い応答(詳細… )。
エージェントモードでのより速い編集(詳細… )。

エディター体験

チャットとエディターのためのマルチウィンドウサポートの改善(詳細… )。
ステージされた変更がより簡単に識別可能に(詳細… )。

Chat

プロンプトと指示ファイル

Markdownベースの指示とプロンプトファイルを使用して、VS CodeでのAI体験を特定のコーディングプラクティスや技術スタックに合わせてカスタマイズできます。これらの2つの関連する概念の実装と使用を整合させましたが、それぞれには異なる目的があります。

指示ファイル

設定: chat.instructionsFilesLocations
指示ファイル(カスタム指示またはルールとも呼ばれる)は、Markdownファイル内でAIモデルのための一般的なガイドラインやコンテキストを記述する方法を提供します。例えば、コードスタイルルールや使用するフレームワークなどです。指示ファイルは独立したチャットリクエストではなく、チャットリクエストに適用できるコンテキストを提供します。
指示ファイルは.instructions.mdファイル拡張子を使用します。これらはユーザーデータフォルダーまたはワークスペースに配置できます。 chat.instructionsFilesLocations 設定は指示ファイルを含むフォルダーをリストします。
指示を特定のチャットリクエストに手動で添付することも、自動的に追加することもできます。

手動で追加するには、ChatビューのAdd Contextボタンを使用し、次にInstructions...を選択します。
または、コマンドパレットからChat: Attach Instructions...コマンドを使用します。これにより、既存の指示ファイルを選択するか、新しいものを作成して添付することができます。

プロンプトに指示を自動的に追加するには、指示ファイルにapplyToフロントマターヘッダーを追加して、指示が適用されるファイルを示します。チャットリクエストに指定されたグロブパターンに一致するファイルが含まれている場合、指示ファイルは自動的に添付されます。
以下の例は、TypeScriptファイル用の指示を提供します(applyTo: '**/*.ts'):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
---
applyTo: '**/*.ts'
---
複数行ブロックのために中括弧を別の行に配置します:
if (condition)
{
  doSomething();
}
else
{
  doSomethingElse();
}

Chat: New Instructions File...コマンドを使用して指示ファイルを作成できます。さらに、ユーザーデータフォルダーに作成されたファイルは、Settings Syncサービスを通じて複数のユーザーマシン間で自動的に同期できます。Backup and Sync Settings...ダイアログでPrompts and Instructionsオプションを確認してください。
指示ファイル についての詳細は、ドキュメントをご覧ください。

プロンプトファイル

設定: chat.promptFilesLocations
プロンプトファイルは、プロンプトテキスト、チャットモード、および使用するツールを含む、独立した完全なチャットリクエストを記述します。プロンプトファイルは、一般的なタスクのための再利用可能なチャットリクエストを作成するのに役立ちます。例えば、フロントエンドコンポーネントを作成するためのプロンプトファイルを追加したり、セキュリティレビューを実行したりできます。
プロンプトファイルは.prompt.mdファイル拡張子を使用します。これらはユーザーデータフォルダーまたはワークスペースに配置できます。 chat.promptFilesLocations 設定はプロンプトファイルが検索されるフォルダーをリストします。
プロンプトファイルを実行する方法はいくつかあります:

チャット入力フィールドに/を入力し、続けてプロンプトファイル名を入力します。

エディターでプロンプトファイルを開き、エディターツールバーのPlayボタンを押します。これにより、プロンプトを迅速に反復し、Chatビューに戻ることなく実行できます。

コマンドパレットからChat: Run Prompt File...コマンドを使用します。

プロンプトファイルには、実行方法を示すための以下のフロントマターメタデータヘッダーを含めることができます:

mode: プロンプトを呼び出すときに使用するチャットモード(askedit、またはagentモード)。
tools: モードがagentの場合、プロンプトに利用可能なツールのリスト。

以下の例は、エージェントモードで実行され、一連のツールを使用できるリリースノートを生成するためのプロンプトファイルを示しています:

1
2
3
4
5
---
mode: 'agent'
tools: ['getCurrentMilestone', 'getReleaseFeatures', 'file_search', 'semantic_search', 'read_file', 'insert_edit_into_file', 'create_file', 'replace_string_in_file', 'fetch_webpage', 'vscode_search_extensions_internal']
---
現在のリリースで作業した機能のリリースノートを生成し、それらをリリースノートファイルに更新します。[リリースノート作成指示ファイル](.github/instructions/release-notes-writing.instructions.md)をガイドとして使用します。

プロンプトファイルを作成するには、コマンドパレットからChat: New Prompt File...コマンドを使用します。
プロンプトファイル についての詳細は、ドキュメントをご覧ください。

改善点と注意事項

指示ファイルとプロンプトファイルには、それぞれの言語IDがあり、開いているファイルの言語モードダイアログで設定可能です(それぞれPromptInstructions)。これにより、例えば、保存する前に一時的なプロンプトファイルとして無題のドキュメントを使用することができます。
Chat: Use PromptコマンドをChat: Run Promptに名前を変更しました。さらに、このコマンドは選択したプロンプトをすぐに実行し、以前のようにチャットコンテキストとして添付するのではなくなりました。
両方のファイルタイプは、ヘッダーにdescriptionメタデータをサポートし、短くてユーザーフレンドリーなプロンプトの要約を提供します。将来的には、このヘッダーはapplyToヘッダーと共に使用され、チャットリクエストに自動的に含める必要があるかどうかを判断するルールとして計画されています(例: description: 'TypeScriptで書かれたフロントエンドコンポーネントのコードスタイルルール')。

より速いエージェントモード編集

エージェントモードでOpenAIのapply patch編集フォーマット(GPT 4.1o4-mini)およびAnthropicのreplace stringツール(Claude Sonnet 3.73.5)のサポートを実装しました。これにより、特に大きなファイルでの編集が大幅に速くなります。
OpenAIモデルの更新は、VS Code Insidersでデフォルトで有効になっており、Stableに段階的に展開されています。Anthropicの更新は、StableとInsidersのすべてのユーザーに利用可能です。

チャットでのベースモデル

VS CodeのチャットでデフォルトのベースモデルとしてGPT-4.1を段階的に展開しています。チャットビューのモデルスイッチャーを使用して、いつでも別のモデルに変更できます。

#githubRepoツールを使用してGitHubリポジトリのコードを検索

GitHubリポジトリについて質問する必要があるが、エディターで開いていない場合を想像してください。例えば、microsoft/vscodeリポジトリで特定の関数がどのように実装されているかを知りたい場合です。
今では、アクセス権のある任意のGitHubリポジトリでコードスニペットを検索するために#githubRepoツールを使用できます。このツールは、追加の入力としてuser/repoを受け取ります。例えば、“how to implement factory pattern in TS #githubRepo microsoft/vscode”。
また、カスタム指示 を使用して、このツールをいつどのように使用するかを示唆することもできます。以下の例のように:

1
2
3
4
5
---
applyTo: '**'
---
VS Codeのコードベースで関連するコードスニペットを見つけるために`#githubRepo`ツールを`microsoft/vscode`で使用します。
TypeScriptがどのように実装されているかについて質問するために`#githubRepo`ツールを`microsoft/typescript`で使用します。

現在作業中のリポジトリについて質問したい場合は、#codebaseツール を使用するだけです。
また、#githubRepoツールは関連するコードスニペットを検索するためだけのものです。GitHub MCPサーバー は、GitHubの問題やプルリクエストを扱うためのツールを提供します。VS CodeでのMCPサーバーの追加 についての詳細を学びましょう。

拡張機能ツールでMarketplaceの拡張機能を見つける

チャットで拡張機能ツール(#extensions)を使用してMarketplaceから拡張機能を見つけます。チャットプロンプトに基づいて、ツールは自動的に呼び出されるか、プロンプトで#extensionsを使用して明示的に参照できます。ツールはクエリに一致する拡張機能のリストを返します。結果から直接拡張機能をインストールできます。

ウェブページ取得ツールの改善

先月、チャットからウェブページの内容を取得し、プロンプトのコンテキストとして含めるための取得ツール(#fetch)を導入しました。そのリリースノートを見逃した場合は、取得ツールの初期リリース のリリースノートと例を確認してください。
この反復では、ツールにいくつかの大きな変更を加えました:

ページ全体をコンテキストとして: 以前はページの一部をコンテキストとして追加していましたが、今ではページ全体を追加します。より大きなコンテキストウィンドウを使用することで、モデルにページ全体を提供することができます。例えば、ページの可能な限り多くを必要とする要約質問をすることが可能になりました。コンテキストウィンドウを埋めることができた場合、取得ツールはページのあまり関連性のないセクションを除外するのに賢明です。これにより、コンテキストウィンドウの制限を超えずに重要な部分を保持できます。
標準化されたページフォーマット(Markdown): 以前は、取得したウェブページをカスタムの階層フォーマットでフォーマットしていましたが、そのカスタム性のために扱いにくいことがありました。今では、取得したウェブページをMarkdownという標準化された言語に変換します。これにより、関連性検出の信頼性が向上し、ほとんどの言語モデルが深く理解しているフォーマットであるため、より簡単に扱うことができます。

取得ツールの使用方法や、追加してほしい機能があればお知らせください!

チャット入力の改善

チャット入力ボックスにいくつかの改善を加えました:

添付ファイル: プロンプトテキストで#を使用してコンテキストを参照すると、それらが添付ピルとしても表示されるようになりました。これにより、言語モデルに送信される内容を理解しやすくなります。
コンテキストピッカー: ファイル、フォルダー、その他の添付タイプを選択するためのコンテキストピッカーを簡素化しました。
完了ボタン: “完了"ボタンについてのフィードバックを受け取り、削除しました!予期しないセッション終了についての混乱はもうありません。新しいチャットを作成する(Ctrl+N)ときにのみ新しいセッションを開始します。

チャットモードのキーボードショートカット

キーボードショートカットCtrl+Alt+Iは引き続きチャットビューを開くだけですが、Ctrl+Shift+Iショートカットはチャットビューを開き、エージェントモード に切り替えます。他のチャットモードのためにキーボードショートカットを設定したい場合は、各モードにコマンドがあります:

workbench.action.chat.openAgent
workbench.action.chat.openEdit
workbench.action.chat.openAsk

エージェントモード編集からの自動修正診断

設定: github.copilot.chat.agent.autoFix
エージェントモードでのファイル編集が新しいエラーを導入した場合、エージェントモードはそれらを検出し、自動的にフォローアップ編集を提案できます。これにより、エージェントモードにエラーを修正するようにフォローアッププロンプトを送信する必要がなくなります。この動作は github.copilot.chat.agent.autoFix で無効にできます。

エージェントモードでの元に戻すと手動編集の処理

以前は、エージェントモードセッション中に手動で編集を行うと、モデルが混乱する可能性がありました。今では、エージェントは変更についてプロンプトされ、必要に応じてファイルを再読み込みし、変更された可能性のあるファイルを編集する前に再確認します。

会話の要約とプロンプトキャッシュ

プロンプトキャッシュを最適化するために、エージェントモードプロンプトの構築方法を変更しました。プロンプトキャッシュは、プロンプトの安定したプレフィックスを維持することでモデルの応答を高速化する方法です。次のリクエストはそのプレフィックスから再開でき、その結果、各リクエストが少し速くなります。これは、通常エージェントモードでの大きなコンテキストを持つ繰り返しの一連のリクエストで特に効果的です。
会話が長くなったり、コンテキストが非常に大きくなったりすると、エージェントモードセッションで"要約された会話履歴"メッセージが表示されることがあります:

キャッシュを壊すことなく、会話全体をFIFOとして保持する代わりに、これまでの会話を最も重要な情報とタスクの現在の状態の要約に圧縮します。これにより、プロンプトプレフィックスが安定し、応答が速くなります。

ストリーム可能なHTTPのためのMCPサポート

このリリースでは、モデルコンテキストプロトコルサーバーのための新しいストリーム可能なHTTPトランスポートのサポートを追加しました。ストリーム可能なHTTPサーバーは、既存のSSEサーバーと同様に構成され、私たちの実装はSSEサーバーとの互換性があります:

1
2
3
4
5
6
7
{
  "servers": {
    "my-mcp-server": {
      "url": "http://localhost:3000/mcp"
    }
  }
}

VS CodeでのMCPサポート についての詳細を学びましょう。

画像出力のためのMCPサポート

ツール出力の一部として画像を生成するMCPサーバーをサポートするようになりました。
すべての言語モデルがツール出力から画像を読み取ることをサポートしているわけではないことに注意してください。例えば、GPT-4.1はビジョン機能を持っていますが、現在ツールからの画像の読み取りをサポートしていません。

MCPサーバーからの入力、出力、および進行状況の強化

MCPサーバーツールの入力と出力を表示するUIを強化し、MCPの新しい進行状況メッセージのサポートも追加しました。

MCP構成生成が入力を使用

秘密を安全に保つために、MCP: Add Serverコマンドによって生成されたAI支援構成は、結果の構成にインライン化するのではなく、秘密のための入力を生成するようになりました。

インラインチャットV2(プレビュー)

設定: inlineChat.enableV2
インラインチャットCtrl+Iの改良版に取り組んでいます。そのテーマは引き続き"チャットをコードに取り込む"ですが、内部ではチャット編集と同じロジックを使用しています。これにより、利用可能なコンテキストのより良い利用と、より良いコード編集戦略が実現します。 inlineChat.enableV2 を介してインラインチャットv2を有効にできます。
さらに、オプションで有効にできるより軽量なUXがあります。 inlineChat.hideOnRequest 設定を使用すると、インラインチャットはリクエストが行われるとすぐに非表示になります。その後、チャット編集オーバーレイに最小化され、変更の受け入れまたは破棄、またはインラインチャットコントロールの復元が可能になります。

チャットにUI要素を選択して添付(実験的)

設定: chat.sendElementsToChat.enabled
Webアプリケーションを開発しているときに、特定のウェブページのUI要素についてチャットに質問したい場合があります。組み込みのSimple Browserを使用して、UI要素をチャットのコンテキストとして添付できるようになりました。
組み込みのSimple Browserを使用して任意のローカルホストサイトを開いた後(Simple Browser: Showコマンドで起動)、新しいツールバーが表示され、サイト内の任意の要素を選択するためのStartを選択できます。これにより、選択した要素のスクリーンショットとHTMLおよびCSSが添付されます。

チャットに添付する内容を設定します:

chat.sendElementsToChat.attachCSS : 関連するCSSの添付を有効または無効にします
chat.sendElementsToChat.attachImages : 選択した要素のスクリーンショットの添付を有効または無効にします

この実験的機能はすべてのSimple Browserでデフォルトで有効になっていますが、 chat.sendElementsToChat.enabled で無効にできます。

エージェントモードでタスクを作成して起動(実験的)

設定: github.copilot.chat.newWorkspaceCreation.enabled
前回のリリースで、エージェントモードでのワークスペース作成を有効にするための github.copilot.chat.newWorkspaceCreation.enabled (実験的)設定を導入しました。
今では、この作成フローの最後に、アプリまたはプロジェクトを起動するためのタスクを作成して実行するように求められます。これにより、プロジェクトの起動プロセスが簡素化され、タスクの再利用が容易になります。

アクセシビリティ

マージエディターの改善

マージエディターがよりアクセシブルになりました。利用可能なアクションについて学ぶには、マージエディター内でアクセシビリティヘルプダイアログを開きます(Alt+F1)。主要なアクションには、Merge Editor: Complete MergeCtrl+Enter)とToggle Between Merge Editor InputsCtrl+Shift+T)があります。現在フォーカスされている入力も支援技術に発表されるようになりました。

次の編集提案の強化

新しい設定 accessibility.signals.nextEditSuggestion は、予測された提案が利用可能なときに通知します。アクセシブルビュー(Alt+F2)を通じて提案を確認して受け入れることができます。さらに、 accessibility.signals.diffLineInserted accessibility.signals.diffLineDeleted は、ナビゲーション中にオーディオキューを提供し、差分レビューをアクセシブルにします。

アクセシブルビューからのCopilotユーザーリクエストのレビュー

エージェントモード では、ツールの呼び出しやターミナルコマンドが実行するためにユーザーの許可を必要とすることがあります。これらのアクションをアクセシブルビュー(Alt+F2)でレビューします。

ユニークなアクセシビリティサウンド

accessibility.signals.save は、独自の音を持ち、 accessibility.signals.terminalCommandSucceeded とオーディオを共有しなくなりました。

エディター体験

フローティングウィンドウモード

VS Codeのフローティングウィンドウを使用すると、エディターや特定のビューをメインウィンドウから小さなウィンドウに移動して、軽量なマルチウィンドウセットアップを行うことができます。フローティングウィンドウには2つの新しいモードがあります:

コンパクト: 実際のコンテンツのために特定のUI要素を非表示にします
常に最前面: このモードを離れるまでウィンドウが他のすべてのウィンドウの上に表示され続けます

フローティングエディターウィンドウをコンパクトモードに切り替える方法の例を示します:

新しいウィンドウでチャットを作成するときにデフォルトでコンパクトモードを使用します。ウィンドウを常に最前面にするオプションと組み合わせることで、質問をするためにチャットビューを常に保持できます!

これらのアクションのためにキーボードショートカットを使用することを好む場合、新しいコマンドを導入しました:

workbench.action.toggleWindowAlwaysOnTop: 常に最前面モードを切り替える
workbench.action.enableWindowAlwaysOnTop: フローティングウィンドウを常に最前面に設定する
workbench.action.disableWindowAlwaysOnTop: フローティングウィンドウを通常に設定する
workbench.action.toggleCompactAuxiliaryWindow: コンパクトモードを切り替える
workbench.action.enableCompactAuxiliaryWindow: コンパクトモードを有効にする
workbench.action.disableCompactAuxiliaryWindow: コンパクトモードを無効にする

注意: コンパクトモードでも複雑なエディターのレイアウトを作成し、他のエディターを開くことができます。

セカンダリーサイドバーのデフォルトの可視性

設定: workbench.secondarySideBar.defaultVisibility
デフォルトでは、新しいワークスペースやウィンドウを開くときにセカンダリーサイドバーは非表示になります。新しい設定 workbench.secondarySideBar.defaultVisibility を使用して、新しいワークスペースやウィンドウでセカンダリーサイドバーを自動的に開くかどうかを制御できます。以下から選択できます:

非表示: これはデフォルトで、セカンダリーサイドバーを非表示に保ちます
ワークスペースで表示: フォルダーやマルチルートワークスペースを開くとセカンダリーサイドバーが開きます
表示: 常にセカンダリーサイドバーを開きます

ワークスペースやウィンドウが開かれた後、可視性はワークスペースの状態となり、設定値を上書きします。セカンダリーサイドバーを閉じると、そのワークスペースやウィンドウでは閉じたままになります。

拡張機能署名検証の必須化

拡張機能の署名検証がすべてのプラットフォームで必須になりました: Windows、macOS、Linux。以前は、この検証はWindowsとmacOSでのみ必須でした。このリリースでは、Linuxでも拡張機能の署名検証が強制され、すべての拡張機能がインストール前に適切に検証されることを保証します。
この変更により、潜在的に悪意のある拡張機能のインストールを防ぐことでセキュリティがさらに強化されます。詳細については、拡張機能の署名 を参照してください。
注意: Linux ARM32ビルドでは、issue #248308 のため、拡張機能署名検証の必須化は無効のままです。これは次のリリースで解決される予定です。

悪意のある拡張機能のための詳細リンク

拡張機能が悪意のあるものとして識別された場合、VS Codeはその拡張機能がフラグ付けされた理由を説明する追加情報へのリンクを提供します。これらの"詳細"リンクは、セキュリティ上の懸念に関する詳細を含むGitHubの問題やドキュメントにユーザーを接続し、潜在的なリスクをよりよく理解するのに役立ちます。

VS Code StableでのCopilot Chatプレリリースバージョンのインストールを防止

VS Codeは、VS Code StableでのCopilot Chat拡張機能のプレリリースバージョンのインストールを防止するようになりました。これにより、誤ってCopilot Chatプレリリースバージョンをインストールして壊れた状態に陥る状況を回避できます。これにより、VS CodeのInsidersビルドでのみCopilot Chat拡張機能のプレリリースバージョンをインストールできます。

フォーカスなしでビューを開くコマンド

ビュー(ツリービューとWebビュー)は、フォーカスせずに開くことができるようになりました。これは、ビューを開きたいが現在のエディターからフォーカスを奪いたくない拡張機能やキーボードショートカットに役立ちます。コマンドはyour-view-id.openで、プロパティバッグ引数を取ります: { preserveFocus: boolean}

キーワード提案を使用したセマンティックテキスト検索(実験的)

設定: github.copilot.chat.search.keywordSuggestions
バージョン1.101 search.searchView.keywordSuggestions に変更されました
セマンティックテキスト検索は、AIによるキーワード提案をサポートするようになりました。この機能を有効にすると、探しているコードを見つけるのに役立つ関連する参照や定義が表示され始めます。

コード編集

新しい次の編集提案(NES)モデル

設定: github.copilot.nextEditSuggestions.enabled
より速く、よりコンテキストに関連するコード推奨を提供するために設計された新しいモデルを導入しました。この更新されたモデルは、パフォーマンスを向上させ、遅延を減らして提案を提供し、最近の編集とより密接に一致する提案を提供します。この更新は、Visual Studio Code内でのAI支援開発ツールの改善に向けた継続的な取り組みの一環です。

インポート提案

設定: github.copilot.nextEditSuggestions.fixes
次の編集提案(NES)は、JavaScriptおよびTypeScriptファイルで不足しているインポート文を自動的に追加することを提案できるようになりました。この機能を有効にするには、 github.copilot.nextEditSuggestions.fixes を設定します。将来的には、他の言語からのインポートをサポートすることで、この機能をさらに強化する予定です。

次の編集提案(NES)がデフォルトで有効

次の編集提案は、VS Code Insidersでデフォルトで有効になっており、Stableに段階的に展開しています。

HTMLまたはMarkdownでのaltテキストの生成

HTMLおよびMarkdownファイルで既存のaltテキストを生成または更新できるようになりました。埋め込み画像を含む任意の行に移動し、Ctrl+.または電球アイコンを選択してクイックフィックスをトリガーします。

ノートブック

検索と置換履歴の永続化

ノートブック検索コントロールは、検索および置換入力フィールドの永続的な履歴をサポートするようになりました。これはリロードを超えて永続化され、設定 editor.find.history および editor.find.replaceHistory によって制御されます。

チャットへのセル出力のドラッグアンドドロップ

チャット内でのセル出力の使用を強化するために、出力をチャットビューにドラッグしてシームレスな添付体験を提供できるようになりました。現在、画像およびテキスト出力のみがサポートされています。画像のMIMEタイプを持つ出力は直接ドラッグ可能ですが、テキスト選択と競合しないようにするために、テキスト出力はドラッグを有効にするためにalt修飾キーを保持する必要があります。今後のリリースでUXの改善を検討しています。

エージェントモードのためのノートブックツール

セルの実行

チャットにはノートブックセルを実行するためのLLMツールがあり、エージェントがセルの実行結果に基づいて更新を行ったり、ノートブックを構築する際に独自のデータ探索を行ったりできます。

カーネル状態の取得

エージェントは、現在のカーネルセッションでどのセルが実行されたかを確認し、Kernel Stateツールを使用してアクティブな変数を読み取ることができます。

パッケージのリスト/インストール

Jupyter拡張機能は、ノートブックのカーネルとして使用されている環境にパッケージをリストおよびインストールするためのツールを提供します。操作は、利用可能な場合はPython Environments拡張機能に委任されます。そうでない場合は、pipパッケージマネージャーを使用しようとします。

ソースコントロール

ステージされた変更のためのクイックディフ装飾

長年の機能リクエストに応えるために、このマイルストーンではステージされた変更のためのクイックディフエディター装飾を追加しました。これで、ソースコントロールビューを開かずに、エディターから直接ステージされた変更を表示できます。

ステージされた変更のクイックディフ装飾の色をカスタマイズするには、次のテーマトークンを使用します: editorGutter.addedSecondaryBackgroundeditorGutter.modifiedSecondaryBackgroundeditorGutter.deletedSecondaryBackground
ステージされた変更のクイックディフ装飾を表示したくない場合は、エディターガターコンテキストメニューで利用可能なDiff Decorationsサブメニューを使用して非表示にできます。

デバッグ

アセンブリビューコンテキストメニュー

コミュニティの貢献により、アセンブリビューにコンテキストメニューが追加されました。

JavaScriptデバッガーネットワークビュー

最近のNode.jsバージョンは、ネットワークデバッグ機能を強化しました。実験的なネットワークビュー は、サポートが十分な最近のNode.jsバージョン(v22.14.0以上)でデフォルトで有効になります。

言語

CSSとHTMLのブラウザサポートを表示

CSSプロパティ、HTML要素、またはHTML属性にホバーすると、そのプロパティまたは要素がブラウザ全体でどの程度サポートされているかの概要が表示されます。Baseline を使用しています。

.*.envファイルのデフォルトの構文ハイライト

名前形式が.*.envのファイルは、.iniファイルとして構文ハイライトされるようになりました。

JavaScriptとTypeScriptのための展開可能なホバー(実験的)

設定: typescript.experimental.expandableHover
JavaScriptとTypeScriptのための展開可能なホバーフィーチャーを引き続き反復しています。この機能を使用すると、ホバーコントロールで+-を使用して、より多くまたは少ない型情報を表示できます。

この機能はまだ実験的ですが、 typescript.experimental.expandableHover を有効にすることで今日試すことができます。TypeScriptバージョン5.9以上を使用している必要があります。例えば、TypeScript nightly extension をインストールすることで試すことができます。

リモート開発

リモート開発拡張機能 を使用すると、Dev Container 、SSH経由のリモートマシンまたはRemote Tunnels 、またはWindows Subsystem for Linux (WSL)をフル機能の開発環境として使用できます。

Devコンテナ指示ファイル

Devコンテナの機能とイメージには、ツールと構成を説明する指示ファイルが含まれるようになりました。VS Codeチャットはこのコンテキストを自動的に使用し、開発中の提案の関連性と精度を向上させます。

拡張機能への貢献

Python

ブランチカバレッジサポート

Pythonのためのテストエクスプローラーでブランチカバレッジがサポートされるようになりました!この機能を使用するには、coveragepyバージョンが>= 7.7である必要があります。pip install coverage==7.7を実行してcoverageをアップグレードできます。

Python Environmentsクイック作成コマンド

Python Environments 拡張機能は、クイック作成のサポートを追加し、環境作成プロセスをよりシームレスにしました。クイック作成は、最新のPythonバージョンを検出して新しい仮想環境を作成し、ワークスペースの依存関係をワンクリックでインストールすることで、必要な入力を最小限に抑えます。これにより、venvベースの環境のためにワークスペースに.venvを作成し、condaベースの環境のために.condaを作成します。コマンドパレットのPython: Create Environmentコマンドを通じてクイック作成にアクセスできます。

Python Environmentsチャットツール

Python Environments 拡張機能(プレビュー)には、“Get Python Environment Information"と"Install Python Package"の2つのチャットツールが含まれるようになりました。これらのツールを使用するには、プロンプトで直接#pythonGetEnvironmentInfo #pythonInstallPackageを追加して参照するか、エージェントモードが適用される場合に自動的にツールを呼び出します。これらのツールは、ファイルまたはワークスペースのコンテキストに基づいて適切な環境情報をシームレスに検出し、正確な環境解決でパッケージのインストールを処理します。

Pylanceを使用したときのカラーピッカー

Pylanceは、Pythonファイル内の認識された色値のためにエディターにインタラクティブなカラースウォッチを直接表示できるようになりました。これにより、色を視覚化して即座に選択することが容易になります。試してみるには、 python.analysis.enableColorPicker を有効にできます。サポートされている形式には#RGB(例: "#001122")と#RGBA(例: "#001122FF")が含まれます。

AIコードアクション: フォーマット文字列の変換(実験的)

Pylanceを使用している場合、文字列の連結をf-stringまたはformat()に変換するための新しい実験的なAIコードアクションがあります。試してみるには、変換したい文字列のシンボルを選択したときに、Convert to f-string with CopilotまたはConvert to format() call with Copilotコードアクションを電球を通じて選択するか、Ctrl + ./Cmd + .を使用します。

この体験は次の設定を介して有効になります:

1
"python.analysis.aiCodeActions": {"convertFormatString": true}

GitHubプルリクエストと問題

GitHubプルリクエスト 拡張機能のさらなる進展があり、プルリクエストと問題の作業、作成、管理を可能にします。新機能には以下が含まれます:

アクティブなプルリクエストについてチャットで質問する、例えば"Address all comments in the #activePullRequest”。
プルリクエストと同様にウェブビューで問題を表示します。
“Pull Requests”、“Issues”、“Notifications"ビューのポリッシュと整合性。
GitHubのProject Padawanのリリースに備えて、Copilotへの問題の割り当て、Copilotの@メンション、およびUIでの適切な表示を可能にしました。

拡張機能の0.110.0の変更ログ をレビューして、他のハイライトについて学びましょう。

拡張機能の作成

テキストエンコーディング

VS Codeでのテキストエンコーディングの操作のためのAPIを最終化しました。
具体的には、この新しいAPIを使用して以下を行うことができます:

TextDocumentの現在のエンコーディングを取得する
特定のエンコーディングでTextDocumentを開く
特定のエンコーディングで文字列をUint8Arrayにエンコードする
特定のエンコーディングを使用してUint8Arrayを文字列にデコードする

拡張機能のためのESMサポート

NodeJS拡張ホストは、JavaScriptモジュール(ESM)を使用する拡張機能をサポートするようになりました。必要なのは、拡張機能のpackage.jsonファイルに"type": "module"エントリを追加することだけです。それにより、JavaScriptコードはimportおよびexportステートメントを使用でき、特別なモジュールimport('vscode')も含まれます。サンプルはこちらで見つけることができます: https://github.com/jrieken/vscode-esm-sample-extension
注意: ESMサポートはまだWebワーカー拡張ホストには対応していません。最初に克服する必要がある技術的な課題があります。https://github.com/microsoft/vscode/issues/130367 で更新を投稿しますので、ご期待ください!

提案されたAPI

画像のためのツール呼び出し

前回の反復で、拡張機能が画像を添付し、言語モデルにビジョンリクエストを送信できるようにする提案されたAPI を追加しました。この反復では、このAPIを拡張して、ツール呼び出し結果に画像を含めることができるようにしました。
このAPI提案の問題をチェックして、使用例を確認し、このAPIのステータスを最新の状態に保ちましょう: API提案の問題

拡張機能によって提供されるMCPサーバー

拡張機能は、新しい提案されたAPI を使用して、エディターにプログラム的に拡張機能を提供できます。これは、各サーバーの設定やmcp.jsonにハードコーディングする代わりの方法です。
このAPIに興味がある場合は、そのサンプルをチェックして、API提案の問題を確認し、このAPIのステータスを最新の状態に保ちましょう: サンプルAPI提案の問題

MCPツールアノテーション

VS Codeは、適切なツールアノテーション で構成されたツールを持つMCPサーバーの人間が読める名前を表示するようになりました。さらに、アノテーションでreadOnlyHint: trueとマークされたツールは、ユーザーの確認を必要とせずに実行できるようになります。

可変行の高さ

モナコエディターでIModelDecorationOptionsタイプの行の高さ値を設定することで、可変行の高さを定義できるようになりました。行に2つの行の高さが設定されている場合、2つのうち最大のものが行に使用されます。
簡単のために、行の高さは対応する装飾範囲の最初の行にのみ設定されます。以下のスクリーン録画では、行24と32がデフォルトよりも大きな行の高さでレンダリングされています。

この作業はまだ拡張機能には利用できませんが、もう少しテストを行った後に展開されます。

注目すべき修正

244939 - 個人のMicrosoftアカウントが非常に短時間でログアウトされる(数分から数時間)

貢献者の方への謝辞

最後になりましたが、VS Codeの貢献者の皆さんに大きな感謝を申し上げます。

問題追跡

問題追跡への貢献:

@albertosantini (Alberto Santini)
@gjsjohnmurray (John Murray)
@RedCMD (RedCMD)
@IllusionMH (Andrii Dieiev)

プルリクエスト

vscodeへの貢献:

@ahojukka5 (Jukka Aho) : chatExecuteActions.tsの更新 PR #246494
@alexweininger (Alex Weininger) : 修正: 編集セッションIDプロバイダー内のキャンセルエラーの処理 PR #247450
@andrewbranch (Andrew Branch) : tsgoに代わる組み込みのTS/JS拡張機能の無効化を許可 PR #246858
@BABA983 (BABA) : すべての組み合わせを受け入れるコマンド PR #225132
@batsev : Git - 作成前にブランチ名を検証 PR #245029
@brthom (Ben Thomas) : テストエクスプローラーでのテストアイテムの並べ替えを自然なファイル順に修正 PR #246352
@bytemain (Jiacheng)

修正: ファイルベースの推奨のフィルタリングロジックを修正 PR #245062
リファクタリング(nls): JSON解析にthenを使用 PR #247013

@Cecil0o0 (hj) : git: 文字/テキスト/色の意味的な一貫性を持たせる PR #245889
@eps1lon (Sebastian “Sebbie” Silbermann) : 古いJSX変換を非強調表示 PR #246738
@futurist (James Yang) : 修正: runCommandタイプ PR #246198
@gabritto (Gabriela Araujo Britto)

[typescript-language-features] 展開可能なホバーを再追加 PR #246899
[typescript-language-features] 展開可能なホバーをデフォルトで有効にする PR #247343

@guiserle (guiserle) : config: コマンドによって返される変数を解決 PR #246641
@huntertran (Tuan Tran Van) : git blameホバーポップアップでコミット説明の単一行の改行を二重改行に置き換える PR #245779
@johnscollins98 (John Collins) : #245665 空のpromptString入力での早期タスク終了を修正 PR #246834
@KapitanOczywisty : HTML派生文法がPHPコードを消費するバグを修正、#237262を修正 PR #245076
@luantranminh (Tran Minh Luan) : argv: add-mcpの説明を更新 PR #246473
@manabu-nakamura (nakamura)

閉じるボタンのツールチップテキストが国際化された PR #245190
閉じるボタンのツールチップテキストが国際化された(2) PR #245333
省略記号を正規化 PR #246447

@mdanish-kh (Muhammad Danish) : WinGet構成ファイルの場所と拡張子を更新 PR #242241
@mkhuzaima (Muhammad Khuzaima Umair) : ディレクトリがドラッグされたときにDragDataを設定 PR #243656
@mortalYoung (野迂迂) : 修正: 不要な非同期宣言を削除 PR #247213
@nknguyenhc (Nguyen) : HTMLスクリプト内の組み込みシンボルの定義に移動 PR #244074
@noahbowman (Noah) : #188711 - ウォークスルーフォーカス可視アウトライン PR #247650
@pedrofrazaopacheco (Pedro Frazão Pacheco) : microsoft/vscode#240654を修正: JSONスキーマURLで予約文字をエンコードしないようにする PR #244934
@pisv (Vladimir Piskarev) : マージエディター: LineRange.join(other)のバグを修正 PR #227585
@RedCMD (RedCMD)

テンプレート.expressionブラケットを修正 #190564 PR #245786
YAML文字列内でのコード補完の自動トリガー #239679 PR #246939

@s-rigaud (Samuel Rigaud)

テスト: タイポを修正 PR #247259
修正: vscode-dtsのタイポ PR #247263
修正: toggleApplicationScopeのタイポ PR #247264

@sfaut : PHP f*ファイル関数のシグネチャを修正 PR #246964
@thegecko (Rob Moran) : アセンブリビューコンテキストメニューを追加 PR #212500
@theskcd : [vscode] #fileからの装飾がはるかに優れており、新しい行で壊れない PR #231948
@tjcork (tjcork) : shellIntegration-bash.shenvVarCollectionsの環境変数を取得するためにパラメータ展開を使用 PR #245264
@tmm1 (Aman Karmani) : tsb: 小さなビルドの改善 PR #237450
@Victuracor (Victuracor) : extensions/typescript-language-features/package.nls.jsonのタイポを修正 PR #245713
@whistlegraph (jeffrey) : 問題#662を修正(ポインターロックWeb APIを有効にする) PR #210875
@wolfgang42 (Wolfgang Faust) : 機能: markdown-basicsスニペット: すべての行を引用 PR #246871
@zobo (Damjan Cvetko) : 変数置換内のオブジェクト内のキーも置換 PR #245989

vscode-css-languageserviceへの貢献:

@AlterNT (NTPS) : @scopeをサポート PR #434
@rviscomi (Rick Viscomi) : ホバーカードにベースラインステータスを追加 PR #428

vscode-js-debugへの貢献:

@mikaelwaltersson (Mikael Waltersson) : repl/watchでの"浮動"WASM変数の展開を修正 + readMemoryがWASMメモリをSharedArrayBufferとしている場合 PR #2199

vscode-json-languageserviceへの貢献:

@fengzilong (MO) : 機能: newJSONDocumentJSONDocumentを一貫性のあるものにする PR #259

vscode-jupyterへの貢献:

@alexfanqi (Alex Fan) : excludeUserSitePackagesのスコープをウィンドウに変更 PR #16377
@realDuang (Duang) : 修正: 環境サービスでのPythonコードのエスケープパスを修正 PR #16518

vscode-mypyへの貢献:

@tdscheper (Tommy Scheper) : cwd設定オプションが${nearestConfig}の場合、mypy.ini.mypy.inipyproject.tomlsetup.cfgのすべてを探す PR #357

vscode-notebook-renderersへの貢献:

@marthacryan (Martha Cryan) : plotly.jsバージョンを3.0.0に更新 PR #230

vscode-pull-request-githubへの貢献:

@kabel (Kevin Abel) : git configが失敗したときのマージメール確認を修正 PR #6797
@timrogers (Tim Rogers) : copilot-swe-agentがコメントの著者である場合、Copilotのアイデンティティでレンダリング PR #6794

vscode-python-debuggerへの貢献:

@rchiodo (Rich Chiodo) : アタッチ構成でautoReloadを許可 PR #676

vscode-python-environmentsへの貢献:

@InSyncWithFoo (InSync) : 修正: showSkipOptionがアンインストールにも適用されることを明確にする PR #288

language-server-protocolへの貢献:

@hippietrail (Andrew Dunbar) : いくつかの文法修正 PR #2123
@imbant (imbant) : クライアントリクエストの前にドキュメント状態の同期を確保 PR #2017
@ocfbnj : thrift-lsをThrift用に追加 PR #2128
@rtorralba (rtorralba)

ZX Basic言語サーバーを実装者リストに追加 PR #2121
ZX BasicをBoriel Basic言語サーバーに置き換え PR #2125

monaco-editorへの貢献:

@RoccoC (Rocco Cataldo) : モジュールワーカーをサポートするためにwebpackプラグインを更新 PR #4742


スポンサーリンク

共有

もふもふ

プロフィール

著者
もふもふ
プログラマ。汎用系→ゲームエンジニア→Webエンジニア→QAエンジニア