Download the PHP package lform/pretty-code without Composer
On this page you can find all versions of the php package lform/pretty-code. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package pretty-code
Pretty Code
Pretty Code enforces consistent code formatting across all your projects automatically on commit. It provides a single source of truth for Prettier and Laravel Pint configurations, designed for Roots Bedrock + Sage and Statamic projects.
Table of Contents
- Requirements
- Installation & Setup
- Commands
- Updating
- PHP Formatting
- Supported File Types
- Configuration Files
- Customization per Project
- Troubleshooting
- Uninstalling
Requirements
- Environments: OSX, Linux, WSL, Windows
- Node 20+
- PHP 8.1+ (for PHP formatting)
Installation & Setup
Installation
After installing, the package prints a reminder to run the init command.
Initialization
Run the init command to scaffold the project. It copies the following config files to the project root, configures git hooks, and adds pretty:format, pretty:format:prettier, pretty:format:pint, and pretty:check scripts to package.json:
.prettierrc.json,.prettierignore.lintstagedrc.json.editorconfig.githooks/pint.json
Existing config files are overwritten — use git diff to review changes before committing. Pass --suggest to write new configs as suggestion files alongside your existing ones instead. In --suggest mode, Pretty Code does not update your git hooks path or rewrite package.json scripts:
This writes:
.lintstagedrc.suggestions.json.prettierrc.suggestions.json.prettierignore.suggestions.editorconfig.suggestionspint.suggestions.json.githooks.suggestions/
Commands
Updating
When a new version of Pretty Code is released, update the package then run:
This overwrites your config files with the latest package versions. Use git diff to review and selectively revert any changes you want to keep. Pass --suggest to write updated configs as .suggestions.* files instead:
PHP Formatting
Laravel Pint (recommended)
Laravel Pint is the recommended PHP formatter and is included by default in both Roots Bedrock + Sage and Statamic — no separate install needed for those projects. The pint.json config file is copied to your project root during init.
PHP CS Fixer (alternative)
For projects that cannot use Laravel Pint, a .php-cs-fixer.php baseline configuration is included in the package as a reference. To use it:
-
Install PHP CS Fixer:
-
Copy the baseline config to your project root:
-
Update
.lintstagedrc.jsonto replace the Pint rule with PHP CS Fixer: - Update the
pretty:format:pintscript inpackage.json:
Supported File Types
| Extension | Tool |
|---|---|
php |
Pint |
blade.php |
Prettier |
antlers.html, antlers.php |
Prettier |
js, jsx, ts, tsx |
Prettier |
css, scss, pcss |
Prettier |
html, htm |
Prettier |
json |
Prettier |
yaml, yml |
Prettier |
Configuration Files
| File | Description |
|---|---|
.prettierrc.json |
Prettier configuration |
.prettierignore |
Files excluded from Prettier |
.lintstagedrc.json |
Pre-commit hook rules |
.editorconfig |
Editor-wide formatting defaults |
.githooks/ |
Git hook scripts |
pint.json |
Laravel Pint configuration |
.php-cs-fixer.php |
PHP CS Fixer baseline (reference — copy manually if needed) |
Customization Per Project
To customize formatting for a specific project, copy the relevant config file from node_modules/@lform/pretty-code/ to the project root and modify it as needed. Only copy what you need — copied files will no longer receive updates from the package manager.
To undo a customization, delete the project-level config file and it will fall back to the package default.
Troubleshooting
Disconnecting & Reconnecting the Git Hook
If you need to disable or re-enable the automated pre-commit hook:
Uninstalling
- Delete any config files copied to the project root
- Delete the
.githooksdirectory - Run
git config core.hooksPath .git/hooks - Run
npm remove @lform/pretty-code - Remove the
pretty:format,pretty:format:prettier,pretty:format:pint, andpretty:checkscripts frompackage.json