VS Code 1.15 の新機能のリリースノートをそれとなく眺めてみる

Visual Studio Code の バージョン 1.15 がリリースされたので、[リリースノート](https://code.visualstudio.com/updates/v1_15)を眺めてみてどんな機能が追加されたのか見てみる。

# [エディタ関連](https://code.visualstudio.com/updates/v1_15#_editor)
## ラージファイルのサポート
- ラージファイルとは、サイズが30MB以上とか行数が30万以上とかのファイルを指すらしい。
- 64bit版ではいろいろ制限を設けることで、今までのサイズの上限（50MB）が無くした、らしい。
- 32bit版については、300MBのサイズ上限を設けることにした、らしい。
    - 試しにサイズ100MBのテキストファイルを作って食わせてみたら、v1.15では開くことができた。

## カラーピッカーのサポート
- CSSなどでの色指定の箇所にマウスカーソルを当てると、カラーピッカーが表示されるようになった。カラーピッカーで色を変更することもできる。
- カラーピッカーのタイトル部をクリックすると、コードの色表現の形式がrgb()形式→hsl()形式→#形式とトグルで切り替わる。

## オートインデントがデフォルトでONに
- オートインデントの設定（`editor.autoIndent`）が今まではデフォルトがfalseだったのがtrueに変更になった。
- コードをコピペとか移動とかしたときにインデントの具合をよしなにやってくれる機能。

## Emmet2.0がデフォルトに
プレビュー版限定だったEmmetの新しい機能（候補リスト表示とかマルチカーソルのサポートとか）が正式に使えるようになった、らしい。

## コードスニペットに値の選択肢表示機能が追加
- 定義したスニペットを呼び出したときに、任意の位置にカーソルを移動させておく機能は今までもあったが、今度はさらにそこに、選択肢を仕込んでおいてそれを選ばせることができるようになった。
    - これは結構便利そう。

- あと、コード補完でスニペットを呼び出す際にスニペットのプレビューが見れるようになった。
    - これもよい！

## 差分エディタの改善
- アルゴリズムが変更され、差分結果がより見やすくなった、らしい。
- `git diff` の結果に近くなった？

# [ワークベンチ関連](https://code.visualstudio.com/updates/v1_15#_workbench)
## 構文の強調表示色のカスタマイズ
- を個別で設定できるようになった。
- 今までは配色テーマで設定する必要があった？

## ファイルエクスプローラの表示ソート順
- を設定で変更できるようになった。
- 選択肢
    - `filesFirst` フォルダよりファイルを先に並べる
    - `mixed` ファイルとフォルダを分けずにソート
    - `modified` ファイルの最終更新日時でソート
    - `type` ファイルタイプでソート

## ファイルエクスプローラから統合ターミナルを起動
- 今まではファイルエクスプローラからは外部のターミナルが起動するようになっていたが、統合ターミナルが起動されるようにデフォルト動作が変更された。
- 気に入らなければ、設定 `terminal.explorerKind` で変更できる。

## ビューの管理
- サイドバーのエクスプローラ・デバッグ・拡張機能のそれぞれの内部のビューを、順番を入れ替えたり、表示したり非表示したりすることができるようになった。

## 最後のエディタを閉じたときの挙動
- 最後のエディタを閉じたときに、VS Code 自体も自動的に閉じてしまう設定ができるようになった（`window.closeWhenEmpty`。デフォルトは`false`）。
- ただしこの挙動が有効なのは、フォルダを開いていない状態に限られる（単発のファイルのみが開かれている状態）。
- macOSでは典型的なアプリケーション動作らしい。そうなの？

## --wait サポートの改善
- Gitコマンドのような外部のプログラムとの連携用に`--wait`というコマンドライン引数があり、それを再実装した、らしい。

## タイトルバーの枠用の新規テーマカラーの追加（MacOSのみ）
- `titleBar.border` の設定によって、タイトルバーとエディタの間の枠線を描画できるようになった、らしい。

## 未保存の変更内容の差分表示
- そのファイルの最後に保存した状態と、現在の未保存の状態との差分を比較できるようになった。
- ショートカットは `Ctrl`+`K` `D`。
- これは地味に便利かも知れない。「あれ？これ何直したんだっけ？保存しちゃって大丈夫なんだっけ？」みたいな時がよくある。

## フォントエイリアシング（macOSのみ）
- フォントエイリアシングの設定を変更できる `workbench.fontAliasing` という項目が追加された（でもmacOSのみ）。

## 最近開いたファイルの一覧からファイル名を削除する機能
- `Ctrl` + `R` で開く、最近開いたファイルの一覧のファイル名の横に`×`が表示されるようになった。この`×`を押すとそのファイル名が一覧から削除される。
- 他の一覧でもやってほしい。コマンドパレットとか。

## クイックオープンの引数対応
- `workbench.action.quickOpen` コマンドで引数を渡すことができるようになり、それによりテキストを事前入力した状態でクイックオープンピッカーを開くことができるようになった。
- これにより、以下のような場面で上記アクションを行えるようになった。
    - クイックオープンの操作をショートカットで定義するとき
    - 拡張機能のコードでクイックオープンの処理を呼び出すとき

## 検索ビューでの検索の一部仕様変更
- 検索ビューの`含めるファイル`欄に`example`と指定した場合、今まではルートフォルダの直下にある`example`フォルダおよび任意の階層にある`example`ファイルが検索対象となり、`tekito`フォルダの下に`example`フォルダがあった場合はそのフォルダは検索対象とはなっていなかった。これを、任意の階層の`example`フォルダおよび`example`ファイルが検索対象となるように変更された。
- なお、`./example`と指定すれば、開いたフォルダの直下のみが検索対象となる。
- これに伴い、`含めるファイル`欄や`除外するファイル`欄で指定可能だった`globパターンを使用する`オプションが廃止になった。

| v1.14 検索条件指定なし| v1.14 検索条件指定あり |
|:--|:--|
| ![1.15指定なし.PNG](https://qiita-image-store.s3.amazonaws.com/0/181011/1a810fec-312f-ace2-84a3-376d8fd9e30e.png) | ![1.15指定あり.PNG](https://qiita-image-store.s3.amazonaws.com/0/181011/a9d15a8d-b401-3aba-9e5c-ced808960cd7.png) |

| v1.15 検索条件指定なし| v1.15 検索条件指定あり |
|:--|:--|
| ![1.15指定なし.PNG](https://qiita-image-store.s3.amazonaws.com/0/181011/75c8fb5a-ec65-15cc-5772-4c32b6d7d5be.png) | ![1.15指定あり.PNG](https://qiita-image-store.s3.amazonaws.com/0/181011/dcdeb069-e9c3-6670-543a-1d5c4a69f512.png) |

# [統合ターミナル関連](https://code.visualstudio.com/updates/v1_15#_integrated-terminal)
## 追加の環境変数の設定をVS Code側で設定
- 統合ターミナルで追加で使用したい環境変数を、VS Code の設定で定義できるようになった。
- OSごとに設定が別になっていて、Windowsの場合は `terminal.integrated.env.windows`。

## クイックピッカーでのターミナルの切り替え
- クイックピッカーを使っての、ターミナルの切り替えおよびターミナル名の変更ができるようになった。
    - `Ctrl` + `P` を押してから `term` + `Space` とキー入力するか、
    - コマンドパレットで、`アクティブなターミナルの切り替え(Quick Open Terminal)` を呼び出す。
- 表示されるターミナル名一覧の右側の設定アイコンを押すを名前を変更できる。

## デフォルトのターミナル名の改善（Windowsのみ）
- `powershell.exe` とか `cmd.exe` になっていたデフォルトのターミナル名を、`powershell` とか `cmd` になるように変更された。

## 削除に関するキーバインドの追加
- `Ctrl` + `Backspace`　単語文字の、カーソル位置より左側を削除
- `Ctrl` + `Del`　単語文字の、カーソル位置より右側を削除
- Macの場合は`Alt` +
- シェルにキーストロークを送信することにより実現しているので、一部のシェルではうまく動かないらしい。

## Altキーによる強制的な選択操作（macOSのみ）
- `tmux` などのソフトを使用しているとマウス操作を横取りされてしまって選択操作ができないので、`Alt` を押しながらマウス操作を行うことにより選択操作ができるようにした、らしい。

# [タスク関連](https://code.visualstudio.com/updates/v1_15#_tasks)

## Less,Sass 用の Problem Matcher の追加
- `less` および `node-sass` 用の Problem Matcher `$lessc`, `$node-sass` が追加された、らしい。

## ステータスバーへの実行タスク情報の表示
- タスクを実行するとステータスバーにアイコンが表示されるらしい。
- それをクリックすると出力結果が表示されるらしい。

# [デバッグ関連](https://code.visualstudio.com/updates/v1_15#_node-debugging)

## ビューからのロード済みスクリプトの表示
- デバッグビューの`LOADED SCRIPTS`で、ロードされたスクリプトを表示できるようになった。
- 今まではコマンドパレットから`Open Loaded Script`コマンドを呼び出して表示する必要があった。

# [言語関連](https://code.visualstudio.com/updates/v1_15#_languages)

## Markdownプレビュー内の検索
- が可能になった。
- 同様に、起動時に表示されるリリースノートとか、拡張機能の説明のページとかでも検索ができるようになった。
- たまに要るかも。

## MarkdownプレビューでのURLの自動リンク表示
- Markdownプレビューで、URLテキストを自動的にリンク表示するようになった。
- 設定によって元に戻すことも可能。`markdown.preview.linkify`

## Markdownプレビュープラグインのサポート
- 以下の３つのプラグインが新たにサポートされる
    - プレビュースタイル
        - 拡張機能にてプレビューのスタイルをCSSでカスタマイズできる
        - 例 https://github.com/mjbvz/vscode-github-markdown-preview-style
    - Markdown-itプラグイン
        - 拡張機能にてカスタムのMarkdown文法を追加できる
        - 例 https://github.com/mjbvz/vscode-markdown-emoji
    - プレビュースクリプト
        - 拡張機能にてプレビュー内でスクリプトを実行できる
        - 例 https://github.com/mjbvz/vscode-markdown-mermaid

## Markdownプレビューでの画像表示のセキュリティ設定
- httpアドレスの画像は表示せずにブロックし、許可を与えた場合だけ表示するようにデフォルト動作が変更になった。
- 設定を変更するには、ブロックされた際に表示されるポップアップをクリックするか、もしくはコマンドパレットから、`マークダウン プレビューのセキュリティ設定の変更(Change Preview Security Settings)` を呼び出す。

# [拡張機能開発関連](https://code.visualstudio.com/updates/v1_15#_extension-authoring)
- Markdownプレビュー機能拡張用の新規API
- 資格情報を格納するためのAPIの提案
- 範囲選択を用いてエディタ／差分エディタを開くAPI
- デバッグAPIのアップデート
- package.jsonでの変数置き換え機能の廃止
- プロセス情報通知イベントの追加
- マルチルートワークスペース用の新規API
- ルートフォルダ用新規アイコンカテゴリの追加
- コンフィグレーションAPIの拡張

# [マルチルートワークスペース（プレビュー）](https://code.visualstudio.com/updates/v1_15#_preview-multi-root-workspaces)
- 現在のVS Codeでは、１つウィンドウで１つのフォルダしか開けない。
- この機能はまだ安定版には含まれず、[インサイダービルド](https://code.visualstudio.com/insiders)でのみ試すことができる。

# [Windows版 64bit ビルド](https://code.visualstudio.com/updates/v1_15#_windows-64-bit)
- Windows版の64bitビルドが安定版でリリースされた。おめでとー！

# [プロキシサーバ認証](https://code.visualstudio.com/updates/v1_15#_proxy-server-authentication)
- がサポートされた？