Настройка 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 сообщения об ошибках, иначе вы не получите никаких ошибок для ваших вызовов функций.

Другие вопросы по тегам