2018年10月 (バージョン 1.29)
更新 1.29.1: この更新では、これらの問題に対処しています。
ダウンロード: Windows: x64 | Mac: Intel | Linux 64-bit: deb rpm tarball | 32-bit: deb rpm tarball
Visual Studio Code の2018年10月リリースへようこそ。このバージョンでは、いくつか重要な更新が行われています。主なハイライトをいくつかご紹介します。
- 複数行検索 - 正規表現の複数行式を使用してファイルを検索します。
- IntelliSense のファイルアイコン - IntelliSense でファイルの種類を素早く識別します。
- macOS のサポートを強化 - フルスクリーンモードの制御と Mojave ダークモードのサポート。
- 折りたたみ可能なスタックフレーム - 関係ないスタックフレームを折りたたんでコードを明確に表示します。
- 読み込まれたスクリプトビューの改善 - 元のソースファイルなどの関連リソースを表示します。
- 更新された拡張機能サンプル - 統一されたスタイルと構造、README、および API 使用法。
- 拡張機能用 CI レシピ - 拡張機能用 Azure Pipelines ビルドレシピ。
- プレビュー: すべての参照を検索 - すべての参照を検索ビューに参照検索結果を表示します。
これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com の 更新 にアクセスしてください。
この 1.29 リリースに関するハイライトビデオも、Cloud Developer Advocate のBrian Clark が公開しています。
リリースノートは、VS Codeの重点分野に関連する以下のセクションにまとめられています。さらに詳しい更新は以下の通りです。
- ワークベンチ - プラットフォーム固有の行末文字、変更されたファイルタブのハイライト表示。
- 統合ターミナル - ターミナルを分割する際の cwd オプション、Cmd+Backspace で行頭まで削除。
- 言語 - ホバー時に CSS の詳細度を表示、不明な CSS プロパティの処理。
- デバッグ - 複数のデバッグコンソール、エントリで停止して開始、console.log メッセージのスタイル設定。
- 拡張機能のオーサリング - アクティブターミナル API、カスタムビューのより詳細な制御。
Insiders: 新しい機能をできるだけ早く見たいですか?毎日のInsidersビルドをダウンロードして、利用可能になり次第最新のアップデートを試すことができます。Visual Studio Codeの最新ニュース、アップデート、コンテンツについては、Twitterで@codeをフォローしてください!
検索
複数行検索
VS Code が複数行検索をサポートするようになりました!エディターと同様に、正規表現検索は、\n リテラルを含む場合にのみ複数行モードで実行されます。検索ビューでは、各複数行の一致の横に、追加の一致行数を示すヒントが表示されます。

この機能は、ripgrep ツールで複数行検索を実装した成果です。
検索における後方参照と先読み
"search.usePCRE2": true を設定することで、正規表現検索で後方参照と先読みアサーションを使用できるようになりました。これにより、ripgrep はPCRE2 正規表現エンジンを使用するように構成されます。PCRE2 は他の多くの機能をサポートしていますが、開いているエディターはエディターの JavaScript ベースの検索を使用して検索されるため、JavaScript で有効な正規表現のみをサポートしています。

後方参照アサーションがまだ不足している場合でも心配しないでください!この機能は最近 JavaScript でサポートされたばかりであり、今後の Electron シェルアップデートで VS Code に搭載されるはずです。
検索に改行番号を表示
検索ビューで各一致の行番号を表示する設定 search.showLineNumbers を追加しました。
検索と置換のプレビューを無効にする
検索ビューで検索/置換を実行したときに表示されるプレビューの差分を無効にできる新しい設定 search.useReplacePreview があります。

検索でグローバル .gitignore ファイルを使用する
Git では、core.excludesfile 設定プロパティを使用してグローバルな gitignore ファイルを構成できます。デフォルトでは、検索はグローバルな gitignore ファイルを尊重しませんが、新しい設定 search.useGlobalIgnoreFiles を有効にすることで、これを変更できるようになりました。
Workbench
macOS Mojave ダークモードのサポート
macOS Mojave ダークモードが VS Code でより適切にサポートされるようになりました。以前は、macOS がダークテーマで実行されていても、VS Code のメニューとダイアログはデフォルトのライトテーマで表示されていました。これで、すべてのネイティブ UI 要素は、ダークモードが有効になっている場合はダークモードで表示されます。

macOS フルスクリーンサポート
新しい設定 window.nativeFullScreen が導入され、これを false に設定すると、ネイティブ macOS フルスクリーン機能を使用しない VS Code のフルスクリーンモードが有効になります。これにより、フルスクリーンモードに入ってもデスクトップに macOS スペースが作成されないという利点があります。デフォルトでは、VS Code は引き続き macOS ネイティブフルスクリーンを使用します。
files.eol の新しいデフォルト: auto
行末設定 files.eol の新しいデフォルト値が auto になりました。auto に設定すると、新しいファイルの行末文字はオペレーティングシステム固有になります。Windows では \r\n、macOS と Linux では \n です。引き続き file.eol を明示的に \n または \r\n に設定することもできます。
変更されたタブの強調表示
新しい設定 workbench.editor.highlightModifiedTabs は、エディターがダーティ (未保存の変更がある) のときに、エディタータブの上部に太い枠線を表示します。これにより、保存する必要があるファイルを簡単に見つけることができます。枠線の色はカスタマイズできます (下記参照)。

中央揃えエディターレイアウトの自動サイズ変更
中央揃えレイアウトビューは、複数のエディターグループが開いている場合に、自動的に最大幅にサイズ変更されるようになりました。これにより、中央揃えレイアウトが使いやすくなり、手動での切り替えが少なくなります。この動作は、デフォルトで有効になっている新しい設定 workbench.editor.centeredLayoutAutoResize によって制御されます。
パンくずリストのシンボル順序
パンくずリストのピッカーでシンボルがどのように並べられるかを制御する新しい設定 breadcrumbs.symbolSortOrder があります。
許可される値は次のとおりです
position- ファイル内の位置 (デフォルト)name- アルファベット順type- シンボルタイプ順
以下の例は、名前で並べ替えられたパンくずリストのシンボルリストを示しています。

