2019年6月 (バージョン 1.36)
アップデート 1.36.1: このアップデートでは、これらの問題に対処しています。
ダウンロード: Windows: x64 | Mac: Intel | Linux: deb rpm tarball snap
Visual Studio Code 2019年6月リリースへようこそ。このバージョンには多くのアップデートが含まれており、皆様に気に入っていただけることを願っています。主なハイライトをいくつかご紹介します。
- ステータスバー項目の表示/非表示 - お好みのステータスバー項目のみを表示します。
- エクスプローラーのインデントガイド - プロジェクトのフォルダー構造を明確に強調表示します。
- より優れたデフォルトシェルセレクター - 統合ターミナルで使用するデフォルトシェルを簡単に選択できます。
- シーケンシャルタスク実行 - タスクとサブタスクの実行順序を制御します。
- カーソル位置へのジャンプデバッグ - 新しい場所にジャンプする際にコード実行をスキップします。
- デバッグコンソールのワードラップを無効にする - デバッグ出力を1行に保つことができます。
- JavaScript/TypeScript ナイトリービルド拡張機能 - 新しい拡張機能は JS/TS ナイトリービルドを統合します。
- 新しい Java インストーラー - VS Code、Java 拡張機能パック、および必要な Java 依存関係をインストールします。
- リモート開発(プレビュー)の改善 - ローカルファイルシステムへの保存、リモートへのファイルのドラッグアンドドロップなど。
これらのリリースノートをオンラインで読むには、code.visualstudio.com の アップデート にアクセスしてください。
Insiders: 最新機能をいち早く試したいですか? ナイトリーInsidersビルドをダウンロードして、最新のアップデートをすぐにお試しください。また、Visual Studio Code の最新ニュース、アップデート、コンテンツについては、Twitter @code をフォローしてください!
ワークベンチ
ステータスバー項目の表示/非表示
ステータスバーのコンテキストメニューから、個々のエントリを非表示または表示できるようになりました。
設定は、すべてのワークスペースでグローバルに保持されます。
注: 設定 workbench.statusBar.feedback.visible
は、この新しいアプローチに賛成して削除されました。フィードバックのスマイリーは、ステータスバーのコンテキストメニューを使用して非表示にできます。
ツリーインデントガイド
ツリーウィジェットがインデントガイドをサポートするようになりました。これは、ファイルエクスプローラー、検索ビュー、デバッグビューなどでインデントガイドが利用できるようになったことを意味します。
以前と同様に、workbench.tree.indent
設定を使用してツリーのインデントレベルを制御でき、workbench.tree.renderIndentGuides
設定を使用してインデントガイドの動作を制御できるようになりました。
workbench.tree.renderIndentGuides
の可能な値は次のとおりです。
onHover
- ツリーにカーソルを合わせるとインデントガイドラインを表示します。デフォルトの動作。always
- ツリーに常にインデントガイドラインを表示します。none
- インデントガイドを表示しません。
フォルダーをドラッグアンドドロップしてコピー
VS Code 外からファイルエクスプローラーにフォルダーをドラッグアンドドロップしてコピーできるようになりました。以前は、フォルダーを VS Code エクスプローラーにドロップすると、常にそのフォルダーを含むワークスペースを開いていました。フォルダーコンテンツをコピーできるようになりました。
コピー&ペーストファイル名インクリメンターの変更
VS Code エクスプローラー内で重複するファイルとフォルダーをコピー&ペーストすると、VS Code はペーストされたファイルの名前をインクリメントします。以前のインクリメンタル命名の方法は、予期しない結果につながることがありました。
命名を簡素化するために、ファイル名を次の方法でインクリメントするようになりました。
"hello.txt" -> "hello copy.txt" -> "hello copy 2.txt" -> "hello copy 3.txt"
カスタムメニューバーの Alt キーフォーカスを無効にする
多くのユーザーから、Alt キーを押したときにカスタムメニューバーにフォーカスする動作を無効にするように求められました。この動作を防止するには、新しい設定 window.customMenuBarAltFocus
を false
に設定します。
ミニマップ検索装飾
ファイル内を検索すると、結果の一致箇所がファイル内とミニマップの両方で強調表示されるようになりました。
警告色の更新
list.warningForeground
と editorWarning.foreground
を更新して、エディターの警告色の残りの部分とより一致するようにしました。この更新された色は、ファイルエクスプローラー、ピークエラービュー、およびエディタースクウィグルで確認できます。
また、editorOverviewRuler.findMatchForeground
を更新して、ルーラーの更新された警告色でより目立つようにしました。
オンラインサービス設定
VS Code は、製品アップデートのダウンロード、拡張機能の検索、インストール、アップデート、または設定エディター内での自然言語検索の提供など、さまざまな目的でオンラインサービスを使用しています。@tag:usesOnlineServices
タグでフィルタリングできるユーザー設定を通じて、これらのサービスを使用する機能をオン/オフにすることができます。設定エディターでタグを適用するコマンド ファイル > 設定 > オンラインサービス設定 が追加されました。
詳細については、テレメトリドキュメントを参照してください。
統合ターミナル
より優れたデフォルトシェルセレクター
Windows には以前から デフォルトシェルの選択 コマンドがあり、前回のリリースで統合ターミナルのドロップダウンメニューに追加されました。このコマンドは macOS および Linux でも利用できるようになり、/etc/shells
ファイルを読み取ることでシステムに登録されているシェルを公開します。
クリーンな環境でターミナルを起動する
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 に影響を与えません。
inheritEnv
を false
に設定した場合の主な目に見える結果は、$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# 拡張機能からのみ利用可能ですが、他のデバッグ拡張機能もすぐに追随するはずです。
コンソールのワードラップを無効にする
新しい設定 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 インストールに追加することもできます。
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/vscode
と vscode-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
は、ユーザーがドキュメントリンクにカーソルを合わせたときに表示されるテキストをカスタマイズできます。
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
でリアクションハンドラーを登録すると、ユーザーは既存のリアクションに応答したり、リアクションピッカーを使用して新しいリアクションを作成したりできます。
提案された拡張機能 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 がデスクトップで実行されている場合、resourceRoot
は vscode-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
への貢献
- Abby (@abbychau): git の初期化またはクローン作成後に新しいウィンドウで開くことを許可するオプションを追加 PR #69763
- Andrius (@andrius-pra): Typescript プラグインによって提供される言語を同期 PR #75371
- Aurélien Pupier (@apupier): package.jsons にライセンスフィールドを追加 #68423 PR #68771
- Jakub Čábera (@Ash258): shellscript: フォールディングマーカーを追加 PR #75828
- Lee Houghton (@asztal): /tmp/vscode-typescript で複数のユーザーを処理 PR #75547
- Babak K. Shandiz (@babakks): SCM パネルに
cachedScrollTop
を追加 PR #74723 - Patrick Burke (@burknator): ステータスズームボタンを IStatusbarEntry にする #74454 PR #75618
- Chase Adams (@chaseadamsio): クイック入力/クイックオープンのテーマ設定をサポート PR #74041
- Christian Oliff (@coliff): EditorConfig 拡張機能をインストールするようにユーザーに推奨 PR #75391
- Hung-Wei Hung (@hwhung0111): コメント内のいくつかのタイプミスを修正 PR #75565
- Jean Pierre (@jeanp413)
- Jonas Kemper (@jk21): Package json 情報 PR #72763
- @malingyan2017: ドックの最近使ったファイル/フォルダーリストに最近使ったファイル/フォルダーが表示されない問題を修正 #74788 PR #75108
- Denis Stepanov (@meduzik): 起動コマンドの空の引数が適切にエスケープされるようになりました PR #25098
- Micah Smith (@Olovan): #35245 の問題を修正 PR #75357
- @orange4glace
- Jesse Mazzella (@ozyx): baseFolderName のリポジトリ URL から末尾の '/' を削除 PR #75822
- Alasdair McLeay (@penx): CSS インポートの Node モジュール解決 PR #70693
- Raul Piraces Alastuey (@piraces): ウィザードがサイレントモードで実行されている場合、MsgBox を抑制 PR #76215
- Remco Haszing (@remcohaszing)
- Evgeny Zakharov (@risenforces): window.disableMenuBarAltBehavior オプションを追加 PR #73258
- Samuel Bronson (@SamB): タイプミスを修正: timemout -> timeout PR #75162
- TBK (@TBK): APKBUILD のサポートを追加 PR #75706
- Tomáš Chaloupka (@tchaloupka): チェコ語の LANG 環境変数を修正 PR #75519
- Tony Xia (@tony-xia)
- Waldir Pimenta (@waldyrious): 例の略語 (e.g.) のスペルを修正 PR #74785
Issue tracking への貢献
- John Murray (@gjsjohnmurray)
- Alexander (@usernamehw)
- Eric Amodio (@eamodio)
- Jean Pierre (@jeanp413)
- Danny Tuppeny (@DanTup)
受信 issue の管理にご協力いただける場合は、コミュニティ Issue Tracking ページをご覧ください。
vscode-css-languageservice
への貢献
- Dmitry Parzhitsky (@parzh): 疑似要素の特異性を修正 PR #154
vscode-html-languageservice
への貢献
- Liam Newman (@bitwiseman): js-beautify を 1.10.0 にアップデート PR #61
- Javey (@Javey): uglify-js で圧縮できるようにする PR #64
language-server-protocol
への貢献
- Danny Tuppeny (@DanTup): タイプミスを修正 "must not sent" -> "must not send" PR #747
debug-adapter-protocol
への貢献
- Joel Day (@joelday): Papyrus の実装を追加 PR #59
vscode-azurecli
への貢献
- Matthew Burleigh (@mburleigh): 結果を新しいエディターで開く PR #55
- Matthew Burleigh (@mburleigh): 進行状況を示すステータスバー項目を追加 PR #56
vscode-vsce
への貢献
- @atsutton: ログレベルを info に変更。 PR #369
- James George (@jamesgeorge007)
- Jonathan Nagy (@nagytech): コミットメッセージの指定を許可 PR #365
vscode-recipes
への貢献
- Mladen Mihajlović (@mika76): Vue - issue から収集した情報で readme を更新 PR #213
- Ephraim Khantsis (@doom777): ng-test 起動構成を更新 PR #212
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。