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

2019年6月 (バージョン 1.36)

更新 1.36.1: この更新では、以下の問題が解決されています。

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


Visual Studio Code 2019年6月版へようこそ。このバージョンには、皆さんに気に入っていただけるような多数の更新が含まれています。主なハイライトは次のとおりです。

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

Insiders: 新機能をいち早く試したいですか?ナイトリー Insiders ビルドをダウンロードして、最新の更新が利用可能になり次第お試しいただけます。また、Visual Studio Code の最新ニュース、更新情報、コンテンツについては、Twitter の @code をフォローしてください。

Workbench

個別のステータスバー項目を非表示にする

ステータスバーに個別のエントリを非表示にしたり表示したりするためのコンテキストメニューが追加されました。

Hide entries in the status bar

この構成は、すべてのワークスペースでグローバルに永続化されます。

: 設定 workbench.statusBar.feedback.visible は、この新しいアプローチの代わりに削除されました。ステータスバーのコンテキストメニューを使用して、フィードバックのスマイリーを非表示にできます。

ツリーのインデントガイド

ツリーウィジェットがインデントガイドをサポートするようになりました。これは、ファイルエクスプローラー、検索ビュー、デバッグビューなどでインデントガイドが利用できるようになったことを意味します。

Explorer with indentation guides

これまでと同様に、workbench.tree.indent 設定を使用してツリーのインデントレベルを制御できます。また、workbench.tree.renderIndentGuides 設定を使用してインデントガイドの動作を制御することもできます。

workbench.tree.renderIndentGuides の設定可能な値は次のとおりです。

  • onHover - ツリーにカーソルを合わせたときにインデントガイドラインを表示します。これが既定の動作です。
  • always - ツリーに常にインデントガイドラインを表示します。
  • none - インデントガイドを表示しません。

フォルダーをドラッグアンドドロップしてコピー

VS Code の外部からフォルダーをファイルエクスプローラーにドラッグアンドドロップしてコピーできるようになりました。以前は、フォルダーを VS Code エクスプローラーにドロップすると、そのフォルダーを含むワークスペースが常に開かれました。現在は、フォルダーのコンテンツをコピーするだけで済みます。

Explorer drag and drop to copy

ファイル名のコピー貼り付け増分変更

VS Code エクスプローラー内で重複するファイルやフォルダーをコピーして貼り付ける際、VS Code は貼り付けたファイルの名前をインクリメントします。以前の増分命名の方法は、予期せぬ結果を招くことがありました。

命名を簡素化するため、ファイル名は次のようにインクリメントされるようになりました。

"hello.txt" -> "hello copy.txt" -> "hello copy 2.txt" -> "hello copy 3.txt"

カスタムメニューバーの Alt キーによるフォーカスを無効にする

Alt キーが押されたときにカスタムメニューバーにフォーカスする動作を無効にしたいという要望が多く寄せられました。この動作を防ぐには、新しい設定 window.customMenuBarAltFocusfalse に設定します。

ミニマップの検索装飾

ファイル内で検索すると、結果の検索一致がファイル内とミニマップの両方で強調表示されるようになりました。

Show search results in the minimap

更新された警告色

list.warningForegroundeditorWarning.foreground を更新し、エディターの他の警告色との整合性を高めました。この更新された色は、ファイルエクスプローラー、ピークエラービュー、およびエディターの波線で確認できます。

Warning color update

また、ルーラーの更新された警告色とより際立つように editorOverviewRuler.findMatchForeground を更新しました。

Find match color update

オンラインサービスの設定

VS Code は、製品の更新のダウンロード、拡張機能の検索、インストール、更新、設定エディター内での自然言語検索の提供など、さまざまな目的でオンラインサービスを使用します。これらのサービスを使用する機能をユーザー設定でオン/オフできます。これは、@tag:usesOnlineServices タグでフィルターできます。設定エディターでタグを適用するコマンド ファイル > 基本設定 > オンラインサービスの設定 が追加されました。

online services settings

詳細については、テレメトリドキュメントを参照してください。

統合ターミナル