パンくずリストとプレビューエディター
パンくずリストナビゲーションの項目を中央クリックすると、新しいエディターで開かれ、プレビューエディターは再利用されません。この動作は、エクスプローラーでファイルを中央クリックする動作と一致するようになりました。
ボタンが表示されていても通知が自動的に非表示になる
以前は、ボタンが含まれている場合、VS Code は通知を非表示にすることはありませんでした。これにより、通知が右下隅にたまり、エディターの一部が隠れる可能性がありました。このリリースでは、ボタンが表示されていても、通知はタイムアウト後に非表示になります。
2つの例外があります
- ユーザーが何らかの操作を行う必要があるという前提で、
errorの重要度を持つ通知は非表示になりません。 - VS Code からのいくつかの特定の通知は開いたままになります。たとえば、VS Code Marketplace を参照した後に拡張機能をインストールするかどうかを尋ねる通知などです。
注: 通知が非表示になっても、ステータスバーの小さなベルアイコンをクリックするか、通知の表示 (notifications.toggleList) コマンドから、いつでもすべての通知にアクセスできます。
パネル位置ボタンをコンテキストメニューに移動
水平方向のスペースを節約し、ごちゃごちゃ感を減らすため、パネルタイトル領域からパネル位置切り替えボタン (右に移動、下に移動) を削除しました。このアクションは、パネルタイトル領域のコンテキストメニューと、表示 > 外観 > パネル位置の切り替え メインメニューで利用できるようになりました。このボタンを削除したもう1つの理由は、ユーザーはレイアウトを一度設定すれば、通常は行ったり来たりしないと考えているためです。

ファイルタイプごとのファイルアイコンを更新
前回のリリースで、一般的な VS Code ファイルタイプにカスタムアイコンを追加しました。今回、これらのアイコンをより小さなビューにも追加したため、リストビューにも表示されるようになります。
![]()
設定エディターの「変更元」ヒントがリンクに
設定エディターでは、設定が現在選択されているスコープ以外のスコープ(ユーザー、ワークスペース)で構成されている場合にヒントを表示します。この他のスコープのヒントは、他のスコープの設定に移動するリンクになりました。

ツリーウィジェットのパフォーマンス
VS Code のツリーウィジェットコントロールは、VS Code UI の多くの場所で使用されていますが、一部の特定のユースケース (問題パネル、アウトラインビュー) でパフォーマンスの限界に達していました。私たちは、パフォーマンスと API の利便性の異なるレベルに対応できる、より高速な仮想ツリーウィジェット実装に取り組んできました。詳細については、こちら を参照してください。
新しい ObjectTree ウィジェットが問題パネルで使用されるようになり、すでに大幅な改善が見られます。ワークベンチが処理できる問題項目の数を劇的に増やすことができ、特定の操作 (すべて折りたたむなど) の速度と高度なフィルタリングシナリオも向上しました。これらの改善により、より大きなコレクションサイズでも作業できるようになりました。
ワークベンチナビゲーションコマンド
ワークベンチのナビゲーションを改善するために、4つのコマンドが追加されました。
workbench.action.nextSideBarView: サイドバーの次のビューに移動します。workbench.action.previousSideBarView: サイドバーの前のビューに移動します。workbench.action.nextPanelView: 次のパネルに移動します。workbench.action.previousPanelView: 前のパネルに移動します。
デフォルトでは、これらのコマンドにはキーボードショートカットはありません。
sideBarFocus と panelFocus の2つのコンテキストキーも追加されました。これにより、異なるワークベンチ領域で同じキーバインディングを異なるコマンドに使用できます。
[
{ "key": "cmd+]", "command": "workbench.action.nextEditor" },
{ "key": "cmd+[", "command": "workbench.action.previousEditor" },
{
"key": "cmd+]",
"command": "workbench.action.nextSideBarView",
"when": "sideBarFocus"
},
{
"key": "cmd+[",
"command": "workbench.action.previousSideBarView",
"when": "sideBarFocus"
},
{
"key": "cmd+]",
"command": "workbench.action.nextPanelView",
"when": "panelFocus"
},
{
"key": "cmd+[",
"command": "workbench.action.previousPanelView",
"when": "panelFocus"
}
]

ビューグループの親を表示
ビューを開く コマンド (クイックオープンで view) は、ビュー階層をより適切に表現するために、各ビューグループの親を表示するようになりました。たとえば、エクスプローラーグループは サイドバー / エクスプローラー として表示され、ターミナルグループは パネル / ターミナル として表示されます。

Editor
IntelliSense のファイルとフォルダーのアイコン
IntelliSense ウィジェットは、ファイルアイコンテーマに基づいて、ファイル補完のためのファイルとフォルダーのアイコンを表示するようになりました。これにより、統一された外観が提供され、さまざまなファイルタイプをすばやく識別できます。
![]()
選択範囲のフォーマット
小さなフォーマット操作を高速化するため、エディター選択なしの 選択範囲のフォーマット コマンドは、現在の行をフォーマットするようになりました。
エラーコードの表示
エラーコードが定義されている場合、エディターは問題のエラーコードを表示するようになりました。エラーコードは、行末に角括弧で囲まれて表示されます。
以下に、TypeScript がエラーコード '2339' を表示しているのを見ることができます。

