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) にアクセスしてください。
また、Cloud Developer Advocate の Brian Clark によるこの 1.29 リリースのハイライトビデオもご覧ください。
リリースノートは、VS Code の重点分野に関連する以下のセクションで構成されています。以下に、その他のアップデートを示します。
- ワークベンチ - プラットフォーム固有の行末文字、変更されたファイルタブの強調表示。
- 統合ターミナル - 分割ターミナルの cwd オプション、Cmd+Backspace による行の先頭までの削除。
- 言語 - ホバー時に CSS 特異度を表示、不明な CSS プロパティの処理。
- デバッグ - 複数のデバッグコンソール、エントリ時に停止して開始、console.log メッセージのスタイル設定。
- 拡張機能の作成 - アクティブターミナル API、カスタムビューのより詳細な制御。
Insiders: 最新機能をいち早く試したいですか? nightly Insiders ビルドをダウンロードして、最新のアップデートをいち早くお試しください。また、Visual Studio Code の最新ニュース、アップデート、コンテンツについては、Twitter @code をフォローしてください。
検索
複数行検索
VS Code は複数行検索をサポートするようになりました。エディターと同様に、正規表現検索は \n
リテラルが含まれている場合にのみ複数行モードで実行されます。[検索] ビューには、複数行一致ごとにヒントが表示され、追加の一致行数が示されます。
この機能は、複数行検索を実装するために ripgrep ツールで行われた作業のおかげで実現しました。
検索での後方参照と先読み
"search.usePCRE2": true
を設定することで、正規表現検索で 後方参照 と 先読み アサーションを使用することも可能になりました。これにより、ripgrep が PCRE2 正規表現エンジンを使用するように構成されます。PCRE2 は他の多くの機能をサポートしていますが、JavaScript で引き続き有効な正規表現のみをサポートしています。これは、開いているエディターがエディターの JavaScript ベースの検索を使用して引き続き検索されるためです。
後読みアサーションがまだない場合でも、ご心配なく。その機能は最近 JavaScript でサポートされたばかりであり、後の Electron シェルのアップデートで VS Code にも搭載される予定です。
検索で行番号を表示
検索ビューで一致ごとに行番号を表示する設定 search.showLineNumbers
を追加しました。
検索と置換のプレビューを無効にする
検索ビューで検索/置換を実行するときに表示されるプレビュー diff を無効にできる新しい設定 search.useReplacePreview
があります。
検索でグローバル .gitignore ファイルを使用する
Git では、core.excludesfile
設定プロパティを使用してグローバル gitignore
ファイルを構成できます。デフォルトでは、検索はグローバル gitignore
ファイルを尊重しませんが、新しい設定 search.useGlobalIgnoreFiles
を有効にすることで、これを変更できるようになりました。
ワークベンチ
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
) コマンドを使用すると、通知センターからすべての通知に常にアクセスできます。
パネル位置ボタンをコンテキストメニューに追加
水平方向のスペースを節約し、 clutter を減らすために、パネルタイトル領域からパネル位置切り替えボタン ([右に移動]、[下に移動]) を削除しました。アクションは、パネルタイトル領域のコンテキストメニューと、[表示] > [外観] > [パネル位置の切り替え] メインメニューでも使用できるようになりました。このボタンを削除したもう 1 つの理由は、ユーザーがレイアウトを一度設定すると、通常は前後に切り替えないと考えているためです。
ファイルタイプごとのファイルアイコンを更新
前回のリリースでは、一般的な VS Code ファイルタイプのカスタムアイコンを追加しました。これらのアイコンを小さいビューに追加し、リストビューに表示されるようにしました。
[設定] エディターの「変更されたスコープ」ヒントがリンクになりました
[設定] エディターでは、設定が現在選択されているスコープ (ユーザー、ワークスペース) 以外のスコープで構成されている場合にヒントを表示します。他のスコープヒントはリンクになり、他のスコープの設定に移動できます。
ツリーウィジェットのパフォーマンス
VS Code ツリーウィジェットコントロールは、VS Code UI の多くの場所で使用されていますが、特定のユースケース (問題パネル、アウトラインビュー) でパフォーマンスの制限に達していました。パフォーマンスと API の利便性のさまざまなレベルに対応できる、より高速な仮想ツリーウィジェットの実装に取り組んでいます。詳細については、こちらをご覧ください。
新しい ObjectTree
ウィジェットが [問題] パネルで使用されるようになり、すでに大幅な改善が見られています。ワークベンチが処理できる問題項目の数を劇的に増やすことができ、特定の操作 ([すべて折りたたむ] など) や高度なフィルター処理シナリオの速度を向上させることができました。これらの改善により、より大きなコレクションサイズでの作業が実現可能になりました。
ワークベンチナビゲーションコマンド
ワークベンチナビゲーションを改善するために、4 つのコマンドが追加されました。
workbench.action.nextSideBarView
: サイドバーの次のビューに移動します。workbench.action.previousSideBarView
: サイドバーの前のビューに移動します。workbench.action.nextPanelView
: 次のパネルに移動します。workbench.action.previousPanelView
: 前のパネルに移動します。
デフォルトでは、コマンドにキーボードショートカットはありません。
2 つのコンテキストキー、sideBarFocus
と panelFocus
も追加されました。これにより、異なるワークベンチ領域で異なるコマンドに同じキーバインドを使用できます。
[
{ "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
) は、ビュー階層をより適切に表現するために、各ビューグループの親を表示するようになりました。たとえば、[エクスプローラー] グループは [サイドバー / エクスプローラー] として表示され、[ターミナル] グループは [パネル / ターミナル] として表示されます。
エディター
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 に感謝します。
タスク
タスク実行前にターミナルをクリア
新しいプロパティ clear
がタスクの presentation
構成に追加されました。タスクを実行する前にターミナルをクリアするには、clear
プロパティを true
に設定します。
デバッグ
折りたたみ可能なスタックフレーム
デバッガーのコールスタックには、ユーザーにとって興味のないスタックフレーム (外部コード、スキップされたファイルなど) が含まれている場合があります。 clutter を減らし、垂直方向のスペースを節約するために、これらの興味のないスタックフレームを折りたたんで表示するようになりました。
ロード済みスクリプトビューの改善
このマイルストーンでは、[ロード済みスクリプト] ビューを更新してファイルアイコンをサポートし、関連リソースを子要素として表示する機能を追加しました。デバッグ拡張機能は、この機能を使用して、スクリプトにトランスパイルされたソースファイルを表示できます。
次の図は、Node.js デバッガーが JavaScript ファイルの TypeScript ソース (ソースマップで利用可能) を示しています。
関連リソース機能は、デバッグ拡張機能によるオプトインが必要であることに注意してください。10 月のリリースでは、node-debug
のみが Node.js バージョン < 8.0 (別名「レガシー」) のこの機能を実験的にサポートしています。
複数のデバッグコンソール
複数のデバッグセッションをデバッグする場合、それらの出力を異なるデバッグコンソールに表示するようになりました。これにより、どのデバッグセッションがどの出力と評価を担当しているかを区別しやすくなります。
エントリ時に停止してデバッグを開始
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
を使用することで、これを行うことができます。
この問題に関する情報は、issue 62593 で追跡できます。
Electron アップデート
このリリースでは、Electron 2.0.9 から 2.0.12 にアップデートしました。
プレビュー機能
プレビュー機能はリリース準備ができていませんが、使用できる程度には機能します。開発中の初期段階でのフィードバックをお待ちしております。
参照ビュー
参照検索結果を表示する専用のサイドバービューを表示する新しいコマンド [すべての参照を検索] があります。これは、既存のピークビュープレゼンテーションを補完し、より安定した参照リストを提供します。コンテキストメニューで [すべての参照を検索] () を選択すると、検索結果と同様に、参照が別のビューに表示されます。
結果は安定しており、個々の結果をクリアできます。これは、ビューを To Do リストとして使用する場合に最適です。F4 および ⇧F4 (Windows、Linux Shift+F4) を使用すると、キーボードから手を離さずに結果をナビゲートできます。
ご意見をお聞かせください。次回のアップデートでエクスペリエンスを改善する予定です。
拡張機能の作成
正規化された拡張機能サンプル
vscode-extension-samples の VS Code 拡張機能サンプルが、一貫性を保つために更新されました。
各拡張機能サンプルには、次のものが含まれています。
- 統一されたコーディングスタイルと構造。
- サンプルの機能と短いアニメーションを説明する README。
- 各サンプルで使用されている
vscode
API またはコントリビューションポイントのリスト。
拡張機能のバンドル
バンドルされた拡張機能は、ロードが高速です。そのため、拡張機能を webpack する方法を示すサンプルを作成しました。
パブリッシャーを必要とせずに拡張機能を開発
初期拡張機能開発を簡素化するために、Yeoman Extension Generator テンプレートから publisher
フィールドが削除されました。publisher
識別子がない拡張機能の場合、VS Code は undefined_publisher
をパブリッシャーとしてロードするようになりました。ただし、vsce
パブリッシングツールは、拡張機能を Marketplace にパブリッシュしようとしたときに有効なパブリッシャーがない場合、警告を表示します。
アクティブターミナル API
アクティブターミナル、window.activeTerminal
および window.onDidChangeActiveTerminal
へのアクセスを提供する提案された API が安定しました。
ボタン付きの通知はタイムアウト後に非表示になる
拡張機能が非モーダルオプションとボタンで 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 があります。これは、今後のブラウザー Clipboard 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 モジュール を Go 1.11 で使用する場合に、Go 拡張機能がサポートする主な機能の一部です。
- コードナビゲーション ([定義へ移動]、[シグネチャヘルプ]、[ホバー時のシンボル情報])
- コード補完
- コードカバレッジ
- コード診断
- **Go: Import の追加** や **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 アプリケーションを展開する方法を示す 2 つの新しい Python チュートリアルがあります。
デバッグ レシピ
レシピ に、PHP、Python、および Ruby on Rails 用の新しい VS Code デバッグ レシピ があります。
注目すべき修正
- 54214: vscode の startDebugging メソッドは、ビルドが失敗した場合でも true を返す
- 57289: 設定 UI はリロード時に検索を記憶する必要がある
- 57321: 設定検索で結果が返されない場合に、[検索をクリア] ボタンと [フィルターをクリア] ボタンを表示する
- 59305: .code-workspace ファイルに [ワークスペースを開く] ボタンを表示する
- 59430: node internals ファイルでブレークできなくなった
- 61711: すべてのブレークポイントが未検証
- 62085: PauseRequest が debugAdapter によって受信されない
- 62346: デバッグセッションの初期化中にキャンセルできない
- 62354: Node 10.12 以降のリモートデバッグの問題
謝辞
最後になりましたが、VS Code をさらに良くするためにご協力いただいた以下の皆様に、心から感謝申し上げます!
vscode
への貢献
- Agustín Rodríguez (@agurodriguez)
- Ahmed Atito (@atitoa93)
- Robert Balent (@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
- Daksh (@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): エクスプローラーの inputbox の配置を修正 PR #60539
- Guillaume Poussel (@gpoussel): クイックオープンビューの「null」ツールチップを修正 PR #62268
- Len Smith (@ignu): macOS 用の window.nonNativeFullscreen オプションを追加 PR #55267
- Ilya Biryukov (@IlyaBiryukov)
- joan xie (@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): 奇数のインデントサイズをサポートする (fixes #17639) PR #59568
- Kyra (@kyranet): スニペット: 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
- Nick Schonning (@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): スニペット形式オプションにパスカルケースを追加する 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
- Jeremy Shore (@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): 概要: 例の応答 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
- Thomas Lent (@tlent)
vscode-json-languageservice
への貢献
- Debasish Sahoo (@debck): readme にライセンスバッジを追加する PR #31
- Flo Edelmann (@FloEdelmann): 配列とオブジェクトの補完でラップしない PR #29
- Levertion (@Levertion): 'if' を使用して補完を作成する PR #27
- Literallie (@xxyy)
debug-adapter-protocol
への貢献
- Igor Kulaychuk (@ayuckhulk): デバッグアダプタープロトコル実装者リストに 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
- Akshay Avinash (@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) をご覧ください。
- ボスニア語: Dario Fuzinato。
- ブルガリア語: Любомир Василев。
- カタロニア語: joanmiro pisa。
- チェコ語: Vít Staniček, Kryštof Černý, Michal Franc。
- オランダ語: Gerald Versluis, Vincent Verbist。
- 英語 (イギリス): Matthew John Cheetham, Alexander Ogilvie。
- フィンランド語: Petri Niinimäki, Feetu Nyrhinen。
- フランス語: Antoine Griffard, Adrien Clerbois。
- ドイツ語: J.M. Rütter, Volkmar Rigo。
- ギリシャ語: Dimitris Siakavelis, Christos Koutsiaris。
- ヒンディー語: Ashwini Gupta, Bimal ., Brahma Dev, Rahul Bhammarker。
- ハンガリー語: 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。
- イタリア語: Alessandro Alpi, Riccardo Cappello, Marco Dal Pino, Roberto Albano, Andrea Dottor, Luigi Bruno。
- 日本語: Shunya Tajima, Yuichi Nukiyama, Satoshi Kajiura, Yoshihisa Ozaki。
- カンナダ語: Sanjay !。
- 韓国語: Kyunghee Ko, Junseong Jang。
- リトアニア語: Martynas Jusys。
- マラヤーラム語: Ajith S Punalur, Anand Chalakkal Jose Mohan, Kiren Paul。
- ノルウェー語 (ブークモール): Espen Klein Nilsen。
- ポーランド語: Artur, Andrzej Supermocny, Jan Bońkowski, Mateusz Wyczawski, Warchlak。
- ポルトガル語 (ブラジル): 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。
- ポルトガル語 (ポルトガル): Diogo Barros, António Santos, Antonio Lourenco。
- ロシア語: Ivan Kuzmenko, Roman Slauta, Michael Crane。
- スペイン語: 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。
- テルグ語: Rama Chandu, Hari Jujjavarapu, Sai Pavan Koundinya Upadhyayula。
- ウクライナ語: Svitlana Galianova, Borys Lebeda, Dmytro Kyrychuk, Victor Kubrak, Volodymyr Holovka。
- ウルドゥー語: Haseeb Anwer, Saqib Ameen, Ahmad Awais。
- ベトナム語: Thanh Phu, Daniel Nguyen, Nguyễn Nhật Tân, Hung Nguyen, Vuong。