より優れた既定のシェルセレクター

Windows には以前から 既定のシェルを選択 コマンドがあり、前回のリリースで統合ターミナルのドロップダウンメニューに追加されました。このコマンドは macOS と Linux でも利用できるようになり、/etc/shells ファイルを読み取ってシステムに登録されているシェルを公開します。

Default shell selector on macOS

クリーンな環境でターミナルを起動

VS Code の統合ターミナルは、特に Linux と macOS で、通常のターミナルとは常に少し異なる動作をしていました。その理由は、環境が常に VS Code のウィンドウ (インスタンス) から継承され、VS Code/Electron 関連の環境変数が削除されていたためです。一方、通常のターミナルは通常、Dock/スタートメニューから起動され、システム環境を使用します。これにより、特定のシナリオで問題が発生する可能性がありました。たとえば、Python の仮想環境は $PATH 変数の使用方法のために壊れていました。

新しいプレビューオプション terminal.integrated.inheritEnv があり、これを false に設定すると、ターミナルが VS Code の環境を使用しなくなります。

代わりに、プラットフォームに応じて、次の動作をします。

  • Linux: VS Code の "メインプロセス" の親プロセスの環境を取得して使用します。
  • macOS: 現在の環境からいくつかの重要な環境変数を抽出し、それらのみを含めます。最終的には macOS も Linux と同じように動作させたいと考えていますが、現時点では環境の取得に問題があります。
  • Windows: 現在、この設定は Windows には影響しません。

inheritEnvfalse に設定した場合の主な目に見える結果は、$SHLVL (シェルレベル) が 1 になり、起動スクリプトが意図的に重複パスを含んでいない限り、$PATH に重複パスが含まれなくなることです。

terminal.integrated.inheritEnv の既定値は true で、これは以前の動作と同じですが、将来的にはこの値を false に変更する予定です。

Ctrl+\ への変更

以前は、Linux および Windows で Ctrl+\ はターミナルを分割するコマンドにマッピングされていましたが、ほとんどの人がターミナルに期待するように、これはシェルに SIGQUIT を渡すように変更されました。以前の動作が必要な場合は、このキーボードショートカットを keybindings.json ファイルに追加できます。

{
  "key": "ctrl+\\",
  "command": "workbench.action.terminal.split",
  "when": "terminalFocus"
}

タスク

シーケンシャル依存関係の実行

dependsOn タスク属性は、引き続きすべての依存関係を並行して実行するのが既定ですが、"dependsOrder": "sequence" を指定することで、dependsOn にリストされている順序でタスクの依存関係を実行できるようになりました。dependsOn で使用されるバックグラウンド/ウォッチタスクには、それらが "完了" したときに追跡する問題マッチャーが必要です。

以下のタスク例では、タスク Two、タスク Three、次にタスク One の順で実行されます。

{
  "label": "One",
  "type": "shell",
  "command": "echo Hello ",
  "dependsOrder": "sequence",
  "dependsOn": ["Two", "Three"]
}

問題マッチャーのパス検出

タスク出力が問題についてスキャンされるとき、パスに関する情報は fileLocation 問題マッチャー属性を使用して提供されます。既存の relative および absolute オプションに加えて、autoDetect を指定できるようになりました。autoDetect を使用すると、タスクシステムは問題内のパスが相対パスであるか絶対パスであるかを自動的に判断しようとします。

言語

TypeScript 3.5.2

このリリースには TypeScript 3.5.2 が含まれており、これはいくつかの重要なバグを修正する小さなアップデートです。

JavaScript と TypeScript の構文のみの機能をより迅速に使用

VS Code の JavaScript および TypeScript 言語機能は、TypeScript サーバーによって提供されます。このサーバーは、IntelliSense やエラー報告などの複雑な機能に加え、コードの折りたたみやドキュメントのアウトラインなどの単純な機能も提供します。

