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

[Visual Studio Code](https://code.visualstudio.com) の バージョン 1.38（2019年8月分アップデート）がリリースされたので、[リリースノート](https://code.visualstudio.com/updates/v1_38)を眺めてみて気になった変更点をチェックしてみた。(以前のバージョンを眺めてみた時のやつはこちら。[1.37](https://qiita.com/12345/items/1a26025a859a1f5df62d) / [1.36](https://qiita.com/12345/items/003390ab7580c484f7b7) / [1.35](https://qiita.com/12345/items/9bee36e6abe3087e8a72) / [1.33](https://qiita.com/12345/items/733dd8322b0aaeddee89) / [1.32](https://qiita.com/12345/items/80ebfc7a4fb2430430e1) / [1.31](https://qiita.com/12345/items/4ba59be50c6ee9407131) / [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_38#_preserve-case-in-search-and-replace
前回のリリースで、エディタ内での置換時に**大文字/小文字を保持したまま**置換ができる機能が追加されたが、この機能が**検索ビュー**のほうにも実装された。
置換の入力フィールドの`AB`ボタンを押すとこの機能が有効になる。
![preserve_case_replace.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/181011/164d1ec0-eebd-8dc5-9a51-b7a1e97abf47.gif)
また、この機能の置換ルールに追加があり、ハイフン区切りの単語にも対応するようになった。
![preserve_case_replace_hyphen.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/181011/01576333-f38b-37a2-f80f-2b69b5756c37.gif)

# 検索ビューのキャンセルアイコンの変更
https://code.visualstudio.com/updates/v1_38#_updated-cancel-search-icon
検索ビューでの検索で時間がかかる場合に検索をキャンセルするアイコンのデザインが(再度)変更された。
以前は停止ボタン的な普通のデザインだったが、前回のリリースでvscodeのアイコンが全体的に線描画系に変更になったタイミングでただの四角形になってしまい、わかりづらくなってしまっていた。

以前(v1.36)|前回(v1.37)|今回(v1.38)
:---:|:---:|:---:
![search_cancel_icon_1.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/181011/3dd46a69-d30c-a3ba-d7ff-6ca53e487cce.png)|![search_cancel_icon_1.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/181011/996ea5f8-795b-d6ab-834e-fbea1be78b16.png)|![search_cancel_icon.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/181011/1dfa3f59-defb-a093-a50e-3f0b0853f162.png)
（新しいアイコンは、ラケットにボールが当たる瞬間に見えなくもない）

# リンクジャンプ前の確認ダイアログ表示
https://code.visualstudio.com/updates/v1_38#_link-protection-for-outgoing-links
エディタ内のURLを`Ctrl`+クリックするとブラウザでそのサイトが開くが、今まではクリックしたらすぐにサイトが開いていたが、**開く前に確認ダイアログ**が表示されるようになった。
![confirm_link.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/181011/2f98e8ca-2584-d2fd-ac5b-b10ac0a8d4e4.gif)
ただし信頼できるドメインとして登録しておくと次回からはダイアログは表示されなくなる。ダイアログの`信頼されているドメインの構成`ボタンを押すか、コマンド`リンク保護用の信頼できるドメインを構成する`を実行するとドメイン名の編集ができる。vscodeのサイトなど、いくつかのサイトはデフォルトですでに登録されている。
すべてのリンクでダイアログを表示させなくすること（＝今までと同じ動作にする）も可能。

# 同一ファイルコピペ時のファイル名ルールの設定
https://code.visualstudio.com/updates/v1_38#_explorer-improvements
エクスプローラー上で同一ファイルをコピペした場合に作られる新しいファイルのファイル名のルールはv1.36にて一旦ルールが変更になったが、今回のリリースでは設定によって**新旧のルールを選べる**ようになった。設定`Explorer: Incremental Naming`を使用する。

- `simple` : v1.36にて導入されたルール。ファイル名の後ろに**" copy"**が付加される。さらに重複する場合は**" copy 2"**のように2から始まる連番が付加される。
- `smart` : 旧来のルール。コピー元のファイル名の後ろに数字が含まれている場合はその続き番号になるように試みる。それができなければ**".1"**のように1から始まる連番が付加される。

どっちにしたいかはその人の好みや用途によると思うので、設定で変えられるようにしたのは良いと思う。
ちなみに個人的には、このファイルコピペ機能を使う場面が、20190918.txtのような日付名のファイルをコピーして毎日作っていくという場面なので、コピペによって自動的に（ほぼ）翌日日付のファイル名を付けてくれる以前の方式のほうが便利だったので、それがまた使えるようになってありがたい。

# ワークベンチのグリッドレイアウト化
https://code.visualstudio.com/updates/v1_38#_grid-layout-for-the-workbench
ワークベンチのレイアウトエンジンが**グリッドウィジェット**を使うように書き直された。この対応は現在進行中とのことで、今回のバージョンではこの設定が**デフォルトでON**になったことと、パネルを最大化したときにちゃんと**MAXに最大化**されるようになった（これまではパネルを最大化してもある程度の余白が残るようになっていた）。

# スクリーンキャストモードの改善
https://code.visualstudio.com/updates/v1_38#_screencast-mode
入力したキーのキーバインドを画面に表示してくれる**スクリーンキャストモード**について、いくつかの改善が行われた。
### 表示位置の調整
今まではキーバインドが表示される位置は固定だったが、設定`screencastMode.verticalOffset`によって表示位置を**好きな高さ**に変えられるようなった。デフォルトは0で画面下からのパーセンテージで指定する(0～90)。
![screencast_pos.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/181011/fd287098-fcd3-1353-e6eb-ed59f79a4277.gif)
### バインドされたキーのみ表示
設定`screencastMode.onlyKeyboardShortcuts`をONにすると、ショートカットキーとして**定義されているキーバインドのみ表示**されるようになり、通常の文字入力はスルーされる。
![screencast_only.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/181011/48f8979c-aab6-cf1c-a629-1817cf5f0341.gif)
### 表示のデザインが変わった
キーの１つずつが立体的に表示されるようになった。

v1.37|v1.38
:-:|:-:
![screencast_design_old_s.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/181011/ac0f2906-c114-a73b-ac46-7788844f2848.png)|![screencast_design_s.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/181011/be526868-caf6-1cb9-a947-95667320e228.png)

# スクロール時のマージン行の設定
https://code.visualstudio.com/updates/v1_38#_cursor-surrounding-lines-scrolloff
キー操作でエディタをスクロールさせるときに、**カーソル行**と**エディタ上下端**との間にキープする行数を指定できるようになった。
設定`editor.cursorSurroundingLines`を使用する。デフォルトは0。ただし0の場合は上端は0行だが下端は1行になる様子。
![scroll_margin.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/181011/24a213f1-9793-defd-724c-a26488c06f39.gif)
ちなみにvimでは**scrollOff**という機能らしい。

# 改行を含む検索
https://code.visualstudio.com/updates/v1_38#_multiline-search-in-find
改行を含む検索・置換ができるようになった。
入力フィールドで`Ctrl`+`Enter`を押すと改行が入力できる。
![search_with_enter.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/181011/04a4b0b3-9356-4d42-2d41-9c02422755ac.gif)

# エディタ最下行からの相対行ジャンプ
https://code.visualstudio.com/updates/v1_38#_go-to-line-supports-negative-line-numbers
`指定行へ移動`コマンド（`Ctrl`+`G`）でマイナスの値を指定できるようになった。これにより、エディタ最下行を基準にした相対行にジャンプすることができる。最下行から-1, -2, ...と指定する。
![jump_relative_row.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/181011/c8dae20b-798d-31fb-0df5-efdf32138638.gif)

# HTMLとCSSのホバーに関連MDNページへのリンク表示
https://code.visualstudio.com/updates/v1_38#_mdn-reference-for-html-and-css
HTMLとCSSのホバー表示に、関連するMDNページへのリンクが表示されるようになった。
![link_to_mdn.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/181011/31c03d5e-791d-17cc-d7c7-049fb4f65a55.gif)

# commit時にブランチ名の表示
https://code.visualstudio.com/updates/v1_38#_git-branch-name-on-commit-input
commitメッセージの入力欄に現在のブランチ名が表示されるようになった。
![branch_name_on_commit.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/181011/b5480f72-e3fe-4eb0-30d7-be7e9bc50b14.png)
ブランチを間違えてcommitしてしまわないための配慮。良い！