是否有codeniffer片段允许/ force {}为每个函数/方法添加换行符?
基本上,强迫这样的事情:
if (TRUE)
{
// Code logic
}
else
{
// Code Logic
}
和
public function test()
{
// Code logic
}
答案 0 :(得分:6)
是的,有一个准备好的。它被称为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()
方法。