VSCodeのおすすめ設定（CakePHP開発用）

# はじめに

- こちらの記事の続きです
    - [VSCodeのおすすめプラグイン（CakePHP開発用）](https://qiita.com/rowpure/items/4d9df81a4ec4573efdcb)
- ここでは、私がCakePHP開発時に設定しているVSCodeの設定（`settings.json`）を紹介します
- 設定はCakePHPのコード規約に沿うようなっております（たしか）

## 追記（2021年08月12日）

- [VSCodeのおすすめプラグイン（CakePHP開発用）](https://qiita.com/rowpure/items/4d9df81a4ec4573efdcb)の更新に伴い、設定値も併せて変更しました

# VSCode設定値

```jsonc:settings.json
{
    // ナビゲーション階層リンクを有効にする
    "breadcrumbs.enabled": true,
    // コンテナに表示するラベル名をコンテナ名にする
    "docker.containers.label": "ContainerName",
    // 言語モードがPHPに対して既定のフォーマッタをphpcbfに定義する
    "[php]": {
        "editor.defaultFormatter": "persoderlind.vscode-phpcbf"
    },
    // エディタの#editor.tabSize#と#editor.insertSpaces#の設定を強制する
    // 例）インデントがTABのファイルを開き編集した際に、TABキーでスペース4つの設定をしていたとしてもTABを入れる機能を無効
    "editor.detectIndentation": false,
    // 貼り付けた内容をエディタにより自動的にフォーマットする
    "editor.formatOnPaste": true,
    // エディタでアクティブなインデントのガイドを強調表示する
    "editor.highlightActiveIndentGuide": true,
    // Ctrlキーを押しながらマウスホイールを使用してエディタのフォントをズームする
    "editor.mouseWheelZoom": true,
    // マウスを使用して複数のカーソルを追加する時に使用する修飾キーをCtrlキーに割り当てる
    "editor.multiCursorModifier": "ctrlCmd",
    // エディタで制御文字を表示する
    "editor.renderControlCharacters": true,
    // エディタで単語間の単一のスペースを除く空白文字を表示する
    "editor.renderWhitespace": "boundary",
    // 120文字に垂直ルーラーを表示する
    "editor.rulers": [
        120
    ],
    // ドラッグアンドドロップを使用したファイルやフォルダーの移動時にエクスプローラーが確認を求めない
    "explorer.confirmDragAndDrop": false,
    // TABキーを押したときにEmmet省略記法を展開する
    "emmet.triggerExpansionOnTab": true,
    // Emmetのスペニットで使用される言語を日本語に指定する
    "emmet.variables": {
        "lang": "ja"
    },
    // エディタがフォーカスを失った時点で、ファイルを自動的に保存する
    "files.autoSave": "onFocusChange",
    // 規定の改行文字をLFにする
    "files.eol": "\n",
    // ファイルの保存時に最新の行を末尾に挿入する
    "files.insertFinalNewline": true,
    // ファイルの保存時に最終行以降の新しい行を削除する
    "files.trimFinalNewlines": true,
    // ファイルの保存時に末尾の空白を削除する
    "files.trimTrailingWhitespace": true,
    // 言語モードがMarkdownに対してファイルの保存時に末尾の空白を削除しない
    "[markdown]": {
        "files.trimTrailingWhitespace": false
    },
    // 現在のGitリポジトリの規定のリモートから自動的にコミットをフェッチする
    "git.autofetch": true,
    // Gitリポジトリを同期する前に確認しない
    "git.confirmSync": false,
    // プラグイン「phpcbf」用、phpcbfのパスを指定する
    "phpcbf.executablePath": "/home/xxxxx/.config/composer/vendor/bin/phpcbf",
    // プラグイン「phpcbf」用、使用するコーディング標準をCakePHPにする
    "phpcbf.standard": "CakePHP",
    // プラグイン「phpcs」用、phpcsのパスを指定する
    "phpcs.executablePath": "/home/xxxxx/.config/composer/vendor/bin/phpcs",
    // プラグイン「phpcs」用、診断メッセージにsniffのソースコードを表示する
    "phpcs.showSources": true,
    // プラグイン「phpcs」用、使用するコーディング標準をCakePHPにする
    "phpcs.standard": "CakePHP",
    // プラグイン「PHP Getters & Setters」用、getter、setterメソッド作成後に生成されたメソッドに移動しない
    "phpGettersSetters.redirect": false,
    // プラグイン「PHP Getters & Setters」用、@paramタグの後に1つスペースを追加する
    "phpGettersSetters.spacesAfterParam": 1,
    // プラグイン「PHP Getters & Setters」用、@paramの変数名の後に1つスペースを追加する
    "phpGettersSetters.spacesAfterParamVar": 1,
    // プラグイン「PHP Getters & Setters」用、@returnタグの後に1つスペースを追加する
    "phpGettersSetters.spacesAfterReturn": 1,
    // プラグイン「SQL Formatter」用、キーワードを大文字に変換する
    "sql-formatter.uppercase": true,
    // プラグイン「One Dark Pro」用、ワークベンチで使用するカラーテーマを指定する
    "workbench.colorTheme": "One Dark Pro",
    // プラグイン「file-icons」用、ワークベンチで使用するアイコンのテーマを指定する
    "workbench.iconTheme": "file-icons"
}
```

# おわりに

- VSCodeに設定を追加してコード修正して保存した際に、コード差分に想定していなかった変更が現れるのは あるあるだと思います  
  （スペースのみの行がスペース消えてるみたいな）
- この記事が他のエンジニアの参考になれば幸いです

# 参考

- [Visual Studio Code – コード エディター | Microsoft Azure](https://azure.microsoft.com/ja-jp/products/visual-studio-code/)