Open Daimona opened 1 year ago
@Daimona If you want multi-line control structures, the Squiz
sniff may not be your best option. I suggest checking out the PSR12.ControlStructures.ControlStructureSpacing
sniff or the PEAR.ControlStructures.MultiLineCondition
sniffs instead.
@Daimona If you want multi-line control structures, the
Squiz
sniff may not be your best option. I suggest checking out thePSR12.ControlStructures.ControlStructureSpacing
sniff or thePEAR.ControlStructures.MultiLineCondition
sniffs instead.
Thank you for the suggestion. Unfortunately, the only thing that I wanted to use the ForEachLoopDeclaration for is the spacing around the as
keyword :-/ And the Squiz.ControlStructures.ForEachLoopDeclaration
sniff is the only one I could find in the base standards which checks that.
The
Squiz.ControlStructures.ForEachLoopDeclaration
sniff fails to account for multiline foreach loops when checking the space around theas
keyword. If you simply enable the sniff and run it on this code (withtabWidth
= 4):it says:
And similarly, for this code:
Regardless of where the
as
keyword is placed, there is no way to have a multiline foreach assignment with this sniff enabled. This is especially problematic if any side ofas
is particularly long (e.g., a function call, or an array destructuring expression).The
Squiz.ControlStructures.ForLoopDeclaration
sniff provides theignoreNewlines
option to ignore multi-linefor
conditions. It would be nice to have something similar here.