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

JavaScriptを有効にしてください

まえがき

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

2025年2月 (バージョン 1.98)

Visual Studio Code 2025年2月リリースへようこそ。このバージョンには多くの更新があり、皆様に気に入っていただけることを願っています。主なハイライトは以下の通りです。

次の編集提案(NES)(プレビュー) - Copilotが次に行う可能性のある編集を予測します。
エージェントモード(プレビュー) - Copilotが自律的にタスクを完了します。
ノートブック用のCopilot Edits - ノートブックの編集を迅速に繰り返します。
コード検索 - Copilotがチャットプロンプトに関連するファイルを見つけます。
ターミナルインテリセンス(プレビュー) - ターミナルの豊富な補完サポート。
ドラッグ&ドロップ参照 - 新しいエディターでピーク参照をすばやく開きます。
Linuxカスタムタイトルバー - Linux用のカスタムタイトルバーサポートがデフォルトで有効。
未解決の診断(プレビュー) - 未解決の診断でコミットする際のプロンプト。
ソース管理でのソフト削除 - 未追跡ファイルを削除する代わりにゴミ箱に移動します。
カスタム指示GA - Copilotをニーズに合わせてカスタマイズするためのカスタム指示を使用します。

GitHub Copilot

Copilotの機能は、通常、設定を通じて有効化および構成される異なる早期アクセス段階を経ることがあります。

Copilot Edits

エージェントモードの改善(実験的)

先月、VS Code InsidersCopilot Editsのエージェントモードを導入しました。エージェントモードでは、Copilotがワークスペース内の関連するコンテキストを自動的に検索し、ファイルを編集し、エラーをチェックし、ターミナルコマンドを実行(許可がある場合)して、タスクをエンドツーエンドで完了します。
注: エージェントモードは現在VS Code Insiders で利用可能で、VS Code Stableでも段階的に展開を開始しました。エージェントモードが有効になると、Copilot Editsビューにモードドロップダウンが表示され、エージェントを選択するだけです。
今月はツール使用のUXにいくつかの改善を加えました。

ターミナルコマンドがインラインで表示されるようになり、実行されたコマンドを追跡できます。
チャット応答で提案されたターミナルコマンドを実行前に編集できます。
Ctrl+Enterショートカットでターミナルコマンドを確認します。

エージェントモードは自律的にコードベースを検索して関連するコンテキストを探します。どの検索が行われたかの結果を表示するにはメッセージを展開します。

また、エージェントモードのプロンプトと動作に様々な改善を加えました。