IntelliSense のような機能は、TypeScript サーバーが結果を返す前に JavaScript または TypeScript プロジェクト全体を評価する必要があるため、大規模なプロジェクトでは時間がかかることがあります。この処理が行われている間、サーバーは、現在のファイルの基本的な構文理解のみを必要とするコードの折りたたみなどの単純な機能のリクエストを含む、他のリクエストを処理できません。コードの折りたたみやドキュメントのアウトラインが利用可能になるまでに遅延を感じたことがある場合、この問題に遭遇したことがあるかもしれません。

コードの作業をより速く開始できるように、VS Code が 2 つの TypeScript サーバーを使用する新しい実験的オプションを追加しました。1 つは単純な構文ベースの操作のみを処理し、もう 1 つはプロジェクト処理、IntelliSense、エラー報告、その他の高度な言語機能を処理します。この動作を有効にするには、"typescript.experimental.useSeparateSyntaxServer": true を設定します。この設定を使用するには、ワークスペースで TypeScript 3.4 以降が必要です。

デバッグ

カーソルへジャンプ

新しいデバッグコマンド カーソルへジャンプ を追加しました。これにより、途中のコードを実行することなく、プログラムの実行を新しい場所に移動できます。デバッガーが カーソルへジャンプ をサポートしている場合、デバッグ中にエディターのコンテキストメニューとコマンドパレットに新しいコマンドが表示されます。現在、このコマンドは C# 拡張機能からのみ利用可能ですが、他のデバッグ拡張機能も間もなく追従するはずです。

Jump to cursor debugger command

コンソールの単語の折り返しを無効にする

新しい設定 debug.console.wordWrap は、デバッグコンソールで単語の折り返しを有効にするかどうかを制御します。既定では、すべての行が折り返されます。この設定がオフの場合、デバッグコンソールで改行されなくなり、水平スクロールバーが表示されます。

Node.js デバッグ構成属性 useWSL は非推奨になりました

WSL 拡張機能により、ユニバーサル Windows Subsystem for Linux (WSL) サポートが VS Code に導入されました。これで、すべての拡張機能を WSL でシームレスに使用できます。

その結果、VS Code の Node.js デバッガーに 2 年前に追加した、現在では廃止された WSL サポートを削除する予定です。この目標に向けた最初のステップとして、useWSL デバッグ構成属性を非推奨にしています。このマイルストーンから、エディターで launch.json ファイルを開くと、この属性に波線が表示されるようになります。さらに、useWSL を含むデバッグセッションが起動されると通知が表示されます。

既存の useWSL フラグを使用するプロジェクトを WSL 拡張機能を使用したデバッグに移行する手順を次に示します。

  • WSL 拡張機能がインストールされていることを確認します。
  • VS Code でプロジェクトのフォルダーを開きます。
  • WSL: WSL でフォルダーを再度開く コマンドを使用して、WSL でプロジェクトを再度開きます。
  • F5 を押します。
  • デバッグ構成から useWSL フラグを削除します。

詳細については、WSL での開発 ドキュメントを参照してください。

拡張機能への貢献

JavaScript および TypeScript Nightly 拡張機能

新しい JavaScript および TypeScript Nightly 拡張機能 は、VS Code の組み込み TypeScript バージョン (JavaScript および TypeScript IntelliSense を提供) に TypeScript のナイトリービルド (typescript@next) を使用します。これにより、最新の TypeScript 機能を簡単にテストし、それらに関するフィードバックを提供できます!

TSLint 1.2

いくつかの重要なバグを修正した TSLint 拡張機能 の新しいバージョンを公開しました。このリリースでは、ワークスペースに tslint.json ファイルがあるにもかかわらず TSLint 自体が適切にインストールされていない場合に、VS Code のステータスバーに警告インジケーターも追加されます。

Java 開発者向けインストーラー

初めての Java 開発者が Java 環境をセットアップするのに役立つ新しい Visual Studio Code Java インストーラー があります。Java パックインストーラーを実行すると、JDK (Java Development Kit)、Visual Studio Code、および必要な拡張機能が既にインストールされているかどうかが自動的に検出されます。インストールされていない場合、インストーラーが不足している依存関係をダウンロードして構成できます。また、既存の Visual Studio Code インストールに Java 関連コンポーネントを追加するためにインストーラーを使用することもできます。