統合ターミナル
分割ターミナルが作業ディレクトリを継承できるようになりました
ターミナルが分割されたときに、新しいターミナルの現在の作業ディレクトリ (cwd) を制御する設定 terminal.integrated.splitCwd が追加されました。
workspaceRoot- 以前の動作。新しい分割ターミナルは、ワークスペースのルートを作業ディレクトリとして使用します。マルチルートワークスペースでは、使用するルートフォルダーの選択肢が提示されます。initial- 新しい分割ターミナルは、親ターミナルが起動したときの作業ディレクトリを使用します。inherited- macOS および Linux では、新しい分割ターミナルは親ターミナルの作業ディレクトリを使用します。Windows では、これはinitialと同じ動作をします。
Cmd+Backspace で行頭まで削除
macOS に Cmd+Backspace の新しいキーバインディングが追加され、ターミナルに \u0015 (Ctrl+U) を送信します。bash では、これはカーソルから行頭までを削除し、zsh では行全体を削除します。
実験的なバッファの改善
新しい設定 terminal.integrated.experimentalBufferImpl を使用すると、ターミナルがバッファーを TypedArray/ArrayBuffer ベースの実装で格納する方法を変更できます。オプトインすると、メモリ使用量の削減やガベージコレクションの削減、ターミナルのスループット全体の向上など、全体的なパフォーマンスの向上が期待できます。
{
"terminal.integrated.experimentalBufferImpl": "TypedArray"
}
これはまだ始まりに過ぎず、この実装をデフォルトにする前に、今後数回のリリースでスループットとメモリ使用量のさらなる改善を期待しています。この数ヶ月にわたるプロジェクトの主な推進力となっているxterm.jsチームの@jerchに感謝します。
タスク
タスク実行前にターミナルをクリア
タスクの presentation 設定に新しいプロパティ clear が追加されました。タスクを実行する前にターミナルをクリアするには、clear プロパティを true に設定します。
デバッグ
折りたたみ可能なスタックフレーム
デバッガのコールスタックには、ユーザーにとって興味のないスタックフレーム (外部コード、スキップされたファイルなど) が含まれていることがあります。 clutter を減らし、垂直方向のスペースを節約するために、これらの興味のないスタックフレームは折りたたまれた状態で表示されるようになりました。

読み込まれたスクリプトビューの改善
このマイルストーンでは、読み込まれたスクリプトビューを更新してファイルアイコンをサポートし、関連リソースを子要素として表示する機能を追加しました。デバッグ拡張機能は、この機能を使用して、スクリプトにトランスパイルされたソースファイルを表示できます。
Node.js デバッガからの以下の図は、JavaScript ファイルの TypeScript ソース (ソースマップで利用可能) を示しています。

関連リソース機能には、デバッグ拡張機能によるオプトインが必要であることに注意してください。10月リリースでは、Node.js バージョン < 8.0 (別名「レガシー」) のみが、この機能の実験的なサポートを node-debug で提供しています。
複数のデバッグコンソール
複数のデバッグセッションをデバッグする場合、その出力が異なるデバッグコンソールに表示されるようになりました。これにより、どのデバッグセッションがどの出力と評価を担当しているかを区別しやすくなります。

エントリで停止してデバッグを開始
Node.js デバッグ用に、新しいコマンド デバッグ: デバッグを開始してエントリで停止 (extension.node-debug.startWithStopOnEntry) が追加されました。プログラムのエントリで直ちにデバッグを開始して停止したい場合は、このコマンドを使用します。デフォルトのキーバインディングはF11です。このコマンドは、選択した起動構成が node タイプの場合にのみ利用可能です。
Node デバッグは console.log のスタイル設定をサポート
Node.js をデバッグする場合 (または「Debugger for Chrome」拡張機能を使用して Chrome をデバッグする場合)、Chrome DevTools がサポートするのと同様に、%c を使用して console.log からのメッセージをスタイル設定できるようになりました。サポートされているプロパティは、color、background、font-weight: bold、および text-decoration: underline です。

ブレークポイントウィジェットが複数行に拡張
ブレークポイントウィジェットは複数行に拡張できるようになり、Shift+Enter で追加の行を挿入したり、複数行の条件またはログメッセージを貼り付けたりできます。これは、より複雑な条件やログメッセージを編集する際に役立ちます。

言語
TypeScript 3.1.4
このリリースには TypeScript 3.1.4 が含まれています。これはいくつかの重要なバグを修正した小さなアップデートです。
Markdown スニペットの改善
リンクやコードブロックなどの組み込み Markdown スニペットは、デフォルトで現在選択されているテキストを使用するようになりました。これにより、現在選択されているテキストをリンクやヘッダーに変換するキーバインディングを作成できます。
{
"key": "cmd+k",
"command": "editor.action.insertSnippet",
"when": "editorTextFocus",
"args": {
"langId": "markdown",
"name": "Insert link"
}
}
ホバーメッセージに CSS の詳細度を表示
CSS のホバーでは、CSS の詳細度が表示されるようになりました。

不明な CSS プロパティの処理
PostCSS などの CSS プリプロセッサを使用すると、開発時に有効なプロパティにコンパイルされる無効なプロパティを使用する場合があります。[css/less/scss].lint.validProperties 設定は、VS Code がこれらの無効なプロパティをエラーとしてマークするのを防ぎます。
CSS のゼロ単位警告の改善
CSS は、CSS の省略形プロパティ値で使用されているゼロ単位をリンとできるようになりました。たとえば、0px は警告を引き起こします。
JSON スキーマロードエラーの丁寧な処理
VS Code が IntelliSense または JSON ファイルのエラーチェックに使用される JSON スキーマをダウンロードできない場合、ステータスバーに警告が表示されます。

