是否有一个代码嗅探器片段允许/强制 { } 为每个函数/方法放在换行符上?
基本上,强迫这样的事情:
if (TRUE)
{
// Code logic
}
else
{
// Code Logic
}
和
public function test()
{
// Code logic
}
是否有一个代码嗅探器片段允许/强制 { } 为每个函数/方法放在换行符上?
基本上,强迫这样的事情:
if (TRUE)
{
// Code logic
}
else
{
// Code Logic
}
和
public function test()
{
// Code logic
}
是的,有一个现成的。它被称为OpeningFunctionBraceBsdAllmanSniff
,你可以在下面找到它/path/to/CodeSniffer/Standards/Generic/Sniffs/Functions
。但这仅适用于函数的声明。
对于控制结构,您可以从中获取/path/to/Standards/Squiz/Sniffs/ControlStructures/ControlSignatureSniff.php
并调整模式数组
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()
到,即
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()
如果您需要将相同的规则应用于其他控制结构,您可以采用相同的方式,通过更改数组中的模式。
更新:当然,一种更简洁的解决方案是编写您自己的类来扩展上述内容并覆盖该getPatterns()
方法。