The Java installer UI

Java 拡張機能がインストールされている場合、Visual Studio Code は、スマートコード補完、リファクタリング、デバッグ、テスト、プロジェクト管理、アプリケーションサーバー統合など、包括的な Java 開発機能を提供します。

リモート開発 (プレビュー)

リモート開発 拡張機能の作業が継続されており、これを使用すると、コンテナー、リモートマシン、または Windows Subsystem for Linux (WSL) をフル機能の開発環境として使用できます。新しい拡張機能の機能とバグ修正については、リモート開発リリースノートで確認できます。

Windows で Linux アプリケーションを開発する方法の詳細については、Windows 開発者プラットフォームチームによるこの WSL および Visual Studio Code Remote を使用した Linux 開発 のブログ記事を参照してください。

リモート UI 拡張機能としての Chrome 用デバッガー

リモートウィンドウで Web プロジェクトに取り組んでいる場合、Chrome 用デバッガー拡張機能を使用して、ローカルの Chrome ウィンドウでデバッグできます。拡張機能をインストールし、リモートで開発サーバーを起動し、サーバーのポートを転送し、起動構成を開始するだけです。詳細については、拡張機能の README を参照してください。

拡張機能作成

vscode パッケージを @types/vscode と vscode-test に分割

昨年発生した event-stream 事件の際に、vscode パッケージが 223 の推移的依存関係に event-stream を含んでいたため影響を受けていることが判明しました。これらの依存関係は、多くの VS Code 拡張機能に対して GitHub のセキュリティアラートを時折引き起こすこともありました。依存関係の複雑さに対処するため、vscode パッケージのスリム化を開始しました。

vscode パッケージには 2 つの目的がありました。

  • 拡張機能開発のために vscode.d.ts を取得する。
  • VS Code のローカルコピーをダウンロードして起動することで統合テストを実行する。

現在、vscode@types/vscodevscode-test の 2 つのパッケージに分割しています。これらはより焦点を絞った機能を提供します。

  • @types/vscode には、各リリースごとの vscode.d.ts が含まれています。たとえば、npm i @types/vscode@1.34.0 は VS Code 1.34 拡張機能 API をインストールします。postinstall スクリプトを介して vscode.d.ts を取得する vscode とは異なり、このパッケージはパッケージマネージャーによって完全にキャッシュできます。
  • vscode-test は、VS Code で統合テストを実行するための一連の API を提供します。古い vscode パッケージは引き続き機能しますが、新機能は vscode-test にのみ追加されます。よりスリムな依存関係グラフと、より柔軟で明示的に文書化された API を備えた vscode-test への切り替えをお勧めします。vscode-test の使用方法の詳細については、拡張機能のテスト の記事を参照してください。

その他

  • vscode-dts を使用すると、CLI を介して任意のバージョンの VS Code API をすばやくダウンロードできます。
  • vsce は、@types/vscode のバージョンと engines.vscode を比較して、古いバージョンの VS Code と互換性のない新しい API を使用するのを防ぐようになりました。
  • helloworld-test-sample拡張機能のテスト ページ、および 継続的インテグレーション ページは、vscode-test を使用するように更新されました。
  • 拡張機能のテスト ページには、vscode から @types/vscode および vscode-test への移行を支援する 移行ガイド が含まれています。
  • すべての VS Code サンプル拡張機能 は、@types/vscode を使用するようになりました。
  • VS Code 拡張機能ジェネレーター は、@types/vscode および vscode-test パッケージを使用して拡張機能をスケルトン化します。

Node.jsの更新

VS Code が動作する Electron のバージョンが更新され、Node.js が 10.2.0 から 10.11.0 に更新されました。すべての拡張機能は、この新しいバージョンの Node.js で動作するようになります。

リモート用 API

リモート拡張機能ホストが実行されるたびに定義される新しいプロパティ vscode.env.remoteName があります。その値は、リモート拡張機能ホストをブートストラップする拡張機能によって定義され、ローカルおよびリモートの拡張機能ホストで利用できます。