以前は、エディターにエラーが表示されていました。
エンジニアリング
Electron 3.0の継続的な調査
このマイルストーンでは、Electron 3.0.0 を VS Code にバンドルすることを引き続き検討しました。これは Electron のメジャーリリースであり、Chrome 66 と Node.js 10.x が付属しています (現在のバージョンが Chrome 61 と Node.js 8.x であるのと比較すると、大きな飛躍です)。近い将来、追加のフィードバックを収集するために、Insiders ユーザーへのアップデートをプッシュする予定です。協力に興味がある場合は、VS Code Insiders をインストールしてください。
厳密な null チェックによる VS Code コアのチェック
このマイルストーンでは、VS Code のコアソースで TypeScript の厳密な null チェックを有効にするための作業を開始しました。厳密な null チェックは、多くの一般的なプログラミングミスを捕捉し、プログラマの意図をより明確にするのに役立ちます。VS Code の組み込み拡張機能で厳密な null チェックを使用することで、明確な利点が得られました。
VS Code のコアソースには数千のファイルが含まれているため、厳密な null チェックは段階的に導入しています。まず、インポートのないファイルを厳密に null チェックすることから始め、次に、他の厳密に null チェックされたファイルのみをインポートするファイルで厳密な null チェックを反復的に有効にしています。これは、コードベース全体が変換されるまで続きます。
厳密な null チェックを有効にすることは主要なエンジニアリング作業ですが、ソースコードと製品品質の点で得られる成果は価値があると考えています。厳密な null チェックの進捗状況はこちらで追跡できます。
その他
低コントラストのメニューバー
Ubuntu 18.10 または、ライト/ダークのコンテキストメニューとアプリケーションメニューバーのテーマが逆になっている GTK テーマを使用している場合、コントラストの低いメニューバーが表示され、読みにくい場合があります。
これには2つの解決策があります。
window.titleBarStyle設定をcustomに設定して、VS Code のカスタムタイトルバースタイルを試してみてください。- GTK テーマを変更する。これは Gnome Tweaks アプリケーションをインストールし、以前のデフォルトテーマ
Adwaitaを使用することで可能です。
この問題に関する情報は、問題 62593 で追跡できます。
Electronの更新
このリリースでは、Electron 2.0.9 から 2.0.12 にアップデートしました。
プレビュー機能
プレビュー機能はリリース準備ができていませんが、使用できる程度には機能しています。開発段階での皆様の早期フィードバックをお待ちしております。
参照ビュー
新しいコマンド「すべての参照を検索」があり、参照検索結果を表示する専用のサイドバービューを表示します。これにより、既存のピークビュー表示が補完され、より安定した参照リストが提供されます。コンテキストメニューで「すべての参照を検索」() を選択すると、検索結果と同様に、参照が別のビューに表示されます。

結果は安定しており、個々の結果をクリアできるため、ビューを To Do リストとして使用する場合に最適です。F4 と ⇧F4 (Windows、Linux Shift+F4) を使用して、キーボードから手を離さずに結果をナビゲートできます。
ご意見をお聞かせください。次回のアップデートでエクスペリエンスを改善していきます。
拡張機能の作成
正規化された拡張機能のサンプル
vscode-extension-samples にある VS Code 拡張機能のサンプルが、一貫性を持たせるために更新されました。
各拡張機能のサンプルには、次のものが含まれるようになりました。
- 統一されたコーディングスタイルと構造。
- 短いアニメーションでサンプルの機能を説明する README。
- 各サンプルで使用されている
vscodeAPI または貢献ポイントのリスト。
拡張機能のバンドル
バンドルされた拡張機能はより高速に読み込まれます。そのため、拡張機能を webpack する方法を示すサンプルを作成しました。
発行者を必要とせずに拡張機能を開発する
初期の拡張機能開発を簡素化するために、Yeoman Extension Generator テンプレートから publisher フィールドが削除されました。publisher 識別子のない拡張機能の場合、VS Code はそれらを undefined_publisher を発行者として読み込むようになりました。ただし、vsce 発行ツールは、Marketplace に拡張機能を公開しようとしたときに有効な発行者が不足している場合、警告を発します。
アクティブなターミナル API
アクティブなターミナルへのアクセスを提供する提案された API、window.activeTerminal と window.onDidChangeActiveTerminal は、安定版になりました。
ボタン付き通知はタイムアウト後に非表示になる
拡張機能で showInformationMessage または showWarningMessage API を非モーダルオプションとボタン付きで使用している場合、これらの通知は一定のタイムアウト後に非表示になることに注意してください。showErrorMessage を介してトリガーされ、ボタンを持つ通知のみが以前と同様に開いたままになります。ユーザーから即座の入力を得る必要がある場合、またはメッセージを目立って表示する必要がある場合は、引き続き modal: true をオプションとして使用できます。これにより、ユーザーが閉じるまで何もできないモーダルダイアログが表示されます。ただし、ユーザーの作業を中断するため、このオプションの過度な使用は推奨しません。
カスタムビュー: 表示された要素を展開
reveal API の expand オプションを使用して、要素を展開して表示できるようになりました。また、レベル数を渡すことで、子要素を再帰的に展開することもサポートしています。
注: 最大で3レベルまでしか展開できません。
/**
* Reveals the given element in the tree view.
* If the tree view is not visible then the tree view is shown and element is revealed.
*
* By default revealed element is selected.
* In order to not to select, set the option `select` to `false`.
* In order to focus, set the option `focus` to `true`.
* In order to expand the revealed element, set the option `expand` to `true`. To expand recursively set `expand` to the number of levels to expand.
* **NOTE:** You can expand only to 3 levels maximum.
*
* **NOTE:** [TreeDataProvider](#_TreeDataProvider) is required to implement [getParent](#_TreeDataProvider.getParent) method to access this API.
*/
reveal(element: T, options?: { select?: boolean, focus?: boolean, expand?: boolean | number }): Thenable<void>;
新しいテーマカラー
新しいテーマカラーがあります
tab.activeModifiedBorder: アクティブグループのアクティブな変更済み(ダーティ)タブの上部に表示されるボーダー。tab.inactiveModifiedBorder: アクティブグループの非アクティブな変更済み(ダーティ)タブの上部に表示されるボーダー。tab.unfocusedActiveModifiedBorder: フォーカスされていないグループのアクティブな変更済み(ダーティ)タブの上部に表示されるボーダー。tab.unfocusedInactiveModifiedBorder: フォーカスされていないグループの非アクティブな変更済み(ダーティ)タブの上部に表示されるボーダー。editor.stackFrameHighlightBackground: エディター内の最上部のデバッグスタックフレーム強調表示の背景色。デフォルトではこの色は黄色です。editor.focusedStackFrameHighlightBackground: エディター内のフォーカスされたデバッグスタックフレーム強調表示の背景色。デフォルトではこの色は緑です。
Git 拡張機能 API の追加
Git 拡張機能 API は、各リポジトリの実際の変更の詳細を公開するように更新されました。
さらに、次のメソッドが公開されました。
Azure Pipelines を使用した拡張機能 CI
Azure Pipelines を使用して拡張機能の継続的インテグレーションソリューションを設定する方法に関するドキュメントを更新しました。新しいガイドでは、Windows、macOS、Linux で拡張機能のテストを同時に実行できる構成が提供されます。

