2025年2月 (バージョン 1.98)
更新 1.98.1: この更新により、これらの問題が修正されます。
更新 1.98.2: この更新により、これらの問題が修正されます。
ダウンロード: 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 をニーズに合わせて調整します。
これらのリリースノートをオンラインで読むには、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 Stable では徐々に展開を開始したばかりです。エージェントモードが有効になると、Copilot Edits ビューにモードドロップダウンが表示されます。単にエージェントを選択してください。
今月、ツールの使用における UX をいくつか改善しました。
- ターミナルコマンドがインラインで表示されるようになり、どのコマンドが実行されたかを追跡しやすくなりました。
- チャット応答で提案されたターミナルコマンドは、実行する前に編集できます。
- ⌘Enter (Windows、Linux では Ctrl+Enter) のショートカットでターミナルコマンドを確定します。
エージェントモードは、コードベース内の関連コンテキストを自律的に検索します。メッセージを展開して、実行された検索結果を確認してください。
また、エージェントモードのプロンプトと動作にも様々な改善を加えました。
- チャットの元に戻す (Undo) およびやり直し (Redo) アクションが、チャット応答で行われた最後のファイル編集を元に戻すまたはやり直すようになりました。これにより、エージェントモードでモデルが行った特定の手順を、チャット応答全体をロールバックすることなく元に戻せるようになり、便利です。
- エージェントモードは、ビルドタスクを自動的に実行したり、指示されたときに実行したりできるようになりました。モデルが実行すべきでないタスクを実行している場合は、github.copilot.chat.agent.runTasks 設定を使用してこの機能を無効にできます。
Copilot Edits エージェントモードの詳細、またはエージェントモードの発表ブログ記事をご覧ください。
注意: Copilot Business または Enterprise ユーザーの場合、エージェントモードを利用するには、組織の管理者が Copilot の「エディタープレビュー機能」の使用をオプトインする必要があります。
Copilot Edits でのノートブックサポート (プレビュー)
VS Code Insiders のプレビュー機能として、Copilot Edits でノートブックのサポートを導入しています。Copilot を使用して、コードファイルを編集するのと同じ直感的な体験でノートブックファイルを編集できるようになりました。新しいノートブックをゼロから作成したり、複数のセルにわたるコンテンツを変更したり、セルを挿入および削除したり、セルタイプを変更したりできます。このプレビュー機能は、データサイエンスまたはドキュメントノートブックを操作する際にシームレスなワークフローを提供します。
注意: この機能は現在、VS Code Insiders で GitHub Copilot Chat のプレリリース版でのみ利用可能です。今後のリリースで VS Code Stable に導入する前に、エクスペリエンスを改善し続けます。
洗練されたエディター統合
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 上のあなたのリポジトリと対話するには権限が必要です。以前は、特定の機能 (たとえば、@workspace
や @github
に質問したり、#codebase
ツールを使用したり) を呼び出すとモーダルダイアログが表示される、通常の VS Code 認証フローでこれが提示されていました。
このエクスペリエンスをよりスムーズにするため、チャットでこの確認を導入しました。
これはモーダルダイアログほどぎこちなくないだけでなく、新しい機能も備えています。
- 許可: 以前と同様に通常の認証フロー (モーダル経由) に進みます。
- 今はしない: 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 が、GitHub Copilot Chat で Copilot Enterprise ユーザー向けに利用可能になりました。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 では、エンドツーエンドのビジョンサポートを迅速に展開しています。これにより、チャットプロンプトで画像を添付して画像と対話できます。たとえば、デバッグ中にエラーが発生した場合、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
コマンドのための強化されたコンテキストを実験しています。この実験は現在 Insiders リリースに限定されており、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 設定を有効にすることで、プレビュー機能を試すことができます。
テーマ: Light Pink (vscode.dev でプレビュー)
シンプルなファイルピッカーでドットファイルを非表示にするオプション
シンプルなファイルピッカーを使用する際 (リモート接続時またはfiles.simpleDialog.enable 使用時)、「ドットファイルの表示/非表示」ボタンを使用してドットファイルを非表示にできるようになりました。
エディター
ピーク参照のドラッグアンドドロップサポート
ピークビューがドラッグ&ドロップをサポートするようになりました。[参照のピーク]、[実装のピーク]、またはその他のピークコマンドを呼び出し、そのツリーからエントリをドラッグして、個別のエディターとして開くことができます。
テーマ: GitHub Light Colorblind (ベータ) (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
補完仕様 (git
など) の追加、より良い提案のためのコマンドライン解析の改良、ファイルとフォルダーの補完の強化により、bash、zsh、fish、PowerShell 全体でのターミナルシェル補完を大幅に改善しました。この機能はterminal.integrated.suggest.enabled で有効にできます。
強化された Fig 補完サポート
特定の CLI に対してインテリジェントな補完を提供するために、Fig の補完仕様を活用しています。以前はこれらが少数でしたが、今回のイテレーションでは、VS Code に同梱されるリストに以下の CLI を追加しました。
- 基本ツール:
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
を実行してブランチのリストを取得し、それを補完として処理します。同様のアプローチでタグも取得されます。
構成可能なクイック候補
設定: terminal.integrated.suggest.quickSuggestions
エディターと同様に、*クイック候補* は、\
や -
などの特定の文字が使用されたときに表示される*トリガー文字*とは異なり、*何か* を入力すると自動的に IntelliSense が表示されるものです。新しいterminal.integrated.suggest.quickSuggestions 設定により、クイック候補を表示するタイミングを正確に制御できます。
既定値では、コマンドと引数に対するクイック候補が有効になっていますが、現在は既定で無効になっており、適用できないことが多いため煩わしくなる可能性があると聞いたパスへのフォールバックを停止しました。これが既定です。
"terminal.integrated.suggest.quickSuggestions": {
"commands": "on",
"arguments": "on",
"unknown": "off"
}
インライン候補の検出
設定: terminal.integrated.suggest.inlineSuggestion
これまでインライン候補の検出が抱えていた問題の一つは、異なるソースからの候補と競合することによって生じる混乱でした。具体的には、シェルで入力する際によく表示されるインライン候補です。
これらの候補は実際にはシェルレベルの機能 (fish/zsh の自動候補、pwsh の予測など) であり、特に IntelliSense と並べて表示されると、ユーザーには明らかではない場合があります。
IntelliSense 機能では、このインライン候補を検出する必要がありますが、以前はテキストがかすれたりイタリックの SGR 属性でスタイル設定されているかどうかのみをチェックする素朴な実装が使用されていました。これは、ユーザーがスタイルをカスタマイズした場合だけでなく、fish シェルが既定でこれらのスタイルのいずれも使用しなかった場合にも不十分であることが判明しました。現在は、コマンドラインのコンテキストとカーソル位置を分析することで、ほとんどのケースを検出しています。
この新しく改善された検出に基づいて、インライン候補がスターアイコン付きの最上位オプションとして表示されるようになりました。これにより、エディターの動作との整合性が高まり、この場合 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 リリースブログをご覧ください。
リモート開発
リモート開発拡張機能により、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 の正しいワークスペースプロンプト
Git Bash を使用している Windows の Python ユーザーは、ターミナルプロンプトで正しい作業ディレクトリを確認できるようになりました。これらの変更は、pythonTerminalEnvVarActivation
実験をオプトインしたユーザーに適用されます。
自動テスト検出ファイルパターン用の新しい設定
python.testing.autoTestDiscoverOnSavePattern 設定でグロブパターンを指定することにより、自動テスト検出が行われるファイルを絞り込むことができるようになりました。既定値は **/*.py
です。
settings.json
からテストデバッグ設定をフォールバックとして読み込む
現在、テストデバッグ設定は settings.json
と launch.json
の両方のファイルで検索されるようになり、これらの設定を定義できる場所が拡張されました。
GitHub認証
Electron fetch
採用によるプロキシサポートの改善
GitHub 認証拡張機能は、Web リクエストを行うために Electron の fetch
バージョンを活用するようになりました。これにより、特定のプロキシおよびファイアウォール設定を持つユーザーが支援されます。プロキシが設定されている環境で実行されており、VS Code 内で GitHub に認証できない場合は、遠慮なく問題を報告してください!
拡張機能作成
認証
重要:
AuthenticationForceNewSessionOptions
をAuthenticationGetSessionPresentationOptions
に名前変更し、当面の間は非推奨のAuthenticationForceNewSessionOptions
を残します。機能的な違いはないため、これはランタイムにおける破壊的変更ではありませんが、将来的に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
を使用している場合、それは非推奨としてマークされており、将来のバージョンで 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`; // 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 は、オブジェクトがガベージコレクションされたときに通知してくれるため、これを利用しています。もしそのようなオブジェクトが、破棄されていない使い捨てオブジェクトを表していた場合、それはリークがあることを意味します。これらは収集され、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): 機能: サーバーリストに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