チャットでの元に戻すとやり直しのアクションが、チャット応答で行われた最後のファイル編集を元に戻すかやり直します。これにより、モデルが行った特定のステップを元に戻すことができ、チャット応答全体を巻き戻す必要がなくなります。
エージェントモードは、ビルド[タスク](https://code.visualstudio.com/docs/editor/tasks)を自動的にまたは指示されたときに実行できるようになりました。
この機能を無効にするには、 github.copilot.chat.agent.runTasks設定を使用します。モデルが実行すべきでないときにタスクを実行している場合に備えてください。

Copilot Editsエージェントモード について詳しく学ぶか、エージェントモード発表ブログ記事 をお読みください。
注: Copilot BusinessまたはEnterpriseユーザーの場合、組織の管理者がエージェントモードを利用可能にするためにCopilot "Editor Preview Features"の使用をオプトイン する必要があります。

Copilot Editsでのノートブックサポート(プレビュー)

Copilot EditsでのノートブックサポートをVS Code Insiders でプレビュー機能として導入しています。これにより、コードファイルを編集するのと同じ直感的な体験でノートブックファイルを編集できます。新しいノートブックをゼロから作成し、複数のセルにわたってコンテンツを変更し、セルを挿入および削除し、セルの種類を変更します。このプレビュー機能は、データサイエンスやドキュメントノートブックでのシームレスなワークフローを提供します。
注: この機能は現在、GitHub Copilot Chatのプレリリースバージョンを使用しているVS Code Insiders でのみ利用可能です。今後のリリースでVS Code Stableに導入する前に、体験を改善し続けます。

洗練されたエディター統合

Copilot Editsとコードおよびノートブックエディターの統合を磨き上げました。

変更が適用されている間にスクロールすることはありません。ビューポートはそのままで、変更に集中しやすくなります。
編集レビューアクションの名前を「Accept」から「Keep」に、「Discard」から「Undo」に変更し、何が起こっているかをよりよく反映させました。Copilot Editsの変更はライブであり、作成されるとすぐに適用され保存され、ユーザーはそれを保持または元に戻します。
ファイルを保持または元に戻した後、次のファイルが自動的に表示されます。

刷新されたUI

Copilot EditsCopilot Chatと統一する準備として、Copilot Editsにフェイスリフトを施しました。添付されてまだ送信されていないファイルは、通常のチャット添付ファイルとしてレンダリングされます。AIで変更されたファイルのみが、チャット入力部分の上にある変更されたファイルリストに追加されます。
chat.renderRelatedFiles設定を使用して、関連ファイルの提案を取得することができます。関連ファイルの提案は、チャット添付ファイルの下にレンダリングされます。

Copilot Editsの制限を削除

以前は、Copilot Editsでプロンプトに10個のファイルを添付することが制限されていました。このリリースでは、この制限を削除しました。さらに、10分間に14回のインタラクションというクライアント側のレート制限も削除しました。
なお、サービス側の使用レート制限は依然として適用されます。

カスタム指示が一般利用可能

設定: github.copilot.chat.codeGeneration.useInstructionFiles
カスタム指示を使用すると、GitHub Copilotをあなたやあなたのチームの作業方法に合わせてチャット応答やコード提案を提供するようにカスタマイズできます。特定の要件をMarkdown形式で記述し、ワークスペース内の.github/copilot-instructions.mdファイルに保存します。
このマイルストーンでは、.github/copilot-instructions.mdを使用したカスタム指示を一般利用可能にしました。 github.copilot.chat.codeGeneration.useInstructionFiles VS Code設定が有効になっていることを確認し、Copilotはこれらの指示を使用して応答を生成します。
Copilotでのカスタム指示 について詳しく学んでください。

チャットでのスムーズな認証フロー

ソースコードをGitHubリポジトリにホストしている場合、コード検索の高度な機能、@githubチャット参加者など、いくつかの機能を活用できます。
ただし、プライベートGitHubリポジトリの場合、VS CodeがGitHub上のリポジトリと対話するための権限を持っている必要があります。しばらくの間、これは通常のVS Code認証フローで提示され、特定の機能を呼び出すときにモーダルダイアログが表示されました(例:@workspaceまたは@githubに質問する、または#codebaseツールを使用する)。
この体験をスムーズにするために、チャットでこの確認を導入しました。

モーダルダイアログほど衝撃的ではないだけでなく、新しい機能もあります。

許可: 通常の認証フローを通じて(モーダル経由で)行われます。
今はしない: VS Codeは選択を記憶し、次のVS Codeウィンドウセッションまで再度尋ねません。この機能がこの追加の権限を必要とする場合(例:@github)を除きます。
再度尋ねない: VS Codeは選択を記憶し、 github.copilot.advanced.authPermissions設定を通じて永続化します。この追加の権限を必要とする機能は失敗します。

この確認は、Copilot(サービス)がリポジトリにアクセスすることを確認または拒否するものではないことに注意してください。Copilotがアクセスできるものを構成するには、コンテンツ除外に関するドキュメント をお読みください。

Copilot Chatでのより高度なコードベース検索

設定: github.copilot.chat.codesearch.enabled
Copilot Chatクエリに#codebaseを追加すると、Copilotがチャットプロンプトに関連するコードをワークスペース内で見つけるのを支援します。#codebaseは、ワークスペースから追加のコンテキストを引き出すために、テキスト検索やファイル検索などのツールを実行できるようになりました。
この動作を有効にするには、 github.copilot.chat.codesearch.enabledを設定します。ツールの完全なリストは次の通りです。

埋め込みベースのセマンティック検索
テキスト検索
ファイル検索
Git変更ファイル
プロジェクト構造
ファイルを読む
ディレクトリを読む
ワークスペースシンボル検索

問題をチャットコンテキストとして添付

ワークスペース内のコードやその他の問題を修正するのに役立つように、問題パネルから問題をチャットにコンテキストとして添付できるようになりました。
問題パネルからアイテムをチャットビューにドラッグするか、プロンプトに#problemsと入力するか、クリップ📎ボタンを選択します。特定の問題、ファイル内のすべての問題、またはコードベース内のすべてのファイルを添付できます。

フォルダーをコンテキストとして添付

以前は、エクスプローラービューからドラッグ&ドロップを使用してフォルダーをコンテキストとして添付できました。今では、クリップ📎アイコンを選択するか、チャットプロンプトに#folder:とフォルダー名を続けて入力することでフォルダーを添付することもできます。

次の編集提案の折りたたみモード(プレビュー)

設定:

github.copilot.nextEditSuggestions.enabled
editor.inlineSuggest.edits.showCollapsed

NESの折りたたみモードを追加しました。このモードを有効にすると、左エディターマージンにNES提案インジケーターのみが表示されます。コード提案自体は、Tabキーを押してナビゲートしたときにのみ表示されます。連続する提案は、提案が受け入れられない限りすぐに表示されます。

折りたたみモードはデフォルトで無効になっており、
editor.inlineSuggest.edits.showCollapsedを設定することで有効にできます。または、NESガターインジケーターメニューで有効または無効にすることができます。

補完モデルの変更

Copilot ChatCopilot Editsの言語モデルをすでに変更できましたが、インライン提案のモデルも変更できるようになりました。
または、コマンドパレットのChange Completions ModelコマンドまたはタイトルバーのCopilotメニューのConfigure Code Completionsアイテムを使用して、コード補完に使用されるモデルを変更できます。
注: 利用可能なモデルのリストは時間とともに変わる可能性があります。Copilot BusinessまたはEnterpriseユーザーの場合、管理者がGitHub.comのCopilotポリシー設定Editor Preview Featuresにオプトインすることで、組織の特定のモデルを有効にする必要があります。

モデルの可用性

このリリースでは、Copilotを使用する際に選択できるモデルを増やしました。以下のモデルがVisual Studio Codeとgithub.comチャットのモデルピッカーで利用可能になりました。

GPT 4.5(プレビュー): OpenAIの最新モデル、GPT-4.5がGitHub Copilot ChatでCopilot Enterpriseユーザーに利用可能になりました。GPT-4.5は、直感、文体、広範な知識において高度な能力を備えた大規模言語モデルです。GitHubブログ記事 でGPT-4.5モデルの可用性について詳しく学んでください。

Claude 3.7 Sonnet(プレビュー): Claude 3.7 Sonnetは、Copilotの有料プランのすべての顧客に利用可能になりました。この新しいSonnetモデルは、Copilotでの思考モードと非思考モードの両方をサポートしています。初期テストでは、特にエージェントシナリオでの大幅な改善が見られました。GitHubブログ記事 でClaude 3.7 Sonnetモデルの可用性について詳しく学んでください。

Copilot Vision(プレビュー)

このバージョンのCopilot Chatでは、エンドツーエンドのビジョンサポートを迅速に展開しています。これにより、画像を添付し、チャットプロンプトで画像と対話できます。たとえば、デバッグ中にエラーが発生した場合、VS Codeのスクリーンショットを添付し、Copilotに問題の解決を依頼できます。また、UIモックアップを添付し、Copilotにモックアップを実装するためのHTMLとCSSを提供させることもできます。

画像を添付する方法は複数あります。

OSまたはエクスプローラービューから画像をドラッグ&ドロップ
クリップボードから画像を貼り付け
VS Codeウィンドウのスクリーンショットを添付(クリップ📎ボタンを選択 > ウィンドウのスクリーンショット)

選択したモデルが現在ファイルタイプを処理できない場合、警告が表示されます。現在サポートされている唯一のモデルはGPT 4oですが、Claude 3.5 SonnetおよびGemini 2.0 Flashでの画像添付サポートもまもなく展開されます。現在サポートされている画像タイプはJPEG/JPG、PNG、GIF、およびWEBPです。

Copilotステータス概要(実験的)

設定: chat.experimental.statusIndicator.enabled
Copilotのステータスと主要なエディター設定の概要をすばやく提供する新しい集中型のCopilotステータス概要を実験しています。

Copilot Free ユーザーの場合のクォータ情報
コード補完などのエディター関連設定
他のCopilot機能を使用するための便利なキーボードショートカット

このCopilotステータス概要は、ステータスバーのCopilotアイコンからアクセスできます。

chat.experimental.statusIndicator.enabled設定を使用してCopilotステータス概要を有効にします。

インライン補完のためのTypeScriptコンテキスト(実験的)

設定: github.copilot.chat.languageContext.typescript.enabled
TypeScriptファイルのインライン補完および/fixコマンドのための強化されたコンテキストを実験しています。この実験は現在Insiderリリースに限定されており、
github.copilot.chat.languageContext.typescript.enabled設定を使用して有効にできます。

プルリクエストのタイトルと説明のためのカスタム指示

設定 github.copilot.chat.pullRequestDescriptionGeneration.instructionsを使用して、プルリクエストのタイトルと説明を生成するためのカスタム指示を提供できます。この設定をワークスペース内のファイルにポイントするか、設定内でインラインで指示を提供できます。VS CodeでのCopilotのカスタマイズ の詳細を取得してください。
以下のサンプルは、設定内でカスタム指示をインラインで提供する方法を示しています。

1
2
3
4
5
6
7
{
  "github.copilot.chat.pullRequestDescriptionGeneration.instructions": [
    {
      "text": "すべてのPRタイトルに絵文字をプレフィックスとして追加します。"
    }
  ]
}

タイトルと説明を生成するには、GitHub Pull Requests拡張機能がインストールされている必要があります。

アクセシビリティ

Copilot Editsのアクセシビリティ

Copilot Editsをよりアクセシブルにしました。

変更されたファイルや変更された領域(挿入、変更、削除)に対してオーディオ信号が追加されました。
変更されたファイルのためのアクセシブルな差分ビューアーが利用可能になりました。差分エディターと同様に、F7を選択して有効にします。

activeEditorStateウィンドウタイトル変数

新しい window.title変数、activeEditorStateを追加しました。これは、変更された状態、問題の数、ファイルに保留中のCopilot Editsがある場合のエディター情報をスクリーンリーダーユーザーに示します。スクリーンリーダー最適化モードでは、
デフォルトで追加され、 accessibility.windowTitleOptimizedで無効にできます。

ワークベンチ

Linuxでのカスタムタイトルバー

カスタムタイトルバーがLinuxでデフォルトで有効になりました。カスタムタイトルバーは、レイアウトコントロール、Copilotメニューなどにアクセスできます。

カスタムタイトルコンテキストメニューから、または window.titleBarStyleをネイティブに設定することで、いつでもネイティブタイトル装飾に戻すことができます。

この体験に関するフィードバックを引き続き歓迎しており、既存のフィードバックに基づいて将来のマイルストーンでこれを改善するためにすでに取り組んでいます。

セカンダリーサイドバーのビューにラベルを使用

セカンダリーサイドバーのビューの外観を変更し、アイコンの代わりにラベルを表示することにしました。これは、パネルエリアで行っていることと似ています。これにより、たとえばCopilot EditsCopilot Chatビューの間で異なるビューを区別しやすくなります。
workbench.secondarySideBar.showLabelsを設定することで、いつでもアイコンの表示に戻すことができます。

新しい設定エディターのキー一致アルゴリズム(プレビュー)

設定: workbench.settings.useWeightedKeySearch
より関連性の高いキー一致を優先する新しい設定エディター検索アルゴリズムを追加しました。検索アルゴリズムは、設定IDとラベルを以前よりも多くの方法で一致させようとしますが、結果をより絞り込んで、最も適した一致タイプのみを表示します。
workbench.settings.useWeightedKeySearch設定を有効にしてプレビュー機能を試してみてください。

シンプルファイルピッカーでドットファイルを非表示にするオプション

シンプルファイルピッカー を使用する際(リモートに接続している場合や
files.simpleDialog.enableを使用している場合)、ドットファイルを表示/非表示ボタンを使用して非表示にすることができます。

エディター

ピーク参照のドラッグ&ドロップサポート

ピーク ビューはドラッグ&ドロップをサポートするようになりました。ピーク参照、ピーク実装、または他のピークコマンドを呼び出し、そのツリーからエントリをドラッグして別のエディターとして開きます。

出現ハイライトの遅延

エディター内の出現ハイライトの遅延がデフォルトで0に設定されました。これにより、全体的により応答性の高いエディターの感触が得られます。 editor.occurrencesHighlightDelay設定を使用して遅延を制御できます。

ソース管理

更新されたビュータイトル

ソース管理グラフビューをソース管理ビューに追加した際、ソース管理ビュー内のセクションタイトルの重複が強調されました: “Source Control Repositories”、“Source Control”、および"Source Control Graph"。このマイルストーンでは、ビューのタイトルを見直し、短くし、ビュータイトルを重複しないようにしました: “Repositories”、“Changes”、および"Graph"。

未追跡の変更を破棄する際の改善

設定: git.discardUntrackedChangesToTrash
未追跡ファイルを破棄すると、ファイルが完全に削除されるため、データ損失の報告が多く寄せられていましたが、VS Codeはファイルが完全に削除されることを明確に示すモーダルダイアログを表示します。
このマイルストーンから、未追跡ファイルを破棄すると、可能な場合はファイルをリサイクルビン/ゴミ箱に移動するようになり、ファイルを簡単に回復できるようになります。この機能を無効にするには、 git.discardUntrackedChangesToTrash設定を使用します。

診断コミットフック(実験的)

設定:

git.diagnosticsCommitHook.Enabled
git.diagnosticsCommitHook.Sources

このマイルストーンでは、変更されたファイルに未解決の診断がある場合にプロンプトを表示する新しいコミットフックを導入しました。これは現在実験的な機能であり、
git.diagnosticsCommitHook.Enabled設定を使用して有効にできます。
デフォルトでは、コミットフックはエラーレベルの診断に対してプロンプトを表示しますが、診断のソースとレベルは git.diagnosticsCommitHook.Sources設定を使用してカスタマイズできます。試してみてフィードバックをお寄せください。

ノートブック

インラインノートブック差分ビュー(実験的)

設定: notebook.diff.experimental.toggleInline
ノートブックのインライン差分ビューを有効にできるようになりました。この機能により、ノートブックセル内の変更を従来のサイドバイサイド比較ではなく、単一のインラインビューで表示できます。
この機能を有効にするには、 notebook.diff.experimental.toggleInlineをtrueに設定します。その後、エディターメニューの右上隅で差分ビューをインラインに切り替えることができます。

ノートブックインライン値ホバー

ノートブックインライン値は、ビューポートの幅に合わせて装飾が切り詰められ、完全な値を表示するリッチホバーを持つようになりました。これにより、データフレームのような変数の形状が維持され、値を一目で読みやすくなります。

ターミナルインテリセンス(プレビュー)

設定: terminal.integrated.suggest.enabled
bashzshfish、およびPowerShellのターミナルシェル補完を大幅に改善しました。補完仕様(例:git)、コマンドライン解析の改善によるより良い提案、ファイルおよびフォルダーの補完の強化を追加しました。
この機能を有効にするには、 terminal.integrated.suggest.enabledを使用します。

強化されたFig補完サポート

特定のCLIのインテリジェントな補完を強化するために、Fig補完仕様 を活用しています。以前は少数のCLIしかありませんでしたが、このイテレーションでは、VS Codeに同梱されているCLIリストに以下を追加しました。

基本ツール: catchmodchowncpcurldfduechofindgrepheadlesslsmkdirmoremvpwdrmrmdirtailtoptouchuname
プロセスツール: killkillallps
パッケージマネージャー: aptbrew
Node.jsエコシステム: nodenpmnpxnvmpnpmyarn
SCM、言語、エディター: gitnanopythonpython3vim
ネットワーク: scpsshwget

新しい仕様に加えて、ジェネレーターもサポートするようになりました。これにより、リクエスト時にコマンドを実行して補完を動的に生成できます。この機能の一例として、git checkoutのすべてのブランチを表示することが挙げられます。

舞台裏では、git --no-optional-locks branch -a --no-color --sort=-committerdateを実行してブランチのリストを取得し、それを補完に処理します。同様のアプローチを使用してタグも取得します。

設定可能なクイック提案

設定: terminal.integrated.suggest.quickSuggestions
エディターと同様に、クイック提案は、特定の文字(例:\-)が使用されたときに表示されるトリガー文字とは対照的に、何かを入力するときに自動的にインテリセンスを表示するものです。新しい terminal.integrated.suggest.quickSuggestions設定を使用すると、クイック提案を表示するタイミングを正確に制御できます。
デフォルト値はコマンドと引数に対してクイック提案を有効にし、パスに戻るようにデフォルトで無効になっています。これは、適用されないことが多いため、ノイズが多くてイライラする可能性があると聞いています。これがデフォルトです。

1
2
3
4
5
"terminal.integrated.suggest.quickSuggestions": {
  "commands": "on",
  "arguments": "on",
  "unknown": "off"
}

インライン提案検出

設定: terminal.integrated.suggest.inlineSuggestion
これまでのインライン提案検出の問題の1つは、異なるソースからの提案と競合することによって引き起こされる混乱でした。特に、シェルで入力するときに表示されるインライン提案:

これらの提案は実際にはシェルレベルの機能です(fish/zshの自動提案、pwshの予測など)。ユーザーにとっては明らかではないかもしれませんが、インテリセンスと一緒に表示されると特にそうです。
インテリセンス機能は、このインライン提案を検出する必要がありますが、以前はテキストが淡色またはイタリックのSGR属性でスタイル設定されているかどうかを確認するだけの単純な実装を使用していました。これでは不十分であることが判明しました。ユーザーがスタイルをカスタマイズした場合だけでなく、fishシェルはデフォルトでこれらのスタイルのいずれも使用していませんでした。現在、コマンドラインコンテキストとカーソル位置を分析することで、ほとんどのケースを検出しています。
この新しく改善された検出に基づいて、インライン提案は現在、星アイコンを持つトップオプションとして提示され、エディターの動作により近づけ、kstyle(Tab)がこの場合に何をするかをより明確にします。

デフォルトでは、この提案を常にトップ提案として表示しますが、
terminal.integrated.suggest.inlineSuggestionを使用して構成できます。

詳細なコマンド補完

bashおよびzshの組み込みコマンドとPowerShellコマンドの補完がより詳細になり、利用可能な引数に関する詳細を提供します。この情報は、シェルのドキュメントまたはヘルプコマンドから取得されます。
bashの場合、helpを使用して基本的な説明を取得します:

zshの場合、man zshbuiltinsを使用して詳細な説明を取得します:

PowerShellの場合、Get-Commandのより多くのプロパティが補完に表示されます:

改善されたソート

コマンド補完には、特に以下の点で改善されたソートが特徴です:

詳細が多い補完は、詳細が少ない補完よりも上に表示されることが一般的です。
組み込みコマンドは、$PATHからのパスよりも優先されます。

パスに関しては、以下の改善が行われました:

_で始まるパスにはペナルティが課されます。これは、特別であり、一般的にあまり変更されるべきではないことを示すことが多いためです(例:__init__.py)。
ソート時に句読点は無視されるため、.で始まるファイルは他のファイルと混在します。

CDPATHサポート

設定: terminal.integrated.suggest.cdPath
$CDPATH環境変数は、$PATHに似たコロン区切りのパスリストを含む一般的なシェル機能であり、現在の作業ディレクトリに関係なく相対的にナビゲートできるようにします。fishは実際にcdタブ補完でCDPATHエントリを表示します:

cdを使用する際に$CDPATHエントリを補完として表示することをサポートしました:

この機能はWindowsでも動作し(;セパレータ)、シェルがネイティブに機能をサポートする必要はありません。デフォルトでは絶対パスを使用します。

これを構成するには、 terminal.integrated.suggest.cdPathを使用します。

絶対パス

絶対パスがサポートされるようになりました。

エイリアスサポート

コマンドエイリアスもbashzsh、およびfishで検出され、新しい独自のアイコンが特徴です:

オプションとフラグの区別

CLIオプション(値を持つもの)とフラグ(持たないもの)は、UIで異なるアイコンを使用して区別されます:

タスク

タスク再実行アクション

ターミナル用の新しい再実行タスクアクション、Ctrl+Shift+Rを追加しました。このアクションは、ターミナルタブのインラインツールバーとターミナルのコンテキストメニューに表示されます。

デバッグ

デバッグインライン値ホバー

設定 debug.inlineValuesが有効になっている場合、インライン値の装飾にはインラインホバーが追加され、長い値を一目で読みやすくなります。

言語

TypeScript 5.8

VS CodeにはTypeScript 5.8.2が含まれています。このメジャーアップデートには、新しい言語の改善が含まれており、条件式からの型のチェックの改善 や、Nodeの新しい--experimental-strip-typesオプションに準拠するコードの書き込みサポート が含まれています。また、多くのツールの改善とバグ修正も含まれています。
このアップデートの詳細については、TypeScript 5.8リリースブログ をご覧ください。

リモート開発

リモート開発拡張機能 を使用すると、Dev Container 、SSH経由のリモートマシンまたはリモートトンネル 、またはWindows Subsystem for Linux (WSL)をフル機能の開発環境として使用できます。
ハイライトには以下が含まれます:

LinuxレガシーサーバーのEOL
プロキシ設定の拡張

これらの機能について詳しくは、リモート開発リリースノート をご覧ください。

エンタープライズサポート

許可された拡張機能のマルチラインサポート

Windowsのグループポリシーで許可された拡張機能をマルチライン文字列で構成できるようになりました。これにより、許可された拡張機能の構成がより柔軟で広範になります。許可された拡張機能の構成 について詳しく学んでください。

拡張機能への貢献

Python

長い文字列を分割する際の自動引用符挿入

Pylance は、長い文字列を分割する際にシームレスな体験を提供するために引用符の自動挿入をサポートするようになりました。

Pylanceのメモリ消費の改善

特に大規模なワークスペースで作業する際に、Pylanceのメモリ消費を改善するためにいくつかの最適化が行われました。この改善 は、Pylanceの言語サーバー機能を支える静的型チェッカーであるPyrightに対して行われました。

Pythonシェル統合の改善

python.terminal.shellIntegration.enabledを変更した後、変更が反映されるためにリロードする必要がなくなりました。新しいターミナルを作成するだけで、ターミナル内のPython REPLで希望する変更を確認できます。

Windows Git Bashの正しいワークスペースプロンプト

WindowsでGit Bashを使用しているPythonユーザーは、ターミナルプロンプトに正しい作業ディレクトリが表示されるようになります。
これらの変更は、pythonTerminalEnvVarActivation実験にオプトインしているユーザーに適用されます。

自動テスト検出ファイルパターンの新しい設定

python.testing.autoTestDiscoverOnSavePattern設定でグロブパターンを指定することで、自動テスト検出が行われるファイルを絞り込むことができるようになりました。デフォルト値は**/*.pyに設定されています。

settings.jsonからのテストデバッグ構成のフォールバックとしての読み取り

テストデバッグ構成をsettings.jsonとlaunch.jsonファイルの両方で探すようになり、これらの構成を定義できる場所が拡大されました。

GitHub認証

Electron fetch採用によるプロキシサポートの改善

GitHub認証拡張機能は、ウェブリクエストを行うためにElectronのバージョンのfetchを活用するようになりました。これにより、特定のプロキシおよびファイアウォール設定を持つユーザーが支援されました。プロキシ設定がある環境で実行しており、VS Code内でGitHubに認証できない場合は、ためらわずに問題を作成してください!

拡張機能の作成

認証

重要:
AuthenticationForceNewSessionOptionsAuthenticationGetSessionPresentationOptionsに名前を変更し、現在は非推奨のAuthenticationForceNewSessionOptionsを残しています。機能的な違いはないため、ランタイムでの破壊的変更ではありませんが、将来的に削除されるため、AuthenticationGetSessionPresentationOptionsを使用するようにコードを更新する必要があります。
これらの2つの認証呼び出しを見てみましょう:

1
2
vscode.authentication.getSession(provider, scopes, { createIfNone: options });
vscode.authentication.getSession(provider, scopes, { forceNewSession: options });

createIfNoneforceNewSessionは、ブール値またはAuthenticationGetSessionPresentationOptionsのいずれかを受け取るようになります:

1
2
3
4
5
6
7
8
9
/**
 * インタラクティブオプション`forceNewSession`および`createIfNone`を使用して{@link authentication.getSession}を呼び出す際に使用されるオプション。
 */
export interface AuthenticationGetSessionPresentationOptions {
  /**
   * 再認証を求める際にユーザーに表示されるオプションのメッセージ。再認証を求める理由を追加のコンテキストとして提供することで、ユーザーが受け入れる可能性を高めることができます。
   */
  detail?: string;
}

完全な型定義はこちらで見つけることができます
これはcreateIfNoneに対する新しい追加ですが、以前は同じシグネチャを持っていたAuthenticationForceNewSessionOptionsを受け取っていたforceNewSessionの修正です。
AuthenticationForceNewSessionOptionsを明示的に使用している場合、それが非推奨としてマークされていることがわかり、将来のバージョンで削除されるため、AuthenticationGetSessionPresentationOptionsに置き換える必要があります。
ここで変更されているのは型だけであることに注意してください。ランタイムの変更はないため、破壊的変更ではありません。
さらに、authLearnMore提案API は、AuthenticationForceNewSessionOptionsからAuthenticationGetSessionPresentationOptionsに更新されました。
detaillearnMore提案を活用する例を以下に示します:
detail と learnMore 提案を活用する例

洗練されたスニペットAPI

スニペットを挿入する際の空白の正規化を制御できるようになりました。これは、insertSnippet -APIとSnippetTextEdit -APIに適用され、スニペットの追加行のインデントが調整されるかどうかを制御します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
const snippet = `This is an indented
    snippet`;

// keepWhitespace: false, undefined
function indentedFunctionWithSnippet() {
  return `This is an indented
        snippet`; // 調整されたインデント
}

// keepWhitespace: true
function indentedFunctionWithSnippet() {
  return `This is an indented
    snippet`; // 元のインデント
}

提案API

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

VS Codeでテキストエンコーディング を操作するための新しい提案APIを追加しました。
具体的には、この新しいAPIを使用して:

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

試してみて、このGitHubの問題 でフィードバックをお寄せください。

シェル環境

拡張機能は、VS Code統合ターミナルから開かれたpwshzshbash、およびfishシェルのユーザーの現在アクティブなシェル環境情報にアクセスできます。これは、
terminal.integrated.shellIntegration.enabledが有効になっている場合にのみ利用可能です。
ユーザーは、 terminal.integrated.shellIntegration.environmentReportingを使用して、シェル環境情報を報告するかどうかを決定できます。
試してみて、このGitHubの問題 でフィードバックをお寄せください。

エンジニアリング

Electron 34の更新

このマイルストーンでは、安定版リリースのユーザーにElectron 34の更新を提供しています。この更新には、Chromium 132.0.6834.196Node.js 20.18.2が含まれています。Insidersビルドを自己ホストし、早期フィードバックを提供してくれた皆様に感謝します。

macOS 10.15のサポートが終了しました

VS Code 1.97は、macOS 10.15(macOS Catalina)をサポートする最後のリリースです。追加情報については、FAQ をご覧ください。

リークされたディスポーザブルの開発時追跡

VS Codeは、ファイルを閉じたり、DOM要素をクリーンアップしたり、イベントリスナーを削除したりするための明示的なリソース管理のためにディスポーザブルパターンを使用しています。リソースを破棄しないと、メモリが無駄になり、メモリ使用量が時間とともに蓄積されます。
このようなリークを常に追跡しており、これを検出するための別のツールを追加しました。FinalizationRegistry APIを利用して、オブジェクトがガベージコレクションされたときに通知を受け取ります。このようなオブジェクトがディスポーザブルを表しており、破棄されていない場合、リークがあることを意味します。これらはVS Codeの開発者に収集され、進行中にクリーンアップできるようにしています。

主な修正点

※今回は特に記載がありませんでした

貢献者の方への謝辞

最後になりましたが、VS Codeに貢献してくださったすべての方々に心より感謝申し上げます。

問題追跡

問題追跡への貢献:

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

プルリクエスト

vscodeへの貢献:

@a-stewart (Anthony Stewart) : Diff選択インジケーターラインがmenu.borderではなくmenu.separatorBackgroundを使用するようにする PR #228825
@bchu1 (Bryan Chu) : ミニマップでのヘッダーの誤配置を修正 PR #217581
@cassidoo (Cassidy Williams) : #241903を修正: settingsLayout.tsにGitHubのオーバーライドを追加 PR #241911
@cdce8p (Marc Mueller) : panelTitleBadgeのカラーバリアブルを追加 PR #240645
@cenviity (Vincent Ging Ho Yim) : editorOptions.tsのタイプミスを修正 PR #239929
@cmbrose (Caleb Brose) : チャットのnewEditSessionコマンドを入力プロンプトを受け取るように更新 PR #241796
@devm33 (Devraj Mehta) : 修正: electronwebpackの外部として追加 PR #239134
@dmotte (Motte) : terminal.integrated.confirmOnExitの動作を修正 PR #240074
@dvangonen (Daniil Vangonen) : 不要なクラスをbodyから削除 PR #240633
@gabritto (Gabriela Araujo Britto) : リバート “[typescript-language-features] 展開可能なホバー (#_228255)” PR #240011
@gjsjohnmurray (John Murray)

scm/resourceGroup/contextメニューコマンドにマルチセレクトを提供 (fix #92337) PR #192172
scmResourceGroupStateコンテキストキーを追加 (#_192009) PR #194804
SCM - SCMビューのタイトルを短くする PR #230693
Show User Keybindingsオプションをキーボードショートカットエディターで修正 (fix #240068) PR #240085
Add Triggered Breakpoint...での’OK’の大文字化が不適切 (fix #240490) PR #240492

@hickford (M Hickford) : “tunnel user show"でプロバイダーをログに記録 PR #240692
@ihavecoke (ihavecoke) : tab_size設定を1から16の間に制限 PR #228957
@jakebailey (Jake Bailey) : 拡張機能ホスト開発で--disable-extensionsを保持 PR #240415
@jamestut (James Nugraha) : トークナイザーを初期化する前にTextModelの制限を計算 PR #240919
@jeanp413 (Jean Pierre)

ターミナル分割ビューの破棄漏れを修正 PR #241597
壊れたターミナルリンクホバーを修正、内容をホバーする前に非表示になる PR #241599
タイムラインビューのイベントリスナーリークを修正 PR #241607

@KexyBiscuit (Kexy Biscuit a.k.a. るる) : powershell-preview snapの検出を許可 PR #240054
@klaussner (Christian Klaussner) : macOSでのトラフィックライトのセンタリングを修正 PR #212471
@naman108 (Natha Paquette) : ストレージURIドキュメントのタイプミス PR #241600
@nknguyenhc (Nguyen) : 拡張機能の詳細コンテンツがコンテナからはみ出す問題を修正 PR #240134
@notoriousmango (Seong Min Park)

コマンドセンターのデバッグランチャーが最も最近使用された構成を最初に提供するようにする PR #240744
Markdownをvscodeログ出力チャネルを使用するように採用 PR #241342

@pouyakary (Pouya Kary ✨) : 機能: カスタムミニマップセクションヘッダーマーカ検出RegExpPR #210271
@rgrunber (Roland Grunberg) : adjustWhitespaceTextEditor APIに公開 PR #234858
@silamon (Simon Lamon) : Diffエディター: 1 files1 fileに修正 PR #240092
@simon-id (simon-id) : 修正: ワークベンチ検索が正しいfindMatchカラーを使用するように (fix #237909) PR #237910
@SimonSiefke (Simon Siefke) : 修正: 設定インジケーターのメモリリーク PR #236417
@ssigwart (Stephen Sigwart) : インデントしようとしたときの予期しないタブ補完を修正 PR #136572
@SunsetTechuila (Grigory) : 機能(コマンド): insertFinalNewLineを追加 PR #241126
@tcvdh (Thijs van den Heuvel) : 修正: ターミナルを再利用する前にclearコマンドの実行を待つ PR #240970
@terrymun (Terry Mun-Andersen) : 修正: CONTRIBUTING.mdの余分なバッククォートを削除 PR #240305
@tmm1 (Aman Karmani) : tsb: 削除され再追加されたソースファイルが再生成されない問題を修正 PR #238409
@xymopen (xymopen_Official)

nodenpmスクリプトランナーとして追加 PR #236967
nodenpmスクリプトランナーとして追加 (2回目) PR #240527

@zardoy (Vitaly) : [Git] パフォーマンス向上のためにプル時にgit autostashに移行 PR #187850

vscode-css-languageserviceへの貢献:

@GauravB159 (Gaurav Bhagchandani) : lab()およびlch()カラーのプレビューを追加 PR #306

vscode-eslintへの貢献:

@edemaine (Erik Demaine) : Civetのプロービングサポート PR #1965
@mustevenplay (mustevenplay) : Typescript設定ファイルの検出を追加 PR #1968

vscode-hexeditorへの貢献:

@tomilho (Tomás Silva) : Hex Compare SelectedCompare Selectedの下に移動 PR #561

vscode-jupyterへの貢献:

@thesuperzapper (Mathew Wicks) : JUPYTER_RUNTIME_DIRおよびXDG_RUNTIME_DIRの読み取りを修正 PR #16451

vscode-languageserver-nodeへの貢献:

@MariaSolOs (Maria José Solano)

メタモデルに能力情報を追加 PR #1591
テキストドキュメントのdidOpen/didCloseサーバー能力を修正 PR #1615
範囲フォーマットリクエストの能力を修正 PR #1617

@mciccale (Marco Ciccalè Baztán) : semaphore.tsの小さなタイプミス PR #1618
@yf-yang : 修正: 一致しないハンドラーの破棄を回避 PR #1614

vscode-mypyへの貢献:

@DetachHead

mypyの問題を回避するためにファイルパスの大文字小文字を正しく使用 PR #342
cwdの大文字小文字をファイルパスに合わせて更新 PR #344

@hamirmahal (Hamir Mahal) : 修正: CIで非推奨のnode12の使用 PR #336
@ivirabyan (Ivan Virabyan) : dmypyステータスファイル設定を追加 PR #347

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

@christianvuerings (Christian Vuerings) : カスタムSSHでのCopy GitHub Permalinkを修正 PR #6669

vscode-python-debuggerへの貢献:

@TCPsoftware (tcpsoft) : デフォルトのデバッグ設定として"args": "${command:pickArgs}"を設定 PR #548

vscode-vsceへの貢献:

@mohankumarelec (mohanram) : semver比較を更新 PR #1078
@stevedlawrence (Steve Lawrence) : 再現可能な.vsixパッケージを許可 PR #1100

debug-adapter-protocolへの貢献:

@angelozerr (Angelo) : IntelliJ / LSP4IJ DAPサポートを追加 PR #529
@samisalreadytaken : Squirrel Debuggeradapters.mdに追加 PR #530
@SpartanJ (Martín Lucas Golini) : tools.mdを更新し、新しいDAPクライアントecodeを追加 PR #526
@sssooonnnggg (Song) : chore: luau debuggerを追加 PR #516
@theIDinside (Simon Farre) : Midasをデバッグアダプターリストに追加、VSCodeと共に PR #528

language-server-protocolへの貢献:

@ind1go (Ben Cox) : ワークスペース診断のタイプミス PR #2086
@MariaSolOs (Maria José Solano)

メタモデルに能力情報を追加 PR #2096
メタモデルを更新 PR #2104

@MuntasirSZN (Muntasir Mahmud) : 機能: サーバーリストにcopilot言語サーバーを追加 PR #2107
@Szasza (Szasza Palmer) : サーバーリストにWing言語サーバーを追加 PR #2101
@the-mikedavis (Michael Davis) : $0が他のスニペット構文を使用しないことを明確化 PR #2087
@yassun7010 (yassun7010) : TombiLSPリストに追加 PR #2089

python-environment-toolsへの貢献:

@pantheraleo-7 : $VIRTUAL_ENVの検出サポートを追加 PR #181


スポンサーリンク

共有

もふもふ

プロフィール

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