4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Laravel Pint ファイルが保存されたら自動でPintを実行する

Last updated at Posted at 2023-07-13

プロジェクトディレクトリの構成

.
├── compose.yml
├── infra
│  └── docker
│     ├── mysql
│     ├── nginx
│     └── php
├── README.md
└── src # Laravel project root dir

Laravel Pint

Laravel Pint のルール設定

Pintのおすすめルールはこちらの記事でご紹介しています。

PhpStorm

Settings... > Tools > File Watchers

ScreenShot 2023-07-13 21.43.43.png

+ > Choose TemplateCustom を選択

ScreenShot 2023-07-13 21.44.05.png

ローカルで動かす

ScreenShot 2023-07-14 11.02.42.png

Name: Pint
File type: PHP
Scope: Project files
Program: $ProjectFileDir$/src/vendor/bin/pint
Arguments: $FileRelativePath$ --config $ProjectFileDir$/src/pint.json
Output paths to refresh: $FileRelativePath$
Working Directory: $ProjectFileDir$
Environment variables:
Advanced Options:
  ✅ Auto-save edited files to trigger the watcher
  ✅ Trigger the watcher on external changes
  Trigger the watcher regardless of syntax errors
  Create output file from stdout

プロジェクトディレクトリの直下にLaravelを配置してる場合は Programsrc をディレクトリ部分を削除してもらえれば動くと思います。

Dockerで動かす

ScreenShot 2023-07-13 22.49.34.png

Name: Pint
File type: PHP
Scope: Project files
Program: docker
Arguments: compose exec app ./vendor/bin/pint
Output paths to refresh:
Working Directory:
Environment variables:
Advanced Options:
  ✅ Auto-save edited files to trigger the watcher
  ✅ Trigger the watcher on external changes
  Trigger the watcher regardless of syntax errors
  Create output file from stdout

Docker で動かす場合の例です。
src ディレクトリを切ってしまったため、ライブテンプレート変数を使ってもうまく変更したファイルパスだけ指定するということができませんでした。

もし良い方法をご存知の方がいたら教えて下さい🙏
ただ、Pintはローカルで動かした方が速いのでパフォーマンス的にDockerで動かさなくても良いかな。

参考

VSCode

Laravel Pint 拡張機能

Pint 手動実行

Command + Shift + P でコマンドパレットを開く。

  • Format active workspace files using Laravel Pint
  • Format document using Laravel Pint

上記のコマンドを選択するとPintが適用される。

Pint 自動実行

.vscode/settings.json ファイルを配置するとファイル保存時にPintが適用される。

.vscode/settings.json
{
  "editor.formatOnSave": true,
  "laravel-pint.enable": true,
  "laravel-pint.enableDebugLogs": true,
  "laravel-pint.configPath": "src/pint.json",
  "[php]": {
    "editor.defaultFormatter": "open-southeners.laravel-pint"
  }
}

参考

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?