役にたつか立たないかわからないInteliJIDEの話 【随時更新していくよ！！】

# はじめに

勢いでIntelliJ All Products　Pack買いました！
衝動買い楽しい。
せっかくだしちゃんと勉強しながら色々と使いこなせるようにメモします。
この機能の紹介をぜひー！とかこれ忘れてないなどあればどんどんお教えいただけますと幸いです。追記していきます！！
あと、サムライズムさんとかIntelliJとかお金もらってかいているわけではないです。

## 色々あるけど・・・

いろんな機能があって色々と扱えるものも違ってきます。
ちなみに最強はIntelliJ IDEA Ultimate Editionです。
plugin で追加さえすればめちゃめちゃ捗ります。

僕がweb開発とアプリする人間なので、それ以外にどうするべきなのかはわからないです。
値段は年間ですが、３年目まで毎年安くなっていきます。

## JavaScripter

webStormで要件を満たせます。
**年間６３００円で、三年目だと3700円**です。

webStormは、**HTML/CSS、js, ts, coffe script**を扱うことができます。なので、フロントエンドだろうが、バックエンド（nodeでの話）だろうがこれ一個で大丈夫です。
goに関してはプラグインでなんとかできるけど辛いみたい・・・。
そして、WebStormはかなり安いです。

ただし、こいつでDBを覗き見たりするのはpluginでできなくもないですが、Data Gripを買った方がいいかと。
二郎を食べたことない人が二郎の美味しさがわからないてきな感じでData Gripを触らない限りは他のフリーツールでも満足してやっていけます。
ただし、free trialでもData Grip触ろうものなら、もう戻ってこれなくなります。

## pythoner
pyCharm professional Edition(PE)で要件を満たせます。
年間9600円で三年目だと5700円です**

pythonはCommunity Edition(CE)って無償のバージョンがありますが、これは基本的にはデータサイエンス向けでweb開発用に転用していくのは結構無理がでます。データサイエンスだけのためならCEでよいです！jupyterも動かせます！
そして、こいつはなんと**HTML/CSS, js, ts, CoffeScript**も扱うことができます！
なのでこれを買えば、フロンエンドだろうが、バックエンド（python or node)だろうがこれ一個で大丈夫です。
ただし、値段はちょっと高いです。

## phper

phpStormです。
**年間9600円で三年目だと5700円です**
webStormの上位互換ににあたります。
そして、こいつもなんと**HTML/CSS, js, ts, CoffeScript**も扱うことができます！
なのでこれを買えば、フロンエンドだろうが、バックエンド（php or node)だろうがこれ一個で大丈夫です。
上位互換なので値段はやっぱちょっと高いです。


## Rubyer
RubyMineです。
年間9600円で三年目だと5700円です**
僕はあんまりRubyに関して明るくないです・・・。
が、Rubyを扱うことができ、こいつもなんと**HTML/CSS, js, ts, CoffeScript**も扱うことができます！
ということでこれもフロンエンドだろうが、バックエンド（ruby or node)だろうがこれ一個で大丈夫です。

## go langer
go landです。
**年間9600円で三年目だと5700円です**

かっこいいですね。
これは**HTML/CSS, js, ts**を扱うことができます！

## javer
IntelliJ IDEA ultimate Edition(UE)を使うことができます。
**年間16100円で三年目だと9600円です**

一応無償のCommunity Edition(UE)もありますが、で開店としてはHTML/CSS, js, markdownとかに対応していない点です。
java, kotolin, androidとかならCEで十分ですが、フロント周りをやろうとするならこれだとできないです。
pulanginをいれることで、多少python、Goなどに対して耐性をつけることもできます。
これだけ機能がたくさんあるためややお高い値段設定になっています。


## swifter Objective-Cer
AppCodeがあります。
**年間9600円で三年目だと5700円です**

いままでXCode使ってきたので使用感はちょっと不明です・・・。というかReact Nativeエンジニアなので、そこまで必要なものでもない。
これは、swift, Objective-C/C++のほか、HTML/CSS、JavaScriptを扱えますが、ts、Coffieはできません。
なのでReact Nativeやる人からしてみてもAppCode買うかは微妙なところですね。

## SQLer
Data Gripがあります。
**年間9600円で三年目だと5700円です**
これはめっちゃ良くてかなり重宝しています。


## All Product Packは買いなの？
はっきし言ってAll Product Packは結構たかいです。
**年間26900円で三年目だと16100円です**

普通に開発しててもなんだかんだで２言語ぐらいできたら結構十分かと思います。
基本的に元を取ろうと思ったら３製品はちゃんと使わないともったいないです。
ですが、js系のものはだいたいどれもあつかえるので３製品使おうとするのは結構難しいです。

たとえば、僕の場合、

- フロントエンドやる
- アプリやるけどReact Nativeなのでswift、javaはそんなに触らない
- バックエンド node or python
- データサイエンスやる
- データベースみる

とかになってくると、pyCharmとDataGripあれば十分かなと言ったところです。
それと、基本的にアップデートの速さは固有の製品の方が早いみたいなので、前線をいく人は前線をいけるような製品チョイスを心がけた方がいいかもしれません。
なので中なかなかに絶妙な値段設定をしている感じがしますね・・・。


## 値段のまとめ

