2021年2月 (バージョン 1.54)
アップデート 1.54.1: このアップデートでは、拡張機能の依存関係に関する問題に対処しています。
アップデート 1.54.2: このアップデートでは、これらの問題に対処しています。
アップデート 1.54.3: このアップデートでは、この問題に対処しています。
ダウンロード: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Visual Studio Code 2021年2月リリースへようこそ。このバージョンには多くのアップデートが含まれており、その中でも主なハイライトをいくつかご紹介します。
- Apple Silicon builds - VS Code が Apple Silicon 向けに安定版として利用可能になりました。
- アクセシビリティの向上 - Windows での単語ナビゲーションの改善、ビューとボタンのロールの追加。
- 永続的なターミナルプロセス - ローカルターミナルプロセスがウィンドウのリロード時に復元されるようになりました。
- 製品アイコンテーマ - 製品アイコンテーマで VS Code のアイコンイメージをパーソナライズ。
- タイムラインビューの改善 - Git の履歴タイムラインエントリ間で変更を比較。
- ノートブックの自動リロード - ノートブックのファイルがディスク上で変更されたときに自動的にリロード。
- リモートポートのテーブルビュー - リモートポートがテーブルウィジェットに表示されるようになりました。
- Brackets 拡張機能 - VS Code で Brackets のキーボードショートカットを使用可能に。
- 拡張機能のトラブルシューティングに関するブログ記事 - 拡張機能のバイセクトを使用して拡張機能のトラブルシューティング方法を学ぶ。
これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com の 更新情報 をご覧ください。
ライブ配信にご参加ください: 3月11日(木)午前8時(太平洋時間)(ロンドン午後4時)に VS Code チームのライブ配信 で、このリリースの新機能のデモをご覧になり、ライブで質問してください。
Insiders: 最新機能をいち早く試したいですか? 夜間の Insiders ビルドをダウンロードして、最新のアップデートをいち早くお試しください。
Apple Silicon
今回のイテレーションで、初の安定版 Apple Silicon ビルドをリリースできることを嬉しく思います。M1チップを搭載した Mac をお使いのユーザーは、Rosetta によるエミュレーションなしで VS Code を使用できるようになり、VS Code の実行時のパフォーマンス向上とバッテリー寿命の延長を実感できるでしょう。Insiders ビルドによるセルフホスティングと、イテレーションの初期段階での問題報告にご協力いただいたコミュニティに感謝します。
macOS 用 VS Code のデフォルトダウンロードは、すべての Mac でネイティブに動作するユニバーサルビルドになりました。ダウンロード ページでは、Intel または Apple Silicon 向けのアーキテクチャ固有のビルドへのリンクがさらに用意されており、ユニバーサルパッケージよりもダウンロードサイズが小さくなっています。
アクセシビリティ
ツールバーとタブが1つのタブストップを占める
ワークベンチ内のすべてのツールバーが標準的なナビゲーション動作に従うようになり、ツールバーはタブオーダーで1つの位置のみを占め、矢印キーでナビゲートできるようになりました。ツールバーにフォーカスが当たると、矢印キーを使用してツールバー内の特定の項目にフォーカスを移動する必要があります。この変更の結果、ワークベンチのタブストップが大幅に減り、すべてのパートをナビゲートしやすくなりました。
一貫性を保つため、同じ変更がタブ領域にも適用されました。したがって、タブ領域全体が1つのタブストップのみになり、タブ間のキーボードナビゲーションは左右の矢印キーで行う必要があります。
Windows での単語ナビゲーション
Windows での単語ナビゲーションの方法を改善し、Windows のスクリーンリーダーが Electron ベースのアプリケーションに期待するものと一致するようにしました。単語ナビゲーションを使用すると、各単語がスクリーンリーダーによって適切に読み上げられるようになります。
この変更により、以下のコマンドを非推奨とします。今後も動作しますが、将来的に削除する可能性があります。
cursorWordAccessibilityLeft
cursorWordAccessibilityLeftSelect
cursorWordAccessibilityRight
cursorWordAccessibilityRightSelect
非 Windows プラットフォームはすでに期待どおりに動作していたため、変更は加えていません。
ビューとボタンのロールの改善
ユーザーからのフィードバックに基づき、ワークベンチ全体の複数のビューとボタンのロールを改善しました。アクティビティバー、サイドバー、パネル に role:none
が設定され、スクリーンリーダーの読み上げが少なくなるようにしました。アクティビティバー内の 管理 および アカウント ボタンは、ポップアップがあることを適切にアナウンスするようになりました。
統合ターミナル
ウィンドウのリロード時にターミナルプロセスを保持
拡張機能のインストールにリロードが必要な場合など、ウィンドウのリロード時にローカルターミナルプロセスが復元されるようになりました。ターミナルは再接続され、アクティブなタブや分割されたターミナルの相対的な寸法など、ターミナルの UI 状態が復元されます。
この機能は、terminal.integrated.enablePersistentSessions
を false に設定することで無効にできます。
Windows のパフォーマンス向上
新しいターミナルプロセスレイアウトのおかげで、ターミナルプロセスからの頻繁な pty データイベントの処理がより迅速になるはずです。これは、Windows の conpty によって提供されるイベントが小さいため、他のプラットフォームよりも Windows に大きな影響を与えることが予想されます。
環境変更が必要なターミナルを自動的に再起動
最近、拡張機能がターミナルの環境に影響を与えることを可能にする新機能がロールアウトされました。これは、さまざまな言語拡張機能や組み込みの git 拡張機能で使用され、VS Code を git 認証プロバイダーとして有効にし、サインインの必要性をなくします。以前は、ターミナルの環境が古くなっていることを示すために、右上に控えめな ⚠️ アイコンを表示するという UX でした。環境変更は重要である場合もそうでない場合もあるため、インジケーターは控えめでした。
まだ操作されていない場合に、古い環境を持つターミナルを自動的に再起動するように調整しました。これにより、ちらつきが発生する可能性がありますが、拡張機能のターミナル統合がよりシームレスになりました。たとえば、WSL ウィンドウの最初のターミナルは、ターミナルに入力する前に再起動が発生した場合、Git 認証エラーを表示しなくなるはずです。
ワークベンチ
Emmet
アブリービエーションでラップ コマンドと 各行をアブリービエーションでラップ コマンドが、単一の アブリービエーションでラップ コマンドに統合され、どちらのラップコマンドを使用するかについての混乱を軽減しました。さらに、アブリービエーションでラップ コマンドで、プレビューの空白が適切に表示されるようになりました。
emmet.extensionsPath
設定で、文字列だけでなくパスの配列も指定できるようになりました。したがって、Settings Sync と組み合わせることで、マシンごとに設定を更新することなく、マシンに応じて異なるスニペットファイルを指定できます。
製品アイコンテーマ
最初の製品アイコンテーマが拡張機能マーケットプレイスで利用可能になりました。テーマの作者の皆様、素晴らしい作品をありがとうございます!
テーマを選択または検索するには、コマンドパレットまたは設定ギアから 基本設定: 製品アイコンテーマ コマンドを使用します。
コンテキストキーの IntelliSense
VS Code は、when 句を使用して、キーバインディングを有効または無効にします。拡張機能も when 句を使用して、メニュー および ビュー のコントリビューションを制御します。エディターがそれらの補完を提供するようになったため、これらの when 句の作成がはるかに簡単になりました。
テーマ: GitHub ライトテーマ、フォント: FiraCode
エディターを開く 新規無題ファイルアクション
エディターを開く ビューのタイトル領域に、新規無題ファイル アクションが追加されました。
更新されたアプリケーションメニュー設定
アプリケーションメニューの表示設定である window.menuBarVisibility
設定が更新され、オプションがより適切に反映されるようになりました。主に2つの変更が行われました。
まず、設定の default
オプションの名前が classic
に変更されました。
次に、アプリケーションメニューバーの メニューバーを表示 エントリが、classic
オプションと compact
オプションを切り替えるようになりました。完全に非表示にするには、設定を更新するか、compact
モードでアクティビティバーのコンテキストメニューを使用できます。
テーマ: GitHub ライトテーマ
WebView のキャッシュの改善
WebView 内のローカルファイルのキャッシュを改善しました。WebView がディスクからファイルをリロードする場合、ETag を使用して、ファイルが変更されていない場合は再読み込みを回避するようになりました。これにより、データ転送を削減し、特にリモートワークスペースでの応答時間を改善できます。
このキャッシュは現在、既存の WebView がリソースをリロードする場合にのみ適用されます。以前に同様の WebView を作成した拡張機能に属する WebView であっても、新しく作成された WebView には適用されません。
ワークスペース検索アクションの変更
既存の workbench.view.search
を変更し、選択したテキストを検索入力に配置するのではなく、入力を開くようにしました。選択したテキストを使用し、search.mode
設定を尊重した新しい検索を作成するには、workbench.action.findInFiles
を使用する必要があります。
修飾キーのみのキーバインディング
shift shift
、alt alt
、ctrl ctrl
、cmd cmd
/ meta meta
/ win win
など、重複する修飾キーのキーバインディングを定義できるようになりました。これらのキーバインディングは、keybindings.json
に手動で入力できます。例:
{ "key": "shift shift", "command": "workbench.action.quickOpen" }
更新されたリスト/ツリー UI
リスト/ツリーのスタイルを更新して、ネイティブのフォーカスと選択インジケーターに合わせました。フォーカスされた要素は、アウトラインカラーでレンダリングされるようになりました。
破壊的変更
テーマの公開者は、list.focusBackground
カラーのカスタマイズを quickInput.list.focusBackground
カラーに置き換えるだけで、このスタイルを採用することをお勧めします。例については、この コミット を確認してください。
テーブルウィジェット
既存のリストウィジェットの上に構築された新しいテーブルウィジェットを導入しました。これにより、リスト要素をレンダリングするのと同じパフォーマンスで表形式のデータをレンダリングできます。今のところ、リモート機能のポートビューで使用されています。
はじめに
起動時に表示する新しいエディターである「はじめに」エディターを実験的に導入しています。これは、VS Code の一部の機能を新規ユーザーにとってより親しみやすいものにすることを目的としています。一部の Insiders ユーザーはすでに目にしているかもしれませんが、このイテレーションの過程でより多くの安定版ユーザーに徐々にロールアウトされる予定です。workbench.startupEditor
設定を gettingStarted
に変更したり、元に戻したりすることで、新しい動作を常にオプトインまたはオプトアウトできます。
タイムラインビュー
エクスプローラービューでファイルを比較するのと同様に、比較のために選択 コマンドと 選択と比較 コマンドを使用して、Git 履歴タイムラインエントリ間で変更を比較できるようになりました。この機能を使用すると、Git ファイル履歴の任意の2つのコミット間のすべての変更をすばやく確認できます。
デフォルトのサッシュホバーボーダーカラー
1.52 リリースでは、サッシュのホバーボーダーカラートークン(sash.hoverBorder
)を導入しましたが、デフォルトを設定しませんでした。すべてのテーマでデフォルトでこの色が表示されるようになりました。
デバッグ
ブレークポイントビューの改善
ブレークポイントを削除するための新しいインラインアクション
ブレークポイントビュー にブレークポイントを削除するためのインラインアクション X を追加しました。このアクションにより、ブレークポイントの削除が容易になるはずです。
例外フィルターのヘルプテキストのサポート
最近、ブレークポイントビュー で例外フィルターの条件を編集するサポートを追加しました。
これらの条件をより見つけやすくし、構文をわかりやすくするために、VS Code は例外フィルターにホバーを表示し、条件テキストボックスにプレースホルダーテキストを表示するようになりました。
両方の情報は基盤となるデバッグ拡張機能によって提供されるため、一般的なメッセージよりもはるかに具体的(したがって役立つ)になる可能性があります。
この新機能は Debug Adapter Protocol への追加(下記参照)に基づいているため、デバッグ拡張機能のオプトインが必要です。このリリースでは、VS Code の組み込み JavaScript デバッガーのみが新機能をサポートしています。
新しい設定とその他の改善
デバッグコンソールで同一の行を折りたたむ
デバッグコンソールで同一の行を折りたたみ、バッジで多数の出現回数を表示するかどうかを制御する新しい設定 debug.console.collapseIdenticalLines
があります。デフォルトでは折りたたむ設定になっています。
デバッグ前に保存するエディターを制御
デバッグ開始前に保存するエディターを制御する新しい設定 debug.saveBeforeStart
があります。この設定には、次の値があります。
allEditorsInActiveGroup
: アクティブなグループ内のすべてのエディターを保存します。デフォルト値。nonUntitledEditorsInActiveGroup
: アクティブなグループ内のすべてのエディターを保存しますが、無題のエディターは除きます。none
: エディターを保存しません。
PowerShell デバッガーは保存されていないファイルのデバッグをサポートしているため、この設定は PowerShell デバッグに役立ちます。
フレーム再起動アクションの有効化の改善
Debug Adapter Protocol への新しい追加により、デバッグ拡張機能は、選択されたスタックフレームで「フレーム再起動」アクションが利用可能かどうかを VS Code UI に伝えることができるようになりました。VS Code は、再起動できないスタックフレームの場合、呼び出しスタックビュー のフレーム再起動インラインアクションを無効にするようになりました。
たとえば、JS-Debug 拡張機能はこれを採用しており、非同期スタックトレースはフレーム再起動アクションを無効にするようになりました。
言語
TypeScript 4.2
VS Code に TypeScript 4.2.2 が同梱されるようになりました。このメジャーアップデートには、TypeScript 言語の多くの改善、および JavaScript および TypeScript ツールに対する多くの改善とバグ修正が含まれています。
TypeScript 4.2 の詳細については、TypeScript ブログ をご覧ください。
不足している関数を宣言するためのクイックフィックス
新しい 不足している関数宣言を追加 クイックフィックスは、不足している関数のスタブを作成します。たとえば、不足している関数 add
の呼び出しがある場合
const x: number = add(1, 2);
add
で 不足している関数宣言を追加 を使用すると、次のようになります。
const x: number = add(1, 2);
function add(arg0: number, arg1: number): number {
throw new Error('Function not implemented.');
}
コードを記述中にこのクイックフィックスを使用して、呼び出しシグネチャに基づいて関数のスタブをすばやく作成できます。
JavaScript でこのクイックフィックスを使用するには、型チェックを有効にする必要があります。
JS Doc テンプレートが @returns を生成するようになりました
注釈が付けられている関数に return
ステートメントが含まれている場合、JS Doc テンプレートに @returns
が自動的に含まれるようになりました。たとえば、関数 getViz
の場合
function getViz(el) {
return el?.viz;
}
生成された JSDoc テンプレートは次のようになります。
/**
*
* @param {*} el
* @returns
*/
function getViz(el) {
return el?.viz;
}
JSDoc コメントの @returns
を無効にするには、javascript.suggest.jsdoc.generateReturns
および typescript.suggest.jsdoc.generateReturns
を使用します。
非推奨の DOM API がマークされるようになりました
非推奨の DOM メソッドが、候補とコードで非推奨としてマークされるようになりました
非推奨のプロパティと関数をエディターに表示しないようにするには、editor.showDeprecated: false
を設定します。
ノートブック
ノートブックの自動リロード
ノートブックは、ファイルがディスク上で変更されたとき、および保存されていない変更がない場合に自動的にリロードされるようになりました。これにより、バージョン管理下にあるノートブックの操作が大幅に簡素化されるはずです。
大きなセルのフォーカスの改善
大きなノートブックセルにフォーカスが当たっている場合、セルの上部と下部がビューから外れている場合でも、どのセルにフォーカスが当たっているかをより明確に識別できるようになりました。フォーカスされたセルの左右に境界線が表示されるようになりました。
CSS/LESS/SCSS および HTML のホバー
HTML および CSS のホバーの内容を微調整して、次のことができるようになりました。
- MDN からのドキュメントを表示しない
- MDN ページへのリンクを表示しない
CSS のホバーを変更するには、css.hover.documentation
および css.hover.references
設定を使用します。これらの言語の設定を変更するには、css
を html
、css
、scss
、または less
に置き換えます。
プレビュー機能
ノートブックの拡張可能な Markdown レンダラー
今回のイテレーションでは、ノートブックセル用の Markdown レンダラーを拡張可能にすることを検討しました。たとえば、下のスクリーンショットでは、ノートブックセルで数式を表示するように VS Code の Markdown レンダラーを拡張しました。
Markdown レンダラーを拡張可能にするために、すべてのノートブック Markdown をレンダリングするために Markdown It を使用することを検討しました。また、レンダリングされた Markdown をノートブックのバックレイヤー WebView に移動することも検討しました。
公式 API を公開する準備はまだできていませんが、3月もこの調査を続ける予定です。ドキュメント化されていない notebook.experimental.useMarkdownRenderer: true
設定を使用すると、今日から新しい拡張可能な Markdown レンダラーを試すこともできます。
拡張機能への貢献
Brackets
Brackets ソースコードエディターから移行してきた開発者は、Brackets キーマップ 拡張機能を使用することで、VS Code で同じキーボードショートカットを引き続き使用できます。CSS を操作したり、ライブプレビューを作成したりするための拡張機能をバンドルした Brackets 拡張機能パック もあります。
GitHub Pull Requests and Issues
GitHub Pull Requests and Issues 拡張機能の開発が続けられています。この拡張機能を使用すると、プルリクエストと issue を操作、作成、管理できます。
すべての新機能と更新プログラムの詳細については、拡張機能の 0.24.0 リリースの変更ログ を参照してください。
リモート開発
リモート開発拡張機能 の開発が続けられています。これにより、コンテナー、リモートマシン、または Windows Subsystem for Linux (WSL) をフル機能の開発環境として使用できます。
1.54 の機能ハイライトには、以下が含まれます。
- ポートビューのテーブルレイアウト
- Remote - SSH: X11 転送
- WSL: WSL 2 サポートの改善
新しい拡張機能とバグ修正の詳細については、リモート開発リリースノート を参照してください。
拡張機能の作成
エディタータイトルのメニューと「実行」サブメニューの制限
エディターツールバー(editor/title
)のスペースには限りがあります。したがって、以下を行いました。
- オーバーフロー動作を実装しました。アイコンでレンダリングされるアクションのグループであるプライマリグループが9個のコマンドを超えると、追加のコマンドはすべて
...
メニューにオーバーフローします。 editor/title/run
サブメニューを追加しました。拡張機能の作成者には、以前の リリース で推奨していたように、実行コマンドとデバッグコマンドをeditor/title
メニューではなく、このメニューにコントリビュートするように依頼します。さらに、コマンドを正しい位置に表示するために、マジックグループ値1_run@10
および1_run@20
を使用する必要はなくなりました。
また、実行サブメニューは動的であり、最初の子が唯一の子である場合、最初の子に置き換わることに注意してください。
認証プロバイダー API
認証プロバイダーを登録できるようになりました。これは、他の拡張機能がサービスに対して認証を実行するために使用できます。
拡張機能マーケットプレイスの新しいフィードバックチャネル
拡張機能マーケットプレイスに関連する issue 用の新しい 公開リポジトリ があります。技術的な問題がある場合、フィードバックを提供したい場合、または機能リクエストがある場合は、issue をオープン してください。
更新された codicon
次の新しいアイコンを codicon ライブラリ に追加しました。
debug-rerun
gather
git-pull-request-create
notebook-template
run-above
run-below
type-hierarchy
type-hierarchy-sub
type-hierarchy-super
variable-group
また、一貫性を保つために、次のアイコンを更新しました。
debug-alt-small
debug-alt
debug-rerun
play-circle
play
run-above
run-all
run-below
提案された拡張機能API
すべてのマイルストーンには、新しい提案された API が付属しており、拡張機能の作成者はそれらを試すことができます。いつものように、フィードバックをお待ちしています。提案された API を試すには、次の手順を実行する必要があります。
- 提案された API は頻繁に変更されるため、Insiders ビルドを使用する必要があります。
- 拡張機能の
package.json
ファイルに、この行"enableProposedApi": true
が必要です。 - vscode.proposed.d.ts ファイルの最新バージョンをプロジェクトのソースロケーションにコピーします。
提案された API を使用する拡張機能を公開することはできません。次のリリースで破壊的な変更が発生する可能性があり、既存の拡張機能を破壊することは決して望んでいません。
アイコンコントリビューションポイント
アイコンコントリビューションポイントを使用すると、拡張機能は ID とデフォルトアイコンを指定して新しいアイコンを定義できます。そのアイコン ID は、拡張機能(または拡張機能に依存する他の拡張機能)が ThemeIcon を使用できる場所で使用できます。Markdown 文字列(例: "$(distro-ubuntu)" Ubuntu 20.04"
)と、ThemeIcon を受け取るすべての場所(例: new ThemeIcon("distro-ubuntu")
)。
製品アイコンテーマは、(アイコン ID について知っている場合)アイコンを再定義できます。
詳細とフィードバックについては、issue 114942 を参照してください。
インライン値プロバイダー API
現在、VS Code デバッガーの インライン値を表示 機能は、VS Code コアの汎用的な実装に基づいており、設定によるカスタマイズや拡張機能による拡張性は提供されていません。その結果、すべての言語に完全に適合するわけではなく、基盤となるソース言語を理解していないため、誤った値を表示することがあります。このため、組み込みの実装を完全に置き換えるか、実装の一部をカスタムコードに置き換えることを可能にする拡張機能 API の開発に取り組んでいます。
今回のマイルストーンでは、提案された API の最初の実装を公開しました。
インライン値プロバイダー API の概要を以下に示します。
InlineValuesProvider
は言語に登録する必要があります。- 特定のドキュメントに対して、
InlineValuesProvider
はインライン値を表示する必要があるすべての言語要素を見つける必要があります。 - すべての要素に対して、VS Code に表示する情報を指示する
InlineValue
記述子オブジェクトを返す必要があります。現在、3種類のInlineValue
オブジェクトがサポートされています。InlineValueText
: 表示する完全なテキスト。InlineValueVariableLookup
: VS Code がその値を見つけるために [変数] ビューで検索しようとする変数の名前。名前と値は、「name = value」の形式で表示されます。InlineValueEvaluatableExpression
: VS Code が評価のためにデバッガーに送信する式。式と結果は、「expression = result」の形式で表示されます。
次のスニペット(Mock Debug から)は、「markdown」ファイル用の最小限のインライン値プロバイダーを示しています。これは、正規表現を使用して「変数」を見つけ、変数ビュー 経由でそれらの値を見つけるように VS Code に指示します。
vscode.languages.registerInlineValuesProvider('markdown', {
provideInlineValues(
document: TextDocument,
viewport: Range,
context: InlineValueContext
): ProviderResult<InlineValue[]> {
const allValues: InlineValue[] = [];
for (let l = 0; l <= context.stoppedLocation.end.line; l++) {
const line = document.lineAt(l);
var regExp = /local_[ifso]/gi; // match variables of the form local_i, local_f, Local_i, LOCAL_S...
do {
var match = regExp.exec(line.text);
if (match) {
const varName = match[0];
const varRange = new Range(l, match.index, l, match.index + varName.length);
allValues.push(new InlineValueVariableLookup(varRange, varName));
}
} while (match);
}
return allValues;
}
});
そして、インライン値プロバイダーの動作は次のとおりです。
この提案された API に関するフィードバックを提供したい場合は、この issue にコメントを追加してください。
テスト
VS Code でのテスト の進捗状況を引き続き確認しています。今月は、VS Code および拡張機能 API の基本的なエクスペリエンスの洗練に焦点を当てました。また、テストに関する 仮ドキュメント を公開しました。これは、API が安定し続けるにつれて充実していく予定です。
Language Server Protocol
診断プルモデル の最初の提案が、今後の 3.17 リリースに向けて実装されました。この提案は、VS Code LSP ライブラリ の次のバージョンで利用できます。
Debug Adapter Protocol
ExceptionBreakpointsFilter のヘルプテキストプロパティの追加
2つのオプションの UI 属性 description
および conditionDescription
が ExceptionBreakpointsFilter
に追加されました。
これらの属性を使用すると、クライアントは例外ブレークポイントに関する追加情報を表示できます。description
プロパティはホバーに表示でき、conditionDescription
は条件を編集できるテキストボックスのプレースホルダーテキストとして使用できます。
setExceptionBreakpoints リクエストの説明を改善しました
setExceptionBreakpoints
リクエストの説明を改善し、ユーザーが無効な例外ブレークポイント条件を入力した場合にアダプターがどうすべきかのガイダンスを追加しました。
スタックフレームの新しい canRestart プロパティ
新しいオプションのブール値プロパティ canRestart
がスタックフレームに追加されました。これは、スタックフレームが restart
リクエストで再起動できるかどうかを示します。この情報に基づいて、クライアントは **フレームの再起動** コンテキストメニューアクションを有効または無効にできます。
エンジニアリング
Electron sandbox の進捗状況
今月のマイルストーンでは、Electron の sandbox および context isolation 機能を有効にするための VS Code ウィンドウの準備を継続しました。
具体的には
- レンダラーにあったネイティブモジュールの要件の一部を他のプロセスに移動することができました。
- sandbox が有効になっている場合に
MessagePort
通信チャネルが機能するように実装されました。
新しいターミナルプロセスレイアウト
ターミナルプロセスは、ウィンドウプロセスではなく、新しい "pty host" プロセスで生成されるようになりました。この変更は Electron sandbox の一部であるだけでなく、ターミナルの安定性とパフォーマンスも向上させるはずです。
Windows インストーラーが Windows Package Manager に公開されました
x86
および x64
用の Windows ユーザーおよびシステムインストーラーが、Windows Package Manager に公開されるようになりました。winget ツールを使用して、すべての Visual Studio Code インストーラー (`winget search vscode`) を検索し、公開されているインストーラーをインストールできます。
TypeScript 4.3 を使用した VS Code のビルド
VS Code は現在、TypeScript 4.3 の nightly ビルドを使用してビルドされています。これにより、TypeScript チームの最新の作業を検証し、新しい変更に関するフィードバックを提供できます。
最新の TypeScript バージョンは、条件付きステートメントで await が欠落しているケースをいくつか検出するのに役立ちました。
yarn.lock の変更を防止
サプライチェーンのセキュリティを向上させるために、yarn.lock
ファイルに対する PR を防止する CI を導入しました。
デフォルトブランチ: main
microsoft/vscode
を含む、すべてのリポジトリのデフォルトブランチを main
にリネームし始めました。この取り組みは約 60% 完了しています。
ドキュメント
教室での VS Code と Python
ハーベイ・マッド大学のコンピュータサイエンスの教授が、Python を使用した入門 CS クラスで VS Code を使用しているケーススタディをお読みください。教授が学生に推奨する設定、役立つ拡張機能、無料の自習型 Python およびデータサイエンスのレッスンについて学びましょう。
拡張機能のトラブルシューティングに関するブログ記事
誰もが VS Code 拡張機能をインストールして使用するのが好きです。しかし、多くの拡張機能をインストールしている場合、エディターの動作がおかしくなることがあり、その動作が特定の拡張機能によって引き起こされているかどうかを知りたいと思うでしょう。拡張機能の二分割ユーティリティの以前の発表を見逃した場合は、「二分割による拡張機能の問題の解決」ブログ記事をお読みください。この記事では、「問題のある」拡張機能を迅速にトラブルシューティングし、拡張機能の作者にフィードバックを提供するのに役立つ方法について説明しています。
注目すべき修正
- 100151: menu key applied to the wrong item in explorer
- 112055: Debug opens a new integrated terminal for each Python session
- 114881: Preserve symlinks when copying folders or files
- 114933: "Task cannot be tracked" frustration
- 115922: Cursor keys not working for filtering in File Explorer
- 116037: No Link hovers shown for output in the Debug Console
- 116101: I can't find target command in command search because the English description has disappeared
- 116932: Throwing custom exceptions from contributed command execution shows cryptic error popup
謝辞
最後になりましたが、今月 VS Code に貢献してくれた以下の皆様に心から *感謝申し上げます*。
issue tracking への貢献
- John Murray (@gjsjohnmurray)
- Andrii Dieiev (@IllusionMH)
- Simon Chan (@yume-chan)
- ArturoDent (@ArturoDent)
- Alexander (@usernamehw)
vscode
への貢献
- @antonvolokha (Anton Volokha): issue #116591 を修正 PR #116885
- @CameronIrvine (Cameron): #114432 を修正: Windows で Ctrl+S を複数回押すと、複数の保存ダイアログが表示される PR #114450
- @davidbailey00 (David Bailey): RPM: build_id リンクを生成しない PR #116105
- @DonJayamanne (Don Jayamanne): Notebook Cell の runState が正しく更新されるようにする PR #116901
- @engelsdamien (Damien Engels): tsec 免除を明示的にリストする PR #116460
- @ferenczy (Dawid Ferenczy Rogožan): ローカライズ文字列 wordBasedSuggestionsMode のタイプミスを修正 PR #115809
- @gjsjohnmurray (John Murray): GH バグレポートテンプレートのガイダンスコメントを改善 PR #116183
- @guiherzog (Guilherme Herzog): getViewState 関数でのツリー走査のパフォーマンスを改善 PR #115387
- @habibkarim (Habib Karim): markdown プレビューリンククリックで正規化された絶対ファイルパスを処理する PR #116649
- @jeanp413 (Jean Pierre)
- #115922 を修正 PR #116005
- Emmet: output.reverseAttributes オプションを追加 PR #116088
- エクスプローラーでドットが多いファイル名を貼り付けると vscode が応答しなくなる問題を修正 PR #116268
wrapWithAbbreviation
とwrapIndividualLinesWithAbbreviation
を 1 つのコマンドに統合 PR #116603
- @jogo-: papercuts.github-issues のスペルミスを修正 PR #115452
- @Klagopsalmer (Alexandre Schnegg): #95040 を修正 PR #116027
- @lancewl (Hsuan-An Weng Lin)
- Emmet: css.color.short 設定を追加 PR #116912
- Emmet: 複数の拡張パスのサポートを追加 PR #117105
- @leereilly (Lee Reilly): 一貫性のためにリスト項目にピリオドを追加 PR #115375
- @manuth (Manuel Thalmann): Env パラメーターを提供せずに Markdown レンダリングを許可する PR #117041
- @mdesrosiers (Martin Desrosiers): marked を 2.0.0 にアップデート PR #117714 (https://github.com/microsoft/vscode/pull/115192)
- @MarcoZehe (Marco Zehe): Playwright を v1.8.0 にアップグレード. PR #115241
- @nrayburn-tech (Nicholas Rayburn): git 拡張機能の関数名を変更 PR #113673
- @obsgolem (Josiah Bills): 移動ユニットに新しい "blankLine" オプションを追加 PR #115578
- @pfitzseb (Sebastian Pfitzner): Julia 文法を追加 PR #115309
- @PathToLife (PathToLife): 機能: Shift Shift, Ctrl Ctrl, Alt Alt キーバインド (モディファイアーキーのダブルプレスサポート) PR #115190
- @rluvaton (Raz Luvaton): fix(workbench): 正規表現で忘れられていたエスケープを追加 PR #115336
- @samrg123 (Samuel Gonzalez): MarkdownString を作成する前に URI をエスケープすることで issue #108301 を修正. PR #112330
- @sargreal (Felix Haase): askpass 引数から git ホストのコロンを削除 PR #117230
- @shskwmt (Shunsuke Iwamoto)
- 114236 を修正: 複数行コメントの正規表現を unIndentedLinePattern に追加 PR #114478
- 115154 を修正: "overflow: hidden" スタイルを split-view-view に追加 PR #115345
- @susiwen8 (susiwen8)
- Fix: リストに alwaysConsumeMouseWheel を追加 PR #114182
- Fix:
onDidSaveNotebookDocument
のイベントが間違っている PR #115855
- @SchoofsKelvin (Kelvin Schoofs): issue #114473 を修正 PR #114474
- @tspence (Ted Spence)
- リモート拡張機能ホストがクラッシュした場合に issue サービスがバグレポートウィンドウを表示できるようにする PR #116896
- クイックピックでファイルを開くときにカット/コピー/ペーストを妨げる webview フォーカス問題を修正 PR #116899
- @TacticalDan: 任意イベントリミッターを 16ms から 4.16666 (#_107016) に削減 PR #114957
- @ugultopu (Utku Gultopu): "likelihood" のスペルミスを修正 PR #116728
- @vagusX (vagusX): fix: zone-widget でリストにフォーカスがある場合にスクロールを防ぐ PR #114912
- @Wscats (Eno Yao): 補助関数パラメータータイプ PR #115751
language-server-protocol
への貢献
- @DanTup (Danny Tuppeny): insertReplaceSupport capability への参照を修正 PR #1207
- @reznikmm (Maxim Reznik): MD フォーマットの軽微な修正 PR #1208
vscode-languageserver-node
への貢献
- @xAlien95 (Stefano De Carolis): ドキュメントの markdown リンク切れを修正 PR #741
vscode-emmet-helper
への貢献
- @aliasliao (Liao Jinyuan): jsx 入力時にパスカルケースタグの補完を提供する PR #53
- @AnuBhar (Anushka Bhargava): 114923 の修正 - 完全な単語を使用する場合、HTML figcaption タグを提案する必要がある PR #44
- @jeanp413 (Jean Pierre)
- @johnsoncodehk (Johnson Chu): fix: doComplete の結果が未定義になる可能性がある PR #51
- @lancewl (Hsuan-An Weng Lin)
- @shskwmt (Shunsuke Iwamoto): 115946(vscode) を修正: '{' を htmlAbbreviationStartRegex に追加 PR #45
vscode-html-languageservice
への貢献
- @sapphi-red (翠 / green): オートコンプリートの候補から既存の属性を削除 PR #99
vscode-js-debug
への貢献
vscode-textmate
への貢献
- @msftrncs (Carl Morris): 無限ループ検出を改善 PR #146
vscode-vsce
への貢献
- @felipecrs (Felipe Santos): verify-pat コマンドを追加 PR #532