2025年2月 (バージョン 1.98)
Update 1.98.1: このアップデートでは、これらの問題に対処しています。
Update 1.98.2: このアップデートでは、これらの問題に対処しています。
ダウンロード: Windows: x64 Arm64 | Mac: ユニバーサル Intel シリコン | Linux: deb rpm tarball Arm snap
Visual Studio Code 2025年2月リリースへようこそ。今回のバージョンでは、皆さんに気に入っていただけるであろう多くの更新があります。主なハイライトは以下の通りです。
- 次回の編集候補 (プレビュー) - Copilot が次に編集する可能性のある箇所を予測します。
- エージェントモード (プレビュー) - Copilot が自律的にタスクを完了します。
- Copilot Edits のノートブックサポート - ノートブックの編集を迅速に繰り返します。
- Copilot Vision - チャットプロンプトで画像を添付して操作できます。
- コード検索 - Copilot がチャットプロンプトに関連するファイルを見つけます。
- ターミナル IntelliSense (プレビュー) - ターミナルでの豊富な補完サポート。
- 参照のドラッグ&ドロップ - 新しいエディターで参照を素早く開きます。
- Linux カスタムタイトルバー - Linux のカスタムタイトルバーがデフォルトで有効になりました。
- 未解決の診断 (プレビュー) - 未解決の診断がある場合にコミットを促します。
- ソース管理でのソフト削除 - 未追跡ファイルを削除せずにゴミ箱に移動します。
- カスタム指示の一般提供開始 - カスタム指示を使用して Copilot をニーズに合わせて調整します。
これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com の アップデート をご覧ください。 インサイダー: 新機能をできるだけ早く試したいですか? 夜間の インサイダー ビルドをダウンロードして、最新の更新が利用可能になり次第お試しいただけます。
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) ショートカットでターミナルコマンドを確認します。
エージェントモードは、関連するコンテキストをコードベースから自律的に検索します。メッセージを展開すると、実行された検索結果を確認できます。
エージェントモードのプロンプトと動作にも様々な改善を加えました。
- チャットの元に戻す/やり直すアクションは、チャット応答で行われた最後のファイル編集を元に戻す/やり直すようになりました。これはエージェントモードで便利です。モデルが行った特定のステップを、チャット応答全体を元に戻すことなく元に戻せるようになりました。
- エージェントモードは、ビルドタスクを自動的に、または指示されたときに実行できるようになりました。モデルがタスクを実行すべきでないときに実行していると思われる場合は、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 Stableに導入する前に、引き続きエクスペリエンスを改善していきます。
洗練されたエディター統合
Copilot Editsとコードおよびノートブックエディターの統合を洗練しました。
- 変更が適用されている間、スクロールする必要がなくなりました。ビューポートは元の位置に留まるため、変更点に集中しやすくなります。
- 編集レビューアクションの名前を「承諾」から「保持」に、「破棄」から「元に戻す」に変更し、何が起こっているかをより正確に反映させました。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ポリシー設定で「エディタープレビュー機能」をオプトインすることにより、組織の特定のモデルを有効にする必要があります。
モデルの可用性
今回のリリースでは、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
コマンドの強化されたコンテキストを実験中です。この実験は現在 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 設定を有効にすることで、プレビュー機能を試すことができます。
テーマ: Light Pink (vscode.dev でプレビュー)
簡易ファイルピッカーでドットファイルを非表示にするオプション
簡易ファイルピッカー (リモートに接続している場合、またはfiles.simpleDialog.enableを使用している場合) を使用する際に、ドットファイルの表示/非表示ボタンを使用してドットファイルを非表示にできるようになりました。
エディター
Peek references ドラッグ&ドロップ対応
Peek ビューがドラッグ&ドロップに対応しました。参照をPeek、実装をPeek、またはその他の Peek コマンドを呼び出し、そのツリーからエントリをドラッグして、別のエディタとして開くことができます。
テーマ: GitHub Light Colorblind (Beta) (vscode.dev でプレビュー)
出現箇所強調表示の遅延
エディター内の出現箇所の強調表示の遅延が、デフォルトで0に設定されました。これにより、全体的により応答性の高いエディターの感覚が得られます。遅延は、editor.occurrencesHighlightDelay 設定で引き続き制御できます。
ソース管理
ビュータイトルの更新
Source Control Graph ビューを Source Control ビューに追加した際、Source Control ビュー内のセクションタイトル「Source Control Repositories」、「Source Control」、「Source Control Graph」の重複が強調されました。今回のマイルストーンでは、ビューのタイトルを見直し、短縮してビュータイトルを重複させないようにしました。「Repositories」、「Changes」、「Graph」となります。
未追跡の変更の破棄に関する改善
設定: 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補完サポートの強化
特定の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
これまでのインライン候補検出の問題の1つは、異なるソースからの候補との競合によって引き起こされる混乱でした。具体的には、シェルに入力する際に頻繁に表示されるインライン候補です。
これらの提案は、実際にはシェルレベルの機能(fish/zshの自動提案、pwshの予測など)であり、特にIntelliSenseと並行して表示される場合、ユーザーには明らかではないかもしれません。
IntelliSense機能は、このインライン提案を検出する必要があります。以前は、テキストが*薄い*または*斜体*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 でこれを構成します。
絶対パス
絶対パスもサポートされるようになりました。
エイリアスサポート
bash、zsh、fish のコマンドエイリアスも検出され、新しい distinct なアイコンが特徴です。
オプションとフラグの区別
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 またはリモートトンネルを介したリモートマシン、またはLinux 用 Windows サブシステム (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
です。
設定.jsonからのテストデバッグ設定をフォールバックとして読み込む
テストデバッグ設定を定義できる場所を拡張し、settings.json
とlaunch.json
ファイルの両方でテストデバッグ設定を探すようになりました。
GitHub認証
Electron の fetch
採用によるプロキシサポートの改善
GitHub 認証拡張機能は、ウェブ要求を行うために Electron の fetch
バージョンを利用するようになりました。これにより、特定のプロキシやファイアウォール設定を持つユーザーが助けられています。プロキシ設定のある環境で実行していて、VS Code 内で 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
のいずれかを受け入れるようになりました。
/**
* 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
が削除されるため、AuthenticationGetSessionSessionPresentationOptions
に置き換える必要があります。
ここで変更されているのは型のみであることに注意することが重要です。ランタイムの変更はないため、この観点から破壊的変更はありません。
さらに、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 の問題で試してみて、ご意見をお聞かせください。
シェル環境
拡張機能は、VS Code 統合ターミナルから開かれた pwsh、zsh、bash、fish シェルのユーザーの現在アクティブなシェル環境情報にアクセスできます。これは、terminal.integrated.shellIntegration.enabled が有効な場合にのみ利用可能です。
ユーザーは、terminal.integrated.shellIntegration.environmentReporting を使用して、シェル環境情報を報告するかどうかを決定できます。
このGitHubイシューでぜひ試してみて、ご意見をお聞かせください。
エンジニアリング
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の貢献者の皆様に心からの感謝を申し上げます。
問題追跡
問題追跡への貢献者
- @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 - SCMビューでのタイトル短縮 PR #230693
- キーボードショートカットエディターの「ユーザーキーバインドを表示」オプションの修正 (fix #240068) PR #240085
- 「トリガーされたブレークポイントの追加...」での「OK」の大文字小文字表記の誤りを修正 (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)
- ターミナル分割ビューでリークした廃棄可能なオブジェクトを修正 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: Custom Minimap Section Header Marker Detection RegExp ✨ PR #210271
- @rgrunber (Roland Grunberg): Expose adjustWhitespace to TextEditor API. PR #234858
- @silamon (Simon Lamon): 差分エディタ:
1 files
を1 file
に修正 PR #240092 - @simon-id (simon-id): fix: workbench search use correct findMatch colors (fix #237909) PR #237910
- @SimonSiefke (Simon Siefke): fix: settings indicators のメモリリーク PR #236417
- @ssigwart (Stephen Sigwart): インデント試行時の予期しないタブ補完を修正 PR #136572
- @SunsetTechuila (Grigory): feat(commands):
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: CONTRIBUTING.md から不要なバッククォートを削除 PR #240305
- @tmm1 (Aman Karmani): tsb: 削除されて再追加されたソースファイルが再生成されない問題を修正 PR #238409
- @xymopen (xymopen_Official)
- ノードを npm スクリプトランナーとして追加 PR #236967
- ノードを npm スクリプトランナーとして追加 (2回目) PR #240527
- @zardoy (Vitaly): [Git] より良いパフォーマンスのために、pull 時に git autostash に移行 PR #187850
vscode-css-languageservice
への貢献者
- @GauravB159 (Gaurav Bhagchandani): lab() and lch() color previews added PR #306
vscode-eslint
への貢献者
- @edemaine (Erik Demaine): Civet のプロービングサポート PR #1965
- @mustevenplay (mustevenplay): Typescript 設定ファイルの検出を追加 PR #1968
vscode-hexeditor
への貢献
- @tomilho (Tomás Silva): Hex Compare Selected を Compare Selected の下に移動しました 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): minor typo semaphore.ts PR #1618
- @yf-yang: fix: avoid dispose unmatched handlers PR #1614
vscode-mypy
への貢献
- @DetachHead
- @hamirmahal (Hamir Mahal): fix: CI で
node12
が非推奨の利用を修正 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 debugger を追加 PR #516
- @theIDinside (Simon Farre): Midas を Debug Adapter リストに追加 (VSCode とともに) PR #528
language-server-protocol
への貢献者
- @ind1go (Ben Cox): ワークスペース診断でのタイプミス PR #2086
- @MariaSolOs (Maria José Solano)
- @MuntasirSZN (Muntasir Mahmud): feat: サーバーリストにコパイロット言語サーバーを追加 PR #2107
- @Szasza (Szasza Palmer): Wing言語サーバーをサーバーリストに追加 PR #2101
- @the-mikedavis (Michael Davis):
$0
が他のスニペット構文を使用すべきではないことを明確にする PR #2087 - @yassun7010 (yassun7010): Tombi を LSP リストに追加。 PR #2089
python-environment-tools
への貢献
- @pantheraleo-7:
$VIRTUAL_ENV
の検出サポートを追加 PR #181