PHPCS игнорирует слишком много отступов

Я обновил свои правила phpcs в своем phpcs.xml, включив в них:

  <rule ref="Generic.WhiteSpace.ScopeIndent">
    <properties>
      <property name="indent" value="2" />
    </properties>
  </rule>

который отлично работает, однако, если бы у меня было:

function test($x) {
        $string = 'Hello';
  return $string . $x;
}

Ошибка не появляется, но она появляется, если нет отступа. Я не могу понять, в чем проблема.


person Jamie    schedule 19.11.2019    source источник


Ответы (1)


По умолчанию снифф Generic.WhiteSpace.ScopeIndent не требует точного выравнивания кода. Он только требует наличия минимум n пробелов или знаков табуляции перед строкой.

Исключением является проверка структур управления, таких как операторы IF, циклы FOREACH или функции. Он использует эти структуры для определения правил отступов для остального кода, поэтому ему нужно, чтобы они были отступом до точных столбцов.

Вы можете включить точную проверку всех строк, установив для свойства exact sniff значение true. Пример того, как это сделать, можно найти здесь: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Customisable-Sniff-Properties#genericwhitespacescopeindent

person Greg Sherwood    schedule 20.11.2019