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

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

更新 1.84.1: この更新では、これらの問題に対処しています。

更新 1.84.2: この更新では、これらの問題に対処しています。

ダウンロード: Windows: x64 Arm64 | Mac: ユニバーサル Intel シリコン | 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 で非表示にできます。これは、視覚のあるユーザーの聴衆と画面を共有する場合に便利です。

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

ウィンドウタイトルフォーカスビューのエディター

前回のイテレーションでは、${focusedView} 変数を window.title に追加しました。今回から、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.doubleClickTabToToggleEditorGroupSizes の設定が maximize に設定されている場合、ユーザーはエディタータブをダブルクリックしてエディターグループを最大化したり解除したりできます。

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 オプションがサポートされるようになりました。この新しいオプションは、強制プッシュされるコミットがリモート参照の先端のコミットを調べてから作成されたことを保証し、自動フェッチが有効になっている場合にコミットを失う可能性を減らします。git.useForcePushIfIncludes 設定を無効にすることで、--force-if-includes の使用を無効にできます。

ノートブック

実行時のスクロールの改善

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 を設定することでこの動作を無効にできます。

リモート開発

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

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

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

これらの機能の詳細については、リモート開発リリースノートをご覧ください。

拡張機能への貢献

GitHub Copilot

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

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 を設定することで上書きできます。

ウェルカムメッセージの冗長性の削減

Copilot Chat が会話を初めて開始したときに、詳細なウェルカムメッセージで挨拶するかどうかを、github.copilot.chat.welcomeMessage を設定することで制御できるようになりました。オプションは 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デバッガー拡張機能はプラットフォーム固有のバージョンを出荷するようになり、更新ごとに必要なプラットフォーム固有のファイルのみがインストールされるようになりました。これにより、拡張機能のサイズが削減され、起動時間の改善に役立ちます。

Tensorboard拡張機能

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

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

Jupyter

先行セル/依存セルによる実行

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

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

VS Code 音声

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

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

VS Code Speech activated by the microphone icon

GitHubプルリクエストとイシュー

プルリクエストとイシューの作業、作成、管理を可能にするGitHubプルリクエストとイシュー拡張機能の進捗がありました。

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

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

プレビュー機能

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

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

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

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

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

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

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

vscode-wasm repoには、Rustで書かれWASMにコンパイルされたシンプルな言語サーバーを示す拡張機能もあります。この拡張機能は、Rust analyzer teamが管理する言語サーバークレートに依存しています。

拡張機能作成

改善されたテストランナー

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

TestMessage.contextValue APIの最終化

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

Failed test result with Update Snapshot action displayed

contextValue の詳細については、イシュー #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;
}

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

この提案の詳細については、イシュー #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のサポートは終了しました。まだ32ビット版のVS Codeを使用している場合は、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 フレームワークであり、そのシンプルさとパフォーマンスのおかげでますます人気が高まっています。

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

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

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

Customize Layout dropdown

トピックは以下の通りです

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

注目すべき修正点

  • 194812 検索中に目次が表示される (workbench.settings.settingsSearchTocBehaviorhide に設定されている場合)
  • 195722 ネットワークの問題がある場合の空白の設定エディター

ありがとうございます

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

問題追跡

問題追跡への貢献者

プルリクエスト

vscodeへの貢献者

vscode-js-debugへの貢献者

language-server-protocolへの貢献者