リモート拡張機能ホストで実行されているかローカル拡張機能ホストで実行されているかを知る必要がある拡張機能は、ExtensionKind.UI または ExtensionKind.Workspace のいずれかである Extension#extensionKind を使用できます。この値は、拡張機能の package.json ファイルで定義されているか、ユーザーによってオーバーライドされたものを表します。リモート拡張機能ホストが存在しない場合、値は常に ExtensionKind.UI です。

DocumentLink.tooltip

新しい DocumentLink.tooltip プロパティを使用すると、DocumentLinkProvider はユーザーがドキュメントリンクにカーソルを合わせたときに表示されるテキストをカスタマイズできます。

Custom hover text displayed for a Markdown link

VS Code は、tooltip テキストとともに、リンクをアクティブにする方法 (上記の例では cmd + click) の手順を含みます。

ポート転送とポートマッピングが 'localhost' に加えて '127.0.0.1' もサポートするようになりました

vscode.env.openExternal API は、既定の外部アプリケーションを使用して URI を開きます。リモート拡張機能によって https://:8080 のようなローカル URI で openExternal が呼び出されると、VS Code は自動的にローカルマシンのポートをリモートマシンの開かれたポートに接続するトンネルを開きます。この自動トンネリングは以前は 'localhost' URI のみで有効でしたが、現在は '127.0.0.1' でも有効になっています。

さらに、webview ポートマッピング API は、'localhost' URI に加えて '127.0.0.1' も処理するようになりました。

readonly または ReadonlyArray としてマークされたプロパティの増加

VS Code API のプロパティが vscode.d.ts で readonly としてマークされるようになり、拡張機能に対する意図がより明確に表現されます。

主な変更点は次のとおりです。

  • イベントインターフェースのすべてのフィールドが readonly になりました。同じオブジェクトが複数のリスナーにディスパッチされる可能性があるため、イベントオブジェクトは決して変更されるべきではありません。
  • DiagnosticCollection のメソッドは readonly 配列を受け取るようになりました。この変更は、DiagnosticCollection はそのメソッドを介してのみ更新でき、以前に渡された配列を変更することによっては更新できないためです。
  • Extensions.all は変更できないため、readonly 配列になりました。
  • TextEditor.insertSnippet はパラメータを変更しないため、readonly 配列を受け取るようになりました。

これらの新しい readonly 修飾子は、VS Code API が以前使用していた非 readonly 型を明示的に指定していた拡張機能コードでコンパイルエラーを引き起こす可能性があります。

vscode.window.onDidChangeTextEditorSelection(e => {
    // Error: `e.selections` is now a readonly array but
    // our `updateForSelections` function takes a mutable array
    updateForSelections(e.selections);
});

function updateForSelections(selections: vscode.Selection[]) {
    ...
}

これを修正するには、拡張機能のソースコード全体に readonly 修飾子を伝播させてください。

vscode.window.onDidChangeTextEditorSelection(e => {
    updateForSelections(e.selections);
});

function updateForSelections(selections: readonly vscode.Selection[]) {
    ...
}

TerminalOptions.hideFromUser

runInBackground ターミナルの hideFromUser オプションが安定版 API になりました。このオプションを使用して、Terminal.show() が呼び出されるまでターミナルをユーザーから完全に非表示にできます。

const term = window.createTerminal({ hideFromUser: true });
term.sendText('do something');

sendText および onDidWriteData API と組み合わせることで、拡張機能はインタラクティブターミナルとやり取りできます。たとえば、接続をセットアップし、何らかの問題が発生した場合にのみ Terminal.show() を呼び出すことができます。

コメントリアクション

コメント API が、コメントに対するユーザーのリアクションの表示と管理をサポートするようになりました。Comment.reactions が存在する場合、リアクションはコメント本文の下にレンダリングされます。

拡張機能が CommentController.reactionHandler でリアクションハンドラーを登録すると、ユーザーは既存のリアクションに返信したり、リアクションピッカーを使用して新しいリアクションを作成したりできるようになります。

