に参加して、VS Code の AI 支援開発について学びましょう。

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

更新 1.40.1: この更新はこれらのイシューに対応しています。

更新 1.40.2: この更新はこれらのイシューに対応しています。

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


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

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

Burn down chart of VS Code issues

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

Workbench

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

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

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の使用方法に関連していると思われる問題報告を受けています。これらのユーザーは、追加の--disable-gpuコマンドライン引数でVS Codeを実行すると、はるかに優れたエクスペリエンスを体験できます。この引数で実行すると、GPUハードウェアアクセラレーションが無効になり、ソフトウェアレンダラーにフォールバックします。

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

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

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

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

Editor

files.eol言語ごとの設定

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

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

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

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

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

新しい設定editor.minimap.scaleは、ミニマップのサイズをいくつかの定数値のいずれかに構成し、特に高DPIまたは超広角ディスプレイに役立ちます。また、ミニマップのフォントのレンダリングがより滑らかで鮮明になりました。

Animated image showing the ability to resize the minimap

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

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

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

ブラケットマッチングの改善

以前は、VS Code はカーソルがブラケット文字の隣にある場合にのみ一致するブラケットを強調表示していました。現在は、VS Code は常に、閉じているブラケットが存在すればそれを強調表示します。

Image showing highlighted enclosing brackets

また、ブラケットに移動ブラケットまで選択アクションも、囲んでいるブラケットを使用するように調整しました。

選択範囲の複製

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

フォント機能設定

フォント機能に対して、よりきめ細かな制御ができるようになりました。"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ポイント数が表示されるようになりました。

カーソルリドゥ

ソフトアンドゥコマンドはカーソルアンドゥに名称変更されました。このアクションは、例えば⌘D (Windows、Linux Ctrl+D)を使って次の一致を選択し、一度行き過ぎた場合に便利です。最後のカーソル状態変更のみをアンドゥします。さらに、カーソルリドゥを追加し、以前アンドゥされたカーソル状態変更をリドゥできるようになりました。

差分エディターの改善

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

差分エディタを使用する際、先頭または末尾の空白のみが異なるファイルを比較し、差分エディタが空白のトリムを無視するように設定されている場合に混乱の元となっていました。これにより、ソース管理ではファイルが変更されたと表示される一方で、差分エディタでは差分が表示されないという結果になっていました。VS Codeは、このケースを検出すると、空白の差分を素早く表示するのに役立つ空白の差分を表示ボタンを表示するようになりました。これは、差分エディタの上部にある末尾の空白の差分を表示/無視コマンドを使用して切り替えることができます。

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つしか定義されていない場合、常にクイックピックタスクリストをスキップするようになりました。この動作をタスク: タスクを実行やその他のタスククイックピックにも適用するには、task.quickOpen.skip設定をtrueに設定します。

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

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

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

設定npm.enableRunFromFolderが有効になっている場合、フォルダが選択されていると、ファイルエクスプローラーのコンテキストメニューにフォルダ内でNPMスクリプトを実行...コマンドが表示されます。このコマンドは、このフォルダに含まれる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: 未追跡の変更設定を使用して、未追跡ファイルを個別に管理できるようになりました。ソース管理ビューで未追跡ファイルを別のグループで表示したい場合は、separateオプションを選択します。未追跡ファイルを常に表示したくない場合は、hiddenを選択します。デフォルトのコミットアクションは、この設定に合わせて調整され、mixed設定値を使用している場合にのみ、未追跡の変更をコミットに含めます。

Git untracked files

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

VS Codeは、gitマージコミットの途中にいることを検出すると、自動的にGitのデフォルトコミットメッセージをコミット入力ボックスに設定します。

Git merge commit message

Git: エクスプローラで開く

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

Git Reveal in Explorer

Git: クローン進行状況

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

Git clone progress

デバッグ

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

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

breakpoints in overview ruler

複合デバッグ構成のプリランチタスク

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

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

prelaunch task for compound debug configurations

言語

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

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

CSS media query symbols

typescript.tsserver.maxTsServerMemory

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

拡張機能作成

vscode.env.uiKind

拡張機能がどのようなUIで実行されているかを知ることができるように、新しいAPI vscode.env.uiKindが追加されました。ブラウザでVS Codeを実行できるように、可能な値はUIKind.WebUIKind.Desktopです。

呼び出し階層プロバイダAPI

呼び出し階層プロバイダAPI (CallHierarchyProvider) を完成させました。これは、関数、メソッドなどの呼び出し元と呼び出し先を検索する呼び出し階層をピーク機能をサポートします。

タスク 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のコンパニオンです。

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(`https://:${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を返します。

vscode.env.uriScheme URIでasExternalUriが呼び出されると、ブラウザで開かれた場合(例えば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" 側での実行を優先します。

提案された拡張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でも詳細プロパティを使用できます。組み込みのnpm拡張機能は、タスク詳細を使用して実行されるnpmスクリプトを表示します。

tasks with detail

Custom EditorsへのWebviewPanelOptionsの渡しのサポート

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

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

エンジニアリング

ブラウザで実行中のVS Codeをテストする

開発およびテスト用に、ブラウザで実行できるVS Codeの最小限のセットアップが利用できるようになりました。ブラウザインスタンスにはまだいくつかの機能が不足しており、活発に開発中です。

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

VS Code running in a browser

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

TypeScript 3.7でVS Codeを構築

VS CodeはTypeScript 3.7を使用して構築されるようになりました。これは、コードベースでオプションチェーン (?.)を使用できるようになった (および他の多くの改善をもたらした) という点で、胸躍る更新です。

JavaScript and TypeScript Nightly拡張機能をインストールすることで、今日からVS CodeでTypeScript 3.7の機能を使用できます。

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への更新の調査を開始しました。近いうちにインサイダーにプッシュしたいと考えています。

注目すべき修正点

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

ありがとうございます

最後に、そしてもちろん最も重要なこととして、Visual Studio Codeをさらに良くするために協力してくれた以下の方々に、心からの感謝を申し上げます!

問題追跡への貢献者

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

vscodeへの貢献者

language-server-protocolへの貢献者

vscode-eslintへの貢献者

vscode-json-languageserviceへの貢献

vscode-css-languageserviceへの貢献者

node-jsonc-parserへの貢献

debug-adapter-protocolへの貢献者

vscode-vsceへのコントリビューション

inno-updaterへの貢献

localizationへの貢献

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

貢献者の概要はこちらです。貢献者名リストを含むプロジェクトの詳細については、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.
© . This site is unofficial and not affiliated with Microsoft.