2024年8月 (バージョン 1.93)
更新 1.93.1: この更新では、これらの問題に対処しています。
ダウンロード: Windows: x64 Arm64 | Mac: ユニバーサル Intel シリコン | Linux: deb rpm tarball Arm snap
Visual Studio Code の2024年8月リリースへようこそ。このバージョンには多くの更新が含まれており、気に入っていただけることを願っています。主なハイライトの一部を次に示します。
- プロファイルエディター - 1か所からプロファイルを切り替えたり管理したりできます。
- Django 単体テストのサポート - テストエクスプローラーから Django 単体テストを検出し、実行できます。
- vscode.dev での IntelliSense - IntelliSense を使用して vscode.dev での JS & TS コーディングを強化します。
- ノートブックの差分ビューア - 変更されていないセルを折りたたむことで、ノートブックの変更を効率的にレビューできます。
- キーボードによる列のサイズ変更 - キーボードを使用して VS Code でテーブル列のサイズを変更しやすくしました。
- ソースコントロールグラフ - ソースコントロールグラフを簡単に非表示、折りたたみ、または移動できます。
- GitHub Copilot - クイックチャットでコンテキストを追加、テスト生成とチャット履歴を改善しました。
- 実験: カスタム Copilot 命令 - Copilot の特定のコード生成命令を定義します。
これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com の Updates にアクセスしてください。Insiders: 新しい機能をできるだけ早く試したいですか? 夜間ビルドのInsidersビルドをダウンロードして、最新の更新をすぐに入手できます。
アクセシビリティ
キーボードによるテーブル列のサイズ変更
新しいコマンドlist.resizeColumn
により、キーボードを使用して列のサイズを変更できます。このコマンドをトリガーすると、サイズを変更したい列を選択し、設定したい幅のパーセンテージを入力します。以下のビデオでは、キーボードショートカットエディターで列のサイズを変更する方法を示しています。
チャット応答の合成に関するスクリーンリーダーのサポート
スクリーンリーダーユーザーが、ariaアラートを受け取る代わりに、シンセサイザーによってアナウンスされるチャット応答を聞くことを選択できるように、accessibility.voice.autoSynthesize
設定を更新しました。
デバッグ機能の改善
エディターにフォーカスがある状態でデバッグしているときに、デバッグ: ウォッチに追加コマンドを呼び出すと、スクリーンリーダーユーザーに対して変数の値がアナウンスされるようになりました。
さらに、デバッグ補助ヘルプダイアログがより徹底的に改善されました。
ワークベンチ
新しいプロファイルエディター
新しいプロファイルエディターがVisual Studio Codeのすべてのバージョンで一般提供されるようになりました。新しいプロファイルエディターを使用すると、単一の場所からプロファイルを管理できます。このエクスペリエンスには、新しいプロファイルの作成、既存のプロファイルの編集と削除、プロファイルのインポートとエクスポートによる共有が含まれます。詳細については、プロファイルドキュメントを参照してください。
ウィンドウコントロールオーバーレイのLinuxサポート
新しい設定window.experimentalControlOverlay
により、window.titleBarStyle
設定でカスタムタイトルバーが有効になっている場合でも、ネイティブウィンドウコントロールが表示されるようになりました。
既定では、Linuxでカスタムタイトルをまだ有効にしていませんが、最終的にはそうする予定です。カスタムタイトルをオンにすると、ネイティブウィンドウコントロールオーバーレイが自動的に表示されます。この新機能を使用する際に見つけたフィードバックを歓迎します!
コメントのソート
コメントは、ファイル内の位置または日付でソートできるようになりました。
設定エディターから設定URLをコピー
設定エディターから特定の設定への直接URLをコピーできます。設定URLに移動すると、VS Codeが開き、設定エディターで対応する設定にフォーカスします。
エクスプローラーでの逆ソート
追加のソートオプションであるexplorer.sortOrderReverse
を追加しました。これにより、様々なエクスプローラーのソート設定を逆順にすることができ、さらにソートの柔軟性が向上します。
エディター
電球の改善
前回のマイルストーンで、コードアクションの電球アイコンが表示される場所を改善しました。今回、editor.lightbulb.enabled
をデフォルトでonCode
に設定することにしました。これにより、電球アイコンはカーソルがソースコードのある行にある場合にのみ表示され、表示頻度が少なくなります。
アクションリストの色テーマ
コードアクションメニューなどのアクションリストコントロールの色は、editorActionList.background
、editorActionList.foreground
、editorActionList.focusForeground
、およびeditorActionList.focusBackground
キーを使用してテーマで構成できます。デフォルトでは、アクションリストコントロールのテーマはクイックピックおよびコマンドパレットのテーマと一致します。カラーテーマのカスタマイズに関する詳細情報を取得します。
GitHub Copilot
このマイルストーンでは、エディター、チャットビュー、インラインチャット全体でGitHub Copilotのエクスペリエンスを引き続き改善しました。また、いくつかの実験的な機能も追加し、皆様からのフィードバックをお待ちしております。
テスト生成の改善
GitHub Copilotを使用すると、エディターのコンテンツメニューにあるCopilotを使用してテストを生成アクションを使用するか、インラインチャットで/tests
スラッシュコマンドを使用することで、コードのテストを生成できます。
既存のテストファイルを探し、新しいテストをそのファイルの末尾に追加するように、テスト生成フローを改善しました。テストファイルがまだない場合、Copilotは生成されたテスト用に新しいテストファイルを作成します。
テストとドキュメントを生成するコードアクションの名前を変更
メソッド名などの識別子にカーソルを置くと、GitHub Copilotはテストまたはドキュメントを生成するコードアクションを提供します。その目的をよりよく反映させるために、これらのコードアクションの名前をCopilotを使用してテストを生成とCopilotを使用してドキュメントを生成に変更しました。以前は、これらはCopilotを使用してテストとCopilotを使用してドキュメントと呼ばれていました。
チャット履歴の改善
チャットビューの上部にあるチャットを表示ボタンから、以前のチャットセッションをチャット履歴から開くことができます。これらのセッションには、AIが生成したよりユーザーフレンドリーな名前が付けられるようになりました。各行の鉛筆アイコンを選択して、手動でセッションの名前を変更することもできます。
これらのチャット履歴エントリも、最後の要求日順にソートされ、日付バケットによってラベル付けおよびグループ化されるようになりました。
注: 新しいチャットセッションのみがAI生成の名前を取得し、既に持っていたチャットセッションは名前が変更されません。
空のウィンドウのチャットセッションを保存
以前は、VS Codeは空のウィンドウ(フォルダーやワークスペースが開かれていないウィンドウ)のチャットセッションを保存しませんでした。現在では、これらのセッションは期待どおりに保存され、空のウィンドウからの以前のチャットはチャットを表示ボタンから読み込むことができます。
注: 複数の空のウィンドウで同時に同じチャットセッションを開いて使用することは避けてください。
クイックチャットでコンテキストを添付
クイックチャットを使用する際、ファイルやシンボルなどのコンテキストをCopilotリクエストに添付するために、コンテキストの添付
アクションを使用できるようになりました。
低評価フィードバックの詳細
Copilot Chatからの応答が期待したものではなかったですか?チャット応答のツールバーにある低評価ボタンを選択して、私たちを助けてください。これで、問題の詳細を説明するためのいくつかの詳細オプションを含むドロップダウンが表示されます。このメニューから問題レポーターを開くこともできます。
コード生成の指示 (実験的)
設定: github.copilot.chat.experimental.codeGeneration.instructions
Copilotは、リファクタリングの一部として、単体テストの生成、機能の実装など、コードの生成を支援できます。Copilotが生成するコードに、使用したい特定のライブラリや、従いたい特定のコーディングスタイルがある場合があります。
実験的な設定github.copilot.chat.experimental.codeGeneration.instructions
により、コードを生成するすべてのCopilotリクエストに追加される一連の指示を定義できます。
指示はユーザーまたはワークスペースの設定で定義できますが、ファイルからインポートすることもできます。
次のコードスニペットは、設定と外部ファイルの両方から一連の指示を定義する方法を示しています
"github.copilot.chat.experimental.codeGeneration.instructions": [
{
"text": "Always add a comment: 'Generated by Copilot'."
},
{
"text": "In TypeScript always use underscore for private field names."
},
{
"file": "code-style.md" // import instructions from file `code-style.md`
}
],
myProject/code-style.md
の内容
Always use React functional components.
Always add comments.
スクリーンショットの参照セクションから、指示が使用されていることがわかります。
チャットビューでのチャット参加者の自動検出 (実験的)
設定: chat.experimental.detectParticipant.enabled
GitHub Copilotには、@workspace
などのいくつかの組み込みチャット参加者があり、これらもチャットビューにコマンドを提供します。以前は、チャットプロンプトでチャット参加者とコマンドを明示的に指定する必要がありました。
自然言語でチャット参加者を使用しやすくするために、今後数週間で、Copilot Chatが質問を適切な参加者またはチャットコマンドに自動的にルーティングする実験を行います。
自動選択された参加者が質問に適切でない場合は、チャット応答の上部にある実行せずに再実行リンクを選択して、質問をCopilotに再送信できます。
最近のコーディングファイルをインラインチャットのコンテキストとして使用 (実験的)
設定: github.copilot.chat.experimental.temporalContext.enabled
Copilotにプロンプトを出すとき、多くの場合、つい最近作業していたり、見ていたコードに関連する質問をしているでしょう。インラインチャットは、最近閲覧または編集されたコードをコンテキストとして使用して、より関連性の高い提案を提供できるようになりました。
この機能はまだ実験段階ですが、誰もがテストする価値があります。
現在のエディター行をインラインチャットのプロンプトとして使用 (実験的)
設定: github.copilot.config.experimental.inlineChatCompletionTrigger.enabled
インラインチャットを開いてからチャットプロンプトを入力する代わりに、エディターで入力を開始し、現在の行の内容を直接インラインチャットのプロンプトとして使用できるようになりました。さらにスムーズなチャットエクスペリエンスのために、Copilotはコードを記述する代わりにプロンプトを出していることを検出し、自動的にインラインチャットを開始できます。
現在の行をインラインチャットのプロンプトとして使用するさまざまな方法は次のとおりです。
- コマンドパレット (⇧⌘P (Windows, Linux Ctrl+Shift+P))からインラインチャット: 現在の行でエディターを開始を入力します。
- inlineChat.startWithCurrentLineコマンドのキーバインドを設定し、それを
inlineChatExpansion
コンテキストキーと組み合わせます。 github.copilot.config.experimental.inlineChatCompletionTrigger.enabled
設定を有効にすると、Copilotが現在の行にソースコードではなくテキストがほとんど含まれていることを検出し、インラインチャットが開始されます。
以下のビデオは、Copilotが現在の行にほとんどテキストが含まれていることを検出した後、インラインチャットを開始するように提案する様子を示しています。
チャットからのデバッグ開始 (実験的)
設定: github.copilot.advanced.startDebugging.experimental.enabled
新しい実験的なスラッシュコマンド/startDebugging
が@vscode
チャット参加者で利用可能です。このコマンドを使用すると、起動構成を作成してアプリのデバッグを開始できます。
このコマンドは、起動構成を作成クイックピックのGitHub Copilotでデバッグ構成を生成オプションからもアクセスできます。
テストカバレッジに基づいてテストを生成 (実験的)
設定: github.copilot.chat.experimental.generateTests.codeLens
テストカバレッジ情報が利用可能な場合、GitHub Copilotは、まだテストでカバーされていない関数やメソッドに対して、CodeLensのCopilotを使用してテストを生成を提供できます。
言語
"SQL"を"MS SQL"に名称変更
SQLファイルの言語名が「SQL」から「MS SQL」に名称変更され、Microsoft SQL Server (T-SQL) 構文に焦点を当てていることをよりよく反映するようになりました。この言語モードのファイル拡張子は引き続き.sql
であり、構文強調表示は変更されていません。
vscode.devでのフルプロジェクトIntelliSenseとパッケージ型定義
Web版VS CodeでJavaScriptとTypeScriptを扱うのが大幅に改善されました。まず、パッケージIntelliSenseを実装し、react
などのインポートされたパッケージから提案やドキュメントを表示できるようになりました。これは、VS Codeのデスクトップ版とほとんど同じように機能します。
TypeScriptファイルでは、package.json
にリストされているパッケージに対してIntelliSenseを提供します。JavaScriptファイルはもう少し柔軟で、自動型取得を使用します。これは、package.json
にリストされていなくても、現在のファイルにインポートされたすべてのパッケージに対してIntelliSenseを提供します。
パッケージIntelliSenseのおかげで、JavaScriptおよびTypeScriptプロジェクト向けの完全なプロジェクトIntelliSenseも有効にしました。これにより、コードのナビゲーションが大幅に改善され、プロジェクト内の任意のシンボルに対して正しく定義へ移動やすべての参照を検索ができるようになりました。また、型エラーの報告も可能になりました。コードを記述中に自動インポートもサポートするようになりました。
パッケージ型定義と完全なプロジェクトIntelliSenseは、Chrome、Microsoft Edge、Firefoxでサポートされています。SafariはReadableByteStreamController
を実装していないため、まだサポートされていません。
ソース管理
ソースコントロールグラフビュー
ユーザーからのフィードバックに基づき、前回のマイルストーンで有効になった履歴グラフをソースコントロールビューからソースコントロールグラフという新しいビューに移動しました。これにより、メインビューからの情報過多が軽減され、新しいビューを好きなように非表示/折りたたみ/移動できるようになりました。これは、全機能搭載の履歴グラフの基礎も築きます。
ソースコントロールグラフビューは現在、現在のブランチのリモート/ベースを表示しています。次のマイルストーンでは、グラフを任意のレポジトリ参照にフィルタリングする機能を追加し、複数のレポジトリを持つワークスペースのエクスペリエンスを改善する作業を行っています。
テーマ: GitHub Sharp (vscode.devでプレビュー)
リファレンステーブル形式のサポート
Git 2.45では、「reftable」と呼ばれる新しい参照ストレージバックエンドの予備的なサポートが追加されました。このマイルストーンでは、この新しい参照ストレージバックエンドをサポートするように組み込みのGit拡張機能を更新しました。
Git 2.45を使用すると、--ref-format=reftable
フラグを使用して、新しい参照ストレージバックエンドを使用するリポジトリを作成またはクローンできます。Git 2.46では、git refs migrate
コマンドを使用して、既存のリポジトリを新しい参照ストレージ形式に移行するサポートも追加されました。
新しい参照ストレージバックエンドはまだ実験段階であることに注意してください。
コンパクトフォルダー設定
コミュニティの貢献のおかげで、新しい設定scm.compactFolders
が追加されました。これにより、変更がツリーとして表示されるときに、ソース管理ビューでフォルダーがコンパクトな形式で表示されるかどうかを制御できます。
ターミナル
JuliaとNuShellのサポート
JuliaとNuShellのシェル統合がサポートされるようになりました。これにより、これらのシェルタイプでコマンド装飾や最近のコマンドの実行などの機能が有効になります。
複数のターミナルタブを移動
複数のターミナルタブを複数選択し、順番に並んだグループとしてターミナルリスト内で移動できるようになりました。
コマンドガイド設定とカラーテーマ
コマンドガイドは、コマンドとその出力にホバーすると表示されるバーです。コマンドガイドをterminal.integrated.shellIntegration.showCommandGuide
設定で無効にできるようになり、色はterminalCommandGuide.foreground
テーマキーでテーマによって設定できるようになりました。
ノートブック
差分ビューで変更されていないセルを表示または非表示
ノートブックの差分ビューでは、変更されていないセルが非表示になり、変更されたセルに集中できるようになりました。同時に、変更されていないすべてのセルの入力は常に折りたたまれます。
差分ビューでの空白の管理
ノートブックの差分ビューでは、次の設定が尊重されるようになりました。
diffEditor.ignoreTrimWhitespace
- 差分を表示するときに、先頭と末尾の (トリム) 空白を無視します。
ノートブック実行カウントのスティッキースクロール
コードセルを下にスクロールすると、コードセルの実行カウントが画面の下部に固定されるようになりました。これにより、長いコードセルで作業しているときに、実行状態と更新を簡単に確認できます。
タスク
プロセス終了時にタスクターミナルを開いたままにする
タスクのターミナルプロセスがゼロ以外のコードで終了した場合、デバッグを容易にするためにターミナルを開いたままにするようになりました。
デバッグ
変数定義にジャンプ
デバッグ拡張機能は、変数と式をコード内の場所とリンクできるようになりました。このリンクが設定されたデータは、変数ビュー、ウォッチビュー、およびデバッグコンソールでCtrlキーを押しながら選択できます (macOSではCmdキー)。
組み込みのJavaScriptデバッガーは、コードで定義された関数の場所をリンクします。他のデバッグ拡張機能は、この機能を有効にするために対応するプロトコル変更を採用する必要があります。
検索コントロール
デバッグコンソール (⌥⌘F (Windows, Linux Ctrl+Alt+F))で検索コントロールを開いて、入力結果を検索できるようになりました。出力結果の検索サポートは今後のマイルストーンで検討されます。
また、フィルターコントロールの右側にあるデバッグコンソールのツールバーに表示されるアクションデバッグコンソール: 検索にフォーカス
からもコントロールにアクセスできます。
起動設定入力キャッシュ
起動設定とタスクで使用される入力変数は、依存するデバッグセッションの再実行プロセスを容易にするために、最後に入力された値を保持するようになりました。これは、入力に明示的なdefault
が定義されていない場合にのみ行われます。
JavaScriptデバッガー
実験的なネットワークビュー
JavaScriptデバッガーに基本的な実験的なネットワークビューが追加されました。debug.javascript.enableNetworkView
設定がオンの場合に利用可能です。このビューは、ブラウザセッションによって行われた要求と応答に関する情報を表示します。
テーマ: Codesong (vscode.devでプレビュー)
ネットワークビューは、Node.js 22.6.0以降でも機能します。プロセスが引数に--experimental-network-inspection
を指定して起動された場合、例えばnode
起動構成に"runtimeArgs": ["--experimental-network-inspection"]
を追加した場合などです。
注: Nodeのネットワークの実装はまだ非常に初期段階であり、要求と応答に関するほとんどのデータはまだ利用できません。
テスト
メッセージのスタックトレースのサポート
テスト拡張機能は、テストの失敗にスタックトレースを関連付けることができるようになりました。そうすると、テスト結果ビューとエラーピークで、呼び出しスタックの各フレーム周辺のコードが表示されます。ビュー内のコードをCtrlキーを押しながら選択 (macOSではCmdキー) して元の場所に移動したり、ヘッダーのファイルに移動アクションを使用したりできます。
テーマ: Codesong (vscode.devでプレビュー)
インストーラー
Debianパッケージは、packages.microsoft.comリポジトリを追加するかどうかを確認するプロンプトを表示するようになりました。これにより、aptを使用してパッケージを後で更新できます。
リモート開発
リモート開発拡張機能を使用すると、開発コンテナ、SSH経由のリモートマシンまたはリモートトンネル、あるいはLinux用Windowsサブシステム (WSL) をフル機能の開発環境として使用できます。
主なハイライトは次のとおりです。
- Dev Containerテンプレートのオプションパス
- SSHによるリモートOSとの互換性を拡張
これらの機能に関する詳細情報は、リモート開発リリースノートで確認できます。
Web 用 VS Code
https://vscode.devでGitHubリポジトリを参照している場合、またはGitHub Repositories拡張機能を使用してデスクトップで参照している場合、git.openDiffOnClick
設定が尊重されるようになりました。
拡張機能への貢献
Python
Django 単体テストのサポート
最も要望の多かった機能の1つである、Django 単体テストの検出とテストエクスプローラーからの実行のサポートを発表できることを嬉しく思います!この機能を有効にするための設定手順については、ドキュメントを確認してください。
テーマ: Catppuccin Macchiato (vscode.devでプレビュー)
この新しく追加された機能を試す際には、vscode-pythonリポジトリまたはPython: 問題を報告コマンドを使用して、フィードバックと問題の報告をお願いします。
ネイティブREPLの改善
新しいネイティブREPLエクスペリエンスにさらなる改善とバグ修正を加えました。ネイティブREPLは、実験としてスマート送信のデフォルトターゲットとして展開されていますが、これを試してみたい場合は、ユーザーのsettings.json
でpython.REPL.sendToNativeREPL
を設定し、VS Codeウィンドウを再読み込みすることで試すことができます。
Pylanceによるインレイヒントからの定義への移動
Pylanceでインレイヒントが有効になっている場合、Ctrlキー (macOSではCmdキー) を押しながらホバーしてクリックすることで、より便利に型の定義に移動できるようになりました。
テストデバッグ時の再起動サポート
デバッグツールバーコントロールを通じてテストをデバッグする際に、デバッガーを再起動できるようになりました。
GitHubプルリクエストと課題
プルリクエストや課題の作業、作成、管理を可能にするGitHub Pull Requests拡張機能の進捗がありました。ハイライトについては、拡張機能の0.96.0リリースの変更履歴を確認してください。
拡張機能作成
VS CodeのEcmaScriptモジュール(ESM)読み込みの影響
現在、VS Codeコアにおけるコードの読み込み方法を、AMD/CommonJSからESMに変更する作業を進めています。拡張機能は引き続きCommonJSとして読み込まれますが、この変更にはrequire
メソッドの変更が伴います。具体的には、1.94
リリース以降、require.main
はundefined
になります。インストールからのファイルへのアクセスにユースケースがある場合は、代わりにvscode.env.appRoot
を検討するか、当社にご連絡ください。
ターミナルシェル統合API
ターミナルシェル統合APIが利用可能になりました。この強力なAPIにより、拡張機能はターミナルで実行されるコマンドをリッスンし、その生の出力、終了コード、コマンドラインを読み取ることができます。
window.onDidEndTerminalShellExecution(event => {
if (event.execution.commandLine.value.startsWith('git')) {
if (event.exitCode === 0) {
// React to a successful git command
} else {
// React to a failing git command
}
}
});
また、コマンドを実行するより信頼性の高い方法も提供します。これにより、コマンドを送信する前にプロンプトが開始されるのを待ち、コマンドがターミナルに余分にエコーされるのを防ぎます。
const commandLine = 'echo "Hello world"';
if (term.shellIntegration) {
const execution = shellIntegration.executeCommand({ commandLine });
window.onDidEndTerminalShellExecution(event => {
if (event.execution === execution) {
console.log(`Command exited with code ${event.exitCode}`);
}
});
} else {
term.sendText(commandLine);
// Without shell integration, we can't know when the command has finished or what the
// exit code was.
}
詳細については、vscode.d.ts
のAPIと拡張機能サンプルを参照してください。
Terminal.shellIntegration
window.onDidChangeTerminalShellIntegration
window.onDidStartTerminalShellExecution
window.onDidEndTerminalShellExecution
認証アカウントAPI
認証APIは、複数のアカウントを処理する際に、より詳細な制御ができるようになりました。これまで常に不足していたのは、すべてのアカウントを取得し、特定のアカウントのAuthenticationSession
を取得する機能でした。それが、getAccounts
APIの最終化により可能になりました。
認証セッションを使用しようとしている拡張機能の作成者は、以下のコードを実行して、ユーザーがログインしているアカウントのAuthenticationSessionAccountInformation
を取得できます。
const accounts = vscode.authentication.getAccounts('microsoft');
そこから、これらのアカウントを使用して、それらのアカウント専用のセッションを発行できます。
const session = vscode.authentication.getSession('microsoft', scopes, {
account: accounts[0]
});
注: これが機能するには、認証プロバイダーが
getSessions
とcreateSession
の両方に渡されるパラメーターを処理する必要があります。組み込みのGitHubおよびMicrosoftプロバイダーは既にこれを採用しています。
これにより、複数の認証セッションを処理し、以前はサポートできなかったさまざまなシナリオを処理する最も明確な方法であると考えています。
デバッグアダプタプロトコル
Debug Adapter ProtocolのVariablesおよびその他のデータ型にlocationReferences
を追加し、ソースロケーションを関連付けられるようにしました。
VS CodeのWebAssembly
wasm-wasi-core
拡張機能と@vscode-wasm-wasi
および@vscode/wasm-component-model
npmモジュールの1.0バージョンがリリースされました。使用例は、vscode-extension-samplesリポジトリのwasm-*
サブフォルダーで見つけることができます。また、VS Code拡張機能内でWebAssemblyコードを使用する方法に関するいくつかの投稿がVS Codeブログにあります。
プレビュー機能
ターミナルIntelliSenseの改善
実験的なPowerShell IntelliSenseは、今回のリリースで以下の改善がされました。
git checkout
には、前のブランチに切り替えるための-
の補完が含まれるようになりました。terminal.integrated.suggest.runOnEnter
のデフォルト値がignoreに設定され、EnterキーがIntelliSenseとまったくやり取りしないようになりました。これは、筋肉の記憶への影響が大きすぎると感じたユーザーからのフィードバックでした。- PowerShellキーワードがコマンド(引数ではない)の補完として利用可能になりました。
cd
の最初のディレクトリ提案が常にそれ自体になり、terminal.integrated.suggest.runOnEnter
が設定されている場合にスムーズになりました。- コマンドラインの異なる位置で要求された場合の提案がより一貫性を持つようになりました。
- ディレクトリを戻る際に、
の補完が提供されます。/../
製品に同梱されるConpty
Conptyは、他のオペレーティングシステムでの擬似端末の動作をエミュレートするターミナルのバックエンドです。このコンポーネントはWindows自体に同梱されており、バグ修正はWindows Updateを通じてリリースされます。ユーザーはこれらの修正が到着するまで長い間待つことになるかもしれません。
このリリースでは、Windows Terminalと同様に、ConptyをVS Code自体にバンドルする実験的な設定があります。これにより、ユーザーはWindows Updateを待つことなく、VS Codeの更新としてバグ修正を取得できます。
これを有効にするには、次の設定をtrue
に設定します。
"terminal.integrated.experimental.windowsUseConptyDll": true
これを有効にすることで期待できる改善の種類は次のとおりです。
- パフォーマンスの向上
- より信頼性の高いシェル統合
- より多くのエスケープシーケンスサポート (例: sixelのWindowsでの近日サポート)
現在知られている唯一の問題は、一部のユーザーでプロセスが残り続け、VS Codeの更新をブロックすることです (microsoft/vscode#225719)。これにより、更新を有効にするにはプロセスを手動で強制終了する必要があります。
TypeScript 5.6のサポート
TypeScript 5.6の今後のリリースに対するサポートを改善し続けました。このリリースに含まれる詳細については、TypeScript 5.6 RCブログ投稿を確認してください。
TypeScript 5.6のプレビュービルドの使用を開始するには、TypeScript Nightly拡張機能をインストールしてください。
新しい問題報告ツール実装
このマイルストーンでは、問題報告ツールの新しい実装を実験しています。機能は変わりませんが、マルチモニターサポートの改善や、Web版VS Codeでの問題報告ツールの利用可能性など、いくつかの改善点があるはずです。
新しいバージョンの問題報告ツールはデフォルトで有効になっており、デスクトップ版VS CodeのissueReporter.experimental.auxWindow
設定で構成できます。
提案されたAPI
言語モデル用ツール
当社は引き続きLanguageModelTool
APIを改善しています。このAPIには主に2つの部分があります。
-
拡張機能がツールを登録する機能。ツールとは、言語モデルによって使用されることを意図した機能の一部です。たとえば、ファイルのGit履歴を読み取るなど。
-
言語モデルがツールをサポートするメカニズム。例えば、拡張機能がリクエストを行う際にツールを渡す、言語モデルがツール呼び出しを要求する、拡張機能がツール呼び出しの結果を返すといったものです。
今月追加された変更の1つは、ユーザーが特定のツールをチャットリクエストに手動で添付できる機能です。これの例は、ユーザーがリクエストで使用したい動的なコンテキストを計算するツールです。
提案はvscode.proposed.lmTools.d.tsとして見つけることができます。ツールの登録と呼び出しを示すtool-user
サンプル拡張機能を確認してください。
更新やフィードバックについては、issue #213274をご覧ください。
注: このAPIはまだ活発に開発中であり、変更される可能性があります。
テストの拡張
コードをテストに関連付ける
拡張機能がコードをテストに関連付け、その逆も可能にするAPIを開発中です。これにより、ユーザーは両方を切り替えることができ、カーソル位置でテストを実行などのアクションも実装コードで機能するようになります。APIの開発に伴い、より多くのエクスペリエンスを構築する予定です。
詳細と更新については、vscode#126932をご覧ください。
属性付きテストカバレッジ
テストごとにテストカバレッジを割り当てるAPIを開発中です。これにより、ユーザーはどのテストがどのコードを実行したかを確認でき、エディターに表示されるカバレッジとテストカバレッジビューに表示されるカバレッジの両方をフィルタリングできます。
詳細と更新については、vscode#212196をご覧ください。
チャット参加者検出API
チャットビューに、参加者またはチャットコマンドを提供する拡張機能を作成している場合、package.json
のchatParticipants
の貢献にメタデータを追加することで、参加者とコマンドを自動的に検出させることができます。このAPIを採用する方法の例を含むようにvscode-extension-samples
リポジトリを更新しました。テスト時には、chat.experimental.detectParticipant.enabled
を設定することを忘れないでください。これは提案されているAPIであり、変更される可能性があることに注意してください。
ウェブサイト
VS Code APIページの下のいくつかのリンクを修正しました。汎用型や関数へのリンクが再び機能するようになり、プリミティブ型や値はリンクとして書式設定されなくなりました!
エンジニアリング
VS CodeでのESM使用の進捗
このマイルストーンでは、VS CodeコアにESMを採用するための作業のほとんどを完了しました。私たちの目標は、ECMAScript Modules (ESM) の読み込みを使用し、AMDを完全に廃止することです。9月にESM対応のInsiderビルドをリリースし始め、10月の次回のリリースでESMをStableにリリースする予定です。
ESMのリリース計画は、https://github.com/microsoft/vscode/issues/226260に記載されています。
注目すべき修正点
ありがとうございます
最後に、VS Codeの貢献者の皆様に心からの感謝を申し上げます。
問題追跡
問題追跡への貢献者
- @gjsjohnmurray (John Murray)
- @IllusionMH (Andrii Dieiev)
- @RedCMD (RedCMD)
- @albertosantini (Alberto Santini)
プルリクエスト
vscode
への貢献者
- @akinomyoga (Koichi Murase): Bash統合がPROMPT_COMMANDの
$?
を上書きする問題を修正 PR #226929 - @andrewbranch (Andrew Branch): [typescript-language-features] autoImportSpecifierExcludeRegexes設定を追加 PR #226202
- @anton-matosov (Anton Matosov): #171066のフォローアップでzshとfishシェルの実装を修正 PR #223421
- @arvid220u (Arvid Lunnemark): クリアされたauxwindowタイムアウトを二度と実行しない PR #221296
- @BABA983 (BABA)
- 重複コードを削除 PR #224091
- 複数のタブをドラッグした後、元のターミナルタブの順序を尊重 PR #224591
- registerWindowTitleVariableコマンドを追加 PR #225408
- @bsShoham (Shoham Ben Shitrit): 単語の先頭でチャット変数補完をトリガー PR #224174
- @Cecil0o0 (hj): リファクタリング: 同じ名前空間宣言をマージ PR #219638
- @CGNonofr (Loïc Mangeonjean): ノード環境をどこでも適切に検出 PR #221357
- @cobey (Cody Beyer): pythonとjsにai-inferenceタグを追加 PR #225098
- @dangerman (Anees Ahee)
- コマンドパレットに「TSサーバーを再起動」コマンドが欠落していた問題を修正 PR #223433
- 通知フォーカスアウトラインを丸める PR #225824
- @Flanker32 (Hanxiao Liu): Java AIライブラリのワークスペースタグを更新 PR #223677
- @gabritto (Gabriela Araujo Britto)
- [typescript-language-features] tsserverからコミット文字が利用可能な場合にそれらを使用 PR #223541
- [typescript-language-features] 診断テレメトリプロパティ名を修正 PR #225079
- @gjsjohnmurray (John Murray)
- 元に戻す操作後も読み取り専用ファイル名の装飾を表示し、mtimeもリセットする(#221014を修正) PR #221023
- 補完項目ステータスバーのテキストの大文字小文字が正しくないのを修正 (#_225429) PR #225431
workbench.editor.enablePreview
設定の説明を改善 (fix #225453) PR #225704
- @hron (Aleksei Gusev): fix:
merge.toggleActiveConflict
をショートカットとして PR #225320 - @iisaduan (Isabel Duan): typescriptのorganizeImportsの設定をsettingsインターフェースに追加 PR #209293
- @jeanp413 (Jean Pierre)
- 検索ビューを別の場所に移動した場合に、エディターの変更で検索結果が自動的に更新されない問題を修正 PR #215764
- ターミナル名変更アイコンを変更 PR #225444
- エクスプローラーが「cut」という単語を含むフォルダー/アイテムをグレーアウトする問題を修正 PR #225455
- @Jesscha (JessCha): extHostExtensionService.ts のタイプミスを修正 PR #224111
- @m-byte (Matthias B.): 修正: aptソースはそれを望むユーザーのみ追加する (#_22145) PR #221285
- @mkasenberg: 検索エディターのfocusResultを修正 PR #205914
- @mogelbrod (Victor Hallberg): コメントパネルに「更新日順でソート」オプションを追加 PR #221665
- @NriotHrreion (Norcleeh): fix: アクティブターミナルが終了したときにコマンドパレットが閉じる問題 PR #225500
- @r3m0t (Tomer Chachamu): ユーザー設定が開いているときに「ワークスペース設定を開く」を修正 (fix #148709) PR #225311
- @rbuckton (Ron Buckton): strictBuiltinIteratorReturnをサポートするように更新 PR #222009
- @rehmsen (Ole): ノートブックエディターでマークダウンコメント内の通常のテキストを折り返すようにする。 PR #224484
- @RichardLuo0 (RichardLuo): fix: ダイアログボタンからツールチップを削除 PR #225772
- @stalematker (Kevin): extensionEnablementService.tsのタイプミスを修正 PR #224145
- @swordensen (Michael Sorensen): #218626 を修正 PR #219148
- @thegecko (Rob Moran): viewContainer寄与点を追加 PR #212499
- @tisilent (xiejialong): scm.compactFoldersを追加。 PR #221459
- @troy351: fix: multiDiffEditorの背景色の名前が間違っている PR #224151
- @walter-erquinigo (Walter Erquinigo): 動的デバッグ構成プロバイダーからのエラーを処理 PR #202622
- @zkat (Kat Marchán): AutoInstallerFsが永久にスラッシュするのを止め、タイピングインストーラーを修正 PR #225648
vscode-css-languageservice
への貢献者
- @wkillerud (William Killerud): fix: sassのpkgの条件付きエクスポートをサポート PR #400
vscode-eslint
への貢献者
- @denis-sokolov (Denis Sokolov): Readmeの些細な修正 PR #1903
vscode-flake8
への貢献
- @taesungh (Taesung Hwang):
ignorePatterns
のデフォルトにグローバル設定を使用 PR #327
vscode-generator-code
への貢献者
- @spjpgrd (seán patrick john paul george ringo doran): vsc-extension-quickstart.mdを更新 PR #486
vscode-hexeditor
への貢献
- @tomilho (Tomás Silva): HexEditor diff PR #522
vscode-isort
への貢献
- @iloveitaly (Michael Bianco): fix: バンドル版なしでisortが動作するようにツールパスを追加 PR #417
- @jicruz96 (J.I. Cruz): ファイルに
skip_file
コメントがある場合、トレースバックをログに記録しない PR #416
vscode-js-profile-visualizer
への貢献
vscode-json-languageservice
への貢献
- @jeremyfiel (Jeremy Fiel): DocumentSymbols.test.ts内の無効なjsonインスタンスを更新 PR #241
- @remcohaszing (Remco Haszing): Thenableを非推奨にし、PromiseLikeのエイリアスを設定 PR #239
- @ttlopes (Tomás Lopes): microsoft/vscode#209655 を修正: 大文字小文字を区別するJSONソートエラーを修正 PR #238
vscode-languageserver-node
への貢献者
- @DavyLandman (Davy Landman): LSPサーバーからのエラーメッセージを表示 PR #1490
- @sh-cho (Seonghyeon Cho): npm、azureパイプラインリンクを修正 PR #1544
vscode-loader
への貢献
- @SimonSiefke (Simon Siefke): feature:
this
が定義されていない場合、amdLoaderGlobal
をglobalThis
に設定 PR #58
vscode-mypy
への貢献
- @hamirmahal (Hamir Mahal)
- @meghprkh (Megh Parikh): mypyを1.11.0に更新 PR #311
vscode-pull-request-github
への貢献者
vscode-python-debugger
への貢献者
vscode-vsce
へのコントリビューション
- @BlackHole1 (Kevin Cui): fix: 確率的トリガー v8 クラッシュ PR #1032
- @mark-wiemer (Mark Wiemer): punycodeの非推奨警告を修正 PR #1037
language-server-protocol
への貢献者
- @asukaminato0721 (Asuka Minato): egglogを追加 PR #1989
- @LPeter1997: .NETにDraco.LspをLSP SDKとして追加 PR #2001
- @marcoroth (Marco Roth)
- @techee (Jiří Techet): LSPをサポートするエディターリストにGeanyを追加 PR #2008
- @XuechunHHH (Xuechun Hua): servers.mdにPartiQLを追加 PR #1985
python-environment-tools
への貢献