経験知ロゴ

VS Codeでphpcbfがうまく動作しないのでrun on saveで保存時にコマンドを実行させて解決した

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日ほどかかりましたが、力技っぽいとはいえ解決できてよかったです。

役に立ったらこの記事のシェアをお願いします

ブログのフォロー・RSS購読は下記ボタンから