Is there a codesniffer snippet which allows/forces { } to be put on newlines for every function/method?
Basically, forcing something like this:
if (TRUE)
{
// Code logic
}
else
{
// Code Logic
}
And
public function test()
{
// Code logic
}
Yes, there is a ready one. It's called OpeningFunctionBraceBsdAllmanSniff
and you can find it under /path/to/CodeSniffer/Standards/Generic/Sniffs/Functions
. But that's only for functions' declarations.
For control structures you can take the /path/to/Standards/Squiz/Sniffs/ControlStructures/ControlSignatureSniff.php
and tweak the pattern array from
protected function getPatterns()
{
return array(
'try {EOL...} catch (...) {EOL',
'do {EOL...} while (...);EOL',
'while (...) {EOL',
'for (...) {EOL',
'if (...) {EOL',
'foreach (...) {EOL',
'} else if (...) {EOL',
'} elseif (...) {EOL',
'} else {EOL',
);
}//end getPatterns()
to, i.e.
protected function getPatterns()
{
return array(
'try {EOL...} catch (...) {EOL',
'do {EOL...} while (...);EOL',
'while (...) {EOL',
'for (...) {EOL',
'if (...)EOL{', // that's what you need
'foreach (...) {EOL',
'} else if (...) {EOL',
'} elseif (...) {EOL',
'} elseEOL{', // and this
);
}//end getPatterns()
If you need to apply the same rule to other control structure, you can go the same way, by changing the patterns in the array.
Update: one cleaner solution would be, of course, to write your own class which extends the above and overrides the the getPatterns()
method.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With