2025 年 2 月 (バージョン 1.98)¶
Visual Studio Code の 2025 年 2 月リリースへようこそ。今回のリリースでは、多くのアップデートがあり、きっと気に入っていただけると思います。主なハイライトは以下のとおりです。
- Next Edit Suggestions (プレビュー) - Copilot が、次に行う可能性の高い編集を予測します。
- エージェントモード (プレビュー) - Copilot が自律的にタスクを完了します。
- Copilot Edits for notebooks - notebook の編集を迅速に繰り返します。
- コード検索 - Copilot にチャットプロンプトに関連するファイルを探させます。
- ターミナル IntelliSense (プレビュー) - ターミナルのリッチな補完サポート。
- ドラッグ&ドロップリファレンス - ピークリファレンスを新しいエディタですばやく開きます。
- Linux カスタムタイトルバー - Linux のカスタムタイトルバーサポートがデフォルトで有効になりました。
- 未解決の診断 (プレビュー) - 未解決の診断でコミットするときにプロンプトを表示します。
- ソース管理でのソフトデリート - 追跡されていないファイルを削除する代わりに、ゴミ箱に移動します。
- カスタム指示の GA - カスタム指示を使用して、Copilot をニーズに合わせて調整します。
これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com の Updates にアクセスしてください。 Insiders: 新機能をいち早く試したいですか?ナイトリー Insiders ビルドをダウンロードして、最新のアップデートをいち早く試すことができます。
GitHub Copilot¶
Copilot の機能は、さまざまな早期アクセス段階を経る可能性があり、通常は設定によって有効化および構成されます。
Stage | Description |
---|---|
Experimental | この機能はまだ開発中であり、まだ一般的に使用できる状態ではありません。 試験的な機能 ( @tag:experimental ) を表示します。 |
Preview | この機能はまだ改良中ですが、使用する準備ができています。フィードバックは歓迎します。 プレビュー機能 ( @tag:preview ) を表示します。 |
Stable | この機能は一般的に使用する準備ができています。 |
Copilot Edits¶
エージェントモードの改善 (試験的)¶
先月、VS Code Insiders で Copilot Edits の エージェントモード を導入しました。エージェントモードでは、Copilot がワークスペースを自動的に検索して関連するコンテキストを見つけ、ファイルを編集し、エラーをチェックし、ターミナルコマンドを実行して (許可を得て) タスクをエンドツーエンドで完了します。
注: エージェントモードは、VS Code Insiders で利用可能であり、VS Code Stable でも段階的に展開を開始しました。エージェントモードが有効になると、Copilot Edits ビューにモードドロップダウンが表示されます。エージェント を選択するだけです。
今月は、ツール使用の UX にいくつかの改善を行いました。
- ターミナルコマンドがインラインで表示されるようになり、実行されたコマンドを追跡できます。
- チャット応答で提案されたターミナルコマンドを実行する前に編集できます。
kb(workbench.action.chat.acceptTool)
ショートカットでターミナルコマンドを確認します。
エージェントモードは、関連するコンテキストを検索するためにコードベースを自律的に検索します。メッセージを展開して、どの検索が行われたかの結果を確認します。
また、エージェントモードのプロンプトと動作にさまざまな改善を加えました。
- チャットでの元に戻すおよびやり直しのアクションは、チャット応答で行われた最後のファイル編集を元に戻すかやり直します。これはエージェントモードに便利で、モデルが行った特定のステップを元に戻すことができ、チャット応答全体をロールバックする必要がありません。
- エージェントモードは、ビルド タスク を自動的にまたは指示されたときに実行できます。モデルが実行すべきでないときにタスクを実行している場合は、
setting(github.copilot.chat.agent.runTasks)
設定を無効にします。
Copilot Edits エージェントモード の詳細を学ぶか、エージェントモードの発表ブログ投稿 を読んでください。
注: Copilot Business または Enterprise ユーザーの場合、組織の管理者が 組織で Copilot 機能を有効にする 必要があります。
Copilot Edits での notebook サポート (プレビュー)¶
VS Code Insiders で Copilot Edits の notebook サポートをプレビュー機能として導入しています。Copilot を使用して、コードファイルを編集するのと同じ直感的な体験で notebook ファイルを編集できます。新しい notebook をゼロから作成し、複数のセルにわたってコンテンツを変更し、セルを挿入および削除し、セルの種類を変更します。このプレビュー機能は、データサイエンスやドキュメント notebook を操作する際のシームレスなワークフローを提供します。
注: この機能は現在、VS Code Insiders の GitHub Copilot Chat のプレリリースバージョンでのみ利用可能です。VS Code Stable に導入する前に、引き続きエクスペリエンスを改善していきます。
改良されたエディタ統合¶
Copilot Edits とコードおよび notebook エディタの統合を改善しました。
- 変更が適用されている間にスクロールすることはありません。ビューポートはそのままで、変更内容に集中しやすくなります。
- 編集レビューアクションの名前を「Accept」から「Keep」、「Discard」から「Undo」に変更し、何が起こっているかをより正確に反映します。Copilot Edits の変更はライブであり、変更が行われるとすぐに適用され保存され、ユーザーはそれを保持するか元に戻すかを選択します。
- ファイルを保持または元に戻した後、次のファイルが自動的に表示されます。
ビデオは、変更が発生するとすぐに適用され保存される様子を示しています。ライブプレビューが更新され、ユーザーは変更を「Keep」することを決定しました。元に戻すことやさらに調整することも引き続き可能です。
リフレッシュされた UI¶
Copilot Edits を Copilot Chat と統合する準備として、Copilot Edits にフェイスリフトを施しました。添付されてまだ送信されていないファイルは、通常のチャット添付ファイルとしてレンダリングされます。AI で変更されたファイルのみが変更されたファイルリストに追加され、チャット入力部分の上に配置されます。
setting(chat.renderRelatedFiles)
設定を使用して、関連ファイルの提案を取得することができます。関連ファイルの提案は、チャット添付ファイルの下にレンダリングされます。
Copilot Edits の制限を削除¶
以前は、Copilot Edits のプロンプトに添付できるファイルは 10 個に制限されていました。このリリースでは、この制限を削除しました。さらに、10 分間に 14 回のインタラクションというクライアント側のレート制限も削除しました。
サービス側の使用レート制限は引き続き適用されます。
カスタム指示の一般提供¶
設定: setting(github.copilot.chat.codeGeneration.useInstructionFiles)
カスタム指示を使用すると、GitHub Copilot をカスタマイズして、あなたやチームの作業方法に合わせたチャット応答やコード提案を提供できます。特定の要件を Markdown 形式で記述し、ワークスペース内の .github/copilot-instructions.md
ファイルに保存します。
このマイルストーンでは、.github/copilot-instructions.md
を使用したカスタム指示を一般提供します。setting(github.copilot.chat.codeGeneration.useInstructionFiles)
VS Code 設定が有効になっていることを確認し、Copilot はこれらの指示を使用して応答を生成します。
Copilot のカスタム指示 の詳細を学んでください。
チャットでのスムーズな認証フロー¶
ソースコードを GitHub リポジトリにホストしている場合、コード検索、@github
チャット参加者など、いくつかの機能を活用できます。
ただし、プライベート GitHub リポジトリの場合、VS Code が GitHub 上のリポジトリと対話するための権限を持っている必要があります。しばらくの間、これは通常の VS Code 認証フローで提示され、特定の機能を呼び出すときにモーダルダイアログが表示されました (たとえば、@workspace
や @github
に質問する、または #codebase
ツールを使用する場合)。
このエクスペリエンスをスムーズにするために、チャットでこの確認を導入しました。
モーダルダイアログほど衝撃的ではないだけでなく、新しい機能も備えています。
- Grant: 通常の認証フローを経て (モーダルを介して) 進みます。
- Not Now: VS Code は選択を記憶し、次の VS Code ウィンドウセッションまで再度通知しません。唯一の例外は、
@github
のようにこの追加の権限が必要な機能です。 - Never Ask Again: VS Code は選択を記憶し、
setting(github.copilot.advanced.authPermissions)
設定を介して永続化します。この追加の権限が必要な機能は失敗します。
この確認は、Copilot (サービス) がリポジトリにアクセスすることを確認または拒否するものではないことに注意してください。これは、VS Code の Copilot エクスペリエンスがどのように認証されるかに関するものです。Copilot がアクセスできる内容を構成するには、コンテンツの除外 に関するドキュメントを読んでください。
Copilot Chat でのより高度なコードベース検索¶
設定: setting(github.copilot.chat.codesearch.enabled)
Copilot Chat クエリに #codebase
を追加すると、Copilot がチャットプロンプトに関連するワークスペース内のコードを見つけるのを支援します。#codebase
は、テキスト検索やファイル検索などのツールを実行して、ワークスペースから追加のコンテキストを取得できるようになりました。
この動作を有効にするには、setting(github.copilot.chat.codesearch.enabled)
を設定します。ツールの完全なリストは次のとおりです。
- 埋め込みベースのセマンティック検索
- テキスト検索
- ファイル検索
- Git 変更ファイル
- プロジェクト構造
- ファイルの読み取り
- ディレクトリの読み取り
- ワークスペースシンボル検索
問題をチャットコンテキストとして添付¶
ワークスペース内のコードやその他の問題を修正するのに役立つように、問題パネルからチャットに問題をコンテキストとして添付できるようになりました。
問題パネルからチャットビューにアイテムをドラッグするか、プロンプトに #problems
と入力するか、クリップ📎ボタンを選択します。特定の問題、ファイル内のすべての問題、またはコードベース内のすべてのファイルを添付できます。
フォルダをコンテキストとして添付¶
以前は、エクスプローラービューからドラッグアンドドロップを使用してフォルダをコンテキストとして添付できました。今では、クリップ📎アイコンを選択するか、チャットプロンプトに #folder:
とフォルダ名を入力することで、フォルダを添付することもできます。
Next Edit Suggestions の折りたたみモード (プレビュー)¶
設定:
setting(github.copilot.nextEditSuggestions.enabled)
setting(editor.inlineSuggest.edits.showCollapsed:true)
NES の折りたたみモードを追加しました。このモードを有効にすると、左側のエディターマージンに NES 提案インジケーターのみが表示されます。コード提案自体は、kb(editor.action.inlineSuggest.jump)
を押してナビゲートすると表示されます。連続する提案は、提案が受け入れられるまで直ちに表示されます。
折りたたみモードはデフォルトでは無効になっており、setting(editor.inlineSuggest.edits.showCollapsed:true)
を設定することで有効にできます。または、NES ガターインジケーターメニューで有効または無効にすることもできます。
補完モデルの変更¶
Copilot Chat および Copilot 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 が、Copilot Enterprise ユーザー向けに GitHub Copilot Chat で利用可能になりました。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 ウィンドウのスクリーンショットを添付する (クリップ📎ボタン > Screenshot Window を選択)
選択したモデルが現在ファイルタイプを処理できない場合、警告が表示されます。現在サポートされている唯一のモデルは GPT 4o
ですが、Claude 3.5 Sonnet
および Gemini 2.0 Flash
での画像添付のサポートも近日中に展開される予定です。現在サポートされている画像タイプは JPEG/JPG
、PNG
、GIF
、および WEBP
です。
Copilot ステータス概要 (試験的)¶
設定: setting(chat.experimental.statusIndicator.enabled)
Copilot ステータスと主要なエディター設定の概要をすばやく提供する新しい集中化された Copilot ステータス概要を試験的に導入しています。
- Copilot Free ユーザーの場合、クォータ情報
- コード補完などのエディター関連設定
- 他の Copilot 機能を使用するための便利なキーボードショートカット
この Copilot ステータス概要は、ステータスバーの Copilot アイコンからアクセスできます。
setting(chat.experimental.statusIndicator.enabled)
設定を使用して Copilot ステータス概要を有効にします。
インライン補完の TypeScript コンテキスト (試験的)¶
設定: setting(chat.languageContext.typescript.enabled)
TypeScript ファイルのインライン補完および /fix
コマンドのコンテキストを強化する実験を行っています。この実験は現在 Insider リリースに限定されており、setting(chat.languageContext.typescript.enabled)
設定を有効にすることで有効にできます。
プルリクエストのタイトルと説明のカスタム指示¶
setting(github.copilot.chat.pullRequestDescriptionGeneration.instructions)
設定を使用して、プルリクエストのタイトルと説明を生成するためのカスタム指示を提供できます。この設定をワークスペース内のファイルにポイントするか、設定内にインラインで指示を提供できます。VS Code で Copilot をカスタマイズする についての詳細を取得してください。
次のサンプルは、設定内にインラインでカスタム指示を提供する方法を示しています。
{
"github.copilot.chat.pullRequestDescriptionGeneration.instructions": [
{
"text": "すべての PR タイトルの前に絵文字を付けます。"
}
]
}
タイトルと説明を生成するには、GitHub Pull Requests 拡張機能がインストールされている必要があります。
アクセシビリティ¶
Copilot Edits のアクセシビリティ¶
Copilot Edits のアクセシビリティを大幅に向上させました。
- 変更されたファイルや変更された領域 (挿入、変更、削除) に対してオーディオ信号が追加されました。
- 変更されたファイルのアクセシブルな差分ビューアーが利用可能になりました。差分エディターと同様に、
kb(chatEditor.action.showAccessibleDiffView)
を選択して有効にします。
activeEditorState
ウィンドウタイトル変数¶
エディター情報 (変更状態、問題の数、保留中の Copilot Edits がある場合など) を示す新しい setting(window.title)
変数 activeEditorState
を追加しました。スクリーンリーダーユーザー向けに、スクリーンリーダー最適化モードではデフォルトで追加され、setting(accessibility.windowTitleOptimized:false)
を設定して無効にできます。
ワークベンチ¶
Linux のカスタムタイトルバー¶
カスタムタイトルバーが Linux でデフォルトで有効になりました。カスタムタイトルバーにより、レイアウトコントロール、Copilot メニューなどにアクセスできます。
カスタムタイトルのコンテキストメニューから、または setting(window.titleBarStyle)
を native
に設定することで、ネイティブタイトルの装飾に戻すことができます。
このエクスペリエンスに関するフィードバックを引き続きお待ちしており、既存のフィードバックに基づいて将来のマイルストーンでこれを改善するためにすでに取り組んでいます。
セカンダリサイドバーのビューにラベルを使用¶
セカンダリサイドバーのビューの外観を変更し、アイコンの代わりにラベルを表示することにしました。これにより、パネル領域と同様に、異なるビュー (たとえば Copilot Edits と Copilot Chat) を区別しやすくなります。setting(workbench.secondarySideBar.showLabels)
を設定することで、いつでもアイコンの表示に戻すことができます。
新しい設定エディターのキー一致アルゴリズム (プレビュー)¶
設定: setting(workbench.settings.useWeightedKeySearch:true)
設定エディターの新しい検索アルゴリズムを追加し、より関連性の高いキー一致を優先します。検索アルゴリズムは、設定 ID とラベルを以前よりも多くの方法で一致させようとしますが、最も適切な一致タイプのみを表示するように結果を絞り込みます。
setting(workbench.settings.useWeightedKeySearch:true)
設定を有効にしてプレビュー機能を試してみてください。
テーマ: Light Pink (プレビュー vscode.dev)
シンプルなファイルピッカーでドットファイルを非表示にするオプション¶
シンプルなファイルピッカー を使用する場合 (リモートに接続している場合や setting(files.simpleDialog.enable:true)
を使用している場合)、Show/Hide dot files ボタンを使用してドットファイルを非表示にできるようになりました。
エディター¶
ピークリファレンスのドラッグアンドドロップサポート¶
ピーク ビューがドラッグアンドドロップをサポートするようになりました。Peek References、Peek Implementation、または他のピークコマンドを呼び出し、そのツリーからエントリをドラッグして別のエディターとして開きます。
テーマ: GitHub Light Colorblind (Beta) (プレビュー vscode.dev)
出現ハイライトの遅延¶
エディター内の出現ハイライトの遅延がデフォルトで 0 に設定されました。これにより、全体的により応答性の高いエディターの感触が得られます。setting(editor.occurrencesHighlightDelay)
設定を使用して遅延を制御できます。
ソース管理¶
更新されたビュータイトル¶
ソース管理ビューに Source Control Graph ビューを追加したとき、ソース管理ビューのセクションタイトルの重複が強調されました: "Source Control Repositories"、"Source Control"、および "Source Control Graph"。このマイルストーンでは、ビューのタイトルを見直し、短くし、ビュータイトルを重複させないようにしました: "Repositories"、"Changes"、および "Graph"。
追跡されていない変更の破棄の改善¶
設定: setting(git.discardUntrackedChangesToTrash)
長年にわたり、追跡されていないファイルを破棄するとファイルが完全に削除されるため、データ損失に関する複数の報告がありました。VS Code はファイルが完全に削除されることを明確に示すモーダルダイアログを表示しますが、それでも問題が発生していました。
このマイルストーンから、追跡されていないファイルを破棄すると、可能な場合はファイルがリサイクルビン/ゴミ箱に移動されるため、ファイルを簡単に回復できます。この機能は setting(git.discardUntrackedChangesToTrash)
設定を使用して無効にできます。
診断コミットフック (試験的)¶
設定:
setting(git.diagnosticsCommitHook.Enabled:true)
setting(git.diagnosticsCommitHook.Sources)
このマイルストーンでは、変更されたファイルに未解決の診断がある場合にプロンプトを表示する新しいコミットフックを導入しました。これは現在試験的な機能であり、setting(git.diagnosticsCommitHook.Enabled:true)
設定を使用して有効にできます。
デフォルトでは、エラーレベルの診断に対してプロンプトが表示されますが、診断ソースとレベルは setting(git.diagnosticsCommitHook.Sources)
設定を使用してカスタマイズできます。試してみて、フィードバックをお聞かせください。
ノートブック¶
インラインノートブック差分ビュー (試験的)¶
設定: setting(notebook.diff.experimental.toggleInline:true)
ノートブックのインライン差分ビューを有効にできるようになりました。この機能により、ノートブックセル内の変更を従来のサイドバイサイド比較ではなく、単一のインラインビューで表示できます。
この機能を有効にするには、setting(notebook.diff.experimental.toggleInline:true)
を true
に設定します。エディターメニューの右上隅を使用して差分ビューをインラインに切り替えることができます。
ノートブックインライン値ホバー¶
ノートブックのインライン値は、ビューポートの幅に合わせて装飾が切り詰められ、完全な値を表示するリッチホバーが追加されました。これにより、データフレームなどの変数の形状が維持され、一目で値を読みやすくなります。
ターミナル IntelliSense (プレビュー)¶
設定: setting(terminal.integrated.suggest.enabled:true)
bash、zsh、fish、および PowerShell のターミナルシェル補完を大幅に改善し、補完スペック (git
など) を追加し、コマンドライン解析を改善してより良い提案を提供し、ファイルおよびフォルダの補完を強化しました。この機能を有効にするには、setting(terminal.integrated.suggest.enabled:true)
を設定します。
強化された Fig 補完サポート¶
Fig 補完スペック を活用して、特定の CLI のインテリジェントな補完を提供します。以前は少数のスペックしかありませんでしたが、このイテレーションでは次の CLI を VS Code に追加しました。
- 基本ツール:
cat
、chmod
、chown
、cp
、curl
、df
、du
、echo
、find
、grep
、head
、less
、ls
、mkdir
、more
、mv
、pwd
、rm
、rmdir
、tail
、top
、touch
、uname
- プロセスツール:
kill
、killall
、ps
- パッケージマネージャー:
apt
、brew
- Node.js エコシステム:
node
、npm
、npx
、nvm
、pnpm
、yarn
- SCM、言語、エディター:
git
、nano
、python
、python3
、vim
- ネットワーク:
scp
、ssh
、wget
新しいスペックに加えて、ジェネレーター もサポートしており、リクエストされたときにコマンドを実行して動的に補完を生成します。これの一例として、git checkout
のすべてのブランチを表示することが挙げられます。
テーマ: Sapphire (プレビュー vscode.dev)
舞台裏では、これが git --no-optional-locks branch -a --no-color --sort=-committerdate
を実行してブランチのリストを取得し、それを補完に処理します。同様のアプローチを使用してタグも取得します。
設定可能なクイック提案¶
設定: setting(terminal.integrated.suggest.quickSuggestions)
エディターと同様に、クイック提案 は、特定の文字 (たとえば \
や -
) を使用する代わりに、何か を入力すると自動的に IntelliSense を表示します。新しい setting(terminal.integrated.suggest.quickSuggestions)
設定を使用して、クイック提案を表示するタイミングを正確に制御できます。
デフォルト値は、コマンドと引数に対してクイック提案を有効にし、パスに対しては無効にします。これはデフォルトです。
"terminal.integrated.suggest.quickSuggestions": {
"commands": "on",
"arguments": "on",
"unknown": "off"
}
インライン提案の検出¶
設定: setting(terminal.integrated.suggest.inlineSuggestion)
これまでのインライン提案検出の問題の 1 つは、異なるソースからの提案と競合することによって引き起こされる混乱でした。具体的には、シェルで入力するときに表示されるインライン提案です。
これらの提案は実際にはシェルレベルの機能です (fish/zsh の自動提案、pwsh の予測など)。特に IntelliSense と一緒に表示される場合、ユーザーには明らかではないかもしれません。
IntelliSense 機能は、このインライン提案を検出する必要がありますが、以前は faint または italics SGR 属性でスタイル設定されたテキストをチェックするだけの単純な実装を使用していました。これでは不十分であり、特にユーザーがスタイルをカスタマイズした場合や、fish シェルがデフォルトでこれらのスタイルを使用しない場合に問題が発生しました。現在では、コマンドラインコンテキストとカーソル位置を分析することで、ほとんどのケースを検出しています。
この新しく改善された検出に基づいて、インライン提案はトップオプションとして表示され、星アイコンが付いており、エディターの動作により近づけ、kstyle(Tab)
がこの場合に何を行うかをより明確にします。
デフォルトでは、この提案は常にトップ提案として表示されますが、setting(terminal.integrated.suggest.inlineSuggestion)
を使用して構成できます。
詳細なコマンド補完¶
bash および zsh の組み込みコマンドおよび PowerShell コマンドの補完が詳細になり、利用可能な引数に関する詳細情報が提供されます。この情報は、シェルのドキュメントまたはヘルプコマンドから取得されます。
bash では、help <command>
を使用して基本的な説明を取得します。
zsh では、man zshbuiltins
を使用して詳細な説明を取得します。
PowerShell では、Get-Command
のプロパティの詳細が補完に表示されます。
改善されたソート¶
コマンド補完には、特に次の点で改善されたソートが特徴です。
- より詳細な補完は、一般的に詳細の少ない補完の上に表示されます
- 組み込みコマンドは
$PATH
からのパスよりも優先されます
パスについては、次の改善が行われました。
_
で始まるパスはペナルティを受けます。これは通常、特別であり、あまり変更されるべきではないことを示す指標です (たとえば、__init__.py
)。- ソート時に句読点が無視されるため、
.
で始まるファイルは他のファイルと混在します。
CDPATH サポート¶
設定: setting(terminal.integrated.suggest.cdPath)
$CDPATH
環境変数は、$PATH
と同様にコロン区切りのパスのリストを含む一般的なシェル機能であり、現在の作業ディレクトリに関係なく相対的にナビゲートできます。fish は実際に cd
タブ補完で CDPATH エントリを表示します。
cd
を使用する際に $CDPATH
エントリを補完として表示することができるようになりました。
この機能は Windows (;
セパレータ) でも動作し、シェルがネイティブにサポートしていなくても、デフォルトで絶対パスを使用します。
setting(terminal.integrated.suggest.cdPath)
を使用してこの機能を構成します。
絶対パス¶
絶対パスがサポートされるようになりました。
エイリアスサポート¶
bash、zsh、および fish のコマンドエイリアスが検出され、新しい独自のアイコンが表示されるようになりました。
オプションとフラグの区別¶
CLI オプション (値を持つもの) とフラグ (値を持たないもの) が UI で区別され、異なるアイコンが表示されるようになりました。
タスク¶
タスク再実行アクション¶
ターミナル用の新しい 再実行 タスクアクション kb(workbench.action.tasks.rerunForActiveTerminal)
を追加しました。このアクションは、ターミナルタブのインラインツールバーおよびターミナルのコンテキストメニューに表示されます。
デバッグ¶
デバッグインライン値ホバー¶
setting(debug.inlineValues)
設定が有効になっている場合、インライン値の装飾にインラインホバーが追加され、長い値を一目で読みやすくなります。
言語¶
TypeScript 5.8¶
VS Code には TypeScript 5.8.2 が含まれています。この主要なアップデートには、条件式からの型のチェックの改善 や Node の新しい --experimental-strip-types オプションに準拠するコードの記述サポート などの新しい言語の改善が含まれています。また、多くのツールの改善やバグ修正も含まれています。
このアップデートの詳細については、TypeScript 5.8 リリースブログ をご覧ください。
リモート開発¶
リモート開発拡張機能 を使用すると、Dev Container、SSH 経由のリモートマシンまたは Remote Tunnels、または Windows Subsystem for Linux (WSL) をフル機能の開発環境として使用できます。
ハイライトには次のものが含まれます。
- Linux レガシーサーバーの EOL
- プロキシ構成の拡張
これらの機能の詳細については、リモート開発リリースノート をご覧ください。
エンタープライズサポート¶
許可された拡張機能の複数行サポート¶
許可された拡張機能を Windows のグループポリシーで構成する際に、複数行の文字列を使用できるようになりました。これにより、許可された拡張機能の構成がより柔軟で広範になります。許可された拡張機能の構成 について詳しく学んでください。
拡張機能への貢献¶
Python¶
長い文字列を分割する際の自動引用符挿入¶
Pylance は、長い文字列を分割する際に引用符を自動挿入する機能をサポートするようになりました。
Pylance のメモリ消費の改善¶
特に大規模なワークスペースで作業する際に、Pylance のメモリ消費を改善するための最適化が行われました。この改善 は、Pylance の言語サーバー機能を支える静的型チェッカー Pyright に対して行われました。
Python シェル統合の改善¶
setting(python.terminal.shellIntegration.enabled)
を変更した後、変更が反映されるまでにリロードする必要がなくなりました。新しいターミナルを作成するだけで、ターミナル内の Python REPL に希望の変更が反映されます。
Windows Git Bash の正しいワークスペースプロンプト¶
Windows で Git Bash を使用する Python ユーザーは、ターミナルプロンプトに正しい作業ディレクトリが表示されるようになりました。
これらの変更は、pythonTerminalEnvVarActivation
実験にオプトインしているユーザーに適用されます。
自動テスト検出ファイルパターンの新しい設定¶
setting(python.testing.autoTestDiscoverOnSavePattern)
設定でグロブパターンを指定することで、自動テスト検出が行われるファイルを絞り込むことができます。デフォルト値は **/*.py
に設定されています。
settings.json からのテストデバッグ構成の読み取り¶
テストデバッグ構成を settings.json
および launch.json
ファイルの両方で検索するようになり、これらの構成を定義できる場所が拡張されました。
GitHub 認証¶
Electron fetch
採用によるプロキシサポートの改善¶
GitHub 認証拡張機能は、Web リクエストを行うために Electron のバージョンの fetch
を活用するようになりました。これにより、特定のプロキシおよびファイアウォール設定を持つユーザーが支援されました。プロキシ設定がある環境で GitHub に認証できない場合は、問題を作成することを躊躇しないでください。
拡張機能の作成¶
認証¶
重要:
AuthenticationForceNewSessionOptions
をAuthenticationGetSessionPresentationOptions
に名前を変更し、現在のところAuthenticationForceNewSessionOptions
を非推奨として残します。機能的な違いはないため、ランタイムでの破壊的変更ではありませんが、将来的に削除されるため、AuthenticationForceNewSessionOptions
の代わりにAuthenticationGetSessionPresentationOptions
を使用するようにコードを更新する必要があります。
次の 2 つの認証呼び出しを見てみましょう。
vscode.authentication.getSession(provider, scopes, { createIfNone: options });
vscode.authentication.getSession(provider, scopes, { forceNewSession: options });
createIfNone
および forceNewSession
は、boolean
または AuthenticationGetSessionPresentationOptions
のいずれかを受け取るようになります。
/**
* インタラクティブなオプション `forceNewSession` および `createIfNone` を使用して {@link authentication.getSession} を呼び出す際に使用されるオプション。
*/
export interface AuthenticationGetSessionPresentationOptions {
/**
* 再認証を求める際にユーザーに表示されるオプションのメッセージ。再認証を求める理由を追加のコンテキストとして提供することで、ユーザーが受け入れる可能性が高まります。
*/
detail?: string;
}
これは createIfNone
にとって新しい追加ですが、forceNewSession
にとっては AuthenticationForceNewSessionOptions
を受け取るように変更されたものであり、これは AuthenticationGetSessionPresentationOptions
と同じシグネチャを持っています。
AuthenticationForceNewSessionOptions
を明示的に使用している場合、それが非推奨としてマークされていることがわかり、AuthenticationForceNewSessionOptions
が将来のバージョンで削除されるため、AuthenticationGetSessionPresentationOptions
に置き換える必要があります。
ここで重要なのは、変更されるのは型だけであり、ランタイムの変更はないため、ランタイムの観点からは破壊的変更ではないということです。
さらに、authLearnMore
提案 API が AuthenticationForceNewSessionOptions
から AuthenticationGetSessionPresentationOptions
に更新されました。
detail
と learnMore
提案を活用する例を次に示します。
改良されたスニペット API¶
スニペットを挿入する際の空白の正規化を制御できるようになりました。これは insertSnippet
-API および SnippetTextEdit
-API に適用され、スニペットの追加行のインデントが調整されるかどうかを制御します。
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
の現在のencoding
を取得する- 特定の
encoding
でTextDocument
を開く - 特定の
encoding
でstring
をUint8Array
にエンコードする - 特定の
encoding
を使用してUint8Array
をstring
にデコードする
試してみて、この GitHub issue でフィードバックをお聞かせください。
シェル環境¶
拡張機能は、VS Code 統合ターミナルから開かれた pwsh、zsh、bash、および fish シェルの現在アクティブなシェル環境情報にアクセスできます。これは setting(terminal.integrated.shellIntegration.enabled)
が有効な場合にのみ利用可能です。
ユーザーは setting(terminal.integrated.shellIntegration.environmentReporting)
を使用して、シェル環境情報を報告するかどうかを決定できます。
試してみて、この GitHub issue でフィードバックをお聞かせください。
エンジニアリング¶
Electron 34 アップデート¶
このマイルストーンでは、Electron 34 アップデートを安定版リリースのユーザーに提供しています。このアップデートには、Chromium 132.0.6834.196 および Node.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 selection indicator line should use menu.separatorBackground instead of menu.border PR #228825
- @bchu1 (Bryan Chu): Fix to header misplacement in minimap PR #217581
- @cassidoo (Cassidy Williams): Fix #241903: Add override for GitHub in settingsLayout.ts PR #241911
- @cdce8p (Marc Mueller): Add panelTitleBadge color variables PR #240645
- @cenviity (Vincent Ging Ho Yim): Fix typos in
editorOptions.ts
PR #239929 - @cmbrose (Caleb Brose): Update chat's
newEditSession
command to take an input prompt PR #241796 - @devm33 (Devraj Mehta): fix: add electron as an external for webpack PR #239134
- @dmotte (Motte): Fix behavior of terminal.integrated.confirmOnExit PR #240074
- @dvangonen (Daniil Vangonen): Remove unnecessary classes from body PR #240633
- @gabritto (Gabriela Araujo Britto): Revert "[typescript-language-features] Expandable hover (#228255)" PR #240011
- @gjsjohnmurray (John Murray)
- Supply multiselects to
scm/resourceGroup/context
menu commands (fix #92337) PR #192172 - Add
scmResourceGroupState
context key (#192009) PR #194804 - SCM - Briefer titles on SCM views PR #230693
- Fix `Show User Keybindings' option on Keyboard Shortcuts editor (fix #240068) PR #240085
- Bad 'OK' capitalization on 'Add Triggered Breakpoint...' (fix #240490) PR #240492
- Supply multiselects to
- @hickford (M Hickford): Log provider in "tunnel user show" PR #240692
- @ihavecoke (ihavecoke): Clamp tab_size setting between 1 and 16 PR #228957
- @jakebailey (Jake Bailey): Preserve --disable-extensions in extension host development PR #240415
- @jamestut (James Nugraha): Compute TextModel limits before initializing the tokenizer PR #240919
- @jeanp413 (Jean Pierre)
- Fix terminal split view disposable leaked PR #241597
- Fix broken terminal link hover, hides before being able to hover over the contents PR #241599
- Fix timeline view leaks event listeners PR #241607
- @KexyBiscuit (Kexy Biscuit a.k.a. るる): Allow detection of powershell-preview snap PR #240054
- @klaussner (Christian Klaussner): Fix traffic light centering on macOS PR #212471
- @naman108 (Natha Paquette): Typo in storage URI docs PR #241600
- @nknguyenhc (Nguyen): Extension detail content escapes container PR #240134
- @notoriousmango (Seong Min Park)
- Make Command Center debug launcher offer most recently used configuration first PR #240744
- Adopt Markdown to use vscode log output channel PR #241342
- @pouyakary (Pouya Kary ✨): Feat: Custom Minimap Section Header Marker Detection RegExp ✨ PR #210271
- @rgrunber (Roland Grunberg): Expose adjustWhitespace to TextEditor API. PR #234858
- @silamon (Simon Lamon): Diff editor: Correct
1 files
to1 file
PR #240092 - @simon-id (simon-id): fix: workbench search use correct findMatch colors (fix #237909) PR #237910
- @SimonSiefke (Simon Siefke): fix: memory leak in settings indicators PR #236417
- @ssigwart (Stephen Sigwart): Fix unexpected tab completion when attempting to indent PR #136572
- @SunsetTechuila (Grigory): feat(commands): add
insertFinalNewLine
PR #241126 - @tcvdh (Thijs van den Heuvel): Fix: Wait for clear command to execute before reusing terminal PR #240970
- @terrymun (Terry Mun-Andersen): fix: remove extraneous backtick in CONTRIBUTING.md PR #240305
- @tmm1 (Aman Karmani): tsb: fix for deleted and re-added source file not being re-generated PR #238409
- @xymopen (xymopen_Official)
- Add node as npm script runner PR #236967
- Add node as npm script runner (2nd) PR #240527
- @zardoy (Vitaly): [Git] Migrate to git autostash when pulling for better performance PR #187850
vscode-css-languageservice
への貢献:
- @GauravB159 (Gaurav Bhagchandani): lab() and lch() color previews added PR #306
vscode-eslint
への貢献:
- @edemaine (Erik Demaine): Probing support for Civet PR #1965
- @mustevenplay (mustevenplay): Add Typescript configuration files detection PR #1968
vscode-hexeditor
への貢献:
- @tomilho (Tomás Silva): Moved Hex Compare Selected below Compare Selected PR #561
vscode-jupyter
への貢献:
- @thesuperzapper (Mathew Wicks): Fix reading
JUPYTER_RUNTIME_DIR
andXDG_RUNTIME_DIR
PR #16451
vscode-languageserver-node
への貢献:
- @MariaSolOs (Maria José Solano)
- @mciccale (Marco Ciccalè Baztán): minor typo semaphore.ts PR #1618
- @yf-yang: fix: avoid dispose unmatched handlers PR #1614
vscode-mypy
への貢献:
- @DetachHead
- @hamirmahal (Hamir Mahal): fix: usage of
node12 which is deprecated
in CI PR #336 - @ivirabyan (Ivan Virabyan): Add dmypy status file setting PR #347
vscode-pull-request-github
への貢献:
- @christianvuerings (Christian Vuerings): Fix Copy GitHub Permalink with custom SSH PR #6669
vscode-python-debugger
への貢献:
- @TCPsoftware (tcpsoft): Make "args": "${command:pickArgs}" as default debug configuration PR #548
vscode-vsce
への貢献:
- @mohankumarelec (mohanram): Updated the semver comparison PR #1078
- @stevedlawrence (Steve Lawrence): Allow for reproducible .vsix packages PR #1100
debug-adapter-protocol
への貢献:
- @angelozerr (Angelo): Add IntelliJ / LSP4IJ DAP support PR #529
- @samisalreadytaken: Add Squirrel Debugger to adapters.md PR #530
- @SpartanJ (Martín Lucas Golini): Update tools.md adding a new DAP client: ecode PR #526
- @sssooonnnggg (Song): chore: add luau debugger PR #516
- @theIDinside (Simon Farre): Add Midas to Debug Adapter list, w/ VSCode PR #528
language-server-protocol
への貢献:
- @ind1go (Ben Cox): Typo in workspace diagnostics PR #2086
- @MariaSolOs (Maria José Solano)
- @MuntasirSZN (Muntasir Mahmud): feat: copilot language server in server list PR #2107
- @Szasza (Szasza Palmer): adding Wing language server to server list PR #2101
- @the-mikedavis (Michael Davis): Clarify that
$0
should not use any other snippet syntax PR #2087 - @yassun7010 (yassun7010): add Tombi to LSP list. PR #2089
python-environment-tools
への貢献:
- @pantheraleo-7: Add support for detecting
$VIRTUAL_ENV
PR #181