2025年2月 (バージョン 1.98)
アップデート 1.98.1: このアップデートでは、以下のissueに対処しています。
アップデート 1.98.2: このアップデートでは、以下のissueに対処しています。
ダウンロード: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Visual Studio Code 2025 年 2 月リリースへようこそ。このバージョンには多くのアップデートが含まれており、きっとご満足いただけると思います。主なハイライトをいくつかご紹介します。
- 次編集候補 (プレビュー) - Copilot が次に行う可能性の高い編集を予測します。
- エージェント モード (プレビュー) - Copilot がタスクを自律的に完了します。
- ノートブックの Copilot Edits サポート - ノートブックの編集を迅速に繰り返します。
- Copilot Vision - チャット プロンプトで画像を添付して操作します。
- コード検索 - Copilot にチャット プロンプトに関連するファイルを見つけてもらいます。
- ターミナル IntelliSense (プレビュー) - ターミナル向けの豊富な補完サポート。
- 参照のピークをドラッグ & ドロップ - 新しいエディターで参照のピークをすばやく開きます。
- Linux カスタム タイトル バー - Linux 用のカスタム タイトル バーのサポートがデフォルトで有効になりました。
- 未解決の診断 (プレビュー) - 未解決の診断がある状態でコミットしようとするとプロンプトを表示します。
- ソース管理でのソフト デリート - 追跡されていないファイルを削除する代わりにゴミ箱に移動します。
- カスタム指示事項の GA - カスタム指示事項を使用して Copilot をニーズに合わせて調整します。
これらのリリース ノートをオンラインで読むには、Updates ( code.visualstudio.com) にアクセスしてください。 Insiders の皆様へ: 新機能をできるだけ早く試してみたいですか? 夜間の Insiders ビルドをダウンロードして、最新のアップデートが利用可能になり次第お試しください。
GitHub Copilot
Copilot の機能は、さまざまな早期アクセス段階を経る可能性があり、通常は設定を通じて有効化および構成されます。
段階 | 説明 |
---|---|
試験的 | この機能はまだ開発中であり、一般利用の準備ができていません。 試験的な機能 ( @tag:experimental ) を表示します。 |
プレビュー | この機能はまだ改良中ですが、使用する準備はできています。フィードバックをお待ちしております。 プレビュー機能 ( @tag:preview ) を表示します。 |
安定版 | この機能は一般利用の準備ができています。 |
Copilot Edits
エージェント モードの改善 (試験的)
先月、VS Code Insiders で Copilot Edits のエージェント モードを導入しました。エージェント モードでは、Copilot は関連するコンテキストをワークスペース内で自動的に検索し、ファイルを編集し、エラーがないかチェックし、ターミナル コマンドを実行 (ユーザーの許可を得て) してタスクをエンドツーエンドで完了できます。
注: エージェント モードは現在、VS Code Insiders で利用可能であり、VS Code 安定版で段階的にロールアウトを開始したばかりです。エージェント モードが有効になると、Copilot Edits ビューにモード ドロップダウンが表示されます。Agent を選択するだけです。
今月は、ツールの使用状況の UX をいくつか改善しました。
- ターミナル コマンドがインラインで表示されるようになり、どのコマンドが実行されたかを追跡できます。
- ターミナル コマンドは、実行する前にチャット応答で編集できます。
- ⌘Enter (Windows、Linux Ctrl+Enter) ショートカットでターミナル コマンドを確定します。
エージェント モードは、コードベースから関連するコンテキストを自律的に検索します。メッセージを展開して、どの検索が実行されたかの結果を確認します。
また、エージェント モードのプロンプトと動作についてもさまざまな改善を行いました。
- チャットの元に戻す操作とやり直し操作で、チャット応答で行われた最後のファイル編集を元に戻したり、やり直したりできるようになりました。これはエージェント モードに役立ちます。モデルが実行した特定の手順を、チャット応答全体をロールバックせずに元に戻すことができるようになったためです。
- エージェント モードは、ビルド タスク を自動的に、または指示された場合に実行できるようになりました。モデルが実行すべきでないときにタスクを実行している場合は、github.copilot.chat.agent.runTasks 設定を使用してこの機能を無効にしてください。
Copilot Edits エージェント モードの詳細、またはエージェント モード発表ブログ記事をお読みください。
注: Copilot Business または Enterprise ユーザーの場合、組織の管理者は、エージェント モードを利用できるようにするために、Copilot の「エディター プレビュー機能」の使用にオプトインする必要があります。
ノートブックの Copilot Edits サポート (プレビュー)
VS Code Insiders のプレビュー機能として、Copilot Edits でのノートブック サポートを導入しています。Copilot を使用して、コード ファイルの編集と同じ直感的な操作でノートブック ファイルを編集できるようになりました。ノートブックを最初から作成したり、複数のセルにわたるコンテンツを変更したり、セルを挿入および削除したり、セル タイプを変更したりできます。このプレビュー機能は、データ サイエンスまたはドキュメント ノートブックを操作する際にシームレスなワークフローを提供します。
注: この機能は現在、GitHub Copilot Chat のプレリリース バージョンを搭載したVS Code Insiders でのみ利用可能です。今後のリリースで VS Code 安定版に導入する前に、エクスペリエンスの向上を継続していきます。
洗練されたエディター統合
Copilot Edits とコードおよびノートブック エディターの統合を洗練させました。
- 変更が適用されている間、スクロールする必要がなくなりました。ビューポートは所定の位置に留まるため、変更内容に集中しやすくなります。
- 編集レビュー アクションの名前を「Accept」から「Keep」に、「Discard」から「Undo」に変更し、何が起こっているかをより適切に反映するようにしました。Copilot Edits の変更はライブであり、変更が行われ、保存されると適用され、ユーザーは変更を保持または元に戻します。
- ファイルを保持または元に戻した後、次のファイルが自動的に表示されます。
このビデオでは、編集が適用および保存される様子を示しています。ライブ プレビューが更新され、ユーザーは変更を「保持」することにしました。元に戻したり、さらに微調整したりすることも可能です。
UI の刷新
Copilot Edits と Copilot Chat の統合に備えて、Copilot Edits を刷新しました。添付されてまだ送信されていないファイルは、通常のチャット添付ファイルとしてレンダリングされるようになりました。AI で変更されたファイルのみが、チャット入力部分の上にある変更されたファイル リストに追加されます。
chat.renderRelatedFiles 設定を使用すると、関連ファイルの候補を取得することを有効にできます。関連ファイルの候補は、チャット添付ファイルの下にレンダリングされます。
Copilot Edits の制限を削除
以前は、Copilot Edits のプロンプトに添付できるファイルは 10 個に制限されていました。このリリースでは、この制限を削除しました。さらに、クライアント側の 10 分あたり 14 回のインタラクションというレート制限も削除しました。
サービス側の使用レート制限は引き続き適用されることに注意してください。
カスタム指示事項が一般提供開始
設定: github.copilot.chat.codeGeneration.useInstructionFiles
カスタム指示事項を使用すると、ユーザーとチームの作業方法に合わせて、GitHub Copilot がチャット応答とコード候補を提供するように調整できます。ワークスペースの .github/copilot-instructions.md
ファイルに、特定の要件を Markdown 形式で記述します。
このマイルストーンでは、.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 (サービス) がリポジトリにアクセスすることを承認または拒否するものではないことに注意することが重要です。これは、VS Code の Copilot エクスペリエンスが認証する方法にすぎません。Copilot がアクセスできるものを構成するには、コンテンツ除外に関するドキュメントをお読みください。
Copilot Chat でのより高度なコードベース検索
設定: github.copilot.chat.codesearch.enabled
Copilot Chat クエリに #codebase
を追加すると、Copilot はチャット プロンプトに関連するコードをワークスペース内で見つけるのに役立ちます。#codebase
は、テキスト検索やファイル検索などのツールを実行して、ワークスペースから追加のコンテキストを取り込むことができるようになりました。
github.copilot.chat.codesearch.enabled を設定して、この動作を有効にします。ツールの完全なリストは次のとおりです。
- 埋め込みベースのセマンティック検索
- テキスト検索
- ファイル検索
- Git で変更されたファイル
- プロジェクト構造
- ファイルの読み取り
- ディレクトリの読み取り
- ワークスペース シンボル検索
問題をチャット コンテキストとして添付
ワークスペース内のコードやその他の問題の修正を支援するために、[問題] パネルの問題をプロンプトのコンテキストとしてチャットに添付できるようになりました。
[問題] パネルから [チャット] ビューに項目をドラッグするか、プロンプトに #problems
と入力するか、ペーパークリップ 📎 ボタンを選択します。特定の問題、ファイル内のすべての問題、またはコードベース内のすべてのファイルを添付できます。
フォルダーをコンテキストとして添付
以前は、エクスプローラー ビューからドラッグ アンド ドロップすることでフォルダーをコンテキストとして添付できました。現在では、ペーパークリップ 📎 アイコンを選択するか、チャット プロンプトに #folder:
に続けてフォルダー名を入力することでもフォルダーを添付できます。
次編集候補の折りたたみモード (プレビュー)
設定:
NES に折りたたみモードを追加しました。このモードを有効にすると、NES 候補インジケーターのみが左エディター マージンに表示されます。コード候補自体は、Tab を押して移動したときにのみ表示されます。候補が受け入れられるまで、連続する候補がすぐに表示されます。
折りたたみモードはデフォルトで無効になっており、editor.inlineSuggest.edits.showCollapsed を構成するか、NES ガター インジケーター メニューで有効または無効にすることで有効にできます。
補完モデルの変更
Copilot Chat と Copilot Edits の言語モデルはすでに変更できましたが、インライン候補のモデルも変更できるようになりました。
または、コマンド パレットの [補完モデルの変更] コマンド、またはタイトル バーの Copilot メニューの [コード補完の構成] 項目を使用して、コード補完に使用されるモデルを変更できます。
注: 利用可能なモデルのリストは変更される場合があります。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 は、直感、文章スタイル、および幅広い知識における高度な機能を備えて設計された大規模言語モデルです。GPT-4.5 モデルの可用性の詳細については、GitHub ブログ投稿をご覧ください。
-
Claude 3.7 Sonnet (プレビュー): Claude 3.7 Sonnet が、有料 Copilot プランのすべてのお客様にご利用いただけるようになりました。この新しい Sonnet モデルは、Copilot の思考モードと非思考モードの両方をサポートしています。初期テストでは、特にエージェント シナリオで大幅な改善が見られました。Claude 3.7 Sonnet モデルの可用性の詳細については、GitHub ブログ投稿をご覧ください。
Copilot Vision (プレビュー)
このバージョンの Copilot Chat では、エンドツーエンドの Vision サポートを迅速に展開しています。これにより、画像を添付して、チャット プロンプトで画像を操作できます。たとえば、デバッグ中にエラーが発生した場合は、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 コンテキスト (試験的)
設定: chat.languageContext.typescript.enabled
TypeScript ファイルのインライン補完および /fix
コマンドのコンテキストを強化する実験を行っています。この実験は現在、Insider リリースにスコープが限定されており、chat.languageContext.typescript.enabled 設定で有効にできます。
プルリクエストのタイトルと説明のカスタム指示事項
設定 github.copilot.chat.pullRequestDescriptionGeneration.instructions を使用して、プルリクエストのタイトルと説明を生成するためのカスタム指示事項を提供できます。設定でワークスペース内のファイルを指定することも、指示事項をインラインで提供することもできます。VS Code での Copilot のカスタマイズの使用方法の詳細をご覧ください。
次のサンプルは、設定でカスタム指示事項をインラインで提供する方法を示しています。
{
"github.copilot.chat.pullRequestDescriptionGeneration.instructions": [
{
"text": "Prefix every PR title with an emoji."
}
]
}
タイトルと説明を生成するには、GitHub Pull Requests 拡張機能がインストールされている必要があります。
アクセシビリティ
Copilot Edits のアクセシビリティ
Copilot Edits のアクセシビリティを大幅に向上させました。
- 変更のあるファイルと変更された領域 (挿入、変更、削除) に対して、オーディオ シグナルが追加されました。
- アクセシブルな差分ビューアーが、変更されたファイルで利用できるようになりました。差分エディターと同様に、F7 を選択して有効にします。
activeEditorState
ウィンドウ タイトル変数
新しい window.title 変数 activeEditorState
を追加しました。これは、スクリーン リーダー ユーザーに変更された状態、問題の数、ファイルに保留中の Copilot Edits がある場合などのエディター情報を示すものです。スクリーン リーダー最適化モードでは、これはデフォルトで追加され、accessibility.windowTitleOptimized で無効にできます。
ワークベンチ
Linux のカスタム タイトル バー
Linux でカスタム タイトル バーがデフォルトで有効になりました。カスタム タイトル バーを使用すると、レイアウト コントロール、Copilot メニューなどにアクセスできます。
カスタム タイトル コンテキスト メニューから、または window.titleBarStyle を native
に構成することで、常にネイティブ タイトル デコレーションに戻すことができます。
このエクスペリエンスに関する継続的なフィードバックをお待ちしており、既存のフィードバックに基づいて今後のマイルストーンに向けて改善に取り組んでいます。
セカンダリ サイド バー ビューにラベルを使用
パネル領域にあるものと同様に、セカンダリ サイド バーのビューの外観をアイコンではなくラベルを表示するように変更することにしました。これにより、たとえば Copilot Edits ビューと Copilot Chat ビューなど、さまざまなビューを区別しやすくなります。workbench.secondarySideBar.showLabels を構成することで、いつでもアイコンの表示に戻すことができます。
新しい設定エディター キー一致アルゴリズム (プレビュー)
設定: workbench.settings.useWeightedKeySearch
より関連性の高いキーの一致を優先する新しい設定エディター検索アルゴリズムを追加しました。検索アルゴリズムは、以前よりも多くの方法で設定 ID とラベルを一致させようとしますが、結果をさらに絞り込むことで、最適な一致タイプのみが表示されるようにします。
workbench.settings.useWeightedKeySearch 設定を有効にすることで、プレビュー機能を試すことができます。
テーマ: ライト ピンク (vscode.dev でプレビュー)
簡易ファイル ピッカーでドット ファイルを非表示にするオプション
簡易ファイル ピッカーを使用する場合 (リモートに接続している場合、または files.simpleDialog.enable を使用している場合)、[ドット ファイルの表示/非表示] ボタンを使用してドット ファイルを非表示にできるようになりました。
エディター
参照のピークをドラッグ アンド ドロップでサポート
ピーク ビューがドラッグ & ドロップをサポートするようになりました。[参照のピーク]、[実装のピーク]、またはその他のピーク コマンドのいずれかを呼び出して、そのツリーからエントリをドラッグして、別のエディターとして開きます。
テーマ: GitHub ライト カラーブラインド (ベータ) (vscode.dev でプレビュー)
出現箇所の強調表示の遅延
エディター内の出現箇所の強調表示の遅延が、デフォルトで 0 に設定されるようになりました。これにより、全体的にエディターの応答性が向上します。editor.occurrencesHighlightDelay 設定を使用して、遅延を制御することもできます。
ソース管理
更新されたビュー タイトル
[ソース管理グラフ] ビューを [ソース管理] ビューに追加した際、[ソース管理] ビューのセクション タイトル ("ソース管理リポジトリ"、"ソース管理"、"ソース管理グラフ") の重複が強調されました。このマイルストーンでは、ビューのタイトルを見直し、ビュー タイトルが短くなり、重複しなくなりました: "リポジトリ"、"変更"、"グラフ"。
追跡されていない変更の破棄の改善
設定: git.discardUntrackedChangesToTrash
長年にわたり、追跡されていないファイルを破棄すると、ファイルが完全に削除されるため、データ損失に関する複数のレポートを受け取っています。VS Code は、ファイルが完全に削除されることを明確にするモーダル ダイアログを表示しますが、それでも発生しています。
このマイルストーンから、追跡されていないファイルを破棄すると、可能な場合はファイルがごみ箱に移動され、ファイルを簡単に復元できるようになります。git.discardUntrackedChangesToTrash 設定を使用して、この機能を無効にできます。
診断コミット フック (試験的)
設定:
このマイルストーンでは、変更されたファイルに未解決の診断がある場合にプロンプトを表示する新しいコミット フックを導入しました。これは現在、git.diagnosticsCommitHook.Enabled 設定を使用して有効にできる試験的な機能です。
デフォルトでは、コミット フックはエラー レベルの診断に対してプロンプトを表示しますが、git.diagnosticsCommitHook.Sources 設定を使用して、診断ソースとレベルをカスタマイズできます。ぜひお試しいただき、フィードバックをお寄せください。
ノートブック
ノートブック インライン差分ビュー (試験的)
設定: notebook.diff.experimental.toggleInline
ノートブックのインライン差分ビューを有効にできるようになりました。この機能により、従来の左右比較ではなく、単一のインライン ビューでノートブック セル内の変更を表示できます。
notebook.diff.experimental.toggleInline を true
に設定して、この機能を有効にします。その後、右上隅のエディター メニューを使用して、差分ビューをインラインに切り替えることができます。
ノートブック インライン値ホバー
ノートブック インライン値の装飾が、ビューポートの幅に合わせて切り捨てられ、完全な値を表示するリッチ ホバーが表示されるようになり、空白の書式設定が維持されます。これにより、データフレームなどの変数の形状が維持され、値を一目で読みやすくなります。
ターミナル IntelliSense (プレビュー)
設定: terminal.integrated.suggest.enabled
bash、zsh、fish、PowerShell 全体のターミナル シェル補完を大幅に改善しました。具体的には、補完仕様 (git
など) を追加し、より適切な候補を得るためにコマンドライン パースを改良し、ファイルとフォルダーの補完を強化しました。terminal.integrated.suggest.enabled でこの機能を有効にします。
拡張された 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
新しい仕様に加えて、ジェネレーターもサポートするようになりました。ジェネレーターは、要求されたときにコマンドを実行して補完を動的に生成します。この動作の 1 つの例は、git checkout
のすべてのブランチを表示することです。
テーマ: サファイア (vscode.dev でプレビュー)
バックグラウンドでは、git --no-optional-locks branch -a --no-color --sort=-committerdate
を実行してブランチのリストを取得してから、補完に処理します。タグを取得するためにも同様のアプローチが使用されます。
構成可能なクイック サジェスト
設定: terminal.integrated.suggest.quickSuggestions
エディターと同様に、クイック サジェストは、\
や -
などの特定の文字が使用されたときに表示されるトリガー文字とは対照的に、何かを入力すると IntelliSense を自動的に表示するものです。新しい terminal.integrated.suggest.quickSuggestions 設定により、クイック サジェストをいつ表示するかを正確に制御できます。
デフォルト値では、コマンドと引数に対するクイックサジェストが有効になっていましたが、適用できない場合が多く、ノイズが多くて煩わしいという意見があったため、デフォルトで無効になり、パスにフォールバックするようになりました。これがデフォルトです。
"terminal.integrated.suggest.quickSuggestions": {
"commands": "on",
"arguments": "on",
"unknown": "off"
}
インラインサジェストの検出
設定: terminal.integrated.suggest.inlineSuggestion
インラインサジェストの検出がこれまで抱えていた問題の1つは、異なるソースからのサジェストと競合することによって生じる混乱でした。具体的には、シェルで入力する際によく表示されるインラインサジェストです。
これらのサジェストは実際にはシェルレベルの機能(fish/zshの自動サジェスト、pwshの予測など)であり、特にIntelliSenseと並んで表示される場合、ユーザーには分かりにくいかもしれません。
IntelliSense機能では、このインラインサジェストを検出する必要があります。以前は、テキストがfaintまたはitalics SGR属性でスタイルされているかどうかのみをチェックする単純な実装を使用していました。しかし、ユーザーがスタイルをカスタマイズした場合だけでなく、fish shellがデフォルトでこれらのスタイルのいずれも使用していなかった場合にも、これでは不十分であることが判明しました。現在では、コマンドラインのコンテキストとカーソル位置を分析することで、ほとんどのケースを検出できるようになりました。
この新しく改善された検出に基づいて、インラインサジェストは、エディターの動作との整合性を高め、kstyle(Tab)
がこのケースで何をするのかをより明確にするために、スターアイコン付きの最上位のオプションとして表示されるようになりました。
デフォルトでは、このサジェストは常に最上位のサジェストとして表示されますが、terminal.integrated.suggest.inlineSuggestionで設定できます。
詳細なコマンド補完
bash、zshの組み込みコマンド、およびPowerShellコマンドの補完がより詳細になり、利用可能な引数の詳細を提供するようになりました。この情報は、シェルのドキュメントまたはヘルプコマンドから取得されます。
bashの場合、基本的な説明を取得するためにhelp <command>
が使用されます。
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で行います。
絶対パス
絶対パスがサポートされるようになりました。
エイリアスのサポート
コマンドエイリアスがbash、zsh、fishでも検出されるようになり、新しい独自のアイコンが特徴です。
オプションとフラグの差別化
CLIオプション(値を持つもの)とフラグ(値を持たないもの)が、UIで異なるアイコンで区別されるようになりました。
タスク
タスクの再実行アクション
ターミナルに新しい再実行タスクアクションが追加されました。⌃⇧R (Windows、Linux Ctrl+Shift+R)。このアクションは、ターミナルタブのインラインツールバーとターミナルのコンテキストメニューに表示されます。
デバッグ
デバッグインライン値ホバー
設定debug.inlineValuesが有効になっている場合、インライン値装飾にインラインホバーが追加され、長い値を一目で読みやすくなりました。
言語
TypeScript 5.8
VS CodeにはTypeScript 5.8.2が含まれるようになりました。このメジャーアップデートでは、条件式からの型チェックの改善や、Nodeの新しい--experimental-strip-typesオプションに準拠するコードの記述のサポートなど、新しい言語機能の改善がもたらされています。また、多くのツール改善とバグ修正も含まれています。
このアップデートの詳細については、TypeScript 5.8リリースブログをご覧ください。
リモート開発
Remote Development extensionsを使用すると、Dev Container、SSH経由のリモートマシン、またはRemote Tunnels、またはWindows Subsystem for Linux(WSL)をフル機能の開発環境として使用できます。
ハイライトは次のとおりです。
- LinuxレガシーサーバーのEOL
- 拡張されたプロキシ設定
これらの機能の詳細については、Remote Developmentリリースノートをご覧ください。
エンタープライズ サポート
許可された拡張機能の複数行サポート
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でglobパターンを指定することにより、自動テスト検出が発生するファイルを絞り込むことができるようになりました。デフォルト値は**/*.py
に設定されています。
settings.jsonからフォールバックとしてテストデバッグ構成を読み取る
テストデバッグ構成を定義できる場所を拡張し、settings.json
ファイルとlaunch.json
ファイルの両方でテストデバッグ構成を検索するようになりました。
GitHub認証
Electron fetch
の採用によるプロキシサポートの改善
GitHub Authentication拡張機能は、Webリクエストを行うためにElectronバージョンのfetch
を活用するようになりました。これにより、特定のプロキシとファイアウォールの設定を持つユーザーを支援しています。プロキシ設定のある環境で実行していて、VS Code内でGitHubに認証できない場合は、遠慮なくissueを作成してください。
拡張機能の作成
認証
重要:
AuthenticationForceNewSessionOptions
の名前をAuthenticationGetSessionPresentationOptions
に変更し、非推奨のAuthenticationForceNewSessionOptions
を当面の間残します。機能的な違いはないため、ランタイムでの破壊的な変更はありませんが、AuthenticationForceNewSessionOptions
は将来削除される予定ですので、コードを更新してAuthenticationGetSessionPresentationOptions
を使用するようにしてください。
これらの2つの認証呼び出しを見てください。
vscode.authentication.getSession(provider, scopes, { createIfNone: options });
vscode.authentication.getSession(provider, scopes, { forceNewSession: options });
createIfNone
とforceNewSession
は、boolean
またはAuthenticationGetSessionPresentationOptions
のいずれかを受け入れるようになります。
/**
* Optional options to be used when calling {@link authentication.getSession} with interactive options `forceNewSession` & `createIfNone`.
*/
export interface AuthenticationGetSessionPresentationOptions {
/**
* An optional message that will be displayed to the user when we ask to re-authenticate. Providing additional context
* as to why you are asking a user to re-authenticate can help increase the odds that they will accept.
*/
detail?: string;
}
これはcreateIfNone
の新しい追加ですが、forceNewSession
の変更であり、以前は新しいAuthenticationGetSessionPresentationOptions
と同じシグネチャを持つAuthenticationForceNewSessionOptions
を受け入れていました。
AuthenticationForceNewSessionOptions
を明示的に使用している場合は、非推奨としてマークされていることがわかり、AuthenticationGetSessionPresentationOptions
に置き換える必要があります。AuthenticationForceNewSessionOptions
は将来のバージョンで削除される予定です。
ここで変更されているのは型のみであることに注意することが重要です。ランタイムの変更はないため、この観点からは破壊的な変更ではありません。
さらに、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`; // adjusted indentation
}
// keepWhitespace: true
function indentedFunctionWithSnippet() {
return `This is an indented
snippet`; // original indentation
}
提案された API
テキストエンコーディング
VS Codeでテキストエンコーディングを操作するための新しい提案されたAPIを追加しました。
具体的には、この新しいAPIでは以下が可能です。
TextDocument
の現在のencoding
を取得する- 特定の
encoding
でTextDocument
を開く - 特定の
encoding
でstring
をUint8Array
にエンコードする - 特定の
encoding
を使用してUint8Array
をstring
にデコードする
ぜひお試しいただき、こちらのGitHub issueでご意見をお聞かせください。
シェル環境
拡張機能は、VS Code統合ターミナルから開かれたpwsh、zsh、bash、およびfishシェルのユーザーのアクティブなシェル環境情報にアクセスできます。これは、terminal.integrated.shellIntegration.enabledが有効になっている場合にのみ利用可能です。
ユーザーは、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を利用しています。そのようなオブジェクトが、破棄されていないdisposable
を表している場合、これはリークがあることを意味します。これらは収集され、VS Codeの開発者に表示されるため、私たちは進行に合わせてクリーンアップできます。
注目すべき修正
謝辞
最後になりましたが、VS Codeのコントリビューターに感謝申し上げます。
Issue追跡
Issue追跡への貢献
- @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): Fix #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): fix: webpackの外部としてelectronを追加 PR #239134
- @dmotte (Motte): terminal.integrated.confirmOnExitの動作を修正 PR #240074
- @dvangonen (Daniil Vangonen): 本文から不要なクラスを削除 PR #240633
- @gabritto (Gabriela Araujo Britto): Revert "[typescript-language-features] 拡張可能なホバー (#_228255)" PR #240011
- @gjsjohnmurray (John Murray)
scm/resourceGroup/context
メニューコマンドに複数選択を提供 (fix #92337) PR #192172scmResourceGroupState
コンテキストキーを追加 (#_192009) PR #194804- SCM - SCMビューのタイトルを簡潔に PR #230693
- キーボードショートカットエディターの「ユーザーキーバインディングを表示」オプションを修正 (fix #240068) PR #240085
- 「トリガーされたブレークポイントを追加...」の「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 ✨): Feat: カスタムミニマップセクションヘッダーマーカー検出RegExp ✨ PR #210271
- @rgrunber (Roland Grunberg): adjustWhitespaceをTextEditor APIに公開。 PR #234858
- @silamon (Simon Lamon): Diffエディター:
1 files
を1 file
に修正 PR #240092 - @simon-id (simon-id): fix: ワークベンチ検索で正しいfindMatchカラーを使用 (fix #237909) PR #237910
- @SimonSiefke (Simon Siefke): fix: 設定インジケーターのメモリリーク PR #236417
- @ssigwart (Stephen Sigwart): インデントを試みるときの予期しないタブ補完を修正 PR #136572
- @SunsetTechuila (Grigory): feat(commands):
insertFinalNewLine
を追加 PR #241126 - @tcvdh (Thijs van den Heuvel): Fix: ターミナルを再利用する前にclearコマンドが実行されるのを待機 PR #240970
- @terrymun (Terry Mun-Andersen): fix: CONTRIBUTING.mdから余分なバッククォートを削除 PR #240305
- @tmm1 (Aman Karmani): tsb: 削除および再追加されたソースファイルが再生成されない問題を修正 PR #238409
- @xymopen (xymopen_Official)
- npmスクリプトランナーとしてnodeを追加 PR #236967
- npmスクリプトランナーとしてnodeを追加 (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): [選択範囲を比較]の下に[選択範囲を16進数で比較]を移動 PR #561
vscode-jupyter
への貢献
- @thesuperzapper (Mathew Wicks):
JUPYTER_RUNTIME_DIR
とXDG_RUNTIME_DIR
の読み取りを修正 PR #16451
vscode-languageserver-node
への貢献
- @MariaSolOs (Maria José Solano)
- @mciccale (Marco Ciccalè Baztán): 軽微なタイプミス semaphore.ts PR #1618
- @yf-yang: fix: 一致しないハンドラーの破棄を回避 PR #1614
vscode-mypy
への貢献
- @DetachHead
- @hamirmahal (Hamir Mahal): fix: CIで
node12 which is deprecated
を使用している PR #336 - @ivirabyan (Ivan Virabyan): dmypyステータスファイル設定を追加 PR #347
vscode-pull-request-github
への貢献
- @christianvuerings (Christian Vuerings): カスタムSSHでGitHubパーマリンクをコピーするのを修正 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: adapters.mdにSquirrel Debuggerを追加 PR #530
- @SpartanJ (Martín Lucas Golini): tools.mdを更新し、新しいDAPクライアントecodeを追加 PR #526
- @sssooonnnggg (Song): chore: luauデバッガーを追加 PR #516
- @theIDinside (Simon Farre): Debug AdapterリストにMidasをVSCodeとともにリストに追加 PR #528
language-server-protocol
への貢献
- @ind1go (Ben Cox): ワークスペース診断のタイプミス PR #2086
- @MariaSolOs (Maria José Solano)
- @MuntasirSZN (Muntasir Mahmud): feat: サーバーリストにcopilot言語サーバーを追加 PR #2107
- @Szasza (Szasza Palmer): サーバーリストにWing言語サーバーを追加 PR #2101
- @the-mikedavis (Michael Davis):
$0
は他のスニペット構文を使用すべきではないことを明確化 PR #2087 - @yassun7010 (yassun7010): LSPリストにTombiを追加。 PR #2089
python-environment-tools
への貢献
- @pantheraleo-7:
$VIRTUAL_ENV
の検出のサポートを追加 PR #181