個人的におすすめなIntellij IDEAの初期設定（随時更新）

個人的におすすめなIntellij IDEAの設定を晒します。

# 設定(Preferences)をいろいろいじる

設定ダイアログを開く方法

- WindowsまたはLinuxの場合 `File` > `Settings...`を選択
- MacOSの場合 `IntelliJ IDEA` > `Preferences...`を選択

以下の設定はこのダイアログで行う

## Gitで変更があるディレクトリがひと目で見えるようにする

初期設定の場合、Gitで変更のあったファイルが色付けされて表示される。（↓変更されたファイルが青くなっている。微妙に。）
<img width="295" alt="Screen Shot 2018-08-04 at 18.44.04.png" src="https://qiita-image-store.s3.amazonaws.com/0/109747/8829cdd9-8533-6fa8-a20a-c5bc2337ea1b.png">

この設定を行うと変更があったファイルの親ディレクトリにも色がついて表示されるようになる。
<img width="294" alt="Screen Shot 2018-08-04 at 18.42.51.png" src="https://qiita-image-store.s3.amazonaws.com/0/109747/3090595e-4778-bfe2-a8ac-033062aec60b.png">


### 設定方法:
`Version Control`
`Confirmation ` > `Highlight directories that contain modified files in the Project tree` にチェックを入れる

## インポート編成を自動的に行う

Javaクラス編集時に、必要なimport文を自動的に追加してくれるように設定

### 設定方法:
`Editor` > `General` > `Auto Import`
`Add unambiguous imports on the fly`にチェックを入れる
`Optimize imports on the fly`にチェックを入れる

## コードの折りたたみをさせないようにする

Intellijは初期設定の場合、import文などを折りたたんで隠しておいてくれる
<img width="408" alt="Screen Shot 2018-08-04 at 18.22.13.png" src="https://qiita-image-store.s3.amazonaws.com/0/109747/1a6ac057-6c5b-8e21-b794-321b27dc2c69.png">


個人的な好みで、いちいち折りたたみを開くのが面倒なので、折りたたまないで表示するように設定。

### 設定方法:
`Editor` > `General` > `Code Folding`
`Collapse by default:`のチェックボックス全部外す


## テキストが選択されている状態で「`"`」や「`{`」などを入力したときに選択箇所を囲むようにする

この設定をやっておくと、
例えば、↓のようにテキストを選択している状態で`"`を入力すると...
<img width="157" alt="Screen Shot 2018-08-04 at 18.27.49.png" src="https://qiita-image-store.s3.amazonaws.com/0/109747/3e78fe1b-728d-2e8a-4f5e-6cdb8a4c466e.png">
選択範囲が`"`で囲まれるようになる。地味に便利。
<img width="155" alt="Screen Shot 2018-08-04 at 18.27.59.png" src="https://qiita-image-store.s3.amazonaws.com/0/109747/37a153b1-3a51-538b-c9fd-8832bd216268.png">

### 設定方法:
`Editor` > `General` > `Smart Keys`
`Surround selection on typing quote or brace`にチェックを入れる


## SQLの方言の設定 (※ ここではMySQLの場合を想定)
こういうふうに出たときに`Use MySQL`を選択すると、IntellijによってMySQLのSQLとして認識されて、補完とか整形とか構文エラー表示とかやってくれるようになる。
<img width="784" alt="Screen Shot 2018-01-31 at 9.41.22.png" src="https://qiita-image-store.s3.amazonaws.com/0/109747/c0a63b80-315d-d4dd-e3a9-2dbedec10400.png">


1ファイルずつ選ぶのは面倒なので、プロジェクト全体で設定する方法が↓。
`Preferences` > `Languages & Frameworks` > `SQL Dialects`
`Global SQL Dialects`か`Project SQL Dialects`に「MySQL」を選択
<img width="788" alt="Screen Shot 2018-01-31 at 9.48.39.png" src="https://qiita-image-store.s3.amazonaws.com/0/109747/1a8123dc-d00e-5da4-6046-f25126a7f1de.png">


## Javaファイル保存時に自動的にインポート整理 & フォーマッターをかける
チームで開発するときに、インデント等で差異がでちゃうのはよくないので、問答無用でフォーマッターかけちゃうのがいいと思います。

1. `Save Actions`プラグインをインストールしておく
1. `Other Settings` > `Save Actions` で↓のように設定する

<img width="1066" alt="Screen Shot 2018-12-03 at 17.24.23.png" src="https://qiita-image-store.s3.amazonaws.com/0/109747/e78a4b60-8431-67f6-5830-65ae8151750e.png">

## `Services`ツールウインドウを表示

実行/デバッグの設定や状態を一箇所で管理できるツールウインドウ
https://blog.jetbrains.com/idea/2019/08/services-tool-window-one-place-to-rule-them-all/

僕はSpring Bootアプリケーションの実行/デバッグを管理をするためにこれを使っています

1. `View` → `Tool Windows` → `Services`を選択
1. `Add services` > `Run Configuration Type` > `Spring Boot`


# 割当メモリ（ヒープサイズ）を増やす

Intellijの動作を軽快にするためにヒープサイズを増やしておく。

### 設定方法:
1. `Help` > `Edit Custom VM Options...`を選択
1. `idea.vmoptions`というファイルが存在しない場合、作成するかどうか聞かれるので`Create`を選択する。
1. ↓のようなファイルが作成され表示される`。
<img width="613" alt="Screen Shot 2018-08-04 at 17.58.25.png" src="https://qiita-image-store.s3.amazonaws.com/0/109747/64d368bd-26a7-44ed-bdeb-f3c007dbcceb.png">
1. Xmx(最大ヒープサイズ)の値を変更する。（ついでにXms(最小ヒープサイズ)も上げておくと起動が若干早くなるかも）

例:

```
-Xms256m
-Xmx1500m
```

# その他おすすめプラグイン

- [BrowseWordAtCaret](https://plugins.jetbrains.com/plugin/201-browsewordatcaret)
- [String Manipulation](https://plugins.jetbrains.com/plugin/2162-string-manipulation)
- [Maven Helper](https://plugins.jetbrains.com/plugin/7179-maven-helper)
- [Rainbow Brackets](https://plugins.jetbrains.com/plugin/10080-rainbow-brackets)
- [GitToolBox](https://plugins.jetbrains.com/plugin/7499-gittoolbox)
- [Reveal In Finder](https://plugins.jetbrains.com/plugin/3361-reveal-in-finder) (※MacOS用)