🚀 VS Codeでで入手しましょう!

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

アップデート 1.84.1: このアップデートでは、これらのissueに対処しています。

アップデート 1.84.2: このアップデートでは、これらのissueに対処しています。

ダウンロード: 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を使用した強制プッシュ

今回のマイルストーンでは、--force-if-includesオプションがサポートされるようになりました。これは、Git 2.30で追加された--force-with-leaseの補助オプションです。新しいオプションは、強制プッシュされるコミットが、リモート参照の先端にあるコミットを調べた後に作成されたことを保証し、自動フェッチが有効になっている場合にコミットを失う可能性を減らします。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を設定して動作を無効にすることで、パフォーマンスへの影響を回避できます。

リモート開発

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

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

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

これらの機能の詳細については、Remote Development release notesを参照してください。

拡張機能への貢献

GitHub Copilot

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

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

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

チャットエージェント

今回のイテレーションでは、Copilot Chatと対話する新しい方法であるエージェントを構築しました。エージェントは、専門分野を持ち、あなたを助けることができる専門家のようなもので、@記号でメンションすることでチャットで話しかけることができます。現在、2つのエージェントがあります。

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

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

@workspace

@workspaceエージェントは、メタプロンプトを使用して、質問に答えるのに役立つワークスペースから収集する情報を決定します。メタプロンプトで使用される1つのアプローチは、質問内の曖昧な単語/フレーズを解決するために、会話履歴を振り返ることです。たとえば、@workspace 何をしますか?と質問した場合、メタプロンプトは履歴を考慮して、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 (デフォルト)、always、およびneverです。

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

ターミナルで失敗したコマンドが実行されると、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に送信していました。

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

お試しいただくには、次のユーザー設定を追加してください: "python.experiments.optInto": ["pythonREPLSmartSend"]。この機能は現在実験段階ですが、将来的にはデフォルトの動作になる予定です。この機能をさらに改善する方法に関するフィードバックや提案がありましたら、お知らせください!

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

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

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

PylintMypy、およびFlake8拡張機能は、リンティングから除外したいファイルのglobパターンを指定できる設定を提供するようになりました。これは、多くのサブプロジェクトを含む大規模なコードベースで作業しており、特定のフォルダーをリンティングから除外したい場合に役立ちます。これらの設定は、"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 Speech

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

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

VS Code Speech activated by the microphone icon

GitHub Pull Requests and Issues

GitHub Pull Requests and Issues拡張機能でさらに進展がありました。これにより、プルリクエストとissueの作業、作成、管理を行うことができます。

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

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

プレビュー機能

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

ワークベンチウィンドウからエディターを独自のウィンドウにプルする方法の調査を続け、VS Code Insidersコミュニティにこのエキサイティングな新機能を試してフィードバックを提供していただきたいと考えています。

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

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

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

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

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

Rustで記述され、vscode-wasm repoのWASMにコンパイルされたシンプルな言語サーバーを示す拡張機能もあります。この拡張機能は、language server crateに依存しており、これはRust analyzer teamによってメンテナンスされています。

拡張機能の作成

テストランナーの改善

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

TestMessage.contextValue APIの最終決定

ユーザーがメッセージに対してアクションを実行するときに表示されるTestMessagecontextValueを提供できます。さらに、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: 整形済みテキストセグメントの背景色

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

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

提案されたAPI

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

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

提案された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で外部的に提起したり、provideIssueData および provideIssueTemplate 用のテンプレート string と拡張機能データ string を提供して、Issue Reporterを介して追加の拡張機能データをGitHubに送信したりできます。

この提案の詳細については、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のサポートは終了しました。 まだ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 に設定されている場合でも、検索中に ToC が表示される
  • 195722 ネットワークの問題が発生した場合の空白の設定エディター

ありがとうございます

最後になりましたが、VS Codeの貢献者の皆様に心から感謝申し上げます

Issue tracking

Issue trackingへの貢献

プルリクエスト

vscode への貢献

vscode-js-debug への貢献

language-server-protocol への貢献