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 のブライアン・クラークによる、この1.29リリースハイライトビデオもご覧いただけます。
リリースノートは、VS Codeの重点分野に関連する以下のセクションにまとめられています。さらに詳しい更新は以下の通りです。
- ワークベンチ - プラットフォーム固有の改行コード、変更されたファイルタブのハイライト表示。
- 統合ターミナル - 分割ターミナルのカレントディレクトリオプション、Cmd+Backspaceで行頭まで削除。
- 言語 - ホバー時にCSS詳細度を表示、不明なCSSプロパティの処理。
- デバッグ - 複数デバッグコンソール、エントリで停止して開始、console.logメッセージのスタイル設定。
- 拡張機能作成 - アクティブターミナルAPI、カスタムビューのより詳細な制御。
Insiders: 新機能をいち早く試したいですか?夜間ビルドのInsidersをダウンロードして、最新のアップデートが利用可能になったらすぐに試すことができます。Visual Studio Code の最新ニュース、アップデート、コンテンツについては、Twitter @code をフォローしてください!
検索
複数行検索
VS Codeが複数行検索に対応しました!エディターと同様に、正規表現検索は\n
リテラルが含まれる場合にのみ複数行モードで実行されます。検索ビューでは、各複数行の一致の横に、追加の一致行数を示すヒントが表示されます。
この機能は、複数行検索の実装のためにripgrepツールで行われた作業のおかげで実現しました。
検索における後方参照と先読み
"search.usePCRE2": true
を設定することで、正規表現検索で後方参照と先読みアサーションを使用できるようになりました。これにより、ripgrepがPCRE2正規表現エンジンを使用するように構成されます。PCRE2は他にも多くの機能をサポートしていますが、VS Codeの開いているエディターはエディターのJavaScriptベースの検索を使用して検索されるため、JavaScriptで引き続き有効な正規表現のみをサポートしています。
後読みアサーションがまだない場合でも、ご安心ください!その機能は最近JavaScriptでサポートされたばかりで、今後のElectronシェルアップデートでVS Codeにも導入される予定です。
検索に改行番号を表示
検索ビューで各一致の行番号を表示する設定 search.showLineNumbers
を追加しました。
検索と置換のプレビューを無効にする
検索ビューで検索/置換を実行したときに表示されるプレビュー差分を無効にできる新しい設定 search.useReplacePreview
が追加されました。
検索でグローバルな.gitignoreファイルを使用する
Gitでは、core.excludesfile
設定プロパティを使用してグローバルなgitignore
ファイルを構成できます。デフォルトでは、検索はグローバルなgitignore
ファイルを尊重しませんが、新しい設定search.useGlobalIgnoreFiles
を有効にすることで、これを変更できるようになりました。
ワークベンチ
macOS Mojave ダークモード対応
VS CodeでmacOS Mojaveのダークモードがより良くサポートされるようになりました。以前は、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
は、エディターがダーティ状態(未保存の変更がある)の場合に、エディタータブの上部に太い枠線を表示します。これにより、保存が必要なファイルを簡単に見つけることができます。枠線の色はカスタマイズ可能です(下記参照)。
中央揃えエディターレイアウトの自動リサイズ
中央揃えレイアウトビューは、エディターグループが2つ以上開いている場合、自動的に最大幅にリサイズされるようになりました。これにより、中央揃えレイアウトが使いやすくなり、手動での切り替えが減るはずです。この動作は、新しい設定 workbench.editor.centeredLayoutAutoResize
によって制御され、デフォルトで有効になっています。
ブレッドクラムにおけるシンボル順序
ブレッドクラムピッカー内のシンボルの順序を制御する新しい設定 breadcrumbs.symbolSortOrder
が追加されました。
許容される値は以下の通りです
position
- ファイル内の位置 (デフォルト)name
- アルファベット順type
- シンボルタイプ順
以下の例は、ブレッドクラムシンボルリストが名前順に並べ替えられている様子を示しています。
ブレッドクラムとプレビューエディター
ブレッドクラムナビゲーションのアイテムを中央クリックすると、新しいエディターで開かれるようになり、プレビューエディターを再利用しなくなりました。この動作は、エクスプローラーでファイルを中央クリックする動作と一致するようになりました。
ボタンが表示されていても通知が自動的に非表示になる
以前は、ボタンが含まれている通知はVS Codeが非表示にすることはありませんでした。その結果、通知が右下隅に溜まり、エディターの一部を覆ってしまう可能性がありました。このリリースでは、ボタンが表示されていても通知はタイムアウト後に非表示になります。
2つの例外があります
error
深刻度の通知は、ユーザーが何らかのアクションを取る必要があるという仮定に基づき、非表示になりません。- VS Codeからの特定の通知は開いたままになります。例えば、VS Code Marketplaceを閲覧した後、拡張機能をインストールするかどうかを尋ねる通知などです。
注: 通知が非表示になっていても、ステータスバーの小さなベルアイコンをクリックするか、通知を表示 (notifications.toggleList
) コマンドで、いつでもすべての通知にアクセスできます。
パネル位置ボタンをコンテキストメニューへ
水平方向のスペースを確保し、煩雑さを軽減するために、パネル位置切り替えボタン(右へ移動、下へ移動)をパネルタイトル領域から削除しました。このアクションは、パネルタイトル領域のコンテキストメニューおよび表示 > 外観 > パネル位置を切り替えるのメインメニューから利用できるようになりました。このボタンを削除したもう一つの理由は、ユーザーはレイアウトを一度設定すれば、通常は行ったり来たりしないと考えているためです。
ファイルタイプごとのファイルアイコンの更新
前回のリリースで、一般的な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
)は、ビュー階層をより良く表現するために、各ビューグループの親を表示するようになりました。例えば、エクスプローラーグループはサイドバー / エクスプローラーとして表示され、ターミナルグループはパネル / ターミナルとして表示されます。
エディター
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
に設定します。
デバッグ
折りたたみ可能なスタックフレーム
デバッガーのコールスタックには、ユーザーにとって興味のないスタックフレーム(外部コード、スキップされたファイルなど)が含まれている場合があります。煩雑さを減らし、垂直スペースを節約するために、それらの興味のないスタックフレームを折りたたんで表示するようになりました。
ロード済みスクリプトビューの改善
このマイルストーンでは、ロード済みスクリプトビューを更新してファイルアイコンをサポートし、関連リソースを子要素として表示する機能を追加しました。デバッグ拡張機能は、この機能を使用して、スクリプトにトランスパイルされたソースファイルを表示できます。
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ショートハンドプロパティ値で使用されているゼロ単位をlintするようになりました。たとえば、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をインストールしてください。
VS Codeコアの厳密なnullチェック
このマイルストーンでは、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にアップデートしました。
プレビュー機能
プレビュー機能はリリース準備ができていませんが、使用できる程度には機能しています。開発段階での皆様の早期フィードバックをお待ちしております。
参照ビュー
新しいコマンドすべての参照を検索が追加され、参照検索結果を表示する専用のサイドバービューが表示されます。これは、既存のPeekビュー表示を補完し、より安定した参照リストを提供します。コンテキストメニューですべての参照を検索 () を選択すると、検索結果と同じように、参照が別のビューに表示されます。
結果は安定しており、個々の結果はクリアできるため、ビューをToDoリストとして使用する場合に非常に便利です。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
アクティブなターミナルにアクセスできる提案中の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があります。これは、今後のブラウザ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 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アプリケーションをデプロイする方法を示す2つの新しいPythonチュートリアルがあります。
デバッグレシピ
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
への貢献者
- 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): Snapフォントスタックを最新に PR #61419
- Emil Hessman (@ceh): 重複するswitchケースを削除 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): explorer 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構文プロファイルの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): typo fix 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
- 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): Variables Referenceを更新 #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): Debug Adapter Protocolの実装者リストにNetCoreDbgを追加 PR #9
- Mario Loriedo (@l0rd): Dev Toolsに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): 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。