PhpStormの設定

~~PhpStorm 2016.2~~
~~PhpStorm 2018.3~~
~~PhpStorm 2019.2~~
PhpStorm 2020.2

# 試用期間・購入方法など

**試用期間：`1か月`**
> 試用期間が終わったあとも、PhpStorm起動から30分間使用可能。
> 30分おきに立ち上げなおせば一応使える。

**購入方法**
> 日本語での対応なら、公式代理店の[サムライズム](http://samuraism.com/)から購入できます。
> ライセンス発行までの時間は下記の通り。
>> `通常新規ライセンスの場合は決済当日に、更新ライセンスの場合は翌営業日までに発行しております。`
> 
> 自分の場合、送金から30分程度で発行してもらえました。

--------------------------------------------------------------------------------
# 便利な機能

長くなったので[別の記事](http://qiita.com/RyutaKojima/items/2bb24e4e5786ec35f2be)にしました。


# 設定

## PhpStormのヒープメモリ割り当てを増やす

長くなったので[別の記事](https://qiita.com/RyutaKojima/items/a39c066ab6ccb460e3eb)にしました。

## PhpStormの設定をGitHubで共有する

[IntelliJの設定を端末間で共有する](http://qiita.com/sotetsuk/items/39622a0219e93052c8dc)

`Personal access tokens` への権限は、`public_repo`のみでOK (公開リポジトリの場合)

![github.PNG](https://qiita-image-store.s3.amazonaws.com/0/87995/08f05d8a-8832-1317-c5b2-8864a818f947.png)

Override Remote をした際に下記エラーが出る場合は、権限が不足しています。
`https://github.com/user_name/repo_name: git-receive-pack not permitted`

--------------------------------------------------------------------------------

## リモートと自動同期する(FTP/SFTP)

```
Tools > Deproyment > Configration...
```

- 接続先のFTP or SFTP情報を設定する
- `Mappings`タブの `Deployment path`も指定するのを忘れずに

```
Tools > Deproyment > Options...
```

ファイルを自動アップロードするタイミング

- `Upload changed files automatically to the default server`
    - ~~セレクトリストから`On explicit save action (Ctrl+S, Ctrl+Shift+S)`を選択~~
    - セレクトリストから`Always`を選択（デフォルト）

> ~~デフォルト`Always`は、日本語の入力中に送信されたりと送信タイミングがよくわからなく、無駄な通信と負荷がかかりそうなので変更~~
> Alwaysをやめると、git checkoutの際に変更のあったファイルがアップロードされません。
> 手間が増えたり、アップロード漏れの問題が出そうなので、一般的にはAlwaysのままの方がよさそうです。

---

外部のエディタで変更されたファイルもアップロードする

- ~~Upload external changes~~
    - ~~チェック入れる~~
- `Skip external changes`
    - デフォルトで外れているので、もしチェック入っていれば外します。

いつの間にか項目名が変わり、デフォルトで外部エディタでの変更もアップロードされるようになったみたいです。

```
Tools > Deproyment > Automatic Upload
```

- 選択したら項目にチェックが入り、自動アップロードされるようになります。

--------------------------------------------------------------------------------

## ディレクトリ別に色分けする

　　Project（Tool Windows)、エディタで開いたときのタブ色をディレクトリ別に設定できます。

　　▼ Appearance & Behavior
　　　　File Colors

　　　　　　１．最初に右下の[Manage Scopes...]ボタンから、対象のディレクトリを追加します。
　　　　　　２．Local colors、もしくは Shared colorsの右の[+]ボタンを押します。
　　　　　　　　「１．」で作ったスコープ名を選択→色を選択で追加します。
　　　　　　３．設定を保存すると色が反映されます。たまに反映しないときがありますがその時はPhpStormを再起動すると直ります。

--------------------------------------------------------------------------------

#### フォント

**ツールウィンドウ/ステータスバー/設定画面のフォント**

    File > Settings... (Ctrl + Alt + S) > ▼Appearance & Behavior > Appearance
      ~~□ Override default fonts by (not recommended): ← チェック入れる~~
      Use custom font:← チェック入れる
      Name: HackGen
      Size: 14

**エディタのフォント**

    File > Settings... (Ctrl + Alt + S) > ▼Editor > Font
      Font: HackGen
      Size: 13
      Line spacing: 1.0

**Terminalのフォント**

    File > Settings... (Ctrl + Alt + S) > ▼Editor > ▼Color Scheme > Console Font
      □ Use console font instead of the default

    エディタのフォントと同じ設定にする場合は、チェックなし
    専用で設定する場合はチェックを入れて指定する

使用フォント：
- [白源](https://qiita.com/tawara_/items/374f3ca0a386fab8b305)
- ~~[Ricty Diminished](http://www.rs.tus.ac.jp/yyusa/ricty_diminished.html)~~
- ~~[Source Code Pro](https://github.com/adobe-fonts/source-code-pro)~~


#### 左と下のツールウィンドウの占有域を逆にする
    File > Settings... (Ctrl + Alt + S) > ▼Appearance & Behavior > Appearance

    Tool Windows---

- [x] Widescreen tool window layout

チェックON: 左ツールウィンドウが下端まで占有する
チェックOFF: 下ツールウィンドウが左端まで占有する

#### 保存時に空行のスペースを自動削除をしない
    File > Settings... (Ctrl + Alt + S) > ▼Editor > ▼General
      Save Files-----
      「Strip trailing spaces on Save for:」

- `Modified Lines`: 変更した行だけ削除
- `All`: すべての空行を削除
    - □ Always keep trailing spaces on caret line: チェック入れるとキャレット（カーソル）のある行は削除されない
- `None`: 自動削除しない

#### 空白文字を表示 / メソッドの区切りにセパレータを表示
    File > Settings... (Ctrl + Alt + S) > ▼Editor > ▼General > Appearance

- [x] Show method separators ← チェック入れる
- [x] Show whitespaces ← チェック入れる

#### 開けるタブの数を変更

```
File > Settings... (Ctrl + Alt + S) > ▼Editor > ▼General > Editor Tabs
Appearance----------
```

- [ ] Show tabs in one row　← チェック外す（タブを複数行で表示する場合）

```
Closing Policy----------
  Tab limit: [30]
```

#### デフォルトで折りたたむ項目の設定
    File > Settings... (Ctrl + Alt + S) > ▼Editor > ▼General > Code Folding
      □ HTML 'style' attribute ← チェック外す

#### オートコンプリートが出るまでの速さを変更

2019.2 では設定がなくなっている（？）

    File > Settings... (Ctrl + Alt + S) > ▼Editor > ▼General > Code Completion
      Autopopup in(ms): [100]

#### 改行コード変更（ CRLF → LF ）
    File > Settings... (Ctrl + Alt + S) > ▼Editor > ▼Code Style
      Line separator: 「Unix and OS X (\n)」に変更

#### インデントをタブに変更
    File > Settings... (Ctrl + Alt + S) > ▼Editor > ▼Code Style > PHP
      「Tabs and Indents」タブ
        □ Use tab character ← チェック入れる

## コーディング規約系

#### クラスのフルパス記述で警告を出さない
    File > Settings... (Ctrl + Alt + S) > ▼Editor > Inspections
      ▼PHP
        ▼Code Style
          □ Unnecessary fully qualified name ← チェック外す

#### array()の記述を [] に変えるよう警告を出さない
    File > Settings... (Ctrl + Alt + S) > ▼Editor > Intentions
      ▼PHP
        □ Convert array to short syntax ← チェック外す
        □ Replace ternary expression with if clause ← チェック外す

--------------------------------------------------------------------------------

# プラグイン

使っていて便利だと思うプラグインを一部紹介します。
（再セットアップ時の個人的なメモを兼ねて）

#### GitToolBox

  カーソル行のGit Blameを表示してくれる (右クリック > Git > Annotateせずにぱっと見れて便利)

#### [Key Promoter X](https://plugins.jetbrains.com/plugin/9792-key-promoter-x)

  キーボードショートカットを設定している操作をマウスでした場合に、ショートカットをサジェストしてくれます。

#### [Rainbow Brackets](https://plugins.jetbrains.com/plugin/10080-rainbow-brackets)

  対応する括弧に色付けして見やすくしてくれます。
  ネストされた括弧には、それぞれ別の色が付けられるので視認性が向上します（個人の感想です）
  括弧`()`、中括弧`{}`、大括弧`[]`に対応しています。

#### Translation

  Ctrl + Shift + Y（Windows)で日英、英日の翻訳をしてくれます（便利！）
  詳しくは[別記事に書きました](https://qiita.com/RyutaKojima/items/7fff9503630441c438c8)

#### [.​ignore](https://plugins.jetbrains.com/plugin/7495--ignore/)

  ignore系のファイル編集をサポートしてくれる。
  .gitignoreファイルを開くとexcludeファイルの中身も確認できるなど

#### Autoscroll Save

  Autoscroll from Source の設定を、全プロジェクトに適用できる。

#### [CodeGlance](https://plugins.jetbrains.com/plugin/7275-codeglance)

  コードのミニマップを表示

#### PHP Advanced AutoComplete
  オートコンプリート機能を強化？
  使ってないので詳細はわかりません

--------------------------------------------------------------------------------

# Git fetchでエラーになる場合
    File > Settings... (Ctrl + Alt + S) > ▼Version Control > Git
      SSH executable: 
        「Built-in」→「Native」に変更


    ユーザーディレクトリ直下の.sshフォルダにconfigファイル作成
      C:\Users\username\.ssh\config

```config
host github.com
        User git
        IdentityFile ~/.ssh/ssh_key/id_rsa_np
```

--------------------------------------------------------------------------------

# キーボードショートカット

長くなったので[別の記事](http://qiita.com/RyutaKojima/items/2bfa38e3dd83d55ac788)にしました。