Настройка phpcs для запрета пробелов после закрывающей скобки и перед закрывающей скобкой
Большинство наших проектов - WordPress, и хотя мы согласны с большинством стандартов кодирования, которые он устанавливает, есть некоторые, с которыми мы не согласны и не хотим использовать в наших собственных частных проектах. Каким-то образом фрагменты этих разногласий по-прежнему оказываются в базе кода из-за разработок копирования, которые они нашли в Интернете, и я бы хотел предотвратить это с помощью phpcs. Не только потому, что копирование является сомнительным (качество этих codenippets часто ужасно), но и потому, что его труднее читать и редактировать.
Вот как WordPress говорит вам сделать это: fn_call( array( 1, 2, 3 ) );
Вот как мы это делаем: fn_call([1, 2, 3]);
Я нашел способ исключить эти правила из стандартов кодирования WordPress
<exclude name="PEAR.Functions.FunctionCallSignature.SpaceBeforeCloseBracket" />
<exclude name="PEAR.Functions.FunctionCallSignature.SpaceAfterOpenBracket" />
<exclude name="WordPress.Arrays.ArrayDeclaration.NoSpaceAfterOpenParenthesis" />
но как мне обеспечить, чтобы не было пробелов? Я ничего не могу найти по этому поводу.
1 ответ
Вы на самом деле не хотите исключать эти 2 правила PEAR. Вы захотите переопределить настройку, которую использует стандарт WordPress, изменив ее с 1
необходимое пространство для 0
необходимые места.
Файл WordPress Core ruleset.xml включает этот раздел:
<rule ref="PEAR.Functions.FunctionCallSignature">
<properties>
<property name="requiredSpacesAfterOpen" value="1"/>
<property name="requiredSpacesBeforeClose" value="1"/>
</properties>
</rule>
По умолчанию PEAR.Functions.FunctionCallSignature
нюхает принудительно, что есть 0
пробелы после открытой скобки, и 0
пробелы перед закрывающей скобкой, что именно то, что вы хотите. Но стандарт WordPress меняет эти настройки на 1
пространство.
В вашем файле ruleset.xml после включения стандарта WordPress поместите в этот раздел:
<rule ref="PEAR.Functions.FunctionCallSignature">
<properties>
<property name="requiredSpacesAfterOpen" value="0"/>
<property name="requiredSpacesBeforeClose" value="0"/>
</properties>
</rule>
Наряду с любыми другими исключениями, которые вы хотите. Но не исключайте PEAR.Functions.FunctionCallSignature.SpaceBeforeCloseBracket
а также PEAR.Functions.FunctionCallSignature.SpaceAfterOpenBracket
сообщения об ошибках, иначе вы не получите никаких ошибок для ваших вызовов функций.