### ２6900円コース
All Product Pack
### 16100円コース
IntelliJ IDEA Ultimate Edition
### 9600円コース
phpStorm, RubyMine, PyCharm, DataGrip, Goland, AppCode
### ６３００円コース
webStorm

と言った感じです。なので、ここから自分に何が必要なのかを吟味して選んでいくといいかと思います！
あと、僕みたいに心配性だったり考えるのめんどくさ買ったりする人はAll Product Packを買うといいと思います。





## intention Actions
option + enter
いろんなことができます。
例えば、勢いでコード書いたけどファイルつくってなかった時とか、ここからさささっと作ることができます。


![nazo2.gif](https://qiita-image-store.s3.amazonaws.com/0/121851/37666e1a-7f52-d2e1-6d60-90f21c489a7c.gif)

## post completion
あと出しでコードを書く機能。
みてもらったほうが早い機能。そんなにいらないんじゃないって思うかもですが、なんだかんだ言って覚えれば便利な機能です。

![nazo2.gif](https://qiita-image-store.s3.amazonaws.com/0/121851/00d21fad-1606-7855-939a-0ba2fddbb400.gif)

一覧はpreference > editor >  general > Postfix Completionからみれます。

<img width="645" alt="スクリーンショット 2019-02-05 14.41.30.png" src="https://qiita-image-store.s3.amazonaws.com/0/121851/67eee8bb-632a-5d61-2063-7044fc39f3d3.png">

独自定義もできます。

<img width="333" alt="スクリーンショット 2019-02-05 14.48.19.png" src="https://qiita-image-store.s3.amazonaws.com/0/121851/658bb4c8-5beb-baac-628a-48288b23e4b8.png">

割と便利な

```js
console.log({
  a,
  b,
});
```

を作りました。
![nazo2.gif](https://qiita-image-store.s3.amazonaws.com/0/121851/1ebcaf69-64ae-6e61-534e-8ee9c973ac84.gif)



## live template
色々な機能がある。アロー関数をfarrowとして追加してみた。
[こちら](https://www.megadix.it/blog/intellij-live-templates-javascript-development/)を参考にした。

タブを押すたびに引数、処理と言ったことができる。

![nazo2.gif](https://qiita-image-store.s3.amazonaws.com/0/121851/2c058d03-d9f9-dcf6-1934-5623c574ecc3.gif)

![スクリーンショット 2019-02-03 13.56.22.png](https://qiita-image-store.s3.amazonaws.com/0/121851/22be4e30-6de9-d058-8d9e-48ec713befc2.png)

こんな感じで追加する。ワーニングっぽいのでてたらどの言語でできているかわからないっていっているので、どの言語で使えるかを設定してあげましょう。

```
($PARAMS$) => ({
    $BODY$
})$END$;
```

こんな感じで定義すると、param -> body -> endにtabを押すたびに遷移する。
一応、テンプレート的なのは、範囲を選択 -> tools -> save as livetemplateっていうのを押すと、選択範囲のコードが入った状態で始められる親切設計。


## expand selection
いい感じに選択範囲をする機能です。
option + ↑で回数に応じて範囲が広がります。逆に戻したい場合はoption + ↓です。

![nazo2.gif](https://qiita-image-store.s3.amazonaws.com/0/121851/f849ddb3-71fe-793f-3dc9-aaa05ed0782e.gif)

## 変数化とインライン化

名前的に変数化したかったり、戻したりを一瞬でできます。

cmd + option + v 変数化します。
cmd + option + n で戻します。

![nazo2.gif](https://qiita-image-store.s3.amazonaws.com/0/121851/23f4e60b-db07-7b37-0976-977ec268f96d.gif)


## parameter hint name
若干物議をかもすこの機能。
<img width="207" alt="スクリーンショット 2019-02-05 15.14.10.png" src="https://qiita-image-store.s3.amazonaws.com/0/121851/02f21911-c687-75d4-1c48-1e6de5951089.png">

こんな形でパラーメーター名を表示できます。

設定はここで切り替えられます。

<img width="1013" alt="スクリーンショット 2019-02-05 15.13.44.png" src="https://qiita-image-store.s3.amazonaws.com/0/121851/dadaeda7-01ea-7c1c-8f86-772b099895b5.png">



## ショートカット

|効果|コマンド|
|:--:|:--:|
|Undo| cmd + z|
|Redo| cmd + shift + z|
|検索| cmd + f or cmd + shift + f (プロジェクト全体)|
|置換| cmd + r or cmd + shift + r (プロジェクト全体)|
|複製| cmd + d|
|プロジェクトにwindowを開く閉じる| cmd + 1|
|ファイル作成| cmd + n|
|コードの折りみと展開| cmd + .|
|preferenceを開く| cmd + , |
|help or Action| cmd + shift + a |
|expand  selection| option + ↑ (回数で変わる)|
|予測補完を出す(macだとデフォで行けないので後述。ここに書いたのは自分用メモ)|cmd + 4|
|smart補完を出す(macだとデフォで行けないので後述。ここに書いたのは自分用メモ)|cmd + 5|
|intention Actions|option + enter|
|変数化| cmd + option + v |
|インライン化| cmd + option + n|
|パラメーターヒント| cmd + p|
|定義元ジャンプ(とにかく素晴らしい)|cmd + b|