🚀 VS Code で で入手しましょう!

2019年10月 (バージョン 1.40)

アップデート 1.40.1: このアップデートでは、以下のissueに対処しています。

アップデート 1.40.2: このアップデートでは、以下のissueに対処しています。

ダウンロード: Windows: x64 | Mac: Intel | Linux: deb rpm tarball snap


Visual Studio Code の 2019 年 10 月リリースへようこそ。10 月のイテレーション計画でお知らせしたように、私たちはissue グルーミングガイドに記載されているように、GitHub issue とプルリクエストの整理に注力しました。すべての VS Code リポジトリ全体で、4622 件の issue をクローズ(トリアージまたは修正済み)しました。これは、issue を 3918 件クローズした 2018 年 9 月の前回の整理イテレーションよりもさらに多い件数です。私たちが issue をクローズしている間にも、2195 件の新しい issue が作成されました。これにより、issue は 2427 件純減しました。メインのvscode リポジトリには現在、2162 件の未解決の機能リクエストと 725 件の未解決のバグがあります。さらに、287 件のプルリクエストをクローズしました。この取り組みの一環として、プロセスを調整し、issue トリアージワークフローを更新しました。

昨年と同様に、Benjamin Lannon氏のライブトラッカーを使用して進捗状況を追跡しました。

Burn down chart of VS Code issues

この整理マイルストーンの間、私たちはいくつかの機能リクエストとコミュニティからのプルリクエストにも対応しました。新機能と設定の詳細については、以下をお読みください。

ワークベンチ

アクティビティバーのインジケーター

アクティブなアクティビティバーの項目をより目立たせ、可読性を向上させるために、新しいインジケーターを導入しました。また、非アクティブな要素の前景色を調整し、アクティブな要素とのコントラストを強くしました。

Active Activity Bar indicator

アクティブなインジケーターは、新しいカラートークン activityBar.activeBorder を使用して制御できます。アクティブな要素のオプションの背景色 activityBar.activeBackground も導入しました。構成すると、次のようになります。

Active Activity Bar indicator custom background

テーマ設定可能なウィンドウボーダー

VS Code ウィンドウの周囲にボーダーを提供するために、window.activeBorderwindow.inactiveBorder という 2 つの新しいテーマカラーを導入しました。window.activeBorder はアクティブ(フォーカスされた)ウィンドウに適用され、window.inactiveBorder は非アクティブ(フォーカスされていない)ウィンドウに適用されます。これらの新しいカラーはどのカラーからも継承されないため、テーマまたは workbench.colorCustomizations 設定によって提供される必要があります。1 つのカラーのみが指定されている場合、そのカラーのボーダーがアクティブウィンドウと非アクティブウィンドウの両方に適用されます。

Animated image showing the use of the new window border colors

リストとツリーのキーボードスクロール

キーボードを使用してリストとツリーをスクロールするために、⌘↑ (Windows、Linux Ctrl+Up) および ⌘↓ (Windows、Linux Ctrl+Down) を押せるようになりました。

Zen モードでの通知の削減

Zen モードを使用している間、通知トーストはエラーに関する情報を通知する場合を除き、気を散らすことはなくなります。この動作は、新しい zenMode.silentNotifications 設定で制御できます。すべての通知には、右下の通知アイコンをクリックすることで、ステータスバーからいつでもアクセスできます。

アウトラインとブレッドクラムのタイプフィルター

アウトラインビューとブレッドクラムナビゲーションに表示されるシンボルを設定するための新しい設定があります。設定の名前は outline.show{symbol type} および breadcrumbs.show{symbol type} です。たとえば、outline.showVariablesoutline.showFunctions などです。

Filtered Outline view

上記のスクリーンショットは、ローカル変数を表示しないように構成されたアウトラインビューを示しており、変数 hidden が表示されていないことがわかります。

シンボルのタイプを割り当てるのは言語拡張機能次第であることに注意してください。アウトラインビューのシンボルラベルにカーソルを合わせると、使用されているシンボルタイプを確認できます(括弧内に表示されます)。

エディター分割時のサイズ変更動作の制御

