VS Codeのエージェントモードを拡張するには、を試してください!

2023年10月 (バージョン 1.84)

更新 1.84.1: このアップデートでは、以下の問題が解決されています。

更新 1.84.2: このアップデートでは、以下の問題が解決されています。

ダウンロード: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap


Visual Studio Code 2023年10月リリースへようこそ。このバージョンには皆様に気に入っていただけるような多くのアップデートがあり、主なハイライトは以下の通りです。

これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com更新 にアクセスしてください。

Insiders: 新機能をいち早く試したいですか?夜間ビルドのInsidersをダウンロードして、利用可能になり次第、最新の更新を試すことができます。

アクセシビリティ

クリア、フォーマット、保存のオプトインオーディオキュー

audioCues.clear が有効な場合、ターミナル、通知、またはチャットの応答がクリアされたことを音で示します。

ファイルとノートブックでは、audioCues.saveaudioCues.format を、ユーザー操作時または各イベントで常に再生するように設定できます。無効の場合、代わりにARIAアラートが使用され、accessibility.alert.formataccessibility.alert.save でカスタマイズできます。

Windows拡大鏡の同期

Windows拡大鏡がVS Codeでカーソルを適切に追跡するようになりました。

アクセシブルビューの改善

デフォルトでは、ユーザーのカーソルはターミナルのアクセシブルビューの最下部に配置されます。代わりに位置を維持するには、terminal.integrated.accessibleViewPreserveCursorPositiontrue に設定できます。

アクセシブルビューは accessibility.hideAccessibleView で非表示にできます。これは、視力のあるユーザーに画面を共有する場合に便利です。

アクセシブルビューは、ユーザーが入力を開始すると閉じ、以前の要素にフォーカスを当てるようになり、よりスムーズなワークフローを実現します。

ウィンドウタイトルでテキストエディターにフォーカスしたビュー

前回のイテレーションで、window.title${focusedView} 変数を追加しました。また、Text Editor がフォーカスされている場合にも表示されるようになりました。

ワークベンチ

アクティビティバーの位置をカスタマイズ

次のビデオに示すように、アクティビティバーをサイドバーの上部に移動できるようになりました。

Move Activity bar position

アクティビティバーが上部に配置されると、アカウントおよび管理ボタンはタイトルバーの右端に移動します。

注: これは、カスタムタイトルバーが有効な場合 ("window.titleBarStyle": "custom") のみサポートされます。

エディタータブの非表示

ユーザーは workbench.editor.showTabsnone に設定することでエディタータブを非表示にできるようになりました。他の showTabs オプションには、multiple (デフォルト) と single があり、アクティブなエディターの単一のエディタータブを表示します。

Hide editor tab bar

エディターグループの最大化

エディターグループを最大化するための新しいコマンド 表示: エディターグループの最大化/元に戻す (⌘K ⌘M (Windows、Linux Ctrl+K Ctrl+M)) が追加されました。これにより、他のすべてのグループが非表示になり、タブバーにボタンが追加され、ユーザーは以前のレイアウトに戻すことができます。設定 workbench.editor.doubleClickTabToToggleEditorGroupSizesmaximize に設定されている場合、ユーザーはエディタータブをダブルクリックしてエディターグループを最大化/元に戻すことができます。

Maximize editor group showing button to restore to original layout

設定エディターでの類似設定検索

コマンドパレットと同様に、設定エディターで類似の設定検索が実行され、指定されたクエリに対してより関連性の高い結果が収集されるようになりました。

この実装は現在初期段階にあり、今後数回のイテレーションで改善が期待できます。

The query "automatically save files" in the Settings editor showing some auto save settings

ファイルまたはワークスペースのプロトコルリンクがVS Codeで開かれる際に、確認ダイアログが表示されるようになりました。

Confirm protocol links dialog display for a local file

