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 をフォローしてください!

ワークベンチ

ステータスバー項目の表示/非表示

ステータスバーのコンテキストメニューから、個々のエントリを非表示または表示できるようになりました。

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 関連の環境変数が削除されていたためです。一方、通常のターミナルは通常、ドック/スタートメニューから起動され、システム環境を使用します。これにより、特定のシナリオで問題が発生する可能性がありました。たとえば、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+\ への変更

以前は、Ctrl+\ は Linux および Windows でターミナルを分割するコマンドにマップされていましたが、ほとんどの人がターミナルに期待するように、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 でシームレスに使用できるようになりました。

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

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

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

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

拡張機能への貢献

JavaScript および TypeScript ナイトリー拡張機能

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

TSLint 1.2

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

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

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

The Java installer UI

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

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

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

Windows での Linux アプリケーションの開発の詳細については、Windows 開発者プラットフォームチームの WSL と Visual Studio Code Remote を使用して Windows での Linux 開発エクスペリエンスを次のレベルに引き上げる ブログ投稿を参照してください。

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

リモートウィンドウで Web プロジェクトに取り組んでいる場合は、Debugger for 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 Extension API をインストールします。vscode とは異なり、postinstall スクリプトを介して vscode.d.ts をプルダウンするこのパッケージは、パッケージマネージャーによって完全にキャッシュできます。
  • vscode-test は、VS Code で統合テストを実行するための一連の API を提供します。古い vscode パッケージは引き続き動作しますが、新機能は vscode-test のみに適用されます。vscode-test に切り替えることをお勧めします。vscode-test は、よりスリムな依存関係グラフと、より柔軟で、明示的に文書化された API を備えています。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 があります。その値は、リモート拡張機能ホストをブートストラップする拡張機能によって定義され、ローカルおよびリモート拡張機能ホストで使用できます。

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

DocumentLink.tooltip

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

Custom hover text displayed for a Markdown link

VS Code には、リンクをアクティブにする方法 (上記の例では cmd + クリック) と tooltip テキストが含まれています。

ポートフォワーディングとポートマッピングが 'localhost' に加えて '127.0.0.1' をサポートするようになりました

vscode.env.openExternal API は、デフォルトの外部アプリケーションを使用して URI を開きます。openExternal がリモート拡張機能によってローカル URI (http://localhost:8080 など) で呼び出されると、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

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

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

sendText および onDidWriteData API と組み合わせることで、拡張機能はインタラクティブターミナルと対話できます。たとえば、接続を設定し、問題が発生した場合にのみ Terminal.show() を呼び出すことができます。

コメントリアクション

Comments 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

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

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) を 1 回のリリースで無効にする必要がありました。来月初旬に 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 調査

このイテレーションでは、VS Code の webview を実装するために、Electron の <webview> タグの代わりに通常の iframe を使用することを検討しました。この作業は主にブラウザーで 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 が開いているフォルダーの外にある場合、ファイルイベントが機能しない

謝辞

最後になりましたが、VS Code をさらに優れたものにするためにご協力いただいた以下の皆様に、心から感謝申し上げます!

vscode への貢献

Issue tracking への貢献

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

vscode-css-languageservice への貢献

vscode-html-languageservice への貢献

language-server-protocol への貢献

debug-adapter-protocol への貢献

vscode-azurecli への貢献

vscode-vsce への貢献

vscode-recipes への貢献

localization への貢献

Microsoft Localization Community Platform (MLCP) を利用する 800 名以上の Cloud + AI Localization コミュニティメンバーがおり、Visual Studio Code には 100 名以上のアクティブなコントリビューターがいます。新しい翻訳の提供、翻訳への投票、またはプロセス改善の提案など、皆様のご貢献に感謝いたします。

コントリビューターのスナップショットを以下に示します (コントリビューター)。コントリビューター名リストを含むプロジェクトの詳細については、プロジェクトサイト 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。
  • 日本語: Michihito Kumamoto, Yoshihisa Ozaki, Aya Tokura, TENMYO Masakazu, 太郎 西岡。
  • 韓国語: 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。