2019年6月 (バージョン 1.36)
更新 1.36.1: この更新では、以下の問題が解決されています。
ダウンロード: Windows: x64 | Mac: Intel | Linux: deb rpm tarball snap
Visual Studio Code 2019年6月版へようこそ。このバージョンには、皆さんに気に入っていただけるような多数の更新が含まれています。主なハイライトは次のとおりです。
- ステータスバー項目の表示/非表示 - お好みのステータスバー項目のみを表示します。
- エクスプローラーのインデントガイド - プロジェクトのフォルダー構造を明確に強調表示します。
- より優れたターミナルシェルセレクター - 統合ターミナルで使用する既定のシェルを簡単に選択できます。
- シーケンシャルタスクの実行 - タスクとサブタスクの実行順序を制御します。
- カーソルへのジャンプデバッグ - 新しい位置にジャンプする際、コードの実行をスキップします。
- デバッグコンソールの単語の折り返しを無効にする - デバッグ出力を1行に保つことができます。
- JavaScript/TypeScript Nightly ビルド - 新しい拡張機能が JS/TS Nightly ビルドを統合します。
- 新しい Java インストーラー - VS Code、Java 拡張機能パック、および必要な Java 依存関係をインストールします。
- リモート開発 (プレビュー) の改善 - ローカルファイルシステムへの保存、リモートへのファイルのドラッグアンドドロップなど。
これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com の 更新 にアクセスしてください。
Insiders: 新機能をいち早く試したいですか?ナイトリー Insiders ビルドをダウンロードして、最新の更新が利用可能になり次第お試しいただけます。また、Visual Studio Code の最新ニュース、更新情報、コンテンツについては、Twitter の @code をフォローしてください。
Workbench
個別のステータスバー項目を非表示にする
ステータスバーに個別のエントリを非表示にしたり表示したりするためのコンテキストメニューが追加されました。
この構成は、すべてのワークスペースでグローバルに永続化されます。
注: 設定 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 関連の環境変数が削除されていたためです。一方、通常のターミナルは通常、Dock/スタートメニューから起動され、システム環境を使用します。これにより、特定のシナリオで問題が発生する可能性がありました。たとえば、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+\ への変更
以前は、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# 拡張機能からのみ利用可能ですが、他のデバッグ拡張機能も間もなく追従するはずです。
コンソールの単語の折り返しを無効にする
新しい設定 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 関連コンポーネントを追加するためにインストーラーを使用することもできます。
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/vscode
と vscode-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
はユーザーがドキュメントリンクにカーソルを合わせたときに表示されるテキストをカスタマイズできます。
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
でリアクションハンドラーを登録すると、ユーザーは既存のリアクションに返信したり、リアクションピッカーを使用して新しいリアクションを作成したりできるようになります。
提案された拡張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 がデスクトップで実行される場合、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
) を一時的に無効にする必要がありました。来月初旬に 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
への貢献者
- Abby (@abbychau): Git 初期化またはクローン後に新しいウィンドウで開くオプションを追加 PR #69763
- Andrius (@andrius-pra): Typescript プラグインによって提供される言語を同期 PR #75371
- Aurélien Pupier (@apupier): package.json に License フィールドを追加 #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): パッケージ JSON 情報 PR #72763
- @malingyan2017: ドックの最近のリストに最近のファイル/フォルダーが表示されない問題を修正 #74788 PR #75108
- Denis Stepanov (@meduzik): 起動コマンドの空の引数が適切にエスケープされるようになりました PR #25098
- Micah Smith (@Olovan): Issue #35245 の修正 PR #75357
- @orange4glace
- Jesse Mazzella (@ozyx): baseFolderName のためにリポジトリ URL から末尾の '/' を削除 PR #75822
- Alasdair McLeay (@penx): CSS インポートの Node モジュール解決 PR #70693
- Raul Piraces Alastuey (@piraces): ウィザードがサイレントモードで実行されている場合にメッセージボックスを抑制 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
問題追跡への貢献者
- John Murray (@gjsjohnmurray)
- Alexander (@usernamehw)
- Eric Amodio (@eamodio)
- Jean Pierre (@jeanp413)
- Danny Tuppeny (@DanTup)
受信した問題の管理にご協力いただける場合は、コミュニティ問題追跡ページをご覧ください。
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 - イシューから収集した情報で readme を更新 PR #213
- Ephraim Khantsis (@doom777): ng-test 起動構成を更新 PR #212
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.