提案された拡張API
各マイルストーンには新しい提案APIが付属しており、拡張機能開発者はこれらを試すことができます。いつものように、皆様からのフィードバックをお待ちしております。提案APIを試すには、次の手順を実行します。
- 提案APIは頻繁に変更されるため、Insiders版を使用する必要があります。
- 拡張機能の
package.jsonファイルに次の行が必要です:"enableProposedApi": true。 - vscode.proposed.d.tsファイルの最新バージョンをプロジェクトにコピーします。
提案APIを使用する拡張機能は公開できないことに注意してください。次回のリリースでは互換性のない変更が行われる可能性があり、既存の拡張機能を壊すことは決して望ましくありません。
クリップボード API
クリップボードにアクセスするための提案された API があります。これは、今後のブラウザのクリップボード API に従っており、現在、テキストの読み書きが可能です。
export interface Clipboard {
readText(): Thenable<string>;
writeText(value: string): Thenable<void>;
}
export namespace env {
const clipboard: Clipboard;
}
補完テキスト挿入ルール
補完項目の挿入動作を変更する新しい提案された API があります。デフォルトでは、複数行の補完は、現在の行のインデントに合わせて「再フォーマット」されます。このインデントが不要な場合があり、新しい提案された API では、補完でそれをオフにすることができます。CompletionItemInsertTextRule は、補完が設定できる KeepWhitespace ルールを持つビットマスクです。
カスタムビュー
すべて折りたたむアクション
TreeView の作成時に showCollapseAll オプションを true に設定するだけで、すべて折りたたむアクションをビューに追加できます。
/**
* Options for creating a [TreeView](#_TreeView]
*/
export interface TreeViewOptions<T> {
/**
* A data provider that provides tree data.
*/
treeDataProvider: TreeDataProvider<T>;
/**
* Whether to show collapse all action or not.
*/
showCollapseAll?: boolean;
}
namespace window {
export function createTreeView<T>(
viewId: string,
options: TreeViewOptions<T>
): TreeView<T>;
}
VS Code はすべて折りたたむ機能を提供し、オプトインされたすべてのビューに対して同じアイコンと場所で表示します。

TreeItem ラベルのハイライト
highlights オプションを使用して範囲を指定することで、TreeItem ラベルをハイライトできます。これは提案された API であるため、ハイライトを更新するには TreeItem2 を使用する必要があります。
/**
* Label describing the [Tree item](#_TreeItem)
*/
export interface TreeItemLabel {
/**
* A human-readable string describing the [Tree item](#_TreeItem).
*/
label: string;
/**
* Ranges in the label to highlight. A range is defined as a tuple of two number where the
* first is the inclusive start index and the second the exclusive end index
*/
highlights?: [number, number][];
}
export class TreeItem2 extends TreeItem {
/**
* Label describing this item. When `falsy`, it is derived from [resourceUri](#_TreeItem.resourceUri).
*/
label?: string | TreeItemLabel | /* for compilation */ any;
/**
* @param label Label describing this item
* @param collapsibleState [TreeItemCollapsibleState](#_TreeItemCollapsibleState) of the tree item. Default is [TreeItemCollapsibleState.None](#_TreeItemCollapsibleState.None)
*/
constructor(label: TreeItemLabel, collapsibleState?: TreeItemCollapsibleState);
}

