2024年6月 (バージョン 1.91)
アップデート 1.91.1: このアップデートでは、以下のissueに対処しています。
ダウンロード: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Visual Studio Code 2024年6月リリースへようこそ。このバージョンには多くのアップデートが含まれており、皆様に気に入っていただけることを願っています。主なハイライトは次のとおりです。
- プレビュー: 受信/送信の変更グラフ - ソース管理ビューで受信と送信の変更を視覚化します。
- Python環境 - python-environment-toolsによる強化された環境検出。
- ネイティブREPLでのスマート送信 - ネイティブREPLでコードチャンクをスムーズに実行します。
- GitHub Copilotの拡張性 - チャットおよび言語モデルAPIがVS Code Stableで利用可能になりました。
- プレビュー: プロファイルエディター - プロファイルを一箇所で管理します。
- カスタムタブラベル - より多くの変数オプションと複数の拡張機能のサポート。
- TypeScript 5.5 - 正規表現の構文チェックおよびその他の言語機能。
- JavaScriptデバッガー - JavaScriptのデバッグ中にシャドウされた変数を検査します。
これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.comのUpdatesにアクセスしてください。Insidersの皆様: 最新機能をいち早く試してみませんか? 夜間のInsidersビルドをダウンロードして、最新のアップデートをいち早くお試しいただけます。
アクセシビリティ
エディターホバーのアクセシブルビュー
コーディング時のアクセシビリティを向上させるために、アクセシブルビューとアクセシビリティヘルプメニューがエディターホバー情報の内容を表示できるようになりました。ホバーのフォーカスされた部分に応じて、フォーカスされた部分またはホバーコンテンツ全体に関する情報を表示します。
リンクの下線
ワークベンチでリンクを通常のテキストと区別しやすくするために、設定 accessibility.underlineLinks
を有効にしてリンクに下線を引くことができます。
ワークベンチ
検索
ripgrep検索エンジンが使用するスレッド数を制限できる新しい設定 search.ripgrep.maxThreads
を追加しました。この設定は、検索がコア製品で使用されているか、拡張機能API経由で使用されているかに関係なく適用されます。
スレッド数を設定するには、search.ripgrep.maxThreads
をゼロ以外の値に設定します。この設定を特定の値に固定すると、ripgrepが遅くなる可能性があるため注意してください。
推測に使用できるエンコーディングの調整
新しい設定 files.candidateGuessEncodings
を使用すると、files.autoGuessEncoding
が有効になっている場合に考慮する必要があるエンコーディングのセットを設定できます。設定の順序が優先度を決定します。この機能により、検出可能なエンコーディングをより小さなセットに制限し、あるエンコーディングを別のエンコーディングよりも優先することができます。
プロファイルエディタープレビュー
このマイルストーンでは、プロファイルを一箇所で管理できる新しいプロファイルエディターを導入しました。このエクスペリエンスには、新しいプロファイルの作成、既存のプロファイルの編集と削除、および他のユーザーと共有するためのプロファイルのエクスポートとインポートが含まれます。新しいプロファイルを作成する際に、プロファイルをプレビューし、必要に応じてカスタマイズしてから保存できます。プロファイルエディターでは、特定のプロファイルで新しいウィンドウを開いたり、新しいウィンドウのデフォルトプロファイルとしてプロファイルを設定したりすることもできます。
プロファイルエディターは、workbench.experimental.enableNewProfilesUI
設定の背後にある実験的な機能として利用できます。有効にすると、ウィンドウの左下隅にある設定ギアアイコンからプロファイルエディターにアクセスできます。
ぜひお試しいただき、このエクスペリエンスをさらに改善する方法についてフィードバックをお寄せください。
プロファイル付きの新しいウィンドウメニュー項目
プロファイルエディターに加えて、特定のプロファイルで新しいウィンドウを開くアクションを「ファイル」メニューに追加しました。「ファイル」>「プロファイル付きの新しいウィンドウ」メニューを使用して、特定のプロファイルで新しいウィンドウを開きます。
拡張機能のインストールオプション
拡張機能をインストールする際により柔軟性を持たせるために、オプションを追加しました
- 同期せずに拡張機能をインストールします。
- 特定のバージョンの拡張機能をインストールします。以前は、特定のバージョンを選択する前に、まず拡張機能の最新バージョンをインストールする必要がありました。
これらのアクションは、拡張機能ビューの拡張機能のコンテキストメニューで使用できます
カスタムラベルでファイル拡張子にアクセスする
カスタムラベルを定義する場合、`${extname(N)}` 構文を使用して個々のファイル拡張子にアクセスできるようになりました。さらに、`${extname(N)}` は負のインデックスもサポートしており、ファイル拡張子を逆順にキャプチャできます。ファイル拡張子全体を取得するには、`${extname}` を使用します。
たとえば、ファイル tests/editor.test.ts
の場合
${filename}
=>editor
${extname}
=>test.ts
${extname(0)}
=>ts
${extname(1)}
=>test
${extname(-1)}
=>test
${extname(-2)}
=>ts
複数の拡張機能からのカスタムラベルパターンをマージする
2つの拡張機能が `configurationDefaults` で設定 workbench.editor.customLabels.patterns
のデフォルト構成を提供する場合、提供されたパターンはマージされます。
|
|
拡張機能1によるデフォルトの貢献 | 拡張機能2によるデフォルトの貢献 |
|
結果のカスタムラベルパターン |
テーマカラーを未設定にする
テーマが気に入らない色または境界線を設定している場合、`default` を使用して元の値に戻すことができます
"workbench.colorCustomizations": {
"diffEditor.removedTextBorder": "default"
}
折りたたみプレースホルダーの色を変更する
折りたたみプレースホルダー(省略記号)を色 editor.foldPlaceholderForeground
でテーマ設定できるようになりました。
エディター
保存時のコードアクション
editor.codeActionsOnSave
設定を使用すると、ファイルを保存するときに自動的に適用されるコードアクションのセットを設定できます。たとえば、インポートを整理するなどです。ワークスペースファイルとアクティブな拡張機能に基づいて利用可能なコードアクションのリストを提供することにより、この設定を構成するためのIntelliSenseを改善しました。
注: 現時点では
true
とfalse
は依然として有効な構成ですが、explicit
、always
、never
に置き換えられる予定であることに注意してください。例については、コードアクションの保存に関するドキュメントを参照してください。
読み取り専用ファイルの状態をすばやくオフにする
files.readonlyInclude
設定を通じてファイルを読み取り専用として構成した場合、読み取り専用エディターメッセージからファイルの読み取り専用状態をすばやく切り替えることができます。
ソース管理
受信/送信の変更グラフプレビュー
受信と送信の変更の代替視覚化の使用を検討してきました。このマイルストーンには、グラフを使用して受信と送信の変更を視覚化する実験的な機能が含まれています。グラフには、現在のブランチ、現在のブランチの上流ブランチ、およびオプションのベースブランチが含まれています。グラフのルートは、これらのブランチの共通の祖先です。
この新しい視覚化を有効にするには、scm.experimental.showHistoryGraph
設定を使用します。ぜひお試しいただき、この視覚化で利用できる機能を継続的に改善および拡張していく上で、ご意見をお聞かせください。
ノートブック
テキスト選択で検索
ノートブック検索コントロールに、テキスト選択とセル選択のための「選択範囲内を検索」が追加されました。この動作はデフォルトで有効になっており、コントロール内のボタンで制御できます。選択のコンテキストに基づいて、このボタンを切り替えると、検索クエリが選択された1つまたは複数のセル、またはセル内の行にスコープされます。
コンテキストメニューからテキスト出力をコピーまたは開く
ノートブックでテキスト出力を操作する場合、テキスト出力のコンテキストメニューを使用して、出力値をコピーしたり、新しいエディターで出力を開いたりできるようになりました。この機能により、大きなストリーミング出力を確認しやすくなります。
ターミナル
コピーアンドペーストエスケープシーケンス (OSC 52) のサポート
Operating System Command (OSC) 52 エスケープシーケンスがサポートされるようになりました。これはターミナルで実行されているものなら何でも使用できますが、主なユースケースは tmux
のクリップボードアクセスです。
新しいカスタムグリフ
ターミナルは、ブランチ、行番号、およびロックPowerlineシンボルのカスタムグリフをサポートするようになりました。サポートしている他のカスタムグリフと同様に、これらのシンボルはGPUアクセラレーションが有効になっている場合、フォントを設定する必要なく機能します。
これらのシンボルは、フォントサイズ、行の高さ、または文字間隔が調整された場合でも、セルに合わせて完璧にスケーリングされます。
デバッグ
JavaScriptデバッガー
JavaScriptデバッガーは、プログラムのスコープに基づいて、シャドウされた変数にカーソルを合わせたとき、およびインライン値(debug.inlineValues
設定で有効)で、シャドウされた変数の正しい値を表示するようになりました。
テーマ: Codesong (vscode.devでプレビュー)
言語
TypeScript 5.5
TypeScript 5.5が含まれるようになりました。このメジャーアップデートには、多くの新しい言語機能とツール改善が含まれています。このリリースの詳細については、TypeScript 5.5のブログ記事をご覧ください。
正規表現の構文チェック
TypeScript 5.5のおかげで、JavaScriptおよびTypeScriptの正規表現リテラルの多くの構文エラーを報告するようになりました。これには、閉じられていないグループ、不正な後方参照、または無効なエスケープなどのエラーが含まれます
詳細については、TypeScript 5.5のブログ記事をご覧ください。
拡張機能への貢献
GitHub Copilot
コンパクトなインラインチャット
インラインチャットのレンダリングがよりコンパクトになり、提案を読みやすく理解しやすくなりました。また、inlineChat.experimental.textButtons
を介して有効にできるボタンテキストのよりナラティブなスタイルも試しています。
ターミナルの初期ヒント
インラインチャットを見つけやすくするために、ターミナルに新しいヒントが表示されます。
このヒントは、Copilot拡張機能がインストールされており、まだ操作が行われていない単一のターミナルがある場合にのみ表示されます。メッセージを右クリックすると、メッセージを完全に非表示にできます。メッセージは、ターミナルのインラインチャットを初めて使用した後にも非表示になります。
コードブロックを適用
チャットビューのコードブロックの「エディターに適用」コマンドは、言語モデルを使用して、現在のエディターに変更を適用するための最良のアプローチを決定します。
Python
python-environment-toolsを使用したPython環境の検出
グローバルPythonインストールとPython仮想環境の検出速度を大幅に向上させるように設計された新しいツール、python-environment-toolsをご紹介できることを嬉しく思います。このツールはRustを使用して、迅速かつ正確な検出プロセスを保証します。
現在、この新機能をテストしており、既存のサポートと並行して実行して、Python拡張機能での新しい検出パフォーマンスを評価しています。そのため、「Python Locator
」という新しいログチャネルが表示され、この新しいツールでの検出時間が表示されます。
この機能強化は、VS CodeでのPythonサポートのパフォーマンスと効率を最適化するための継続的な取り組みの一部です。この機能、継続的な作業の詳細、およびフィードバックを提供するには、python-environment-tools repoにアクセスしてください。
ネイティブREPLでのスマート送信
Python拡張機能は、スマート送信をVS CodeネイティブREPLで有効にしました。
以前は、Pythonコードの行にカーソルを置いてShift+Enterを押すと、Python拡張機能は、複数行コマンドの一部であるなどの理由で失敗する場合でも、ネイティブREPLに正確な行の内容を送信していました。
現在、Shift+Enterは、ネストされていないシナリオでは最小限の実行可能コードを送信し、ネストされたシナリオでは最上位のコードブロックを送信します。これにより、ユーザーはShift+Enterをファイル全体で素早く実行して、最小限の労力で最大の実行可能コードを実行できます。
reStructuredTextドックストリングのサポート
Pylanceは、カーソルを合わせたときにreStructuredTextドキュメント文字列(ドックストリング)をレンダリングするサポートを追加しました!
この機能は初期段階にあり、現在フラグの後ろに隠されており、さまざまなSphinx、GoogleDoc、およびEpytextシナリオを効果的に処理できるように取り組んでいます。お試しいただくには、実験的な設定 python.analysis.supportRestructuredText
を有効にしてください。
この変更をお試しいただき、問題やフィードバックをPylance GitHubリポジトリに報告してください。
注: この設定は実験的なものであり、この新機能を安定化してデフォルトで有効にするため、将来削除される可能性があります。
GitHubプルリクエストとIssue
プルリクエストとIssueの作業、作成、および管理を可能にするGitHub Pull Requests拡張機能で、さらに進展がありました。新機能は次のとおりです。
- チェックアウトされたPRの「コミット」サブツリーにコミット日が表示されるようになりました。
- 多数のバグ修正。
その他のハイライトについては、拡張機能の0.92.0リリースの変更ログをご確認ください。
ESLint
ESLint拡張機能は、フラット構成ファイル形式をサポートするようになりました。拡張機能は引き続き eslintrc
ファイルをサポートしており、eslint.useFlatConfig
設定を使用して、使用する構成ファイル形式を制御できます。
eslintrc
ファイル形式のサポートを非推奨化および削除するESLintの計画を理解するには、ESLintフラット構成ロールアウト計画を参照してください。
拡張機能の作成
チャットおよび言語モデルAPI
先月、拡張機能がチャットに参加し、言語モデルにアクセスできるようにするAPIを確定しましたが、VS Code Insidersでのみ利用可能でした。このリリースでは、これらのAPIがVS Code Stableで完全に利用可能になりました。
これらのAPIの詳細と、初期の採用者がどのように使用しているかについては、発表ブログ記事をご覧ください。
開始するには、拡張機能のサンプルとチャット拡張機能のドキュメントをご覧ください。
オブジェクト設定のデフォルト値の処理
複数の拡張機能が同じオブジェクト設定のデフォルト値を提供する場合、これらのデフォルト値が結合されるようになりました。これにより、拡張機能間の競合を防ぎます。
確定された DebugSessionOptions.testRun
API
テスト実行からデバッグセッションを開始する拡張機能は、DebugSessionOptions
にその実行を渡せるようになりました。渡されると、デバッグセッションの再起動などのライフサイクルアクションも新しいテスト実行を作成します。
Debug Adapter Protocol
Debug Adapter Protocolにいくつかの注目すべき変更が加えられました。
- 新しい
Scope.presentationHint = returnValue
オプションによる戻り値の表記。 evaluate
リクエストへのソースロケーションの追加。VS Codeはこれを実装し、ホバーとインライン値を評価するときに場所を渡します。
提案されたAPI
言語モデルのツールと関数
ツールまたは関数の呼び出しを可能にするAPI提案を追加しました。APIには2つの主要な部分があります
-
拡張機能が「ツール」を登録する機能。ツールは、言語モデルで使用されることを目的とした機能の一部です。たとえば、ファイルのGit履歴を読み取るなどです。
-
言語モデルがツールをサポートするメカニズム。たとえば、拡張機能がリクエストを行うときにツールを渡し、言語モデルがツール呼び出しをリクエストし、拡張機能がツール呼び出しの結果を返信するなどです。
提案は vscode.proposed.lmTools.d.ts として見つけることができます。
注: APIはまだ活発に開発中であり、変更される可能性があります。また、VS Codeには妥当なデフォルトツールが付属する予定です。
認証 getSessions
が getAccounts
になりました
マルチアカウント認証プロバイダーをサポートしていますが、常に欠けていたのは、すべてのセッションを取得し、特定のセッションに対してアクションを実行する機能です。以前は、これを解決しようとする getSessions
API提案がありましたが、実験と一般的な認証ライブラリのインスピレーションを使用して、問題を解決するために異なるアプローチを取っています。
以前に提案された getSessions
APIから、「アカウント」と「セッション」の概念を分離するものに移行しました。
認証セッションを使用しようとしている拡張機能作成者は、次のコードを実行して、ユーザーがログインしているアカウントの AuthenticationSessionAccountInformation
を取得できます
const accounts = vscode.authentication.getAccounts('microsoft');
そこから、それらのアカウントを使用して、それらのアカウント専用のセッションを作成できます
const session = vscode.authentication.getSession('microsoft', scopes, {
account: accounts[0]
});
注: これが機能するためには、認証プロバイダーが新しいパラメーターを処理する必要があります。詳細については、以下のAPI提案をご覧ください
これは、複数の認証セッションを処理するはるかに明確な方法であり、以前はサポートできなかったさまざまなシナリオを処理できるようになると考えています。
提案は vscode.proposed.authGetSessions.d.ts として見つけることができます。これは、この提案の以前の名前を使用しており、この提案に依存する既存のコードを壊さないようにするためです。
コメントスレッドの表示
コメントを提供する拡張機能が、エディターで独自のコメントスレッドを表示できるようにするAPI提案を追加しました。このAPIは、スレッドを表示するときにフォーカスを維持するか、スレッドの返信ボックスにフォーカスするかを選択できるオプションを提供します。
提案は vscode.proposed.commentReveal.d.ts で利用できます。
属性付きテストカバレッジ
テストごとにテストカバレッジを属性付けできるようにするAPIに取り組んでいます。これにより、ユーザーはどのテストがどのコードを実行したかを確認し、エディターに表示されるカバレッジと「テストカバレッジ」ビューのカバレッジの両方をフィルタリングできます。
詳細と更新については、vscode#212196 を確認してください。
エンジニアリング
NLSをAMDローダーから分離する
このマイルストーンでは、VS Codeのコアネイティブ言語サポート(NLS)と、出荷するAsynchronous Module Definition(AMD)ローダーの依存関係を削除し始めました。将来の目標は、ECMAScript Modules(ESM)ローディングを使用し、AMDを完全に削除することです。この方向に進むために、AMDローダープラグインの依存関係を削除します。動作に違いは見られず、これまでサポートしてきたすべての翻訳は、Webとデスクトップの両方で引き続きサポートされます。
注目すべき修正
ありがとうございます
最後になりましたが、VS Codeの貢献者の皆様に心から感謝申し上げます。
Issue追跡
Issue追跡への貢献
- @gjsjohnmurray (John Murray)
- @IllusionMH (Andrii Dieiev)
- @shelvesdragon (Shelves The Dragon)
- @starball5 (starball)
- @spartanatreyu (Jayden Pearse)
- @RedCMD (RedCMD)
プルリクエスト
vscode
への貢献
- @bsShoham (Shoham Ben Shitrit): カスタムラベルでの
extname(N)
テンプレートの使用を許可 PR #213033 - @CGNonofr (Loïc Mangeonjean): プロファイル変更時の設定マーカーの更新 PR #214353
- @cobey (Cody Beyer)
- aiとvector dbライブラリをpyとjsに含めるようにファイルを更新 PR #216771
- js用のauzre aiパッケージタグを追加 PR #216857
- タグ付けへの不足しているazure ai pyパッケージの追加 PR #216861
- @dangerman (Anees Ahee): 開発コンテナでnode 20を使用する PR #215434
- @francescov1 (Francesco Virga): 再帰的トグルを追加 PR #212218
- @franciscacarneiro (Francisca Carneiro): #182308修正: 検索パネルでPageUpを押してもレイアウトが変更されなくなりました。 PR #213067
- @gabritto (Gabriela Araujo Britto): [typescript-language-features] TypeScriptのリージョンベースのセマンティック診断 PR #208713
- @gjsjohnmurray (John Murray): マルチプロバイダータイムラインで正しくページング (修正 #213452) PR #213453
- @grgar (George Garside): 拡張機能マーケットプレイスのreadmeでマージされたテーブルセルがマージ解除されてレンダリングされる問題を修正 PR #211666
- @hecticme (H. Ngọc Minh): 修正: クリック時にアクティビティバーのフォーカスボーダーを表示しない PR #217837
- @its-meny: 修正: Markdownの見出し付き引用符が正しくレンダリングされない PR #205227
- @jakebailey (Jake Bailey): tsc -p ./src を修正、no-default-lib を削除 PR #216760
- @jeanp413 (Jean Pierre): 修正: サーバーレスでのタスクの構成がタスクファイル全体を削除する可能性がある PR #215810
- @mohankumarelec: 現在すでに存在するNO_PROXY環境変数と同じ値である http.noProxy 設定を追加 PR #211958
- @mtbaqer (Mohammad Baqer): collapsedText をテーマ設定可能にする PR #173203
- @powersagitar: C++20モジュールインターフェースユニットのファイル拡張子を追加 PR #214800
- @r-sargento (Rafael Sargento): vscodeの変数型表示設定を実装 (#_210258) PR #214315
- @rehmsen (Ole)
- CellCommentが再利用されたときにコメントスレッドがリークする問題を修正。 PR #214589
- #213535 を修正する #214589 の2つのバグを修正。 PR #218357
- @remcohaszing (Remco Haszing)
removeChild
をremove
に置き換える PR #213465- セレクトボックスを開く問題を修正 PR #214348
- @SimonSiefke (Simon Siefke)
- 機能: electron File.path を electron webUtils に置き換える PR #213031
- 設定でカラーキーを補完するときに、現在の値を入力する PR #213451
- 機能: ripgrepスレッド数を構成可能にする PR #213511
- 機能: 設定でカラーテーマ値を未設定にできるようにする PR #213512
- 設定エディターのメモリリークを修正 PR #216763
- 修正: SettingTreeRenderers でのメモリリークの可能性 PR #216768
- 修正: SettingEnumRenderer の renderElement 関数で templateDisposables の代わりに disposable を elementDisposables に追加 PR #216855
- @swordensen (Michael Sorensen): #182449修正: ドラッグアンドドロップイベント中にShiftキーを押すとwebviewが再度有効になる PR #209211
- @Timmmm (Tim Hutt): ターミナルで列番号付きのリンクを開く問題を修正 PR #210898
- @tisilent (xiejialong): IFindInFilesArgs に showIncludesExcludes を追加 PR #212347
- @werat (Andy Hippo): エラーメッセージ形式を修正 PR #214900
- @xiaoxianBoy (Snoppy): 雑用: タイプミスを修正 PR #216562
- @y0sh1ne (y0sh1ne): language-configuration.json を更新 (修正 #215999) PR #216394
- @yutotnh (yutotnh): エンコーディングを推測するときに候補エンコーディングのリストを指定する機能を追加 (#_36951) PR #208550
vscode-css-languageservice
への貢献
- @wkillerud (William Killerud): 機能: Sass
pkg:
インポーターのサポートを追加 PR #384
vscode-extension-samples
への貢献
- @AllanJard (Allan Jardine): #863修正 - 言語を自動的に開始する PR #864
vscode-html-languageservice
への貢献
- @johnsoncodehk (Johnson Chu):
voidElements
の遅延評価 PR #187
vscode-languageserver-node
への貢献
- @remcohaszing (Remco Haszing): 診断コレクションのフォールバックとしてクライアントIDを使用する PR #1445
vscode-python-tools-extension-template
への貢献
- @caelean (Caelean Barnes): READMEでファイルパスを一貫して参照する PR #208
node-jsonc-parser
への貢献