新しい設定 workbench.editor.splitSizing は、エディターを分割するときのレイアウトを制御します。デフォルトでは、サイズは以下の図のようにすべてのエディターに均等に分配されます。

splitSizing with distribute value

この設定を split に変更すると、現在のエディターが半分に分割され、他のエディターのサイズには影響しません。

splitSizing with split value

GPU アクセラレーションの無効化

VS Code の UI のレンダリングに GPU がどのように使用されているかに関連していると思われる issue レポートがユーザーから寄せられています。これらのユーザーは、追加の --disable-gpu コマンドライン引数を付けて VS Code を実行すると、はるかに快適なエクスペリエンスを得られます。この引数を付けて実行すると、GPU ハードウェアアクセラレーションが無効になり、ソフトウェアレンダラーにフォールバックします。

より簡単に使用できるように、このフラグを設定として追加して、毎回コマンドラインで渡す必要がないようにすることができます。

このフラグを追加するには

  • コマンドパレットを開きます (⇧⌘P (Windows、Linux Ctrl+Shift+P))。
  • Preferences: Configure Runtime Arguments コマンドを実行します。
  • このコマンドを実行すると、ランタイム引数を構成するための argv.json ファイルが開きます。すでにいくつかのデフォルトの引数が表示されている場合があります。
  • "disable-hardware-acceleration": true を追加します。
  • VS Code を再起動します。

注: 問題が発生している場合を除き、この設定は使用しないでください!

エディター

言語ごとの files.eol

files.eol 設定を言語ごとに設定できるようになりました。たとえば、'mylanguage' 言語識別子のすべてのファイルが、すべての新しいファイルのデフォルトの行末シーケンスとして \n を使用するように定義できます。

"[mylanguage]": {
   "files.eol": "\n"
}

行末シーケンスは、新しいファイルに使用されます。既存のファイルの場合、現在の行末シーケンスは常に保持されます。既存のファイルの行末シーケンスを変更するには、Change End Of Line Sequence コマンドを使用します。

files.eol 言語設定を使用すると、'shellscript' のデフォルトの行末シーケンスが \n として定義されるようになりました。

ミニマップのスケーリングとフォントレンダリングの改善

新しい設定 editor.minimap.scale は、ミニマップのサイズをいくつかの定数値の 1 つに設定します。これは、高 DPI または超ワイドディスプレイに特に役立ちます。また、ミニマップのフォントのレンダリングがよりスムーズでクリアになりました。

Animated image showing the ability to resize the minimap

キーボードからの定義プレビューホバー

定義プレビューホバーウィジェットのアクセシビリティを向上させるための新しいコマンド Show Definition Preview Hover があります。これは、マウスでシンボルをホバーし、プラットフォームと構成に応じて修飾キーを押すことでトリガーできます。以前は、コマンド Show Hover のみが提供されていましたが、これはマウスカーソルをシンボル上にホバーするのと同じです。Show Definition Preview Hover を使用すると、キーボードから詳細なホバー情報を表示できるようになりました。

Animated image showing the use of the new Show Definition Preview Hover command

括弧のマッチングの改善

以前は、VS Code はカーソルが括弧文字の隣にある場合にのみ、一致する括弧を強調表示していました。現在、VS Code は、囲み括弧が存在する場合は常に強調表示します。

Image showing highlighted enclosing brackets

また、Go to Bracket および Select to Bracket アクションを調整して、囲み括弧を使用するようにしました。

選択範囲の複製

Duplicate Selection という名前の新しいアクションを追加しました。実行すると、現在の選択範囲が複製され、結果が選択されます。選択範囲がない場合、現在の行が複製されます。これらはすべて、システムクリップボードに書き込むことなく行われます。

フォント機能設定

フォント機能をより細かく制御できるようになりました。"editor.fontLigatures": true を構成すると、VS Code は ligacalt をオンにします。ただし、一部のフォントには、Fira Code で使用されているスタイルのセットなど、より多くの設定があります。

これらのフォント機能を明示的に制御できるようになりました。たとえば、

"editor.fontFamily": "Fira Code",
"editor.fontLigatures": true,
"[javascript]": {
  "editor.fontLigatures": "'ss02', 'ss19'",
},