ソース管理の入力ボックスを非表示にする
SourceControlInputBox インスタンスに新しい提案された API プロパティがあり、ソース管理プロバイダー UI ビューの上部にある入力ボックスを非表示にできます。
export interface SourceControlInputBox {
/**
* Controls whether the input box is visible (default is true`).
*/
visible: boolean;
}
SignatureHelpContext
提案された SignatureHelpContext は、署名ヘルプが要求された理由に関する追加情報を SignatureHelpProviders に提供します。
export interface SignatureHelpProvider {
provideSignatureHelp(
document: TextDocument,
position: Position,
token: CancellationToken,
context: SignatureHelpContext
): ProviderResult<SignatureHelp>;
}
SignatureHelpContext には以下が含まれます。
- 署名ヘルプがトリガーされたアクション
- トリガー文字 (存在する場合)
- これは再トリガーだったか? (署名ヘルプは既に表示されていたか)
/**
* Contains additional information about the context in which a
* [signature help provider](#_SignatureHelpProvider.provideSignatureHelp) is triggered.
*/
export interface SignatureHelpContext {
/**
* Action that caused signature help to be requested.
*/
readonly triggerReason: SignatureHelpTriggerReason;
/**
* Character that caused signature help to be requested.
*
* This is `undefined` when signature help is not triggered by typing, such as when invoking signature help
* or when moving the cursor.
*/
readonly triggerCharacter?: string;
/**
* Whether or not signature help was previously showing when triggered.
*
* Retriggers occur when the signature help is already active and can be caused by typing a trigger character
* or by a cursor move.
*/
readonly isRetrigger: boolean;
}
/**
* How a [Signature provider](#_SignatureHelpProvider) was triggered
*/
export enum SignatureHelpTriggerReason {
/**
* Signature help was invoked manually by the user or by a command.
*/
Invoke = 1,
/**
* Signature help was triggered by a trigger character.
*/
TriggerCharacter = 2,
/**
* Signature help was triggered by the cursor moving or by the document content changing.
*/
ContentChange = 3
}
さらに、この提案により、SignatureHelpProvider を一連の triggerCharacters と異なる一連の retriggerCharacters で登録できるようになります。
export interface SignatureHelpProviderMetadata {
readonly triggerCharacters: ReadonlyArray<string>;
readonly retriggerCharacters: ReadonlyArray<string>;
}
namespace languages {
export function registerSignatureHelpProvider(
selector: DocumentSelector,
provider: SignatureHelpProvider,
metadata: SignatureHelpProviderMetadata
): Disposable;
}
retriggerCharacters は、シグネチャヘルプがすでに表示されている場合にのみ、シグネチャヘルププロバイダーを呼び出します。
拡張機能への貢献
私たちのチームは、いくつかの VS Code 拡張機能を維持または貢献しています。特に今月は以下です。
Go
以下は、Go 1.11 で新しいGo モジュールを使用する際にGo 拡張機能がサポートする主な機能の一部です。
- コードナビゲーション(定義へ移動、シグネチャヘルプ、ホバー時のシンボル情報)
- コード補完
- コードカバレッジ
- コード診断
- Go: インポートを追加 や Go: パッケージを参照 などのパッケージ関連コマンド
詳細については、Visual Studio Code における Go モジュールサポートに関する Wiki をご覧ください。
Go 拡張機能のその他の注目すべき機能は次のとおりです。
- Sourcegraph の Language Server が Windows でもサポートされるようになりました。
- 自動補完ウィジェットで、提案されたシンボルのドキュメントが表示されるようになりました。自動補完ウィジェットの詳細セクションを展開/折りたたむには、⌃Space (Windows、Linux Ctrl+Space) を押してください。
- クロスコンパイル時に自動補完がサポートされるようになりました。これは、Go 1.11 の新しいWebAssembly サポートを試している場合に特に役立ちます。
- 値のコピー、式としてコピー、ウォッチに追加のオプションを含むコンテキストメニューが、デバッグビューの変数ペインで利用できるようになりました。
- ファイルを保存する際に現在のファイルのみをlintするオプション。
TypeScript TSLint プラグイン
新しいTypeScript TSLint プラグインは、TSLint を TypeScript 言語サービスプラグインとして有効にします。これらのプラグインは、VS Code、Visual Studio、Atom、Sublime Text など、TypeScript 言語サービスを使用するすべてのエディターで動作します。
また、TypeScript TSLint プラグインをバンドルした拡張機能もリリースしているため、ワークスペースでプラグインを構成する必要がありません。
GitHubプルリクエスト
このマイルストーンでは、GitHub Pull Requests 拡張機能の改善に取り組みました。この拡張機能は、エディター内と説明ページの両方でコメントの編集と削除をサポートし、まだ送信されていないコメントのキャッシュを改善しました。拡張機能の完全なリリースノートはこちらで読むことができます。
新しいドキュメント
Python チュートリアルの展開
VS Code で Python Web アプリケーションを展開する方法を示す新しい Python チュートリアルが2つあります。
デバッグのレシピ
PHP、Python、Ruby on Rails の新しい VS Code デバッグレシピがあります。
主な修正
- 54214: vscode の startDebugging メソッドはビルドが失敗しても true を返す
- 57289: 設定 UI は再ロード時に検索を記憶すべき
- 57321: 設定検索で結果がない場合に「検索をクリア」と「フィルターをクリア」ボタンを表示する
- 59305: .code-workspace ファイルに「ワークスペースを開く」ボタンを表示する
- 59430: node 内部ファイルでブレークできなくなった
- 61711: すべてのブレークポイントが未検証
- 62085: PauseRequest が debugAdapter で受信されない
- 62346: デバッグセッションの初期化中にキャンセルできない
- 62354: Node 10.12 以降のリモートデバッグの問題
謝辞
最後に、そしてもちろん最も重要なこととして、Visual Studio Codeをさらに良くするために協力してくれた以下の方々に、心からの感謝を申し上げます!
vscodeへの貢献者
- アグスティン・ロドリゲス(@agurodriguez)
- アフメド・アティート (@atitoa93)
- ロバート・バレント (@balent)
- Anurag Banerjee (@banuragprdxn): 語句/コピーの変更 PR #60996
- Brett Larney (@bblarney): ドキュメントのタイプミスを修正: 'guardeed' -> 'guaranteed' PR #61186
- @benjamenhogben
- Alex Boyko (@BoykoAlex): http/https のシンボルハンドラはモードに依存する PR #61509
- Brendon Crawford (@brendoncrawford): Fedora での OS チェックの不具合によるテストエラーを修正 PR #60917
- Chris Sinco (@c5inco): スナップフォントスタックを最新に PR #61419
- Emil Hessman (@ceh): 重複する switch case を削除 PR #59677
- Joshua (@cookiej91): コメントのタイプミスを修正 PR #61909
- ダクシュ (@DakshMiglani)
- Dick van den Brink (@DickvdBrink): Debian 8 へのインストール時の警告を修正 PR #59406
- Jonathan Dierksen (@dierksen): Swift 構文に textmate/swift.tmbundle を使用。 PR #59639
- Douglas Gabriel (@douglasgabriel): 'build/monaco/api.ts' からデッドコードを削除 PR #60024
- Frieder Bluemle (@friederbluemle): Markdown ファイルの空白エラーを修正 PR #62299
- Gary Mathews (@garymathews): エクスプローラーの入力ボックスの配置を修正 PR #60539
- Guillaume Poussel (@gpoussel): クイックオープンビューの「null」ツールチップを修正 PR #62268
- Len Smith (@ignu): macOS 用に window.nonNativeFullscreen オプションを追加 PR #55267
- イリヤ・ビリュコフ (@IlyaBiryukov)
- ジョアン・シー (@infinnie)
- Matt Q (@irrationalRock): Emmet Syntax Profiles tag_nl は余分なスペースを生成しない PR #60108
- John Graham (@J-Graham): パンくずリストエクスプローラーでファイルを中央クリックすると開く… PR #59797
- Jason Bright (@jgbright): .code-workspace ファイルにワークスペースを開くボタン PR #59586
- Kai Wood (@kaiwood): コードコメントのタイプミスを修正 PR #62282
- karan verma (@karanisverma): enablePreview の説明変更 PR #61603
- Karl Schärlund (@kscharlund): 奇数インデントサイズをサポート (fix #17639) PR #59568
- Kyra (@kyranet): snippets: setInterval スニペットを追加 PR #61351
- Samuel Attard (@MarshallOfSound): mojave ダークモードサポートを有効にする PR #59742
- Maksym Dogadailo (@mdogadailo): 分割ビューのアイテムはセパレータボーダーなしでドラッグできない PR #59830
- Josip Medved (@medo64): minLength と maxLength の検証メッセージを修正 PR #61556
- Prem Kagrani (@michaelscof): タイプミスと単語を修正 PR #61171
- Michael Kopf (@Michel73): クイックオープンを事前入力 PR #55752
- Mine Starks (@minestarks): TypeScript プラグインの構成をサポート PR #61756
- Matthew J. Clemente (@mjclemente): vscode 名前空間 API のリンク切れを修正 PR #61651
- mnikn (@mnikn): ポップアップメニューに、受信または現在の変更をすべて受け入れるオプションを追加。 PR #53649
- Matthew Knox (@mrkno): 問題ビューのフィルターに大きな遅延がある PR #60080
- Niclas van Eyk (@NiclasvanEyk): 「設定が見つかりません」メッセージに #57321 のアクションを追加 PR #59739
- ニック・ショニング (@nschonni)
- Olivier Truong (@oltruong): タイプミス修正 PR #62196
- @orangegrove1955: コメントのタイプミスを修正 PR #61216
- Karthikayan (@ParkourKarthik): requestItem に優先度を含め、リクエストキューに追加 PR #60582
- Antoine (@Poke1650): コメントに不足している末尾のピリオドを追加。 PR #61827
- Maxime Guerreiro (@PunKeel): ドキュメントから重複する「the」を削除。 PR #59897
- Roni Hacohen (@ronihcohen): スニペット書式オプションに Pascal ケースを追加 PR #59758
- Roy Tang (@roytang): 選択範囲の書式設定キーボードショートカットが… PR #61206
- Ryan Clarke (@ryanclarke): パンくずリストシンボルツリーのソートオプションを追加 PR #61420
- Sankt Petersbug (@sankt-petersbug): Markdown プレビューがリンクを誤ってエンコードする問題を修正 PR #61530
- Prabhanjan S Koushik (@skprabhanjan)
- Tharun Jose (@tharunjose): README.md を更新 PR #60100
- Marcus Farkas (@ToothlessGear): 置換プレビューを無効にする設定を追加 PR #60153
- Stepan Usatyuk (@usaatyuk): リロード時に設定検索を保持する PR #59704
- Alexander (@usernamehw)
- Varan Shukla (@varanshukla): スペルミスを修正 PR #61789
- ジェレミー・ショア (@w9jds)
- Konrad Borowski (@xfix): 組み込み言語以外のリストの末尾にセミコロンを追加 PR #62284
- Literallie (@xxyy): JSON スキーマ解決の問題に対するエラーメッセージをより分かりやすく PR #60219
- sk (@yeahok): R アイコンのサイズを修正 PR #59891
- Yisrael Veller (@YisraelV): 複数行ブレークポイントウィジェット - #56521 の実装 PR #61859
- Richard Harlen (@zimbo73): src/vs/workbench/services/files/electron-browser/fileService.ts を更新 PR #62296
vscode-eslintへの貢献者
- Loune Lam (@loune): この行のルールを抑制 / ファイルのルールを抑制するクイックアクション / ドキュメントを表示する機能を追加 PR #530
- Nguyen Long Nhat (@torn4dom4n): 変数参照を更新 #553
- David Broder-Rodgers (@broder): eslintServer のいくつかのタイプミスを修正 PR #555
vscode-languageserver-nodeへの貢献者
- Vic Nightfall (@Victorious3): 例外のスペルミス PR #419
- Chris Wendt (@chrismwendt): README の例を修正 PR #428
- Thibaud Colas (@thibaudcolas): lockfile のバージョンを package.json と一致するように更新 PR #431
language-server-protocolへの貢献者
- Tobias Bieniek (@Turbo87): overview: 例のレスポンス ID を修正 PR #575
- Jonathan Yee (@jonyeezs): Readme: リストを読みやすくするためにコンマを使用 PR #578
- Lewis Cowper (@lewiscowper): ヘッダーをハイパーリンクに変換 (ウェブサイト) PR #577
- Remy Suen (@rcjsuen): リクエスト名のタイプミスを修正 PR #589
- @fghzxm: 壊れた括弧を修正 PR #590
vscode-html-languageserviceへの貢献
vscode-css-languageserviceへの貢献者
- Will Bender (@Ragnoroct): CSS セレクターのホバーで詳細度を表示。 PR #129
- Richard Samuelson (@ricsam): package-lock.json を削除 PR #125
- トーマス・レント (@tlent)
vscode-json-languageserviceへの貢献
- Debasish Sahoo (@debck): readme にライセンスバッジを追加 PR #31
- Flo Edelmann (@FloEdelmann): 配列とオブジェクトの補完をラップしない PR #29
- Levertion (@Levertion): 補完の作成に「if」を使用 PR #27
- リテラリー (@xxyy)
debug-adapter-protocolへの貢献者
- Igor Kulaychuk (@ayuckhulk): Debug Adapter Protocol 実装者リストに NetCoreDbg を追加 PR #9
- Mario Loriedo (@l0rd): 開発ツールに Theia を追加 PR #10
- Sven Efftinge (@svenefftinge): Theia は Eclipse コミュニティによって維持されています PR #11
vscode-debugadapter-node への貢献
vscode-chrome-debug-coreへの貢献
vscode-generator-codeへの貢献者
- Diogo Simões (@s1moe2): 依存関係をインストールするテンプレートに npm/yarn を選択するオプションを追加 PR #133
- Randy (@TheQwerty): タイプミスを修正: commmand -> command PR #140
vscode-vsceへのコントリビューション
- Fabio Spampinato (@fabiospampinato):
VSCE_IGNORE_KEYWORDS_LENGTH環境変数のサポートを追加 PR #298
vscode-extension-samplesへの貢献
- Eunice Park (@eunicode): theme-sample に README を追加 PR #115
vscode-recipesへの貢献
- Alistair Chapman (@agc93): Cake スクリプトのデバッグレシピを追加 PR #168
- アクシャイ・アビナシュ (@akshay11298)
- @amiya-1998
- André Vargas (@andrevargas): Gatsby.js のデバッグ手順を追加 PR #160
- Taylor (@ATaylor1181): Ruby On Rails Readme のタイプミスを修正 PR #153
- Calvin Wong (@calvwng): launch.json ステップを明確化し、Nuxt.js デバッグリンクを追加 PR #147
- Cameo Langford (@cameo-myob): Debugging Ruby on Rails を更新し、タイプミスを修正 PR #151
- Cody Condon (@codycc): README のタイプミスを修正 PR #139
- @guymcmanusgithub: READ…の最初の数段落の表現を修正 PR #154
- John Hinson (@jlhinson): Meteor レシピのいくつかの文法とスペルの問題を修正。 PR #133
- Kirk Clemons (@kcclemo): 様々な文法変更。 PR #161
- Maddie Kreamer (@maddiekreamer): スペルミスを修正 PR #167
- Nisaruj (@nisaruj): いくつかのスペルの問題を修正 PR #138
- Luiz Machado (@odahcam): PHP の手順を追加 PR #136
- Peter Blazejewicz (@peterblazejewicz): Angular cli レシピのマイナーな変更 PR #134
- @qhieu45: README.md と launch.json に「skipFiles」オプションを追加 PR #164
- Robin Cher (@robincher): PR - Mocha のデフォルトテストオプションを追加 PR #148
- Sam Warner (@sjwarner-bp): Docker-TpeScript README.md を文法変更で更新 PR #149
inno-updaterへの貢献
- @edawine: strings.rs の不完全なエラーメッセージを修正 PR #4
- Isaac Whitfield (@whitfin): 終了をポーリングする際の不要な割り当てを削除 PR #6
- Jared De La Cruz (@jareddlc): ログをより一貫性のあるものにする PR #7
localizationへの貢献
Transifex の VS Code プロジェクトチームには約 1400 人のメンバーがおり、毎月約 100 人のアクティブな貢献者がいます。新しい翻訳の提供、翻訳への投票、プロセス改善の提案など、皆様の貢献に感謝いたします。
このリリースに貢献してくださった方々のスナップショットを以下に示します。貢献者リストを含むプロジェクトの詳細については、プロジェクトサイトhttps://aka.ms/vscodelocをご覧ください。
- ボスニア語: ダリオ・フジナート
- ブルガリア語: Любомир Василев.
- カタルーニャ語: joanmiro pisa.
- チェコ語: ヴィート・スタニチェク、クリシュトフ・チェルニー、ミハル・フランツ。
- オランダ語: ジェラルド・ヴェルシュイス、ヴィンセント・ヴァービスト。
- 英語 (英国): マシュー・ジョン・チータム、アレクサンダー・オギルビー。
- フィンランド語: ペトリ・ニーニマキ、フェートゥ・ニューヒネン。
- フランス語: アントワーヌ・グリファール、アドリアン・クレルボワ。
- ドイツ語: J.M. リュッター、フォルクマー・リゴ。
- ギリシャ語: ディミトリス・シアカヴェリス、クリストス・クツィアリス。
- ヒンディー語: アシュウィニ・グプタ、ビマル・、ブラフマ・デヴ、ラフル・バムマーカー。
- ハンガリー語: Tar Dániel.
- 中国語 (簡体字): Joel Yang、pluwen、Zijian Zhou、Simon Chan。
- 中国語 (繁体字): Duran Hsieh、Poy Chang、Alan Tsai、Kevin Yang、Winnie Lin。
- インドネシア語: Rizki A. Wibowo、Laurensius Dede Suhardiman、Fahmi Irsyad khairi、Wildan Mubarok、G-RiNe Project、Pratikto Ariestyadi、Joshua Siagian、William Tantiono、Herman Prawiro、Febrian Setianto (Feber)、Angger Rafi Akbar、Joseph Aditya P G、Oka bRionZ、rodin。
- イタリア語: アレッサンドロ・アルピ、リカルド・カッペロ、マルコ・ダル・ピーノ、ロベルト・アルバノ、アンドレア・ドットー、ルイージ・ブルーノ。
- 日本語: 田島隼也、抜き山祐一、梶浦哲、尾崎義久。
- カンナダ語: Sanjay !.
- 韓国語: コ・ギョンヒ、チャン・ジュンソン。
- リトアニア語: Martynas Jusys.
- マラヤーラム語: Ajith S Punalur, Anand Chalakkal Jose Mohan, Kiren Paul.
- ノルウェー語 (ブークモール): エスペン・クライン・ニルセン。
- ポーランド語: アルトゥール、アンジェイ・スーパーモツニー、ヤン・ボンコフスキ、マテウシュ・ヴィチャフスキ、ヴァーチラク。
- ポルトガル語 (ブラジル): Rodrigo Crespi、Roberto Fonseca、Danilo Dantas、Thiago Aragão、Thiago Moreira de Souza Arrais、Atílio Dadalto、Marcelo Fernandes、Douglas Heydt、Robson Cassiano、Lucas Miranda、Thiago Custodio。
- ポルトガル語 (ポルトガル): ディオゴ・バロス、アントニオ・サントス、アントニオ・ロレンソ。
- ロシア語: イワン・クズメンコ、ローマン・スラウタ、マイケル・クレーン。
- スペイン語: José M. Aguilar、Matias Menich、Alberto Poblacion、Daniel J. Pérez Nieto、Andrés Reyes Galgani。
- タミル語: Nadar Solomon Sunder、Sarath Jasrin、Sakthi Raj、rajakvk、Avinash、ஜெகன் லங்கா சாமி துரை、Anand AV、Jeyanthinath Muthuram、Narayanan Singaram。
- テルグ語: ラマ・チャンドゥ、ハリ・ジュッジャヴァルプ、サイ・パヴァン・カウンディニャ・ウパディヤユラ。
- ウクライナ語: スヴィトラーナ・ガリアーノヴァ、ボリス・レベダ、ドミトロ・キリチュク、ヴィクトル・クブラック、ヴォロディミル・ホロフカ。
- ウルドゥー語: ハシーブ・アンウェル、サキブ・アミーン、アフマド・アワイス。
- ベトナム語: タン・フー、ダニエル・グエン、グエン・ニャット・タン、フン・グエン、ヴオン。