Comment reactions UI

提案された拡張API

各マイルストーンには新しい提案APIが付属しており、拡張機能開発者はこれらを試すことができます。いつものように、皆様からのフィードバックをお待ちしております。提案APIを試すには、次の手順を実行します。

  • 提案APIは頻繁に変更されるため、Insiders版を使用する必要があります。
  • 拡張機能のpackage.jsonファイルに次の行が必要です: "enableProposedApi": true
  • vscode.proposed.d.tsファイルの最新バージョンをプロジェクトにコピーします。

提案APIを使用する拡張機能は公開できないことに注意してください。次回のリリースでは互換性のない変更が行われる可能性があり、既存の拡張機能を壊すことは決して望ましくありません。

vscode.workspace.fs

拡張機能が ファイルシステムプロバイダーと対話できるようにするための提案された API があります。この API を使用すると、拡張機能は任意のファイルシステムからファイルやフォルダーを作成、読み取り、書き込み、削除できます。たとえば、言語拡張機能は、ftp サーバーや他のリモートソースから提供されるソースファイルをロードできるようになりました。

この API は、ワークスペースオブジェクトの新しいプロパティ vscode.workspace.fs を介してアクセスできます。ぜひ試してみて、issue #48034 にフィードバックをお寄せください。

コードインセットの API を更新

コードインセットの提案をリファクタリングし、簡素化しました。プロバイダーパターンを使用する代わりに、テキストデコレーション API のように動作するようになりました。

export function createWebviewTextEditorInset(
  editor: TextEditor,
  line: number,
  height: number,
  options?: WebviewOptions
): WebviewEditorInset;

エディター、行、高さを指定することでインセットを作成できます。インセットは、WebviewPanel ですでに知られている Webview を使用します。デコレーションと同様に、インセットはそれらを含むエディターが閉じられると破棄されます。

Webview.resourceRoot

Webviews の提案された resourceRoot 定数は、webviews でローカルリソースがロードされるルートを公開します。

const panel = vscode.window.createWebviewPanel(
  CatCodingPanel.viewType,
  'Cat Coding',
  vscode.ViewColumn.One,
  {
    // Restrict the webview to only loading local content from our extension's `media` directory.
    localResourceRoots: [vscode.Uri.file(path.join(extensionPath, 'media'))]
  }
);

const resourceRoot = await panel.resourceRoot;
panel.html = `<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="Content-Security-Policy" content="default-src 'none'; img-src ${resourceRoot} https:;">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Cat Coding</title>
</head>
<body>
    <img src="${resourceRoot}/${path.join(extensionPath, 'media')}/cat.gif" width="300" />
</body>
</html>`;

VS Code がデスクトップで実行される場合、resourceRootvscode-resource: になります。ただし、VS Code がブラウザーなどの他の環境で実行される場合、値は異なる場合があります。

既定のシェルを取得するための API

terminal.integrated.shell.<platform> 設定が現在 null に既定で設定されているため、拡張機能はその設定を使用して既定のシェルを検出できなくなりました。現在、ターミナルの既定のシェルを返す提案された API vscode.env.shell があります。

const shell = vscode.env.shell;
if (shell.search(/(powershell|pwsh)/i) !== -1) {
  // Do something special that PowerShell needs
}

Language Server Protocol

TypeScript 用の Language Server Index Format ツールの新しいバージョンが実装されました。新しいバージョンでは、大量のダンプをデータベースにインポートしやすく、データベース固有にすることなく、改善された形式になっています。これらのツールの実行の詳細については、lsif-node リポジトリの指示を参照してください。

エンジニアリング

Electron 4.0 アップデートと Electron 6.0 の検討

このマイルストーンで、Electron 4 を VS Code にバンドルする検討を終え、この Electron バージョンが初めて安定版として出荷されることになります。これは Electron のメジャーリリースであり、Chrome 69 と Node.js 10.11.0 が含まれています (現在の Chrome 66 と Node.js 10.2.0 のバージョンから大幅な進歩です)。