上記の設定では、エディターで Fira Code フォントファミリーを使用し、すべての言語でフォントリガチャをオンにし、JavaScript ファイルで「水平バー」('ss02')と「ドット付きゼロ」('ss19')フォント機能設定を有効にするように構成します。これにより、JavaScript で >= リガチャが水平バーでレンダリングされ、0 が内部にドット付きでレンダリングされます。

Image showing font feature settings in the editor

Unicode 結合文字の処理の改善

Unicode 結合文字の処理を改善し、そのようなシーケンスをアトミック文字として扱います(カーソル移動、編集操作、またはブロックカーソルレンダリングにおいて)。これは、ブロックカーソルスタイルと前後のアニメーションを使用すると最もよくわかります。


Animation showing cursor movement before


Animation showing cursor movement after

関連する変更として、ステータスバーに Col セクションの Unicode ポイント数が表示されるようになりました。

カーソルリドゥ

Soft Undo コマンドの名前が Cursor Undo に変更されました。このアクションは、たとえば、⌘D (Windows、Linux Ctrl+D) を使用して次のマッチを選択し、1 回行き過ぎた場合などに便利です。これは、最後のカーソル状態の変更のみを元に戻すためです。さらに、以前に元に戻したカーソル状態の変更をやり直す Cursor Redo が追加されました。

差分エディターの改善

組み込みの差分計算には、以前は 5 秒のハードコードされたタイムアウトがあり、それを過ぎるとあきらめて最小限でない差分を返していました。"diffEditor.maxComputationTime" を使用してこのタイムアウトを設定できるようになりました。タイムアウトを 0 に設定すると、時間がどれだけかかっても常に最小限の差分を計算します。さらに、計算に 1 秒以上かかる場合、差分エディターに進捗バーが表示されるようになりました。

差分エディターを使用する際の混乱の原因の 1 つは、先頭または末尾の空白文字のみが異なるファイルを比較し、差分エディターが末尾の空白文字を無視するように構成されている場合でした。これにより、ソース管理ではファイルが変更済みとして表示されますが、差分エディターでは差分が表示されません。VS Code は、このケースを検出すると、Show Whitespace Differences ボタンを表示して、空白文字の差分をすばやく表示できるようにします。これは、差分エディターの上部にある Show/Ignore Trim Trailing Whitespace Difference コマンドを使用して切り替えることができます。

Animation for button that shows when comparing two files that contain only whitespace diffs but the diff editor is configured to ignore trim whitespace

統合ターミナル

コードがデフォルトでサポートされるようになりました

新しい設定 terminal.integrated.allowChords (デフォルトは true) では、コードキーバインディングの一部であるキーバインディングが、評価のためにターミナルをスキップし、代わりに VS Code によって処理されるようにします (terminal.integrated.commandsToSkipShell 許可リストをバイパスします)。

ターミナルでのキーバインディングに関する同じ制限が引き続き適用されることに注意してください。この評価を行う際には、優先順位が最も高いコードキーバインディングが考慮されます。

たとえば、拡張機能がキーバインディング Ctrl+M A を提供し、keybindings.json ファイルに次のように定義されている場合、

[
  { "key": "ctrl+m a", "command": "workbench.action.terminal.toggleTerminal" },
  { "key": "ctrl+m a", "command": "workbench.action.focusLastEditorGroup" }
]

Ctrl+M A は、最後のキーバインディングであり、ユーザーキーバインディングは拡張機能が提供するキーバインディングよりも優先順位が高いため、workbench.action.focusLastEditorGroup コマンドの実行につながります。

高速スクロールのサポート

ターミナルは、editor.fastScrollSensitivity 設定で定義された乗数に基づいて、マウスホイールで Alt を押すとより高速なスクロールをサポートするようになりました。

右クリック動作の新しい「貼り付け」オプション

rightClickBehavior 設定に、右クリック時に常にターミナルに貼り付けるための新しいオプションが追加されました。

"terminal.integrated.rightClickBehavior": "paste"

単語を選択するためのダブルクリックで、より多くの区切り文字が使用されるようになりました

