While looking into a fixer conflict for the PSR12 standard regarding the src/Standards/Squiz/Tests/ControlStructures/ForLoopDeclarationUnitTest.1.inc file, it was noted that the fixer for PSR12.ControlStructures.ControlStructureSpacing was conflicting with itself.
For multi-line control structures, the first line of code must be on the next line after the control structure. This sniff correctly identified such cases. When the first line of code was on the same line as the control structure, the sniff correctly fixed this by adding a newline between these. However, when there were multiple blank lines between these, the fixer would continue adding new newlines.
This change fixes this bug by first removing all white-space before adding the one expected newline. Includes test.
Suggested changelog entry
PSR12.ControlStructures.ControlStructureSpacing: correctly handle multiple empty newlines between the start of a multi-line control structure and the next line of code.
Related issues/external references
152
Types of changes
[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] This change is only breaking for integrators, not for external standards or end-users.
[ ] Documentation improvement
PR checklist
[x] I have checked there is no other PR open for the same change.
Description
While looking into a fixer conflict for the PSR12 standard regarding the
src/Standards/Squiz/Tests/ControlStructures/ForLoopDeclarationUnitTest.1.inc
file, it was noted that the fixer forPSR12.ControlStructures.ControlStructureSpacing
was conflicting with itself.For multi-line control structures, the first line of code must be on the next line after the control structure. This sniff correctly identified such cases. When the first line of code was on the same line as the control structure, the sniff correctly fixed this by adding a newline between these. However, when there were multiple blank lines between these, the fixer would continue adding new newlines.
This change fixes this bug by first removing all white-space before adding the one expected newline. Includes test.
Suggested changelog entry
PSR12.ControlStructures.ControlStructureSpacing
: correctly handle multiple empty newlines between the start of a multi-line control structure and the next line of code.Related issues/external references
152
Types of changes
PR checklist