残念ながら、issue #75054 のため、macOS のシンプルフルスクリーンサポート ("window.nativeFullScreen": false) を一時的に無効にする必要がありました。来月初旬に Insiders ビルドに修正を含める予定です。

Electron 6 への更新の検討を開始しており、近いうちに Insiders にプッシュしたいと考えています。

コードの読み込みの改善

Electron 4 により、新しいスクリプトキャッシュ API にアクセスできるようになりました。新しいキャッシュ API を使用すると、キャッシュデータは最初の起動に影響を与えることなく作成でき、遅延パースされた関数をカバーするために繰り返し作成できます。これにより、ローダーの改善と合わせて、コードの読み込みが約 15% 速くなりました。

Linux 32 ビットのサポート終了

VS Code は、複数のプラットフォームで動作するために Electron フレームワークを使用しています。このリリースで Electron バージョン 4.x に移行するため、VS Code は Linux 32 ビットでは動作しなくなります。64 ビット版の VS Code に更新してください。すべての設定と拡張機能は、何も移行する必要なく、以前と同じように動作します。詳細については、関連する Electron のブログ投稿を参照してください。

iframe ベースの Webview の検討

今回のイテレーションでは、Electron の <webview> タグの代わりに通常の iframe を使用して VS Code の webview を実装することを検討しました。この作業は主にブラウザーでの VS Code の実行をサポートするために行われていますが、<webview> もかなり複雑で、過去に問題を引き起こしていました。最終的には <webview> の使用を通常の iframe に置き換えられるようになることを期待しています。

iframe ベースの webview で大幅な進捗があり、現在では拡張機能からの多くの webview をブラウザーで正常に実行できますが、まだ多くの作業が残っています。この検討は 7 月も継続します。

注目すべき修正点

  • 41356: 次の/前のエラーに移動するホットキーは、NVDA のフォーカスをエディター外に移動するべきではありません
  • 45515: Uri#parse がパスコンポーネントを壊す可能性があります
  • 54084: ステップ実行中にデバッグタッチバーボタンの位置を変更しないでください
  • 70248: cls コマンドがターミナルをクリアしません (Windows 10 1903, ConPTY)
  • 74710: 画像プレビューは画像のサイズに対してのみ「透明な」市松模様の背景を描画するべきです
  • 75359: デバッグコンソールを介して値を変更した後、変数ペインが更新されません
  • 41085: Git: .git が開かれたフォルダーの外にある場合、ファイルイベントが動作しません

ありがとうございます

最後に、そしてもちろん最も重要なこととして、Visual Studio Codeをさらに良くするために協力してくれた以下の方々に、心からの感謝を申し上げます!

vscodeへの貢献者

問題追跡への貢献者

受信した問題の管理にご協力いただける場合は、コミュニティ問題追跡ページをご覧ください。

vscode-css-languageserviceへの貢献者

vscode-html-languageserviceへの貢献

language-server-protocolへの貢献者

debug-adapter-protocolへの貢献者

vscode-azurecli への貢献

vscode-vsceへのコントリビューション

vscode-recipesへの貢献

localizationへの貢献

800 を超える Cloud + AI ローカライズ コミュニティメンバーが Microsoft Localization Community Platform (MLCP) を使用しており、そのうち約 100 人が Visual Studio Code に積極的に貢献しています。新しい翻訳の提供、翻訳への投票、プロセス改善の提案など、皆様のご貢献に感謝いたします。