ターミナルで単語を選択するためにダブルクリックすると、文字 ,:、および ; が単語区切り文字としてカウントされるようになりました。

ターミナルの初期ワーキングディレクトリがシンボリックリンクに設定されている場合、シンボリックリンクはターミナルで保持されるようになりました。

コマンドナビゲーションがスクロール位置から機能するようになりました

コマンドナビゲーションを使用すると、ターミナルで実行されたコマンド間を移動したり、コマンド間を選択したりできます。これにより、ターミナルのスクロール位置が考慮されるようになり、スクロールして前のコマンドを見つけると、ターミナルはターミナルのビューポートから上にスクロールします(以前は下からスクロールしていました)。

Command navigation jumps to nearest command after scrolling

コマンドナビゲーションは、macOS でのみデフォルトで Cmd+Up/Down としてバインドされ、コマンド選択は Cmd+Shift+Up/Down としてバインドされます。

Windows または Linux でこの機能を使用する場合のキーバインディングの例を次に示します。

{
  // Terminal command tracking on Windows and Linux
  { "key": "ctrl+up",          "command": "workbench.action.terminal.scrollToPreviousCommand", "when": "terminalFocus" },
  { "key": "ctrl+down",        "command": "workbench.action.terminal.scrollToNextCommand", "when": "terminalFocus" },
  { "key": "ctrl+shift+up",    "command": "workbench.action.terminal.selectToPreviousCommand", "when": "terminalFocus" },
  { "key": "ctrl+shift+down",  "command": "workbench.action.terminal.selectToNextCommand", "when": "terminalFocus" },
}

タスク

タスククイックピッカーリスト

定義されたタスクが 1 つしかない場合、Tasks: Configure Task コマンドは常にタスクのクイックピッカーリストをスキップするようになりました。この動作を Tasks: Run Task およびその他のタスククイックピッカーに拡張するには、task.quickOpen.skip 設定を true に設定します。

新しい設定 task.quickOpen.history は、タスククイックピッカーに 最近使用した タスクとして表示されるタスクの数を制御します。task.quickOpen.history0 に設定すると、タスククイックピッカーの最近使用したタスクセクションが無効になります。

detail プロパティを持つタスクは、一部のタスクリストに表示されるようになりました。task.quickOpen.detailfalse に設定すると、タスククイックピッカーの詳細をオフにできます。

フォルダーの NPM スクリプトを実行するオプション

npm.enableRunFromFolder 設定が有効になっている場合、フォルダーが選択されていると、ファイルエクスプローラーのコンテキストメニューに Run NPM Script in Folder... コマンドが表示されます。このコマンドは、このフォルダーに含まれる NPM スクリプトのクイックピッカーリストを表示し、タスクとして実行するスクリプトを選択できます。

低速なタスクプロバイダーの警告

タスクプロバイダーの実行速度が遅い場合、速度低下を回避する方法の提案を含む警告が表示されるようになりました。警告は、個々のタスクタイプに対して無効にすることも、task.slowProviderWarningfalse に設定してすべてのタスクに対して無効にすることもできます。

Slow task provider warning

タスクの自動検出の無効化

関心のあるすべてのタスクが tasks.json ファイルで定義されている場合、タスクを実行するときのパフォーマンスを向上させるために、すべての拡張機能タスクプロバイダーを無効にすることができます。個々の拡張機能がタスクプロバイダーを無効にする設定を提供するのは良い習慣ですが、task.autoDetectoff に設定して、すべてのタスクプロバイダーを無効にできるようになりました。

問題マッチャーのプロンプト

以前は、問題マッチャーのないタスクは、問題マッチャーのプロンプトをスキップするために、tasks.json に空の問題マッチャーセットを設定する必要がありました。現在では、task.problemMatchers.neverPrompt を使用して、すべてのタスクまたは特定のタスクタイプに対して問題マッチャーのプロンプトを無効にすることができます。問題マッチャーのプロンプトには、プロンプトを無効にするための新しいオプションもあります。

Problem matcher prompt dropdown

ソース管理

アクティブなエディターの変更時にファイルを強調表示

ソース管理ビューで、アクティブなエディターファイルがツリー/リストビューで自動的に強調表示されるようになりました。

