VS Codeでphpcbfがうまく動作しないのでrun on saveで保存時にコマンドを実行させて解決した
※本ページはプロモーションが含まれていますVS Codeでphpcbfを使ってWordPresの自動整形を実現しようとしましたが、なぜかVS Codeのphpcbfプラグインが機能しなく使えませんでしたorz
phpcbfはコマンドからは実行できるので、整形が必要になったらその都度コマンドを実行していたのですが、VS CodeプラグインのRun on Saveを使い、ファイル保存時にコマンドを自動で起動が可能になりました!
実際に設定した内容をメモ。
Run on Saveのインストール
VS CodeにRun on Save のプラグインをインストール。同じ名前のプラグインが2つあるので、更新が新しい方をインストール。
Run on Saveの設定
VS Codeのsetting.jsonに設定を追加。
{ "runOnSave.statusMessageTimeout": 3000, // 実行時にステータスバーに表示されるメッセージが消えるまでの時間 "runOnSave.commands": [ { // Match scss files except names start with `_`. "match": ".*\\.php$", // 実行するファイルのパターン。 "notMatch": "[\\\\\\/]_[^\\\\\\/]*\\.phpj$", // 除外するファイルのパターン。無くても良い。 "command": "phpcbf --standard=WordPress ${file}", // 実行するコマンド "runIn": "backend", // 実行の種類 "runningStatusMessage": "Compiling ${fileBasename}", // 実行中のステータスバーに表示されるメッセージ "finishStatusMessage": "${fileBasename} compiled" // 実行完了後に表示されるメッセージ }, ] }
runInは、3つ指定できる。
backend : 実行中の表示は最下部のステータスバーに表示されるだけ。
terminal : VS Codeのターミナルにコマンドが表示される。コマンドの結果や詳細を見たい場合はこれを選択。
vscode : VS Codeのコマンドを実行する時に使用。
runningStatusMessage, finishStatusMessage, globMatch.には${file}のような変数名が使える。
${file}には、現在編集しているファイルのフルパスが入る。
その他の変数や設定はプラグインページで確認を。
おわりに
自動整形できずエラーマークが表示されていると、実際のエラーなのかコーディング規約違反なのか分からず不便です。
コーディング規約を意識しながらコードを書いていると、スペースやイコールなどの位置揃えは面倒なので、保存時に自動で整形してくれるのはとてもありがたい。
VS CodeでWordPressのPHP規約対応にトータル2日ほどかかりましたが、力技っぽいとはいえ解決できてよかったです。