2020年1月 (バージョン 1.42)
アップデート 1.42.1: このアップデートでは、以下のissueに対処しています。
ダウンロード: Windows: x64 | Mac: Intel | Linux: deb rpm tarball snap
Visual Studio Code 2020 年 1 月リリースへようこそ。このバージョンには多くのアップデートが含まれており、皆様に気に入っていただけることを願っています。主なハイライトを以下に示します。
- 名前変更プレビュー - 保留中の名前変更を差分ビューで確認し、変更を簡単に承認または拒否できます。
- 開いているエディター数の制限 - 同時に開くエディターの最大数を設定します。
- パネルの配置 - パネル (出力、ターミナル) をエディターの左、右、または下に移動します。
- 折りたたまれたコードのハイライト - 新しい背景ハイライトで折りたたまれた領域をすばやく見つけます。
- デバッグコンソールの改善 - 構文のハイライト、括弧のマッチング、入力履歴。
- グローバルタスクの定義 - ユーザーごとのタスクは、すべてのフォルダーとワークスペースで使用できます。
- Java 拡張機能のアップデート - データブレークポイントと呼び出し階層ビューの Java サポート。
- リモート開発 - SSH およびコンテナーポートのマッピング用の新しい転送ポートビュー。
- 新しいコンテナーチュートリアル - Docker コンテナーの作成とデプロイの方法を学びます。
- プレビュー機能 - タイムラインビュー、検索エディター、セマンティックハイライトなどの最初のプレビュー。
これらのリリースノートをオンラインで読むには、更新情報 (code.visualstudio.com) にアクセスしてください。
Insiders: 新機能をいち早く試してみませんか?毎晩更新される Insiders ビルドをダウンロードして、最新のアップデートをいち早くお試しください。また、Visual Studio Code の最新ニュース、アップデート、コンテンツについては、Twitter @code をフォローしてください!
ワークベンチ
名前変更プレビュー
Visual Studio Code では、名前変更の変更をプレビューできるようになりました。名前変更時に、⌘Enter (Windows、Linux Ctrl+Enter) で新しい名前を確定し、リファクタリングプレビューパネルを確認できます。保留中の変更が差分エディターに表示され、個々の変更のチェックを外したり、チェックを入れたりできます。名前変更が適用 (または中止) されると、差分エディターとプレビューパネルが閉じ、現在のエディターに戻ります。
テーマ: GitHub Sharp、フォント: FiraCode
開いているエディター数の制限
同時に開くエディターの最大数を制限するための新しい設定が追加されました。
workbench.editor.limit.enabled
: この機能を有効にします (デフォルトはオフ)。workbench.editor.limit.perEditorGroup
: エディターグループごとに制限を適用するか、すべてのグループに適用するか。workbench.editor.limit.value
: 開いているエディターの最大数 (デフォルトは 10)。
有効にすると、新しいエディターを開いたときに、VS Code は最後に使用されたエディターを閉じます。
以下は、制限が 3 に設定されている場合の動作です。
テーマ: Nord
注: ダーティエディター (保存されていない変更があるファイル) は自動的に閉じられることはありませんが、開いているエディターの総数にはカウントされます。
無題のエディターの改善
VS Code の無題のエディターは、まだディスクに保存されていないテキストバッファーです。好きなだけ開いたままにしておくことができ、すべてのテキストコンテンツは再起動間で保存および復元されます。
無題のエディターのタイトル
以前は、無題のエディターには Untitled-1
などの一般的な名前が付けられ、番号が順に増えていました。今回のリリースでは、無題のエディターは、エディタータイトルにドキュメントの最初の行の内容を使用し、説明として一般的な名前を含めるようになります。
テーマ: Nord
注: 最初の行が空であるか、単語が含まれていない場合、タイトルは以前と同様に Untitled-*
にフォールバックします。
デフォルトの言語モード
デフォルトでは、無題のファイルには特定の言語モードが構成されていません。VS Code には、無題のファイルのデフォルト言語を構成するための設定 files.defaultLanguage
があります。今回のリリースでは、この設定は新しい値 {activeEditorLanguage}
を取ることができ、固定のデフォルトの代わりに、現在アクティブなエディターの言語モードを動的に使用します。
さらに、テキストをコピーして無題のエディターに貼り付けると、テキストが VS Code エディターからコピーされた場合、VS Code は無題のエディターの言語モードを自動的に変更するようになります。
テーマ: One Dark Pro
注: 無題のエディターにすでに言語モードが指定されている場合、テキストを貼り付けても変更されません。
最近使用したエディターのナビゲーション
今回のリリースでは、すべてのエディターグループで最近使用した (MRU) エディターのリストが追加されました。エディターは、アクティブなエディターとして開かれた場合、またはすでに開かれている場合に新しいアクティブなエディターになった場合に、最近使用されたと見なされます。エディターが閉じられると、このリストから削除されます。
このリストの 1 つのアプリケーションは、新しい 表示: 最近使用したすべてのエディターを表示 (workbench.action.showAllEditorsByMostRecentlyUsed
) コマンドで開くことができる新しい edt mru
ピッカーです。
キーボードショートカットを追加して、マウスを使用せずにこのピッカーをすばやくナビゲートできます。たとえば、以下は Ctrl+Tab および Ctrl+Shift+Tab が (デフォルトのキーバインドのようにアクティブなグループ内だけでなく) すべてのグループのエディター間をナビゲートするようにするキーバインドです。
[
{
"key": "ctrl+tab",
"command": "workbench.action.quickOpenPreviousRecentlyUsedEditor",
"when": "!inEditorsPicker"
},
{
"key": "ctrl+shift+tab",
"command": "workbench.action.quickOpenLeastRecentlyUsedEditor",
"when": "!inEditorsPicker"
}
]
ピッカーを使用せずにリストをナビゲートする場合は、次の新しいコマンドがあります。
- 表示: 次に最近使用したエディターを開く (
workbench.action.openNextRecentlyUsedEditor
) - 表示: 前に最近使用したエディターを開く (
workbench.action.openPreviousRecentlyUsedEditor
)
どのエディターナビゲーションコマンドがピッカーで動作し、どれが動作しないかを区別するために、既存のコマンドの一部の動作が変更されました。具体的には、グループ内で最近使用したエディターコマンドは、ピッカーを使用しなくなりました。
- 表示: グループ内で次に最近使用したエディターを開く (
workbench.action.openNextRecentlyUsedEditorInGroup
) - 表示: グループ内で前に最近使用したエディターを開く (
workbench.action.openPreviousRecentlyUsedEditorInGroup
)
ピッカーベースのナビゲーションには、以下を使用します。
- 表示: グループ内で前に最近使用したエディターをクイックオープン (
workbench.action.quickOpenPreviousRecentlyUsedEditorInGroup
) - 表示: グループ内で最後に最近使用したエディターをクイックオープン (
workbench.action.quickOpenLeastRecentlyUsedEditorInGroup
)
パネルの移動
出力、デバッグコンソール、ターミナル、および問題ペインを保持するパネルを、エディターの左側に移動できるようになりました。
コマンド 表示: パネル位置の切り替え (workbench.action.togglePanelPosition
) は削除され、次の新しいコマンドに置き換えられました。
- 表示: パネルを左に移動 (
workbench.action.positionPanelLeft
) - 表示: パネルを右に移動 (
workbench.action.positionPanelRight
) - 表示: パネルを下に移動 (
workbench.action.positionPanelBottom
)
再起動時にすべてのウィンドウを復元
VS Code の起動時にウィンドウを復元する設定が変更され、デフォルトですべてのウィンドウを復元するようになりました。以前の動作に戻したい場合は、"window.restoreWindows": "one"
を構成して、単一のウィンドウのみを開くようにします。
保存の競合解決
VS Code には、VS Code の外部または別のプログラム (Git など) によって変更されたダーティファイルを保存しようとしたときに通知を表示する組み込みメカニズムがあります。
その目的は、ファイルがダーティになった後に変更された場合でも、保存するとディスク上のコンテンツが上書きされることを通知することです。比較ボタンを選択すると、変更内容をディスク上のバージョンとともに確認し、ファイルを上書きまたは元に戻すことができます。
ディスク上の変更を上書きできることがわかっている場合は、通知に直接 上書き ボタンが表示されるようになりました。また、files.saveConflictResolution
をグローバル、ワークスペースごと、またはファイルタイプごとに構成して、この動作を完全に無効にすることもできます。オプションは、askUser
(デフォルト) または overwriteFileOnDisk
です。
遅い保存操作の処理
VS Code では、拡張機能がファイルをディスクに保存するときにファイルの内容を変更できます。保存時にフォーマット や 保存時に修正 などの機能がその例です。ただし、保存は重要な操作であり、保存中に処理を行う拡張機能は、実際の保存操作を続行できるように、すばやく完了する必要があります。「すばやく」は、以前は VS Code によって強制されていました。VS Code は、タイムアウト後に拡張機能の保存操作をキャンセルしていました。その強制により、迅速な保存が保証されましたが、期待される処理が実行されない場合があるため、不満を感じる可能性がありました。
今回のリリースでは、タイムアウトベースのアプローチを放棄し、代わりに保存に参加している拡張機能をキャンセルできるプログレス通知 ("保存参加者") を表示します。通知は、保存操作が実行されていることを知らせ、保存参加者が終了するのを待つかどうかを決定できます。
テーマ: Light+
ソース管理の入力
ソース管理ビューの入力ボックスで、Monaco Editor が使用されるようになりました。Monaco Editor は、複数のカーソルや行の移動/コピーコマンドなどの便利な機能をサポートしています。
マルチルートエクスプローラーでの 2 段階の折りたたみ
マルチルートワークスペース を使用している場合、ファイルエクスプローラーの フォルダーを折りたたむ ボタンは、2 段階の動作をするようになりました。最初のクリックは、各トップレベル内のすべてのフォルダーを折りたたみ、2 回目のクリックは、トップレベルフォルダーを折りたたみます。検索ビューにはすでにこの動作があります。
テーマ: Monokai
OS の配色に基づいてテーマを自動的に切り替え
Windows と macOS は、ライトおよびダーク配色をサポートするようになりました。OS の配色への変更をリッスンし、それに応じて一致するテーマに切り替えるように VS Code に指示する新しい設定 window.autoDetectColorScheme
があります。
配色が変更されたときに使用されるテーマをカスタマイズするには、次の設定で推奨されるライトテーマとダークテーマを設定できます。
workbench.preferredLightColorTheme
workbench.preferredDarkColorTheme
エディター
ピークビューのフォーカスの制御
ピークビューが最初にフォーカスを置く場所を制御するための新しい設定とコマンドがあります。デフォルトでは、ピークは右側のツリーにフォーカスを合わせるため、参照をすばやくナビゲートできます。エディターでクイックコード変更を行うためにピークを使用したい人にとって、ツリーへの最初のフォーカスは最適ではありません。editor.peekWidgetDefaultFocus
設定で好みを定義できるようになりました。これは、editor
または tree
に設定できます。また、ピークエディターとツリーの間でフォーカスを移動できる新しいコマンド togglePeekWidgetFocus
(⌘K F2 (Windows、Linux Ctrl+K F2)) もあります。
折りたたまれた領域のハイライト
折りたたまれたコード領域が、背景のハイライトの追加によって、より見つけやすくなりました。
テーマ: Dark+
この機能は、設定 editor.foldingHighlight
によって制御され、色は色 editor.foldBackground
でカスタマイズできます。
"workbench.colorCustomizations": {
"editor.foldBackground": "#355000"
}
折りたたみの改良
折りたたみインジケーターを Shift + クリック
すると、最初に内側の範囲が折りたたまれます。Shift + クリック
をもう一度 (すべての内側の範囲がすでに折りたたまれている場合) すると、親が折りたたまれます。Shift + クリック
をもう一度すると、すべて展開されます。
すでに折りたたまれた範囲で 折りたたみ コマンド (⌥⌘[ (Windows、Linux Ctrl+Shift+[)) を使用すると、次に展開されている親範囲が折りたたまれます。
新しい折り返しオプション
デフォルトでは、エディターはすべての文字が同じ幅を持つと仮定して、ワードラップブレークを計算します。この仮定により、デフォルトのアルゴリズムは高速になりますが、非等幅フォントを使用する場合、または文字の幅が異なるスクリプトでテキストを作成する場合、その結果は不十分です。新しい設定 editor.wrappingStrategy
があり、advanced
に設定して、エディターにワードラップブレーク計算をブラウザーに委任させることができます。
ユーザー補助機能
提案ウィジェットの改善
提案ウィジェットは、ARIA アラートを使用しなくなり、フォーカスされていることをスクリーンリーダーに適切に示すようになりました。これにより、スクリーンリーダーが誤って邪魔になるのを防ぐことができます。
スクリーンリーダーが検出された場合、editor.accessibilityPageSize が 160 に設定される
editor.accessibilityPageSize
設定は、スクリーンリーダーが一度に読み取ることができるエディター内の行数を制御します。ただし、大きな値を使用すると、パフォーマンスに影響があります。スクリーンリーダーを検出した場合 (NVDA バグのため、それ以上ではなく) 値を自動的に 160 行に設定することにしました。
Orca を使用した Linux ユーザー補助機能
Orca スクリーンリーダーを使用した Linux での VS Code のユーザー補助機能の実現に取り組み始めました。ただし、この作業には Electron 7 が必要であるため、次の安定版リリースでさらに進展が見込まれます。それまでの間、Linux ユーザー補助機能については、Insiders バージョンを使用し、フィードバックを提供してください。
統合ターミナル
スクロール感度
ターミナルのスクロール感度を、次の新しい設定を使用して、エディターとは独立して構成できるようになりました。
terminal.integrated.mouseWheelScrollSensitivity
- マウスホイールのスクロール倍率 (デフォルトは 1)。terminal.integrated.fastScrollSensitivity
- Alt キーが押された場合の高速スクロール倍率 (デフォルトは 5)。
デバッグ
簡略化された初期デバッグビュー
デバッグビューの開始を簡略化するために、VS Code は 実行とデバッグ ボタンを 1 つだけ表示するようになりました。デバッグなしで実行 アクション (すべてのデバッガーでサポートされているわけではありません) は、引き続きデバッグメインメニューで使用できます。
ユーザーフィードバックに基づいて、ブレークポイントペインは、少なくとも 1 つのブレークポイントが設定されている場合、開始ビューに表示されます。
デバッグコンソールの改善
デバッグコンソールの入力
デバッグコンソールの入力で、現在アクティブなエディターの言語モードが使用されるようになりました。これは、デバッグコンソールの入力が構文の色分け、インデント、引用符の自動閉じ、およびその他の言語機能をサポートすることを意味します。
入力/出力の表示
デバッグコンソールの入力と出力の表示を調整して、より区別しやすくしました。VS Code は、入力式の横にのみ矢印を表示します。
デバッグコンソールの入力履歴の提案
デバッグコンソールの入力ボックスに、以前に入力したエントリが自動的に提案されるようになりました。テキストアイコンは、履歴の提案を他の IntelliSense エントリと区別するために使用されます。
デバッグ後にデバッグコンソールを非表示にする
デバッグが停止した後にデバッグコンソールを自動的に閉じるかどうかを制御する新しい設定 debug.console.closeOnEnd
があります。
console.table(...) のサポート
デバッグコンソールで、Node.js console.table(...)
API からの出力を表示できるようになりました。
ロードされたスクリプトビューの改善
ロードされたスクリプトビューが更新され、VS Code の新しいツリービューが使用されるようになりました。VS Code のファイルエクスプローラーと同じコンパクトな形式で、単一の子フォルダーをレンダリングするようになりました。さらに、入力時にツリーを検索および展開できるようになりました。
ツリーの「入力時に検索して展開」機能を複製するため、次のリリースで デバッグ: ロードされたスクリプトを開く コマンドを削除する予定です。
起動構成の並べ替えとグループ化
起動構成と複合構成で、新しい構造化された属性 presentation
がサポートされるようになりました。order
、group
、および hidden
属性を使用すると、デバッグ構成ドロップダウンとデバッグクイックピックで構成と複合構成を並べ替え、グループ化、非表示にすることができます。
たとえば、launch.json
の起動構成には、次の presentation
フィールドを含めることができます。
"presentation": {
"group": "5_tests",
"order": 10,
"hidden": false
}
例として、VS Code 独自の起動構成にプレゼンテーションを追加して、より意味のある方法でグループ化し、複合起動構成の一部にすぎない構成を非表示にしました。
デバッグアクティビティバーのアイコンと装飾
ユーザーフィードバックに基づいて、アクティビティバーのデバッグアイコンを更新して、実行とデバッグ をより適切に表すようにしました。また、デバッグ時には、アクティブなデバッグセッションの数を表示するために、デバッグアイコンに番号装飾が表示されます。
タスク
ユーザーレベルのタスク
tasks.json
で宣言されたタスクが、ユーザー設定レベルでサポートされるようになりました。多くのプロジェクトで使用するビルドスクリプトがある場合、またはタスクをプロジェクトフォルダーに含めたくない場合は、ユーザー tasks.json
ファイルにタスクを追加できます。タスク: ユーザータスクを開く コマンドを実行してユーザーレベルのタスクを作成すると、これらのタスクはすべてのフォルダーとワークスペースで使用できるようになります。ここでは、shell
および process
タスクタイプのみがサポートされています。
入力 pickString ラベル
タスク inputs
を使用する場合は、pickString
入力 options
にわかりやすいラベルを追加できます。
"inputs": [
{
"id": "pickAnInputValue",
"description": "Pick a Value",
"type": "pickString",
"options": [
"first-value",
{
"label": "Second Value",
"value": "second-long-value-that-can-be-simplified-for-display"
}
],
"default": "first-value"
}
]
ラベルは次のように表示されます。
言語
TypeScript 3.7.5
バンドルされている TypeScript バージョンを 3.7.5 に更新しました。このマイナーアップデートには、Windows の C: ドライブに保存されていないプロジェクトの IntelliSense の修正など、いくつかの重要なバグ修正が含まれています。
HTML ミラーカーソルがデフォルトでオフ
HTML の ミラーカーソル がオプトイン機能になりました。今後のイテレーションでは、この機能をより理解しやすく、より多くの言語で利用できるようにするために、実装の改善 を継続します。html.mirrorCursorOnMatchingTag
をオンにすることで、引き続きこの機能を使用できます。
プレビュー機能
プレビュー機能はリリース準備ができていませんが、使用するのに十分な機能があります。開発中の早期フィードバックをお待ちしております。
タイムラインビュー
このマイルストーンでは、新しいタイムラインビューの作成を進めており、共有する早期プレビューがあります。これは、リソース (ファイル、フォルダー) の時系列イベント (Git コミット、ファイル保存、テスト実行など) を視覚化するための統合ビューです。タイムラインビューを有効にするには、Insiders エディションを使用し、次の設定を追加する必要があります。
"timeline.showView": true
以下は、ファイルの Git コミット履歴を表示するタイムラインビューです。
テーマ: Dark Amethyst
この初期プレビューでは、タイムラインビューはアクティブなドキュメントの Git コミット履歴を表示します。これは現在 32 アイテムに制限されています。これらのコミットの 1 つを選択すると、そのコミットによって導入された変更の差分ビューが開きます。拡張機能は、独自のタイムラインソースを提供 することもでき、この統合タイムラインビューに表示されます。最終的には、ビューに表示するソースを選択 (フィルター) することもできるようになります。
ご期待ください。この新機能にはさらに多くの機能を計画しています。issue #84297 を購読し、'timeline' ラベルが付けられた issue を監視することで、進捗状況を追跡できます。また、このビューに表示したい他の種類の情報に関するアイデアがあれば、お知らせください!
検索エディター
新しい検索エディターの開発を継続しており、今回のイテレーションの目標は、検索エディターを主要な検索エクスペリエンスにすることです。そのために、検索エディターのクエリを構成するための UI を実装しました。
テーマ: Noctis Lilac、フォント: Hasklig
検索エディターには、いくつかのコマンドがあり、選択したキーボードショートカットにバインドできます。
search.action.openNewEditor
: アクティブなエディターグループに新しい検索エディターを開きます。search.action.openInEditor
: 現在の検索結果を新しい検索エディターにコピーします。
検索エディターの詳細および今後のアップデートについては、issue #23931 を参照してください。
注: 検索エディターは Insiders でデフォルトで有効になっており、search.enableSearchEditorPreview
を true
に設定すると Stable でオプトインできます。
TypeScript および JavaScript のセマンティックハイライト
TypeScript および JavaScript のセマンティックハイライトのサポートは開発中であり、まだデフォルトでは有効になっていません。次の設定を追加して試すことができます。
"editor.semanticHighlighting.enabled": true
有効にすると、一部の識別子に新しい色とスタイルが適用され、解決された型に従ってハイライトされることがわかります。デフォルトの構文 (TextMate) ハイライターは、多くのトークンを variables
として分類しますが、これらは名前空間、クラス、パラメーターなどに解決されるようになりました。
これは、インポートセクションで最もよくわかります。ここでは、各インポートされたシンボルがシンボルの型で色分けされています。
開発者: エディタートークンとスコープの検査 コマンドを使用すると、各ロケーションに対して計算されたセマンティックトークンと構文トークンを検査できます。
新しい JavaScript デバッガー
Node.js および Chrome 用の新しいデバッガーに取り組んでいます。これは Insiders にデフォルトでインストールされており、VS Code Stable の Marketplace からインストールできます。debug.javascript.usePreview
設定を有効にすると、既存の起動構成で使用を開始できます。今月追加した新機能の一部を以下に示します。
新しい JS デバッガーは、新しい JavaScript デバッグターミナルで実行するコマンドを自動的にデバッグします。これは、デバッグ: JavaScript デバッグターミナルの作成 コマンドから開くことができます。
テーマ: Earthsong、フォント: Fira Code
新しいデバッガーは、package.json の scripts
セクションに デバッグ CodeLens も提供します。これにより、追加の構成なしでスクリプトを実行およびデバッグできます。
CodeLens の表示/非表示と場所 (上部またはインライン) は、debug.javascript.codelens.npmScripts
設定で構成できます。
ぜひお試しください! 新しいデバッガーで問題が発生した場合は、vscode-js-debug リポジトリに issue を提出してください。
サイドバーからパネルへのビューの移動
VS Code のレイアウトをより簡単にカスタマイズできるように、積極的に取り組んでいます。次の設定で進捗状況をテストできます。
"workbench.view.experimental.allowMovingToNewContainer": true
設定を有効にすると、一部のビューにサイドバーとパネルの間でビューを移動するための新しいコンテキストメニューエントリが表示されます。現在、この設定はエクスプローラーのアウトラインビューと拡張機能によって提供されるビューにのみ影響します。また、サイドバーのようにパネルでこれらのビューを組み合わせることはできません。
テーマ: LaserWave、フォント: Cascadia Code
これは機能のプレビューにすぎず、上記の制限を含め、その多くの側面が変更される可能性があります。詳細な進捗状況については、Insiders バージョンをご確認ください。
検索に関する注意: ビューを移動するための新しい汎用的な方法により、古い検索ビュー設定 search.location
およびコマンド 検索: 検索ビュー位置の切り替え (search.action.toggleSearchViewPosition
) は非推奨になります。設定は自動的に移行されますが、今後検索ビューを移動するには、新しい汎用的な方法を使用する必要があります。新しいコンテキストメニューエントリで検索ビューを移動するために、上記の実験的なプレビュー設定を有効にする必要はありません。
TypeScript 3.8 ベータ版のサポート
VS Code は来月まで TypeScript 3.8 をバンドルしませんが、今回のイテレーションでは、エキサイティングな新しい TypeScript 3.8 ベータ版の機能 をすべてサポートしました。
これには、以下が含まれます。
- JavaScript および TypeScript ファイルの プライベートフィールド の IntelliSense と構文のハイライト。
- JavaScript および TypeScript の呼び出し階層サポート。
- テンプレート文字列への変換リファクタリング!
今日、TypeScript Nightly 拡張機能 をインストールすることで、これらすべての新しい TypeScript 3.8 機能を簡単に試すことができます。フィードバックを共有し、TypeScript 3.8 ベータ版でバグが発生した場合はお知らせください!
拡張機能への貢献
Java デバッガーがデータブレークポイントをサポート
Debugger for Java 拡張機能が、VS Code 1.38 で導入された データブレークポイント をサポートするようになりました。この機能を使用すると、変数の値が変更されたときにヒットするブレークポイントを作成できます。
以下は、Owner.telephone
文字列が変更されたときにデバッガーが中断される様子です。
Java 呼び出し階層ビュー
Language Support for Java 拡張機能が、呼び出し階層 ビューをサポートするようになりました。これは、関数からのすべての呼び出しまたは関数へのすべての呼び出しを表示し、呼び出し元の呼び出し元と呼び出しの呼び出しをドリルダウンできます。
シンボルを右クリックし、ピーク > 呼び出し階層をピーク を選択して、呼び出し階層を表示します。
リモート開発
リモート開発拡張機能 の開発が継続されています。これにより、コンテナー、リモートマシン、または Windows Subsystem for Linux (WSL) をフル機能の開発環境として使用できます。
1.42 の機能のハイライトには、以下が含まれます。
- Remote - SSH: Windows サーバーのサポートが改善され、OS の自動検出が含まれるようになりました。
- WSL: エクスプローラーで表示 のサポートにより、WSL リソースの Windows エクスプローラーを開くことができます。
- Dev Containers: Git や zsh などの依存関係を含む、事前構築済みのコンテナーイメージ。
- 転送ポートビュー: SSH およびコンテナーポートのマッピング、表示、再利用。
新しい拡張機能の機能とバグ修正については、リモート開発リリースノート を参照してください。
拡張機能の作成
再利用のための Codicon
ほとんどの VS Code アイコンでは、codicon アイコンフォントが使用されています。拡張機能は、これらのアイコンをシンプルかつ宣言的な方法で再利用できるようになりました。
vscode.ThemeIcon
型は、codicon の名前でインスタンス化できるようになりました。たとえば、new vscode.ThemeIcon("zap")
などです。vscode.MarkdownString
型は、$(<name>)
インライン構文をサポートするようになりました。たとえば、myMdString.appendMarkdown('Hello $(globe)');
などです。MarkdownString
内で codicon を使用するには、supportThemeIcons
コンストラクター引数を有効にする必要があることに注意してください。- 拡張機能の
package.json
ファイルで定義されたcommands
は、アイコンに codicon を使用できるようになりました。インライン構文 (たとえば、"icon": "$(zap)"
) を使用します。
テーマ: Light+
上記のホバーの例では、使用可能なすべての codicon をレンダリングしています。ホバーは以下のスニペットで作成されましたが、読みやすくするために、codicon 名のほとんどが all
定数から削除されました。
vscode.languages.registerHoverProvider(
'*',
new (class implements vscode.HoverProvider {
provideHover(doc: vscode.TextDocument, pos: vscode.Position) {
const all = `$(activate-breakpoints)$(add)...$(zoom-out)`;
const md = new vscode.MarkdownString(all, true);
return new vscode.Hover(md, doc.getWordRangeAtPosition(pos));
}
})()
);
補完項目の挿入と置換
単語の末尾でトリガーされる補完は、通常、その単語を置き換えます。ただし、単語内で補完がトリガーされる場合、単語の末尾を置き換えるべきかどうかは明確ではありません。拡張機能の作成者の好みに応じて、ユーザーは一方の動作または他方の動作を取得します。それは理想的ではありません。現在、補完項目の挿入範囲と置換範囲を表現するための API があります。
そのため、CompletionItem#range
に新しい OR タイプを追加しました。
export class CompletionItem {
range?: Range | { inserting: Range; replacing: Range };
//...
}
- 範囲が
undefined
の場合、VS Code は 置換 に現在の単語範囲を使用し、挿入 にカーソル位置でトリミングされた同じ範囲を使用します。 - 範囲が単純な
vscode.Range
の場合、VS Code は挿入または置換の場所が 1 つしかないことを認識します。 - 範囲が
inserting
およびreplacing
範囲を持つオブジェクトの場合、VS Code はそれらを直接使用します。
この情報は、ユーザーが好みを定義できるeditor.suggest.insertMode
設定と組み合わせて使用されます。拡張機能の作者の皆様には、このAPIを迅速に採用していただきますようお願いいたします。次期リリースでは、挿入と置換の動作をより目に見える形にする予定です。
CallHierarchyProvider の改良
CallHierarchyProvider#prepareCallHierarchy に小さな変更を加え、1つまたは複数の CallHierarchyItem
要素を返せるようにしました。many
オプションは、複数のオーバーロードを持つ要素のコール階層を要求する場合に役立ちます。
ターミナルで公開される作成オプション
Terminal
オブジェクトに、拡張機能がターミナルの作成方法を識別するために使用できる新しい creationOptions
プロパティが追加されました。
言語固有の設定
拡張機能は、新しい構成スコープ language-overridable
を使用して、言語で上書き可能な設定を提供できるようになりました。
例
"contributes": {
"configuration": {
"title": "sample",
"properties": {
"sample.languageSetting": {
"type": "boolean",
"scope": "language-overridable"
}
}
}
}
Configuration API が拡張され、これらの設定をサポートするようになりました。必要な languageId
を渡すことで、API を使用してこれらの設定を読み取りおよび更新できます。
例
/**
* Read language configuration.
*/
const textDocumentConfiguration = vscode.workspace.getConfiguration('sample', {resource, languageId});
textDocumentConfiguration.get('languageSetting');
/**
* Override configuration under language
*/
textDocumentConfiguration.update('languageSetting', false, ConfigurationTarget.Global, true);
/**
* Listen language configuration changes
*/
workspace.onDidChangeConfiguration(e => {
if(e.affectsConfiguration('sample.languageSetting', {resource, languageId}) {
}
});
詳細については、Configuration API を参照してください。
拡張機能ビューのコンテキストメニュー
新しいメニューロケーション extension/context
を使用して、拡張機能ビューの拡張機能のコンテキストメニューにコマンドを提供できるようになりました。
例
"contributes": {
"commands": [
{
"command": "extension.helloWorld",
"title": "Hello World"
}
],
"menus": {
"extension/context": [
{
"command": "extension.helloWorld",
"group": "2_configure",
"when": "extensionStatus==installed",
}
]
}
}
コマンドが実行されると、拡張機能の ID が引数として渡されます。
例
vscode.commands.registerCommand('extension.helloWorld', extensionId => {
vscode.window.showInformationMessage(extensionId);
});
以下の定義済みコンテキストがサポートされており、コマンドの when
条件で使用できます。
extensionStatus==installed
isBuiltinExtension
変数置換にアクセスするための DebugConfigurationProvider フック
デバッグ用の拡張機能 API は、デバッグアダプターに渡される前にデバッグ構成を検証するために使用できる DebugConfigurationProvider
上のフック resolveDebugConfiguration
を提供します。このフックは変数が置換される前に呼び出されるため、検証コードはデバッグ構成にさらに変数を簡単に追加でき、それでも時間内に置換されます。
このアプローチでは、解決された変数値を resolveDebugConfiguration
フックで使用することが困難になる可能性があります。たとえば、拡張機能(および置換された値が利用可能なデバッグアダプターではない)にのみ存在する機能を検証または実装する場合です。例については、issue #85206 を参照してください。一部の拡張機能は独自に変数を置換し始めていますが(すべてのケースを網羅しているわけではないため、不完全な場合が多いです)。
ユーザーの視点から見ると、これは混乱を招きます。デバッグ構成では、一部の属性変数は使用できます(置換が実行された後にデバッグアダプターで処理されるため)が、一部の属性変数は使用できません(置換がまだ実行されていない拡張機能で処理されるため)。後者の問題の良い例として、Issue #87450 があります。
今回のマイルストーンでは、すべての変数が置換されたデバッグ構成を受け取る2番目のフック resolveDebugConfigurationWithSubstitutedVariables
を DebugConfigurationProvider
に追加することで、この問題に対処しました。
この新しい API の利用可能性により、すべてのデバッグ拡張機能の作成者に、現在の DebugConfigurationProvider.resolveDebugConfiguration
の実装を注意深く見直し、新しい変数を導入しないが、置換された変数で実行することでメリットが得られるすべてのコードを新しいメソッド resolveDebugConfigurationWithSubstitutedVariables
に移動するように求めています。
拡張機能内にデバッグアダプターを実装する
既存のデバッグ拡張機能 API は、いくつかの方法でデバッグアダプターを実行するために DebugAdapterDescriptorFactory
を登録することをサポートしています。
外部プロセスとして
vscode.debug.registerDebugAdapterDescriptorFactory('mock', {
createDebugAdapterDescriptor: _session => {
return new vscode.DebugAdapterExecutable('mockDebug.exe');
}
});
ネットワークセッションとして
vscode.debug.registerDebugAdapterDescriptorFactory('mock', {
createDebugAdapterDescriptor: _session => {
return new vscode.DebugAdapterServer(12345, 'localhost');
}
});
今回のマイルストーンでは、デバッグアダプターの「インライン」実装を提供できる3番目のバリアントを追加しました。
vscode.debug.registerDebugAdapterDescriptorFactory('mock', {
createDebugAdapterDescriptor: _session => {
return new vscode.DebugAdapterInlineImplementation(new InlineDebugAdapter());
}
});
これにより、ストリームベースのメカニズムを介してアダプターと通信する必要がなくなり、アダプターが拡張機能内で実行され、VS Code の拡張機能デバッグの一部として簡単にデバッグできるため、開発が簡素化されます。
インライン実装(上記の InlineDebugAdapter
など)は、Debug Adapter Protocol を実装する必要があります。VS Code の拡張機能 API に Debug Adapter Protocol 全体を組み込みたくないため、そのプロトコルの最小限のサブセットを導入しました。インターフェース vscode.DebugAdapter
には、アダプターに DAP メッセージを渡すためのメソッド(handleMessage
)と、アダプターから受信した DAP メッセージをリッスンするためのメソッド(onDidSendMessage
)の2つのメソッドしかありません。
このインターフェースに基づいて、デバッグアダプターの実装は次のソースコードから開始されます。
class InlineDebugAdapter implements vscode.DebugAdapter {
private sendMessage = new vscode.EventEmitter<DebugProtocol.ProtocolMessage>();
private sequence: 1;
readonly onDidSendMessage: vscode.Event<DebugProtocol.ProtocolMessage> = this.sendMessage
.event;
handleMessage(message: DebugProtocol.ProtocolMessage): void {
switch (message.type) {
case 'request':
const request = <DebugProtocol.Request>message;
switch (request.command) {
case 'initialize':
const response: DebugProtocol.Response = {
type: 'response',
seq: this.sequence++,
success: true,
request_seq: request.seq,
command: request.command
};
this.sendMessage.fire(response);
break;
// many more requests needs to be handled here...
default:
break;
}
break;
case 'response':
break;
case 'event':
break;
}
}
dispose() {
// clean up resources
}
}
デバッグアダプタープロトコル(node モジュール vscode-debugprotocol として利用可能)は、vscode.DebugAdapter
インターフェースと互換性のあるスーパーセットであるため、完全なプロトコルが必要で、デバッグアダプターをすべて自分で実装したい場合は、モジュールをインポートできます。
はるかに簡単な代替手段は、node モジュール vscode-debugadapter として利用可能な、デバッグアダプターのデフォルトの実装を(引き続き)使用することです。バージョン 1.38.0-pre.4 以降、このモジュールで導入された DebugSession
(または LoggingDebugSession
)は、拡張機能 API で定義されているインターフェース vscode.DebugAdapter
と互換性があります。
この API を使用すると、既存のデバッグアダプターの実装を次のように簡単に使用できます。
vscode.debug.registerDebugAdapterDescriptorFactory('mock', {
createDebugAdapterDescriptor: _session => {
return new vscode.DebugAdapterInlineImplementation(new MockDebugSession());
}
});
詳細については、Mock debug の例を参照してください。
注意: このリリースでは、デバッグアダプターを作成するための拡張機能 API が完成しました。そのため、3月のリリースで debuggers
contribution point の2つの非推奨属性のサポートを削除することを発表します。
adapterExecutableCommand
- 代わりに拡張機能 APIvscode.DebugAdapterDescriptorFactory
およびvscode.DebugAdapterExecutable
を使用してください。Mock debug の例 API の使用方法を示しています。enableBreakpointsFor
- 代わりにbreakpoints
contribution point を使用してください。変換はpackage.json
で行う必要があります。
現在の(非推奨の)JSON が次のようになっている場合
"contributes": {
"debuggers": [{
"type": "csharp",
// ...
"enableBreakpointsFor": [ "csharp", "razor" ]
// ...
}]
変換は次のようになります。
"contributes": {
"breakpoints": [
{ "language": "csharp" },
{ "language": "razor" }
],
"debuggers": [{
"type": "csharp",
// ...
}]
影響を受ける拡張機能は、2月中旬までに新しい API に実装を適応させることをお勧めします。そうすることで、3月までに問題を修正するのに十分な時間を確保できます。
提案された拡張機能 API
すべてのマイルストーンには新しい提案された API が付属しており、拡張機能の作者はそれらを試すことができます。いつものように、皆様からのフィードバックを心待ちにしています。提案された API を試すには、次のことを行う必要があります。
- 提案された API は頻繁に変更されるため、Insiders ビルドを使用する必要があります。
- 拡張機能の
package.json
ファイルに"enableProposedApi": true
という行が必要です。 - vscode.proposed.d.ts ファイルの最新バージョンをプロジェクトのソースロケーションにコピーします。
提案された API を使用する拡張機能を公開することはできません。次期リリースで重大な変更が発生する可能性があり、既存の拡張機能を破壊することは決して望ましくありません。
ワークスペース編集メタデータを追加する
VS Code に搭載されたリファクタリングプレビューのサポートには、新しいオプションの API 提案が付属しています。これにより、ワークスペース編集の変更を分類できます。たとえば、変更にユーザーの確認が必要かどうかを定義したり、「文字列とコメント内の名前変更」などの説明を追加したりできます。提案は issue #77728 で追跡でき、現在の設計は WorkspaceEditMetadata インターフェースを中心に展開されています。
セマンティックハイライト
言語にセマンティックハイライトを追加することに関心がある場合は、セマンティックハイライトの概要 に、概念と新しい API の概要が記載されています。
認証プロバイダー
issue #88309 の提案により、拡張機能が他の拡張機能からアクセスできる認証プロバイダーを登録できるようになり、認証を実行するための共通メカニズムが提供されます。
タイムラインプロバイダー
拡張機能は、まもなく独自のソースを新しい タイムラインビュー に提供できるようになります。独自のタイムラインソースを追加することに関心がありますか? issue #84297 の初期の提案を確認し、フィードバックがあれば提供してください。
Documentation.Refactoring contribution point
提案された documentation.refactoring
contribution point を使用すると、拡張機能はリファクタリングのドキュメントを提供できます。ユーザーは、リファクタリングを要求するときにこのドキュメントを表示することを選択できます。
提案された contribution point により、拡張機能はコマンドを使用してドキュメントの表示方法を制御できます。
"contributes": {
"documentation": {
"refactoring": [
{
"title": "Learn more about JS/TS refactorings",
"when": "typescript.isManagedFile",
"command": "_typescript.learnMoreAboutRefactorings"
}
]
}
}
title
— ユーザーに表示されるドキュメントアクションのラベル。when
— ドキュメントを表示するタイミングの When clause。command
— ドキュメントを表示するコマンド。たとえば、このコマンドは Web ページを開いたり、VS Code でドキュメントを直接表示したりできます。
Issue #86788 で提案のステータスを追跡できます。
カスタムエディターのバックアップとホットイグジットフック
このイテレーションでは、提案された カスタムエディター API のイテレーションを継続しました。今月の主な調査は、カスタムエディターの ホットイグジット を有効にする方法でした。Issue #88719 では、ホットイグジットをサポートするために直面した課題と、検討したアプローチの一部について説明しています。
この調査の結果、WebviewCustomEditorEditingDelegate
インターフェースに新しいオプションの backup
メソッドが追加されました。このメソッドは、リソースが変更されてから約1秒後に VS Code によって呼び出されます。backup
メソッド内で、拡張機能はリソースを現在の状態で永続化する必要があります。ほとんどの場合、これはリソースをワークスペースストレージフォルダーに書き込むことを意味します。次に、エディターがリロードされると、ワークスペース自体からリソースをロードする前に、永続化されたバックアップが存在するかどうかを確認する必要があります。
次のイテレーションでもカスタムエディター API のイテレーションを継続します。
複雑な補完ラベル
CompletionItem
API を進化させて、修飾名、インポートパス、戻り値の型、その他の情報を提供する必要がある複雑な補完項目に対応しています。情報は後で解決されるのではなく、事前に提供する必要があります。提供された情報は、サジェストウィジェットにインラインで表示されます。次のイテレーションで 現在の提案 のイテレーションを行います。それまでの間、UI と発見可能性の課題を解決するために、サジェストウィジェットにステータスバーを追加する ことを検討しています。API に関するフィードバックをお待ちしております。
テーマ: Nord, フォント: Input Mono
診断エラーへのリンクの追加
診断エラーに、エラーコードに関連付けられたリンクを含めることができるようになりました。リンクが提供されると、[問題] パネル、インラインエラービュー、および診断エラーホバーに表示されます。次のイテレーションでこの機能の作業を継続するため、issue #11847 でフィードバックを提供できます。
Language Server Protocol
Language Server Protocol のバージョン 3.15 が利用可能になりました。また、VS Code LSP クライアント および Node.js で記述された LSP サーバー 用の対応する npm モジュールもリリースしました。ライブラリの最新バージョンには、セマンティックトークンの提案された仕様と実装が含まれています。
LSP Web サイトで、Language Server Index Format specification の予備バージョンと、対応する LSIF overview がホストされるようになりました。
ブラウザーのサポート
ファイルをエディターにドラッグアンドドロップする
ブラウザーで VS Code を使用している場合、ローカルファイルをエディター領域にドロップして、ファイルの内容を含むダーティ(未保存)ファイルとして開くことができるようになりました。
新しいコマンド
キー | コマンド | コマンド ID |
---|---|---|
パネルを左に移動 | workbench.action.positionPanelLeft |
|
パネルを右に移動 | workbench.action.positionPanelRight |
|
パネルを下に移動 | workbench.action.positionPanelBottom |
|
最近使用した次のエディターを開く | workbench.action.openNextRecentlyUsedEditor |
|
最近使用した前のエディターを開く | workbench.action.openPreviousRecentlyUsedEditor |
|
最近使用した次のグループのエディターを開く | workbench.action.openNextRecentlyUsedEditorInGroup |
|
最近使用した前のグループのエディターを開く | workbench.action.openPreviousRecentlyUsedEditorInGroup |
|
最近使用したエディターのピッカーを開く | workbench.action.showAllEditorsByMostRecentlyUsed |
|
ピッカーを介して最近使用した前のエディターを開く | workbench.action.quickOpenPreviousRecentlyUsedEditor |
|
⌃Tab (Windows, Linux Ctrl+Tab) | ピッカーを介して最近使用した前のグループのエディターを開く | workbench.action.quickOpenPreviousRecentlyUsedEditorInGroup |
ピッカーを介して最も使用頻度の低いエディターを開く | workbench.action.quickOpenLeastRecentlyUsedEditor |
|
⌃⇧Tab (Windows, Linux Ctrl+Shift+Tab) | ピッカーを介して最も使用頻度の低いグループのエディターを開く | workbench.action.quickOpenLeastRecentlyUsedEditorInGroup |
開発者: 拡張機能ホストを再起動 | workbench.action.restartExtensionHost |
エンジニアリング
TSLint から ESLint への移行
VS Code は主に TypeScript で記述されています。コンパイラーに加えて、特定のスタイルとエンジニアリングルールを適用するためにリンティングを使用しています。以前は、そのタスクに TSLint を使用していましたが、約1年前、TSLint のメンテナーは ESLint を支持して TSLint の非推奨を発表 しました。
今回のマイルストーンでは、ESLint に移行しました。これには、lint-configuration と カスタムルール が含まれます。最後に重要なこととして、新しい TypeScript 拡張機能も ESLint でチェックされるように、yo code
拡張機能ジェネレーターも更新しました。
ご自身のプロジェクトで TSLint を使用している場合は、ESLint への切り替えを支援するために、TSLint から ESLint への移行 ガイドを作成しました。
TypeScript 3.8-beta での VS Code のビルド
VS Code は、TypeScript 3.8 beta リリースを使用してビルドされるようになりました。
Shadow DOM での Monaco Editor のホストのサポート
マウス処理と動的 CSS に関するさまざまな問題を修正し、Monaco Editor を Shadow DOM API shadow root 内でホストできるようになりました。
新しいドキュメント
コンテナ
Microsoft Docker 拡張機能を使用した コンテナ の作成に関する新しい記事があります。Node.js および ASP.NET Core アプリケーションのコンテナ化、コンテナレジストリ へのプッシュ、およびクラウドへの コンテナのデプロイ に関するチュートリアルがあります。
注目すべき修正
- 12058: シャットダウン時の損失を防ぐために UI 状態を定期的に保存する
- 79205: 大文字と小文字を区別しないプラットフォームで大文字と小文字を区別するファイルシステムに接続すると、エクスプローラーツリーに正しいコンテンツが表示されない
- 83543: デバッグプログラムの場所はアクティブなセッションに対してのみ表示される
- 85057: カスタムダイアログでダイアログの詳細を説明行に移動する
- 86445: ホットキーを介して複数のウォッチデバッグ変数を同時に削除できない
- 88240: 多数のウォッチドロップダウン式を作成するのに時間がかかる
- 89057: 読み取り専用エディターに問題を表示させる
- 89405: テキストファイル: 読み取り専用モデルでダーティを報告しない
謝辞
最後になりましたが、VS Code をさらに良くするためにご協力いただいた以下の皆様に、心から感謝申し上げます!
issue 追跡への貢献
vscode
への貢献
- Alexander Fell (@AlexFell-Velo): パネルを左に配置する機能を追加 PR #84477
- AlexStrNik (@AlexStrNik): Fix #89493 PR #89653
- Brett Cannon (@brettcannon): Merge pull request #87946 from brettcannon/patch-2 PR #87946
- Bura Chuhadar (@BuraChuhadar)
- Siberian Cat (@cat-kitten): Roblox XML ファイルの構文ハイライトのサポート PR #87755
- Charles Gagnon (@Charles-Gagnon): カバレッジのテストコードをインストルメントしない PR #86608
- Chayim Refael Friedman (@ChayimFriedman2): セッションが停止したらデバッグコンソールを非表示にする PR #83249
- Daniel Beigi (@dbeigi): #83983 修正済み、折りたたまれたハイライトを追加 PR #84955
- Dmitry Gozman (@dgozman): デバッグアダプターメッセージを個別のタスクで処理する。#33822、#79196 を参照 PR #81403
- Dima Krasner (@dimkr): arm64 クロスコンパイルを容易にするために node-native-keymap を 2.1.1 に上げる PR #86659
- David Lechner (@dlech): デバッグアダプターの再起動後にスレッドがフェッチされない問題を修正 PR #88790
- Daryl Chan (@dvrylc): アクティブなアイコンテーマがない場合、Markdown プレビューエディターのアイコンを非表示にする PR #88692
- Fabien Launay (@FabienLaunay)
- Gabriel DeBacker (@GabeDeBacker): 拡張機能のインストールおよびアンインストールコマンドの実行で、例外を呼び出し元にスローできるようにする PR #88714
- Jens Fischer (@Gama11): QuickPickItem.description と detail のドキュメントを明確にする PR #88622
- John Murray (@gjsjohnmurray): #85645 変数のフェッチ失敗メッセージを表示する PR #85842
- @GustavoASC
- Yunseok (@hannut91): 誤字を修正 PR #88824
- Harald Rosberg (@hrosb): electron を 6.1.6 に上げる。アクセシビリティアプリでウィンドウタイトルが欠落する問題を修正 PR #86837
- Andrew Liu (@hypercubestart): 解析された JSDoc author タグを修正 PR #80898
- Yuki Ueda (@Ikuyadeu): 'declare var' を 'declare const' に置き換える PR #87709
- Andrii Dieiev (@IllusionMH): 「含める/除外するファイル」フィールドの入力履歴エントリのデバウンス PR #86785
- Jason (@JasonMFry): :speech_balloon: ウェルカムページの文法を修正 PR #88801
- Jean Pierre (@jeanp413)
- Merge pull request #87827 from jeanp413/fix-79857 PR #87827
- enum 設定値のリンクがクリックできない問題を修正 PR #86463
- フィルター処理がアクティブなときに新しいデバッグウォッチ式を作成できない問題を修正 PR #88502
- ファイルのドラッグアンドドロップでエクスプローラーペインが開かない問題を修正 PR #88078
- ファイルエクスプローラーで新しいファイル/フォルダーを作成および名前変更するときに、フォーカスされた要素が間違っている問題を修正 PR #87052
- プレフィックスの前にスニペット置換が発生する問題を修正 PR #86509
- ターミナル環境変数が空のワークスペースで解決されない問題を修正 PR #83369
- mightProducePrintableCharacter 数値キーパッドのサポートを修正 PR #77911
- ピークウィジェットのインラインエディターにデフォルトでフォーカスするかどうかを制御する設定を追加 PR #88185
- Andy Edwards (@jedwards1211): fix(extHostProgress): デバウンスではなくスロットリング PR #86161
- Jon Bockhorst (@jmbockhorst): ターミナルリンクの動作をエディターと一致させる PR #83620
- Robert Jin (@jzyrobert)
- Kristian Thy (@kthy): feat: perl5 のリージョン折りたたみ PR #85642
- kevinn (@latel): stateService の最小限の間違いを修正 PR #86744
- Jiaxun Wei (@LeuisKen): fix: sandbox 属性に 'allow-forms' を追加。 PR #87334
- Luis Oliveira (@lmvco): Shadow DOM のサポート PR #88536
- Jonathan Carter (@lostintangent): Markdown/Emmet 言語機能のスキーム制限を削除 PR #87541
- Maher Jendoubi (@MaherJendoubi): Contributing: 誤字を修正 PR #89256
- Maira Wenzel (@mairaw): 誤字を修正 PR #88730
- Matias Godoy (@mattogodoy): 誤字を修正 PR #86957
- Matt Crouch (@mjcrouch): さまざまなアイコンコンテナの場所からのスタイリングの欠落を修正 PR #88157
- Marko Novakovic (@mnovakovic): CallStackView がアクティブなフレームを先頭に移動しようとする PR #88074
- Mohammad Rahhal (@mrahhal): ミラーカーソル選択を修正 PR #86986
- Ilya Murav'jov (@muravjov): editor.insertSpaceAfterComment 設定 PR #41747
- Micah Smith (@Olovan): #84145 ターミナルペインを切り替えるときの問題を修正 PR #88098
- pan93412 (@pan93412): fix(tokenClassificationExtensionPoint): いくつかの誤字 PR #89704
- Przemek Dziewa (@pdziewa): 長いステータスバー項目を修正 PR #87164
- Oliver Larsson (@Playturbo): フレンドリーな pickstring オプション PR #89180
- Remy Suen (@rcjsuen): CompletionItem の insertText に不足しているドキュメントを追加 PR #87115
- @romainHainaut: Fix #83644 PR #86619
- Sameer Puri (@sameer): Linux で Shift-Insert を有効にしてプライマリクリップボードを貼り付け、#36170 を修正。 PR #63374
- @sharkykh: 「名前変更時の現在の git ブランチ名」を復元 PR #86919
- Simon Siefke (@SimonSiefke): fix #87181: ローカル関数の typescript 補完項目種別 PR #87182
- @smilegodly: 重複した「検索をクリア」と「設定が見つかりません」を削除 PR #86494
- Konstantin Solomatov (@solomatov)
- @SPGoding: 拡張機能 package.json スキーマの間違ったキーを修正 PR #87042
- @sportshead: search.contribution.ts から search.location を削除 PR #89585
- @sverg1: customEditor のトグルと保存/プレビューのキーバインド PR #86505
- Ye Zhihao (@Vigilans): FileExplorer のブロックで TreeView のリストサービスが誤って処理される問題を修正 PR #87805
- @xearonet: .bat 変数の囲いを修正 PR #88986
- Pen Tree (@zyctree): vscode.d.ts の誤字を修正 PR #87704
vscode-eslint
への貢献
- Nikhil Verma (@NikhilVerma): モードが構成のオブジェクトではなく配列であることを明確にする PR #853
- Tyler Waters (@tswaters): Fixes #805: package.json で eslint をサポート PR #877
language-server-protocol
への貢献
- Sebastian Zarnekow (@szarnekow): マイナーなフォーマットの不具合を修正 PR #876
- @KamasamaK
vscode-languageserver-node
への貢献
debug-adapter-protocol
への貢献
- Gerald Richter (@richterger): adapters.md を更新 PR #89
vscode-vsce
への貢献
- Felix Hao (@felixhao28): リンクされた npm モジュールをサポート PR #411
- 道化師 (@wraith13): 現在の状況に合わせてメッセージを修正 PR #409
- Shaun Tabone (@xontab): npm list コマンドのログレベルを互換性向上のためエラーに変更 PR #412
vscode-js-debug
への貢献
- Ben Creasy (@jcrben): fix: launch.json から "program" を省略可能にする PR #203
vscode-generator-code
への貢献
- Jake Witcher (@jakewitcher): 言語拡張機能テンプレートの language-configuration.json のタイプミスを修正 PR #189
- Stavros Tsourlidakis (@stsourlidakis): ext-command-js/test の eslint の問題を修正 PR #190
vscode-azurecli
への貢献
- Matthew Burleigh (@mburleigh): 複数行コマンドをサポート PR #61
vscode-emmet-helper
への貢献
- Diogo Felix (@onlurking): feat: emmet 略語を更新 PR #34
localization
への貢献
800人以上の Cloud + AI Localization コミュニティメンバーが Microsoft Localization Community Platform (MLCP) を利用しており、Visual Studio Code には約 170 人のアクティブなコントリビューターがいます。新しい翻訳の提供、翻訳への投票、またはプロセス改善の提案など、皆様の貢献に感謝いたします。
こちらはコントリビューターのスナップショットです。コントリビューター名リストを含むプロジェクトの詳細については、プロジェクトサイト (https://aka.ms/vscodeloc) をご覧ください。
- ボスニア語 (ラテン文字, ボスニア・ヘルツェゴビナ): Sead Mulahasanović, Adnan Rizvan, Ismar Bašanović.
- ブルガリア語: Andreyka Lechev.
- チェコ語: Michal Černík.
- デンマーク語: Lasse Stilvang.
- オランダ語: Philip Denys, Lemuel Gomez, Dennis Hummel, Gideon van de Laar.
- 英語 (イギリス): Martin Littlecott, Alexander Ogilvie, Krishna Regar, Alonso Calderon, Daniel Imms, Kamalsinh Solanki.
- フィンランド語: Tuula P.
- フランス語: Antoine Griffard, Thierry DEMAN-BARCELÒ, Edouard Choinière, Joel Monniot, Rodolphe NOEL, Lucas A., Alain, BUFERNE, Xavier Laffargue, Mohamed Sahbi, DJ Dakta.
- ドイツ語: Pascal Wiesendanger, Marvin Heilemann, jan-nitsche, Jakob von der Haar, Michael Richter.
- ギリシャ語: Valantis Kamayiannis, Θοδωρής Τσιρπάνης.
- ヘブライ語: Ariel Bachar.
- ヒンディー語: Kiren Paul, Niraj Kumar, Preeti Madhwal, Jaadu Jinn, Mahtab Alam.
- ハンガリー語: József Cserkó, Kiss Attila Csaba, Krisztián Papp.
- 中国語 (簡体字): Yizhi Gu, Tingting Yi, Justin Liu, ick, Charles Dong, Peng Zeng, Tony Xia, 斌 项, 普鲁文, paul cheung, 张锐, Zhiqiang Li, Yixing Zheng, AlexiZz Nakido, 冉 耀隆, Chow David, Sheng Jiang, yungkei fan, Yao Rui, Joel Yang, 钟越, Chenglong Wei, 一斤瓜子, Yiting Zhu, Alexander ZHANG, YanJun Sun, Libing Yang, ZHENGCHENG CHEN, 张 任飞, 光宇 朴, 石岩 詹, 舜杰 杨, WJ Wang, Siam Chen.
- 中国語 (繁体字): Winnie Lin, 船長, Alan Tsai, TingWen Su.
- インドネシア語: Eriawan Kusumawardhono, Aldila, Arif Fahmi, Laurensius Dede Suhardiman, Mychael Go, Christian Elbrianno, Septian Adi.
- イタリア語: Alessandro Alpi, Luigi Bruno.
- 日本語: Takayuki Fuwa, Seiichi Ariga, Koichi Makino, Yoshihisa Ozaki, 貴康 内田, Ishii Shun, Kyohei Uchida, TENMYO Masakazu, Aya Tokura.
- 韓国語: Hongju.
- ラトビア語: Andris Vilde.
- ノルウェー語: Frode Aarebrot, Anders Stensaas, Thomas Ødegård, Thomas Isaksen.
- ポーランド語: Makabeus Orban, Mateusz Redynk, Kacper Łakomski, Piotr Rysak, Wojciech Maj, Oskar Janczak, Szymon Seliga, Franx Bar, Marcin Anonimus.
- ポルトガル語 (ブラジル): Marcelo Fernandes, Arthur Lima, Albert Tanure, Loiane Groner, Nylsinho Santos, Alessandro Trovato, Pudda, Matheus Vitti Santos, Rodrigo Crespi, Wellington OStemberg, Roberto Fonseca, Felipe Galante, Rodrigo Tavares, Alessandro Fragnani, Felipe Nascimento, Alexis Lopes.
- ポルトガル語(ポルトガル): Francisco Osorio, Luís Chaves, Ricardo Sousa Vieira, João Fernandes.
- ルーマニア語: Tiberiu Frățilă, LaServici, Dan Ichim.
- ロシア語: Vadim Svitkin, Николай Соколовский, Дмитрий Кирьянов, Baturin Valery.
- セルビア語 (キリル文字): Dusan Milojkovic.
- スペイン語: José María Aguilar, Ricardo Estrada Rdez, JOSE AHIAS LOPEZ PORTILLO, Gustavo Gabriel Gonzalez, Camilo Sasía.
- スウェーデン語: Pelle Alstermo.
- タミル語: Rajesh Waran, MUTHU VIJAY, Sankar Raj, Kadhireshan S, saravanan ramesh, Aravindh JANAKIRAMAN, Pandidurai R, Madhu Chakravarthy, Madhu Maha.
- トルコ語: Mehmet Yönügül, Özgür ERSOY, mehmetcan Gün, Misir Jafarov, Isa Inalcik, Fırat Eşki, Gökberk Nur, Safa Selim.
- ウクライナ語: Serhii Shulhin, Arthur Murauskas, Oleksandr Krasnokutskyi, Фомін Тарас.
- ベトナム語: Dat Nguyen, Vương, Van-Tien Hoang, Dao Ngo, ng-hai.