SCM view highlighting the active file

Git: 追跡されていないファイルの管理の改善

Git: Untracked Changes 設定を使用して、追跡されていないファイルを個別に管理できるようになりました。ソース管理ビューで追跡されていないファイルを別のグループに表示する場合は、separate オプションを選択します。追跡されていないファイルをまったく表示しない場合は、hidden を選択します。デフォルトのコミットアクションは、この設定に合わせて調整され、mixed 設定値を使用する場合にのみ、コミットに追跡されていない変更を含めます。

Git untracked files

Git: マージコミット時の自動コミットメッセージ

VS Code が git マージコミットの途中であることを検出すると、コミット入力ボックスに Git のデフォルトのコミットメッセージが自動的に入力されます。

Git merge commit message

Git: エクスプローラーで表示

ソース管理ビューの Git リポジトリから、ファイルエクスプローラーでファイルを表示するためのコンテキストメニューアクション Reveal in Explorer が追加されました。

Git Reveal in Explorer

Git: クローン進捗状況

クローン操作で、右下の通知に進捗状況を表示できるようになりました。

Git clone progress

デバッグ

概要ルーラーにブレークポイントを表示可能

大きなファイルでブレークポイントを操作する際に便利になるように、新しい設定 debug.showBreakpointsInOverviewRuler を有効にすることで、エディターの概要ルーラーにブレークポイントを表示できるようになりました。

breakpoints in overview ruler

複合デバッグ構成の PreLaunch タスク

現在、すべてのデバッグ構成は、preLaunchTask 属性を介してデバッグセッションを開始する前に実行するタスクを指定できます。これは、単一のプログラムをデバッグする場合はうまく機能しますが、複数のプログラムが関与する複合構成を使用する場合は扱いにくくなります。

このマイルストーンでは、複合デバッグ構成ごとの preLaunchTask のサポートを追加しました。この追加により、個々のデバッグセッションが開始される前に、単一のタスクですべてのデバッグターゲットをビルドできます。ビルドエラーが発生した場合、セッションは開始されません。

prelaunch task for compound debug configurations

言語

CSS メディアクエリシンボル

CSS/SCSS/Less ファイルでは、メディアクエリシンボルがアウトラインビュー、ブレッドクラムパス、および Go to Symbols in File リストに表示されるようになりました。

CSS media query symbols

typescript.tsserver.maxTsServerMemory

数千のファイルを含む大規模な TypeScript プロジェクトを操作している場合、新しい typescript.tsserver.maxTsServerMemory 設定を使用すると、IntelliSense を強化する TypeScript サーバーの最大メモリ使用量を増やすことができます。

拡張機能の作成

vscode.env.uiKind

新しい API vscode.env.uiKind が追加され、拡張機能が実行されている UI の種類を認識できるようになりました。ブラウザーで VS Code を実行できるようにするために、可能な値は UIKind.WebUIKind.Desktop です。

コール階層プロバイダー API

コール階層プロバイダー API を最終決定しました: CallHierarchyProvider。関数、メソッドなどの呼び出し元と呼び出し先を見つける Peek Call Hierarchy 機能をサポートしています。

タスク CustomExecution

CustomExecution タスクタイプ API が最終決定されました。シェルまたはプロセスタスクがタスクに適していない場合は、CustomExecution タスクを使用して、拡張機能でコールバックを実行できます。詳細については、タスクプロバイダー拡張機能ガイドを参照してください。

デバッグ API: "startDebugging" リクエストの "consoleMode" オプション

前回のマイルストーンでは、デバッグセッションの階層が単一のデバッグコンソールを共有するか、個別のコンソールを使用するかを制御するための新しい提案された API を導入しました。この API は公式になったため、Marketplace で公開されている拡張機能で使用できます。

アイコンカラートークン

アイコンの新しいカラートークンをようやく導入できることを嬉しく思います。特定の領域に徐々に追加していきます。以下は最初のバッチです。

シンボル