貢献者のスナップショットを次に示します。貢献者名リストを含むプロジェクトの詳細については、プロジェクトサイト https://aka.ms/vscodeloc を参照してください。

  • ボスニア語: Ismar Bašanović, Ernad Husremovic.
  • ブルガリア語: Иван Иванов, Gheorghi Penkov.
  • チェコ語: Tadeáš Cvrček, Michal Franc, Jan Kos, Radim Hampl.
  • デンマーク語: René Pape, Lars Vange Jørgensen, Martin Liversage, Lasse Stilvang, Anders Lund, Allan Kimmer Jensen, Anton Ariens.
  • オランダ語: Leroy Witteveen, Luc Sieben, Maxim Janssens, Damien van Gageldonk, Tom Meulemans.
  • 英語 (英国): Martin Littlecott, Alexander Ogilvie, Fabio Zuin, Mohit Nain, Sulkhan Ninidze, alshyab wa3ed, Tejas kale.
  • フィンランド語: Lasse Leppänen, Petri Niinimäki, Sebastian de Mel.
  • フランス語: Antoine Griffard, Thierry DEMAN-BARCELÒ.
  • ドイツ語: Julian Pritzi, Patrick Burke, Ettore Atalan, Meghana Garise.
  • ギリシャ語: Θοδωρής Τσιρπάνης, Charalampos Fanoulis, Vassilis Vouvonikos.
  • ヘブライ語: חיים לבוב, Eyal Ellenbogen.
  • ヒンディー語: Sanyam Jain, Kishan K.
  • ハンガリー語: Boldi Kemény.
  • 中国語 (簡体字): 斌 项, paul cheung, 张锐, Yizhi Gu, Yiting Zhu, Justin Liu, Shi Liu, Pluwen, Joel Yang, Jieting Xu, Chen Yang, 涛 罗, 立飞 李, 雨齐 刘, cuibty wong, 建 周, XIANG ZUO.
  • 中国語 (繁体字): LikKee 沥祺 Richie, Winnie Lin, Jeremy.
  • インドネシア語: Jakka Prihatna, Arif Fahmi, Septian Adi, Heston Sinuraya, Hendra Widjaja, Don Nisnoni, Eriawan Kusumawardhono, Bervianto Leo Pratama, Laurensius Dede Suhardiman, Rifani, rsyad, Christian Elbrianno.
  • イタリア語: andrea falco, Aldo Donetti.
  • 日本語: 道仁 熊本, 義久 尾崎, 彩 戸倉, 雅和 天明, 太郎 西岡.
  • 韓国語: Hongju, 우현 조, Hoyeon Han, Hong Kwon.
  • ラトビア語: Kaspars Bergs, Andris Vilde.
  • リトアニア語: Andrius Svylas, Tautvydas Derzinskas, Karolis Kundrotas, Martynas J..
  • ノルウェー語: Dag H. Baardsen, Ole Kristian Losvik.
  • ポーランド語: Rafał Całka, Marcin Weksznejder, Jakub Żmidziński, Rafał Wolak, Szymon Seliga, Grzegorz Miros.
  • ポルトガル語 (ブラジル): Alessandro Trovato, Thiago Dupin Ugeda, Weslei A. de T. Marinho, Rafael Lima Teixeira, Gerardo Magela Machado da Silva, Marcos Albuquerque, Loiane Groner, Alessandro Fragnani, Judson Santiago, Andrei Bosco, Fábio Corrêa, Roberto Fonseca, Fabio Lux, Emmanuel Gomes Brandão, Guilherme Pais, Rodrigo Vieira, André Gama.
  • ポルトガル語 (ポルトガル): Nuno Carapito, Pedro Daniel, José Rodrigues, Diogo Barros.
  • ルーマニア語: Stefan Gabos.
  • ロシア語: Дмитрий Кирьянов, Анатолий Калужин.
  • スペイン語: David Fernández Aldana, Ricardo Rubio, Thierry DEMAN, José María Aguilar.
  • スウェーデン語: Johan Spånberg, Notetur Nomen.
  • タミル語: Merbin J Anselm, Jeyanthinath Muthuram, Boopesh Kumar, Nithun Harikrishnan, Vignesh Rajendran.
  • トルコ語: Meryem Aytek, Fıratcan Sucu, Ahmetcan Aksu, Mehmet Yönügül, Ömer Sert, Anıl MISIRLIOĞLU, Misir Jafarov, Bruh Moment.
  • ウクライナ語: Arthur Murauskas, Alexander Varchenko, Вадим Шашков, Евгений Коростылёв.
  • ベトナム語: Van-Tien Hoang, Vuong Bui, Chủ Tất.