プロトコルリンクは、ローカルファイル (例: vscode://file/path/to/file) またはリモートファイル (例: vscode://vscode-remote/ssh-remote+[USER@]HOST[:PORT]/path/to/file) を指すことができます。それぞれのケースについて、この動作を無効にする新しい設定があります。

  • security.promptForLocalFileProtocolHandling - ローカルプロトコルリンク用
  • security.promptForRemoteFileProtocolHandling - リモートプロトコルリンク用

エディター

最も近いクイックフィックスのキーボードショートカット

行内のカーソル位置に関わらず、最も近いクイックフィックスを ⌘. (Windows、Linux Ctrl+.) (コマンドID editor.action.quickFix) でアクティブ化する新しい設定が追加されました。以前はプレビュー機能だった コードアクションウィジェット: 周囲のクイックフィックスを含める (editor.codeActionWidget.includeNearbyQuickFixes) が、デフォルトで有効になりました。

このコマンドは、クイックフィックスでリファクタリングまたは修正されるソースコードをハイライト表示します。通常のコードアクションと修正以外のリファクタリングは、カーソル位置で引き続きアクティブ化できます。

Example of new Quick Fix behavior, showing activation on nearest errors, and how all Code Actions are still available at the cursor location

複数ドキュメントのハイライト

複数のドキュメントにわたるコードハイライトの初期サポートが、設定 エディター: 複数ドキュメントの出現箇所 (editor.multiDocumentOccurrencesHighlight) を介して追加されました。この初期実装ではテキストの出現箇所のみが対象で、セマンティックハイライトのサポートは将来追加される予定です。

ソース管理

--force-if-includes を使用した強制プッシュ

このマイルストーンでは、Git 2.30で追加された --force-with-lease の補助オプションである --force-if-includes オプションがサポートされました。この新しいオプションは、強制プッシュされるコミットがリモートリファレンスの先端にあるコミットを検査した後に作成されたことを保証し、自動フェッチが有効な場合にコミットを失う可能性を低減します。--force-if-includes の使用は、git.useForcePushIfIncludes 設定を無効にすることで停止できます。

ノートブック

実行時のスクロール改善

ノートブックで Shift+Enter を使用して実行する際に、次のセルが表示される方法が改善され、出力に集中しやすくなりました。これにより、既に出力があるセルを再実行する際のセルの移動量も削減されます。

IPythonのスタックトレース表示

IPythonからの例外スタックトレースがクリック可能なリンクとして表示されるようになり、エラーへの移動に役立ちます。これは、Jupyter 拡張機能がスタックトレースを最初に変更しない場合にのみ適用されます: "jupyter.formatStackTraces": false

デバッグ

JavaScriptデバッガー

イベントリスナーブレークポイントビューの改善

イベントリスナーブレークポイントビューがより使いやすくなり、チェックボックス付きのツリーとして表示されるようになりました。

Event Listener Breakpoints view shown as a tree with the Canvas WebGL Error Fired event checked

ソースマップのリネームのより良い処理

コードがバンドラーでコンパイルされると、変数がリネームされることがあります。これは、すべてのバンドラーでのインポート、およびesbuildの特定のローカル識別子で特に一般的です。デバッガーは各リネームが適用されるスコープを認識するようになり、これまでユーザーが遭遇していた多くの問題を修正します。

これにはデバッガーがコンパイルされたモジュールの構文ツリーを解析する必要があります。これはバックグラウンドスレッドで、リネームが検出された場合にのみ行われますが、パフォーマンスへの影響を避けるために、launch.json"sourceMapRenames": false を設定することでこの動作を無効にできます。

リモート開発

The Remote Development 拡張機能を使用すると、Dev Container、SSH または Remote Tunnels を介したリモートマシン、または Windows Subsystem for Linux (WSL) をフル機能の開発環境として使用できます。

主なハイライトは次のとおりです。

  • Microsoftアカウントを使用してトンネルにログインできるようになりました。
  • WindowsでSSHおよびトンネル経由でのDev Containerへの接続がサポートされました。

これらの機能の詳細については、Remote Development リリースノートで確認できます。

拡張機能への貢献

GitHub Copilot

インラインチャットのストリーミング

The GitHub Copilot Chat 拡張機能のインラインチャットが、応答を受信する速度に合わせて、テキストの編集を段階的に行い、「入力」できるようになりました。これは、チャット応答全体を受信してからエディターに適用する以前の動作よりも自然なエクスペリエンスです。

すべての編集が挿入であるわけではなく、置換の場合、Copilotは開始位置を特定するのが難しいことがあります。そのような場合、ストリーミングはまだ期待通りに機能しない可能性があります。この分野での改善にご期待ください。

チャットエージェント

今回のイテレーションでは、Copilot Chatと対話するための新しい方法、エージェントを構築しました。エージェントは専門分野を持つエキスパートのようなもので、チャットで @ シンボルでメンションすることで彼らと話すことができます。現在、2つのエージェントがあります。

  • @workspace はワークスペース内のコードに関するコンテキストを持ち、関連するファイルやクラスを見つけることで、ナビゲートを支援できます。
  • @vscode はVS Codeエディター自体のコマンドや機能について知っており、それらを使用するのに役立ちます。

各エージェントはいくつかのスラッシュコマンドもサポートしており、以前使用していたスラッシュコマンドはエージェントと一緒に使用する必要があります。たとえば、/explain@workspace /explain になりました。しかし、ショートカットとして、/ と入力するだけで、完全なエージェントとコマンドに自動的に展開される候補リストが表示されます。

@workspace

@workspace エージェントは、ワークスペースからどのような情報を収集して質問に答えるかを決定するために、メタプロンプトを使用します。メタプロンプトが使用するアプローチの1つは、会話履歴を遡って、質問内の曖昧な単語やフレーズを解決することです。たとえば、@workspace What does it do? と尋ねると、メタプロンプトは履歴を考慮して、it が実際に何であるか、そして質問に答えるためにどのような情報を収集すべきかを判断するようになります。メタプロンプトはまた、より多くの同義語を含む幅広い用語セットを使用して、関連性の高い可能性のある用語のリストを生成します。

@workspace の応答内のファイルパスとシンボルはクリック可能なリンクです。これにより、Copilotが参照しているコードに簡単に移動できます。

@workspace エージェントは、ワークスペースからどのファイルをインデックス化するかを決定する際に、.gitignore および .copilotignore を尊重します。

エージェントによるスラッシュコマンドの置き換え

新しいエージェントは、/createWorkspace/createNotebook などのスラッシュコマンドの機能を、スラッシュモディファイアの追加によって置き換えます。

  • /createWorkspace --> @workspace /new
  • /createNotebook --> @workspace /newNotebook
  • /explain --> @workspace /explain
  • /fix --> @workspace /fix
  • /test --> @workspace /test
  • /vscode --> @vscode /api

Slash command menu showing agents and slash modifiers

新しいエージェントを試して、/help と入力すると、さらにヒントが表示されます。

コミットメッセージの生成

Copilot Chatが、ソース管理入力ボックスの新しい「きらきら」アクションを使用して、保留中の変更に基づいてコミットメッセージを生成できるようになりました。

インポートのグループ化

生成されたインポートは、ファイルの先頭または既存のインポートブロックの下に常に配置されるようになりました。これは、ほとんどの一般的なプログラミング言語でサポートされています。

/explain のコンテキストの改善

アクティブなエディターでコード選択を説明するようにCopilot Chatに依頼するには、@workspace /explain コマンドを使用するか、コンテキストメニューの Copilotで説明 アクションを使用します。Copilot Chatは、関数やクラスなどの参照されたシンボルの実装を含むようになり、より正確で有用な説明につながります。これは、TypeScript/JavaScript、Python、Java、C#、C++、Go、またはRubyのいずれかの言語用に言語サービスを提供する拡張機能がインストールされている場合に、ファイル間で最適に機能します。

チャットビューの状態の永続化

以前は、Copilot Chatビューは最初は非表示になり、後で表示されていました。Copilot Chatビューはウィンドウのリロード間でアクティブな状態を維持するため、手動で再度開く必要がありません。さらに、チャットビューは、GitHubへのサインインとGitHub Copilotの無料トライアルの有効化のプロセスをガイドするようになりました。

設定された表示言語でのチャット

デフォルトでは、Copilot ChatはVS Codeで設定されている表示言語を使用して最初に返答するようになりました。この自動動作は github.copilot.chat.localeOverride を設定することで上書きできます。

ウェルカムメッセージの詳細度を削減

github.copilot.chat.welcomeMessage を設定することで、会話を初めて開始したときにCopilot Chatが冗長なウェルカムメッセージで挨拶するかどうかを制御できるようになりました。オプションは first (デフォルト)、alwaysnever です。

ターミナルのクイックフィックス

ターミナルで失敗したコマンドが実行された際、Copilotが何が起こったのかを説明するためのクイックフィックスを提案するようになりました。

A sparkle icon shows up that offers to explain a command

これは、現在のターミナルプロンプトの横にあるキラキラアイコン (⌘. (Windows、Linux Ctrl+.)) を介してトリガーできます。

ターミナルコマンドの提案

ターミナルにフォーカスが当たっているとき、Copilotが ⌘I (Windows、Linux Ctrl+I) キーバインドを介してCLIコマンドの提案を行えるようになりました。これにより、@workspace /terminal が事前に入力された状態でクイックチャットが表示されます。

Ctrl/Cmd+I now opens up the Quick Chat

この /terminal スラッシュコマンドは、現在のシェルを使用してシェルコマンドを提案するために最適化されています。提案の品質とUXは、次のリリースでさらに改善される予定です。

ターミナルで実行アクションの表示改善

コードブロックがシェル言語タイプの場合、コードブロックの上にカーソルを置くと ターミナルで実行 アクションが表示されるようになりました。

The code block now shows run in terminal in the top level actions, not hidden in the overflow menu

インラインチャットがターミナルコマンドで返信可能に

インラインチャットがターミナルで実行されるコマンドで返信できるようになりました。

Run in terminal from inline chat

Python

ターミナルでの行実行の改善

Python 拡張機能は、実行するコードが選択されていない場合にPython REPL (Shift+Enter) に行を送信する動作を改善しました。以前は、Pythonコードの行にカーソルを置いて Shift+Enter を押すと、Python拡張機能は、たとえば複数行コマンドの一部であるために失敗する場合でも、正確な行コンテンツをREPLに送信していました。

新しい実験的な Smart Send 機能により、Python拡張機能はカーソル位置周辺の実行可能な最小のコードブロックをREPLに送信して実行します。これにより、完全で実行可能なコードセクションのみがREPLに送信されることが保証されます。カーソルも次の実行可能な行に自動的に移動され、複数のチャンクを繰り返し実行する際にスムーズなエクスペリエンスを提供します。

この機能を試すには、以下の ユーザー 設定を追加してください: "python.experiments.optInto": ["pythonREPLSmartSend"]。この機能は現在実験段階にありますが、将来的にはデフォルトの動作となる予定です。この機能についてご意見や改善提案がありましたら、ぜひお知らせください。

テーマ: Catppuccin Macchiato (vscode.devでプレビュー)

Pythonリンティング拡張機能の改善

お気に入りのPythonツールで、より設定可能で柔軟なエクスペリエンスを実現するために、サポートされているリンティング拡張機能にいくつかの改善を加えました。

PylintMypyFlake8 の各拡張機能で、リンティングから除外したいファイルのグロブパターンを指定できる設定が提供されるようになりました。これは、多数のサブプロジェクトを持つ大規模なコードベースを扱っており、特定のフォルダーをリンティングから除外したい場合に役立ちます。これらの設定は、"pylint.ignorePatterns""mypy-type-checker.ignorePatterns"、および "flake8.ignorePatterns" です。

これらの拡張機能は、リンターの作業ディレクトリを指定できる cwd 設定もサポートしています。この設定は、変数 ${fileDirname} をサポートするように更新され、エディターで開いているファイルの親フォルダーに作業ディレクトリを動的に設定できるようになりました。これは、モノレポで作業しており、異なるサブプロジェクトからファイルを開く際にリンターの作業ディレクトリを動的に更新したい場合に便利です。これらの設定は、"pylint.cwd""mypy-type-checker.cwd"、および "flake8.cwd" です。

"mypy-type-checker.preferDaemon" 設定のデフォルト値が変更されました(Mypy拡張機能にのみ適用されます)。以前は true に設定されており、Mypyデーモンがデフォルトで使用されることを意味していました。フィードバックを受けて、デフォルト値を false に変更しました。どちらの値が最適か迷っている場合、パフォーマンス上の理由からMypyのレポートスコープをワークスペース全体に有効にしている場合("mypy-type-checker.reportingScope": "workspace")、Mypyデーモンを使用することをお勧めします。そうでない場合、レポートスコープが現在のファイルに設定されている場合は、拡張機能に同梱されているMypy実行ファイルを使用することをお勧めします。

非推奨になった組み込みリンティングおよびフォーマット機能

VS Codeのリンティングおよびフォーマット拡張機能に対して行われたすべての作業と改善により、Python拡張機能に同梱されていた組み込みのリンティングおよびフォーマット機能が非推奨になりました。これには、すべてのリンティングおよびフォーマットコマンド、および設定 (python.linting.* および python.formatting.*) が含まれます。これらの非推奨の設定をまだ使用している場合は、それらを削除し、代わりにサポートされているリンティングおよびフォーマット拡張機能を使用することをお勧めします。

サポートされている拡張機能なしでリンターを使用している場合は、コミュニティ貢献のRuff 拡張機能をチェックしてください。Ruff はRustで書かれたPythonリンターであり、pyflakes、pycodestyle、pydocstyleなど、さまざまなリンターをサポートしています。最近、VS CodeでRuffをフォーマッターとして使用するためのサポートが追加されました ("[python]": { "editor.defaultFormatter": "charliermarsh.ruff" })。

お気に入りのPythonツール用の独自のリンターまたはフォーマッターVS Code拡張機能を作成することもできます。クイックスタートについては、Python Tools Extension Template を参照してください。

環境作成通知

仮想環境は、インストールする必要のある依存関係を持つPythonプロジェクトを操作するための推奨される方法です。これらは分離性と再現性を提供し、Pythonプロジェクトで非常に人気があります。

このため、ワークスペースで仮想環境が選択されていない状態で、依存関係がリストされているPythonファイルまたはプロジェクトを実行またはデバッグしようとすると、Python拡張機能が通知を表示するようになりました。この通知は、Python: 環境の作成 コマンドを使用して新しい仮想環境を素早く作成する方法を提供します。

ワークスペースにすでに仮想環境がある場合は、それを選択するか、削除して再作成するオプションがあります。

この通知は、python.python.createEnvironment.triggeroff に設定することで無効にできます。

Notification stating that a virtual environment is not currently selected with an option to Create the environment or disable the notification

仮想環境無効化ヘルパー

数ヶ月前、明示的なアクティベーションコマンドなしでターミナルで選択した環境を自動的にアクティブ化することで、開発ワークフローを強化するための新しい実験的機能、環境変数を使用したターミナルアクティベーションを発表しました。しかし、明示的なアクティベーションスクリプトが機能しないため、この実験が有効になっている間は deactivate コマンドが機能しなくなっていました。

Python拡張機能は、deactivate コマンドを実行しようとするとそれを検出し、環境変数を介して環境がアクティブ化されたときにコマンドが再び機能するように、シェル用のスクリプトを追加する方法をガイドするヘルパー通知を表示するようになりました。また、必要なスクリプトを追加するためにシェルプロファイルファイルを開くボタンも提供します。

Notification stating that the deactivate command is not working and offering a button to open the shell profile file

シェルに必要なスクリプトを追加する方法の完全なドキュメントは、vscode-python wiki で確認できます。

実験に参加していないがこの機能を試したい場合は、以下の ユーザー 設定を追加できます: "python.experiments.optInto": ["pythonTerminalEnvVarActivation"]

テスト出力の改善

数ヶ月前に発表された pythonTestAdapter 実験が有効な場合、Python拡張機能でのテスト出力の表示と操作方法が大幅に改善されました。以前は、テスト発見と実行からの出力が、Python テストログ出力チャネルとテスト結果パネルに一貫性なく散らばっており、一部の情報は両方で重複していました。エクスペリエンスを統合するために、テスト実行に関する出力はテスト結果パネルに、テスト発見はPython出力チャネルに表示されるようになりました。詳細については、関連するvscode-python wiki を参照してください。

この新しいアプローチでは、Pytestを使用し、settings.json"python.testing.pytestArgs": ["--color=yes"] を設定している場合、出力での色付けもサポートされます。色付けは、テスト結果パネルでのテスト実行にのみ機能し、発見時やPython テストログパネルでの出力には機能しません。

Test execution output displayed in Test Results panel with colors, while test discovery output is displayed in the Python output channel

テスト発見時にエラーが発生した場合に、テストエクスプローラービューからテストログを簡単に開く新しいボタン 出力の表示 も追加されました。

"Show output" button to open the Test Logs in the Test Explorer view

Pythonデバッガー拡張機能のプラットフォーム固有バージョン

Python Debugger 拡張機能は、プラットフォーム固有のバージョンが提供されるようになり、更新ごとに必要なプラットフォーム固有のファイルのみがインストールされます。これにより、拡張機能のサイズが削減され、起動時間の改善に役立ちます。

Tensorboard拡張機能

Tensorboard の機能は、Python拡張機能からスタンドアロンのTensorboard拡張機能に移行しました。

この新しい拡張機能に関する問題がある場合やフィードバックを提供したい場合は、Tensorboard 拡張機能のGitHubリポジトリでIssueを提出できます。

Jupyter

先行/依存セルでの実行

Jupyter 拡張機能を使用すると、セル実行ボタンの横にあるドロップダウンメニューから、ターゲットセルの先行セルまたは依存セルをすべて実行できるようになりました。これはまだプレビュー機能であり、jupyter.executionAnalysis.enabled 設定と notebook.consolidatedRunButton 設定で有効にできます。

この機能は現在Pylance拡張機能によって提供されているため、この機能を使用するにはPylanceの最新のプレリリースバージョンをインストールする必要があります。

VS Code 音声

VS Codeに音声サポートをもたらす新しい拡張機能を導入します!新しいVS Code Speech拡張機能は、GitHub Copilot Chatに統合され、チャット入力用の音声テキスト変換サービスを可能にします。

インストール後、マイクアイコンが表示され、選択すると、音声の書き起こし結果に基づいてチャット入力にテキストが入力され始めます。書き起こしはローカルマシンで計算され、インターネット接続は必要ありません。

VS Code Speech activated by the microphone icon

GitHub Pull Requests and Issues

プルリクエストとIssueの作業、作成、管理ができるGitHub Pull Requests and Issues拡張機能について、さらなる進展がありました。

  • プロジェクトが表示され、プルリクエストの説明ウェブビューから追加できます。
  • PR 作成ビューからPRのタイトルと説明を生成するために、GitHub Copilotと統合されました。
  • GitHub CLI (gh pr checkout) でチェックアウトされたPRは、拡張機能によって認識されます。

その他のハイライトについては、拡張機能の0.76.0 リリースの変更履歴を確認してください。

プレビュー機能

フローティングエディターウィンドウ

ワークベンチウィンドウからエディターを独自のウィンドウに引き出す方法を検討し続けており、このエキサイティングな新機能を試してフィードバックを提供するために、VS Code Insidersコミュニティを招待したいと思います。

VS Code Insiders をインストールし、エディターで新しい 表示: アクティブなエディターを新しいウィンドウに移動 コマンドを実行して、フローティングウィンドウで開くようにしてください。

まだ多くの問題を解決し、不足している機能を提供する必要がありますが、近い将来、この機能をStableで有効にできると楽観視しています。

テストいただきありがとうございます!

言語サーバーのWASM-WASIサポート

WASM/WASIにおける言語サーバーのサポートが、実験的なwasm-wasi-core拡張機能に追加されました。

また、Rustで書かれWASMにコンパイルされたシンプルな言語サーバーをvscode-wasmリポジトリで紹介する拡張機能もあります。この拡張機能は、Rustアナライザーチームによってメンテナンスされている言語サーバークレートに依存しています。

拡張機能作成

テストランナーの改善

VS Codeの拡張機能のテスト実行を容易にするコマンドラインランナーと拡張機能が追加されました。新しいアプローチを使用する拡張機能は、VS CodeのテストUIで実行できます。移行には一部変更が必要ですが、通常は数分しかかかりません。詳細については、VS Codeの拡張機能のテストに関するドキュメントを参照してください。

TestMessage.contextValue APIの最終化

ユーザーがメッセージに対してアクションを実行したときに表示されるよう、TestMessagesに contextValue を提供できます。さらに、2つの新しいメニュー貢献ポイント、testing/message/contexttesting/message/content が利用可能です。前者はテスト結果ツリービューのメッセージに表示され、後者はエディターのメッセージの上に表示されます。たとえば、スナップショットテストでフィクスチャを更新するアクションを提供するためにこれを使用できます。

Failed test result with Update Snapshot action displayed

contextValue の詳細については、Issue #190277 を参照してください。

更新された codicon

以下の新しいアイコンが、当社のcodiconライブラリに追加されました。

New codicons

  • copilot
  • git-fetch
  • mic
  • mic-filled
  • thumbsup-filled
  • thumbsdown-filled
  • coffee
  • game
  • snake
  • vr
  • chip
  • music
  • piano

新しいテーマカラー

  • textPreformat.background: 整形済みテキストセグメントの背景色

名前ごとのルートフォルダーアイコン

ファイルアイコンテーマの作成者は、新しいプロパティ rootFolderNamesrootFolderNamesExpanded を使用して、ルートフォルダーに名前固有のアイコンを定義できるようになりました。詳細については、ファイルアイコンテーマガイドを参照してください。

提案されたAPI

すべてのマイルストーンには新しい提案された API が含まれており、拡張機能の作者はそれらを試すことができます。いつものように、皆様からのフィードバックを歓迎します。提案された API を試す手順は次のとおりです。

  1. 試したい提案を見つけて、その名前をpackage.json#enabledApiProposalsに追加します。
  2. 最新の@vscode/dtsを使用し、npx @vscode/dts devを実行します。これにより、対応するd.tsファイルがワークスペースにダウンロードされます。
  3. これで提案に対してプログラミングできます。

提案された API を使用する拡張機能を公開することはできません。次のリリースで破壊的変更がある可能性があり、既存の拡張機能を壊すことは望ましくありません。

Issue Reporter を介して拡張機能に送信されるデータを設定するサポート

新しい提案されたAPIにより、拡張機能の作成者はIssue Reporterを介して追加のデータを送信できるようになりました。

export interface IssueUriRequestHandler {
  // Handle the request by the issue reporter for the Uri you want to direct the user to.
  handleIssueUrlRequest(): ProviderResult<Uri>;
}

export interface IssueDataProvider {
  // Provide the data to be used in the issue reporter.
  provideIssueData(token: CancellationToken): ProviderResult<string>;

  // Provide the template to be used in the description of issue reporter.
  provideIssueTemplate(token: CancellationToken): ProviderResult<string>;
}

export namespace env {
  export function registerIssueUriRequestHandler(
    handler: IssueUriRequestHandler
  ): Disposable;
  export function registerIssueDataProvider(provider: IssueDataProvider): Disposable;
}

拡張機能のIssueをGitHubに外部で提出するために handleIssueUrlRequest 経由で URI を提供するか、Issue Reporterを介してGitHubに追加の拡張機能データを送信するために provideIssueDataprovideIssueTemplate のテンプレート string と拡張機能データ string を提供できます。

この提案の詳細については、Issue #196863 を参照してください。

カスタム除外ルール付きのファイルウォッチャー

このマイルストーンで、除外ルールを完全に制御できるファイルシステムウォッチャーを作成するための提案されたAPIを追加しました。

export interface FileSystemWatcherOptions {
  /**
   * An optional set of glob patterns to exclude from watching.
   * Glob patterns are always matched relative to the watched folder.
   */
  readonly excludes?: string[];
}

export function createFileSystemWatcher(
  pattern: RelativePattern,
  options?: FileSystemWatcherOptions
): FileSystemWatcher;

この新しいAPIは、それが再帰的または非再帰的なウォッチャーであるか、ワークスペースの内外を監視したいかに関わらず、拡張機能がファイルウォッチャーを完全に制御できるようにします。ファイル監視のためのユーザーまたはデフォルトで設定された除外ルールは適用されないため、購読したイベントのみを受信することを保証できます。

エンジニアリング

Windows 32ビット版のサポート終了

Windows 32ビット版VS Codeのサポートは終了しました。VS Codeの32ビットビルドをまだ使用している場合は、64ビット版に更新する必要があります。

拡張機能とドキュメント

Java用Gradle

VS CodeでのJava開発が、改良されたGradle for Java拡張機能により、さらに簡単になりました。プレリリースバージョンでは、Build Server Protocol (BSP) の採用により、Gradleプロジェクトのビルドがよりサポートされます。VS Codeで使用されている他のプロトコル(たとえば、Language Server Protocol (LSP))と同様に、BSPは開発環境とGradleのようなビルドツールの間に抽象化レイヤーを提供します。

新しいGradleサポートを試すには、Extension Pack for JavaGradle for Java拡張機能のプレリリースバージョンの両方をインストールしてください。GradleとBSPの詳細については、Java拡張機能チームによる最近のブログ投稿を参照してください。

Gradle for Java pre-release extension

FastAPIチュートリアル

FastAPIは、Python APIを構築するためのモダンで高速なWebフレームワークであり、そのシンプルさとパフォーマンスのおかげでますます人気が高まっています。

VS CodeとPython拡張機能を最大限に活用してFastAPIアプリケーションを作成およびデバッグする方法について、新しいFastAPIチュートリアルで学ぶことができます!

カスタムレイアウトのユーザーガイド

ワークベンチとエディターのレイアウトカスタマイズについて説明する新しいカスタムレイアウトの記事が公開されました。そこでは、VS Codeの主要なUI要素(ビュー、パネル、エディターなど)を好みのワークフローに合わせて変更する方法を学ぶことができます。

Customize Layout dropdown

トピックには以下が含まれます。

  • プライマリおよびセカンダリサイドバー
  • パネルの位置と配置
  • ピン留めされたエディタータブ
  • エディターグループレイアウト
  • その他

注目すべき修正点

  • 194812 workbench.settings.settingsSearchTocBehaviorhide に設定されているときに検索を行うとToCが表示される
  • 195722 ネットワーク問題発生時に設定エディターが空白になる

ありがとうございます

最後に、VS Codeの貢献者の皆様に心からの感謝を申し上げます。

問題追跡

問題追跡への貢献者

プルリクエスト

vscodeへの貢献者

vscode-js-debugへの貢献者

language-server-protocolへの貢献者