これらのアイコンは、アウトラインビュー、ブレッドクラムナビゲーション、および提案ウィジェットに表示されます。

  • symbolIcon.arrayForeground
  • symbolIcon.booleanForeground
  • symbolIcon.classForeground
  • symbolIcon.colorForeground
  • symbolIcon.constructorForeground
  • symbolIcon.constantForeground
  • symbolIcon.enumeratorForeground
  • symbolIcon.enumeratorMemberForeground
  • symbolIcon.eventForeground
  • symbolIcon.fieldForeground
  • symbolIcon.fileForeground
  • symbolIcon.folderForeground
  • symbolIcon.functionForeground
  • symbolIcon.interfaceForeground
  • symbolIcon.keyForeground
  • symbolIcon.keywordForeground
  • symbolIcon.methodForeground
  • symbolIcon.moduleForeground
  • symbolIcon.namespaceForeground
  • symbolIcon.nullForeground
  • symbolIcon.numberForeground
  • symbolIcon.objectForeground
  • symbolIcon.operatorForeground
  • symbolIcon.packageForeground
  • symbolIcon.propertyForeground
  • symbolIcon.referenceForeground
  • symbolIcon.snippetForeground
  • symbolIcon.stringForeground
  • symbolIcon.structForeground
  • symbolIcon.textForeground
  • symbolIcon.typeParameterForeground
  • symbolIcon.unitForeground
  • symbolIcon.variableForeground

Symbol icon colors

問題と通知

問題と通知のアイコンのデフォルトカラーをエディターの前景色から継承するように設定しました。そのため、これらのカラーを変更すると、他の領域に継承されます。

Problem icon colors

問題パネルと通知のアイコンカラーを明示的に設定することもできます。

  • problemsErrorIcon.foreground
  • problemsWarningIcon.foreground
  • problemsInfoIcon.foreground
  • notificationsErrorIcon.foreground
  • notificationsInfoIcon.foreground
  • notificationsWarningIcon.foreground

電球

電球アイコンもテーマ設定可能です。

  • editorLightBulb.foreground
  • editorLightBulbAutoFix.foreground

Lightbulb icon colors

vscode.env.asExternalUri

vscode.env.asExternalUri API を使用すると、拡張機能は、拡張機能が実行されている場所からの 外部 URI (http: または https: URI など) を、クライアントマシン上の同じリソースの URI に解決できます。これは、vscode.env.openExternal API のコンパニオンです。ただし、解決された URI を外部プログラムを使用して開く代わりに、結果を拡張機能に返します。

import * as vscode from 'vscode';
import * as http from 'http';

const PORT = 3000;

export function activate(context: vscode.ExtensionContext) {
  startLocalServer(PORT);

  context.subscriptions.push(
    vscode.commands.registerCommand('example.command', async () => {
      const resolved = vscode.env.asExternalUri(
        vscode.Uri.parse(`http://localhost:${PORT}`)
      );
      vscode.window.showInformationMessage(
        `Resolved to: ${resolved} on client and copied to clipboard`
      );
      vscode.env.clipboard.writeText(resolved.toString());
    })
  );
}

function startLocalServer(port: number) {
  const server = http.createServer((req, res) => {
    res.end('Hello world!');
  });
  server.on('clientError', (err, socket) => {
    socket.end('HTTP/1.1 400 Bad Request\r\n\r\n');
  });
  server.listen(port);
  vscode.window.showInformationMessage(`Started local server on port: ${port}`);
}

http: および https: URI の場合、拡張機能がクライアントマシンで実行されている場合、asExternalUri は何もしません。ただし、拡張機能がリモートで実行されている場合、vscode.env.asExternalUri は、ローカルマシンからリモートの target へのポートフォワーディングトンネルを自動的に確立し、トンネルへのローカル URI を返します。

asExternalUrivscode.env.uriScheme URI で呼び出された場合、ブラウザーで開かれた場合 (たとえば、openExternal 経由で) に、登録された URI ハンドラーがトリガーされる URI を返します。

実験的なカスタムデータ設定とコントリビューションポイントの削除

[html/css].experimental.customData 設定と contributes.[html/css].experimental.customData コントリビューションポイントは、1.38 で非推奨となり、削除されました。代わりに、安定版のカスタムデータ設定とコントリビューションポイントを使用できます。カスタムデータ形式の詳細については、microsoft/vscode-custom-data リポジトリを参照してください。

