もがき系プログラマの日常

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

phpstormでファイルの保存時に csfixerを実行する

はじめに

こんにちは。

簡単な設定の話です。

cs-fxierを自動で走らせたいなーと思ってて、色々調べた結果です。

ググると結構出てくるんですが、どれもバージョンが古いのかうまく設定できませんでしたので、自分が一番しっくりきた設定を残しておきます。

phpstormのバージョンは 2021.1.4 です。

本題

まず事前にプロジェクトに cs-fixerをinstallしておきます。

$ composer require --dev friendsofphp/php-cs-fixer
$  ./vendor/bin/php-cs-fixer --version
PHP CS Fixer 2.18.2 Remote Void by Fabien Potencier and Dariusz Ruminski‘

次に設定を開きます。

Preference > Tools > File Watchers

f:id:kojirooooocks:20210703024211p:plain

今ひとつ追加していますが、まさにこれです。

新規の場合は + で追加します。

FileType: PHP を指定します。

Scope: Project Files を指定します。僕はねんのため、 Module で対象を指定しています(必要ないのかな?)

Program: php-cs-fixerファイルまでのフルパスを指定します。

Arguments : 以下のようにします。

fix
--config=.php_cs.dist ファイルまでのフルパス
"$FilePath$"

configがない場合は --rules とかで指定する感じだと思います。

そして、 auto-save edited files to trigger the watcher のチェックを外します。

f:id:kojirooooocks:20210703024704p:plain

このチェックを外さないと、自動保存とcs-fixerの実行が素早く動くため、おそらく快適にプログラムを書けないと思います。

このチェックを外しておくと Ctrl+S で保存した際、または、AutoSave側の設定にも準じてfixerが動きますので、今の所快適に開発できています。

終わりに

この手の情報で出てきていたブログでは AutoSave側でコントロールしようとしていたのですが、自分の使用しているバージョンではうまく行かなかったので自分はこのアプローチになりました。

現場からは以上です。