https://github.com/vincentlanglet/twig-cs-fixer
A tool to automatically fix Twig Coding Standards issues
https://github.com/vincentlanglet/twig-cs-fixer
code-style coding-standards twig
Last synced: 3 months ago
JSON representation
A tool to automatically fix Twig Coding Standards issues
- Host: GitHub
- URL: https://github.com/vincentlanglet/twig-cs-fixer
- Owner: VincentLanglet
- License: mit
- Created: 2021-07-04T13:30:27.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2025-03-06T16:45:34.000Z (4 months ago)
- Last Synced: 2025-04-06T05:06:11.857Z (3 months ago)
- Topics: code-style, coding-standards, twig
- Language: PHP
- Homepage:
- Size: 813 KB
- Stars: 261
- Watchers: 6
- Forks: 28
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- Security: SECURITY.md
Awesome Lists containing this project
README
# Twig CS Fixer
[](https://packagist.org/packages/vincentlanglet/twig-cs-fixer)
[](https://github.com/VincentLanglet/Twig-CS-Fixer/releases/latest)
[](https://github.com/VincentLanglet/Twig-CS-Fixer/blob/main/LICENCE)
[](https://github.com/RobDWaller/csp-generator/actions)
[](https://codecov.io/gh/VincentLanglet/Twig-CS-Fixer/branch/main)
[](https://dashboard.stryker-mutator.io/reports/github.com/VincentLanglet/Twig-CS-Fixer/main)## Installation
### From composer
This tool can be installed with [Composer](https://getcomposer.org/).
Add the package as a dependency of your project
```bash
composer require --dev vincentlanglet/twig-cs-fixer
```Then, use it!
```bash
vendor/bin/twig-cs-fixer lint /path/to/code
vendor/bin/twig-cs-fixer lint --fix /path/to/code
```> [!NOTE]
> Although [bin-dependencies may have composer conflicts](https://github.com/bamarni/composer-bin-plugin#why-a-hard-problem-with-a-simple-solution),
> this is the recommended way because it will autoload everything you need.### As a PHAR
You can always fetch the stable version as a Phar archive through the following
link with the `VERSION` you're looking for:```bash
wget -c https://github.com/VincentLanglet/Twig-CS-Fixer/releases/download/VERSION/twig-cs-fixer.phar
```The PHAR files are signed with a public key which can be queried at
`keys.openpgp.org` with the id `AC0E7FD8858D80003AA88FF8DEBB71EDE9601234`.> [!TIP]
> You will certainly need to add
> ```php
> require_once __DIR__.'/vendor/autoload.php';
> ```
> in your [config file](docs/configuration.md) in order to:
> - Use existing [node based rules](docs/configuration.md#node-based-rules).
> - Write your own custom rules.## Twig Coding Standard Rules
From the [official one](https://twig.symfony.com/doc/3.x/coding_standards.html).
### Delimiter spacing
Ensures there is a single space after a delimiter opening (`{{`, `{%` and `{#`)
and before a delimiter closing (`}}`, `%}` and `#}`).When using a whitespace control character, do not put any spaces between it and the delimiter.
### Operator spacing
Ensures there is a single space before and after the following operators:
comparison operators (`==`, `!=`, `<`, `>`, `>=`, `<=`), math operators (`+`, `-`, `/`, `*`, `%`, `//`, `**`),
logic operators (`not`, `and`, `or`), `~`, `is`, `in`, and the ternary operator (`?:`).Removes any space before and after the `..` operator.
### Punctuation spacing
Ensures there is a single space after `:` in hashes and `,` in arrays and hashes.
Removes any space after an opening parenthesis and before a closing parenthesis in expressions.
Removes any space before and after the following operators: `|`, `.`, `[]`.
Removes any space before and after parenthesis in filter and function calls.
Removes any space before and after opening and closing of arrays and hashes.
### Macro & Function/Filter/Test
Ensures there is a single space before and after `=` in macro argument declarations.
Ensures there is no space before and after `=` sign when using named arguments.
Ensures one space after the `:` sign when using named arguments.
Use `:` instead of `=` to separate argument names and values.
### Naming
Use snake case for all variable names.
Use snake case for all argument names.
Use snake case for all named arguments.
## Custom configuration
By default, the twig-cs-fixer standard is enabled with the twig coding standard rules and some extra rules.
This tool also provides a standard with only the twig rules
and another standard with extra rules from the symfony coding standards.Everything is configurable, so take a look at the following documentation:
- [CLI options](docs/command.md)
- [Configuration file](docs/configuration.md)
- [How to disable a rule on a specific file or line](docs/identifiers.md)
- [Rules & Standard](docs/rules.md)
- [How to write a custom rule](docs/custom.md)