extensionKind は配列にすることができます

package.json では、extensionKind プロパティは、リモートケースで拡張機能を実行する場所を示すために、値 "ui" または "workspace" を持つことができます。このリリースでは、extensionKind は配列にすることができます。たとえば、["ui", "workspace"] は、拡張機能が "ui" 側と "workspace" 側の両方で実行でき、"ui" 側にインストールされている場合は、"ui" 側で実行することを優先することを示します。

提案された拡張機能 API

すべてのマイルストーンには、新しい提案された API が付属しており、拡張機能の作成者はそれらを試すことができます。いつものように、フィードバックをお待ちしております。提案された API を試すには、次の手順を実行する必要があります。

  • 提案された API は頻繁に変更されるため、Insiders を使用する必要があります。
  • 拡張機能の package.json ファイルに、"enableProposedApi": true という行が必要です。
  • vscode.proposed.d.ts ファイルの最新バージョンをプロジェクトのソースロケーションにコピーします。

提案された API を使用する拡張機能を公開することはできません。次のリリースで重大な変更が発生する可能性があり、既存の拡張機能を壊したくありません。

IntelliSense 置換モードのサポート

提案が既存のテキストを置き換えるか、単に挿入されるかをユーザーが決定できる機能に取り組んでいます。たとえば、con|st 内で console を受け入れると、console (置換) または consolest (挿入) になる可能性があります。どちらのモードにもメリットがあり、最終的には現在のコンテキストとユーザーの好みに依存します。この機能を最適に機能させるには、拡張機能で何をすべきかを指示する必要があります。したがって、CompletionItem#range プロパティに新しいタイプを追加することを提案します。次のように変更します。

interface CompletionItem {
  range?: Range | { insert: Range; replace: Range };
}

範囲は引き続きオプションであるか、単純な範囲にすることができますが、挿入用と置換用の 2 つの範囲にすることもできます。詳細については、Issue #10266 を参照してください。

タスクの詳細

UI に表示されるときにタスクに detail を追加するためにタスクプロバイダーが使用できる Task の新しいプロパティがあります。tasks.json で detail プロパティを使用することもできます。組み込みの npm 拡張機能は、タスクの詳細を使用して、実行される npm スクリプトを表示します。

tasks with detail

Custom Editors への WebviewPanelOptions の受け渡しをサポート

このイテレーションでは、Custom Editor API 提案に関する作業を継続しました。提案された registerWebviewEditorProvider 関数は、カスタムエディターの WebView で retainContextWhenHidden およびその他の機能を有効にする options のセットを受け取るようになりました。

export function registerWebviewEditorProvider(
  viewType: string,
  provider: WebviewEditorProvider,
  options?: WebviewPanelOptions
): Disposable;

エンジニアリング

ブラウザーで実行中の VS Code のテスト

VS Code をブラウザーで実行できる最小限のセットアップが開発とテストで使用できるようになりました。ブラウザーインスタンスにはまだいくつかの機能が欠落しており、活発に開発が進められています。

vscode リポジトリのローカルフォークで、コマンドラインから yarn web を実行し、http://localhost:8080/ にアクセスします。vscode リポジトリのクローン作成とビルドの詳細については、セットアップ手順を参照してください。

VS Code running in a browser

注: このセットアップを本格的な開発に使用しないでください。目的は、コミュニティが VS Code に変更をコントリビューションして、ブラウザーでの全体的なエクスペリエンスを向上させることです。

TypeScript 3.7 での VS Code のビルド

VS Code は、TypeScript 3.7 を使用してビルドされるようになりました。これにより、オプションチェーン (?.) をコードベースで使用できるようになり、(その他多くの改善ももたらされます) 、エキサイティングなアップデートです。

今日から VS Code で TypeScript 3.7 機能の使用を開始するには、JavaScript and TypeScript Nightly 拡張機能をインストールしてください。

Electron 6.0 アップデート

