VS Code 1.31 の気になった変更点

[Visual Studio Code](https://code.visualstudio.com) の バージョン 1.31（2019年1月分アップデート）がリリースされたので、[リリースノート](https://code.visualstudio.com/updates/v1_31)を眺めてみて気になった変更点をチェックしてみた。(以前のバージョンを眺めてみた時のやつはこちら。[1.30](https://qiita.com/12345/items/853b30a4769d76e64d56) / [1.29](https://qiita.com/12345/items/6993dc21f310e1b5dd99) / [1.28](https://qiita.com/12345/items/b53d93fcb225abfc702d) / [1.27](https://qiita.com/12345/items/6a3967dd424b2be57104) / [1.26](https://qiita.com/12345/items/8ce4b6e045d50a6049ce) / [1.25](https://qiita.com/12345/items/e7b5b9954f5d721be2c8) / [1.24](https://qiita.com/12345/items/935770c6a3515ca80472) / [1.23](https://qiita.com/12345/items/627298550aab19f1d8a6) / [1.22](https://qiita.com/12345/items/8253a1eee38b6741905e) / [1.21](https://qiita.com/12345/items/71ce73c52cf2232fc10c) / [1.20](https://qiita.com/12345/items/1390c7cab11d968e7691) / [1.19](https://qiita.com/12345/items/a331c014a9d3fa9dac0e) / [1.18](https://qiita.com/12345/items/9b827138b5044ca82482) / [1.17](http://qiita.com/12345/items/28d83361341ce3ff3c9c) / [1.16](http://qiita.com/12345/items/5215293977dde2149c0f) / [1.15](http://qiita.com/12345/items/cebf4b4e9bfb2d2ef771))

# 拡張機能インストール後の再起動が不要に
https://code.visualstudio.com/updates/v1_31#_no-reload-on-install

- 今までは拡張機能をインストールしたりアンインストールしたり無効にする度にVS Vodeを再起動する必要があったが、それが不要になった。
- VS Code自体はそれほど重たくないから再起動の時間とかはそれほど気にならないが、再起動不要ならそれに越したことはない。スマート！

# ツリービューの改善
https://code.visualstudio.com/updates/v1_31#_new-tree-widget
ファイルエクスプローラーなどで使用されているツリービューのウィジェットが改善された。
### 検索・フィルターモード
- ツリービューにフォーカスがある状態で文字を入力すると検索モードになり、該当文字がハイライト表示される。さらに`↑` `↓`キーでハイライトされたファイルのフォーカス移動ができる。`Esc`で解除。
- また、右上に表示されている入力文字列をマウスオーバーして表示されるアイコンをクリックすると、フィルターモードのON/OFFが切り替えられ、ONの状態だと条件に合致するファイル名だけが表示される。この切り替えをキー操作で行いたい場合は、ショートカットの設定画面で`list.toggleFilterOnType`コマンドに対してキーを設定する。
- 新たに追加された設定は`Workbench > List: Keyboard Navigation`
    - `simple`: ファイル名の先頭の文字列を検索する。Windowsのエクスプローラとかと同じ。
    - `highlight`: デフォルト値。検索文字列をハイライト表示する。
    - `filter`: 検索文字列のファイルのみを表示する。

![filter.gif](https://qiita-image-store.s3.amazonaws.com/0/181011/d7c4cc57-21f7-1134-48e5-406cf820679b.gif)

### 全選択
- また、`Ctrl`+`A`を押すとファイルを全選択する機能が追加された。連続で押していくと親フォルダも選択対象になる。

### インデント幅の調整
- 設定`Workbench > Tree: Indent`を使うとツリービューのインデント幅をピクセル単位で変更できるようになった。デフォルト値は8で、0～20の範囲で変更できる。

### 水平スクロール機能の追加
- 設定`Workbench > Tree: Horizontal Scrolling`を有効にすると、水平スクロールが使えるようになる。ただし設定変更時は再起動が必要。

# 「移動」メニューの改善
https://code.visualstudio.com/updates/v1_31#_improved-the-go-menu

- 移動メニューに項目が追加され、移動系のコマンドが集約された。

v1.30|v1.31
---|---
![go_menu_old.jpg](https://qiita-image-store.s3.amazonaws.com/0/181011/1d85d9b8-cc48-2758-1191-cb5a936e1c90.jpeg) | ![go_menu.jpg](https://qiita-image-store.s3.amazonaws.com/0/181011/cb7503ad-4375-59c0-5c0f-74c4060cb5c1.jpeg)

# コンテキストメニューに「切り取り」が追加
https://code.visualstudio.com/updates/v1_31#_cut-command-in-explorer-context-menu

- コンテキストメニューに「切り取り」が追加された。
- 切り取られたファイルはファイル名がグレーになり、`ESC`キーで中断すると元の色に戻る。
- ショートカットキーはもちろん`Ctrl`+`X`。

![cut.gif](https://qiita-image-store.s3.amazonaws.com/0/181011/f8c9a778-c4c6-6e35-c1cd-c732fcee408d.gif)

- そういえば確かに今まで無かった。

# アイコンダブルクリックでのアプリ終了操作
https://code.visualstudio.com/updates/v1_31#_doubleclick-the-application-icon-to-close-in-windowslinux

- WindowsとLinux版においてタイトルバーのスタイルが`custom`（デフォルト）の時に、VS Codeの左上にあるアイコンをダブルクリックすることでVS Codeを終了させることができる設定が追加された。
- 設定`window.doubleClickIconToClose`を有効にすると可能になる。デフォルトは無効になっている。無効の時のアイコンエリアはメニューバー以外のタイトルバーと同じ動作となり、ドラッグすればウィンドウを移動でき、ダブルクリックすればウィンドウを最大化させることができる。この機能を有効にするとウィンドウの最大化はもちろんできないがウィンドウ移動もできなくなる。

# ウィンドウタイトル用変数の追加
https://code.visualstudio.com/updates/v1_31#_new-title-variables

- ウィンドウタイトルをカスタマイズするための変数に新しい変数が追加された。
    - `${activeFolderShort}`: 現在のフォルダ名
    - `${activeFolderMedium}`: 相対パス付きフォルダ名
    - `${activeFolderLong}`: 絶対パス付きフォルダ名
- ウィンドウタイトルを変更したい場合は設定`Window: Title`を変更する。

# スクリーンキャストモードの追加
https://code.visualstudio.com/updates/v1_31#_screencast-mode

- このモードを有効にすると、押したキーの内容（AltとかShiftとかも含め）が画面下部に表示されたり、マウスボタンが押されている間マウスカーソルを赤い丸で囲ってくれたりする。これにより、見た目では分からない操作を他の人に説明するの時に役に立つ。
- 切り替えコマンド名は`Developer: スクリーンキャストモードの切り替え`。ちなみに英語名はリリースノートでは`Developer: Toggle Screencast Mode`と書かれていたが実際にはなぜか`Developer: Toggle Mouse Clicks`だった。

![screencast.gif](https://qiita-image-store.s3.amazonaws.com/0/181011/d5f261be-70ac-44f7-9c20-2c3bac7f6a87.gif)

- 個人的にはコレが一番うれしい機能。今までは別アプリを併用してやっていたけど面倒だったので、これは便利！