Tak, jest gotowy jeden. Nazywa się OpeningFunctionBraceBsdAllmanSniff
i można go znaleźć pod /path/to/CodeSniffer/Standards/Generic/Sniffs/Functions
. Ale to tylko dla deklaracji funkcji.
Dla struktur kontrolnych można wziąć /path/to/Standards/Squiz/Sniffs/ControlStructures/ControlSignatureSniff.php
i dostosować tablicy wzór z
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()
do tj
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()
Jeśli trzeba zastosować tę samą zasadę do innej struktury sterującej, można postępuj w ten sam sposób, zmieniając wzory w tablicy.
Aktualizacja: jeden czystsze rozwiązaniem byłoby, oczywiście, napisać własną klasę, która rozciąga się powyżej i nadpisuje metodę getPatterns()
.
Czy istnieją w konstrukcjach takich jak 'if (true) do1(); else do2(); "lub czy będą one umieszczane tylko w znakach, jeśli istnieją? – bwoebi
Mam już inny fragment w miejscu, który zmusza ciało do umieszczenia zawsze między nawiasami. Tak więc, muszą istnieć – ThomasVdBerge