このマイルストーンでは、Electron 6 を VS Code にバンドルする調査を完了し、この Electron バージョンが安定版で出荷されるのは初めてです。これは主要な Electron リリースであり、Chromium 76.0.3809.146 および Node.js 12.4.0 (Chromium 69 および Node.js 10.11.0 を搭載した現在のバージョンからの大きな飛躍) が付属しています。

Electron 7 へのアップデートの調査を開始しました。近日中に Insiders にプッシュしたいと考えています。

注目すべき修正

  • 78634: ターミナルのコンテンツがサイズ変更時に消える (powershell/conpty)
  • 25854: Markdown プレビューをドラッグして新しいエディターグループを開始できない
  • 81824: Webview エディターが [履歴から前のエディターを開く] コマンドに表示されない

謝辞

最後に、重要なことですが、VS Code をさらに良くするためにご協力いただいた以下の皆様に、心から感謝申し上げます!

issue 追跡への貢献

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

vscode への貢献

language-server-protocolへの貢献

vscode-eslintへの貢献

vscode-json-languageserviceへの貢献

vscode-css-languageserviceへの貢献

node-jsonc-parserへの貢献

debug-adapter-protocolへの貢献

vscode-vsceへの貢献

inno-updaterへの貢献

localizationへの貢献

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

これは貢献者のスナップショットです。貢献者名リストを含むプロジェクトの詳細については、プロジェクトサイト(https://aka.ms/vscodeloc)をご覧ください。

  • ボスニア語(ラテン文字、ボスニア・ヘルツェゴビナ): Adnan Rizvan。
  • チェコ語: Michal Franc、Jan Hruby。
  • デンマーク語: Lasse Stilvang、Frederik bruun。
  • オランダ語: Laurens Kwanten、Lemuel Gomez、Niels ter Haar。
  • 英語(英国): Graham Smith、Martin Littlecott、Alexander McLean。
  • フランス語: Antoine Griffard、Rodolphe NOEL、Bruno Lewin、Maxime Bouveron、DJ Dakta。
  • ドイツ語: Simon Haag、Adrian Bähr、Julian Tomsik。
  • ヘブライ語: Ariel Bachar。
  • ヒンディー語: Kishan K、Rohit Raj。
  • 中国語(簡体字): Yizhi Gu、paul cheung、斌 项、顺 谭、一斤瓜子、Charles Lee、Peng Zeng、Charles Dong、楠 姜、yungkei fan、ztluo、David Huang、普鲁文、Zhen-Qi Liu、zhichen zhao、Phil Wang。
  • 中国語(繁体字): Jimmy Hu、船長、E L、Winnie Lin。
  • インドネシア語: Jakka Prihatna、Eriawan Kusumawardhono、Nicko Satria Utama、Christian Elbrianno、Septian Adi。
  • イタリア語: Alessandro Alpi、Luigi Bruno。
  • 日本語: 大嶋 雄太、熊本 道彦、戸倉 彩、天明 将和、不破 貴之、牧野 宏一。
  • 韓国語: Hongju、Sungjin Jeong。
  • ポーランド語: Andrzej Poblocki、Kacper Łakomski。
  • ポルトガル語(ブラジル): Marcelo Fernandes、Marcondes Alexandre、Roberto Fonseca、Alessandro Fragnani、Arthur Renato、Jota Freitas Jr、Caio Felippe Curitiba Marcellos。
  • ポルトガル語(ポルトガル): Pedro Filipe。
  • ルーマニア語: Andrei Tudor、Bogdan Mateescu、Stefan Gabos。
  • ロシア語: Kazakov Lex、Vadim Svitkin、TJS。
  • スペイン語: Aleks M、José María Aguilar、Jerónimo Milea、Ricardo Estrada Rdez、Abdón Rodríguez P..
  • スウェーデン語: Sven Axelsson、Patric Högman。
  • タミル語: Pradeep Krishnan。
  • トルコ語: Ahmetcan Aksu、Cansu Gürler、Mehmet Yönügül、Umut Can Alparslan。
  • ウクライナ語: Arthur Murauskas、Oleh Hatsenko、Oleksandr Krasnokutskyi、Did Kokos。
  • ベトナム語: huy dk、Việt Anh Nguyễn、Ha Xuan Anh Nguyen、Quoc Han Dinh。