Вызов многострочной функции имеет неправильный отступ

В стандартах кодирования, которые я использую, мы используем 2 пробела для отступа.

<!-- Tabs should represent 2 spaces. -->
<arg name="tab-width" value="2"/>

<!-- Set the default indent value and force spaces instead of tabs -->
<rule ref="WordPress">
    <exclude name="Generic.WhiteSpace.DisallowSpaceIndent" />
</rule>
<rule ref="Generic.WhiteSpace.ScopeIndent">
  <properties>
    <property name="indent" value="2"/>
    <property name="tabIndent" value="false"/>
  </properties>
</rule>
<rule ref="Generic.WhiteSpace.DisallowTabIndent" />

Который в целом работает нормально, но если у меня, например, это

<?php

class MyClass{
  public function my_function() {
    add_submenu_page(
      'my-top-level-slug',
      'My Custom Page',
      'My Custom Page',
      'manage_options',
      'my-top-level-slug'
    );
  }
}

Где аргументы функций add_submenu_page() я получаю

Вызов многострочной функции имеет неправильный отступ; ожидал 8 пробелов, а нашел 6

Итак, «правильно» будет выглядеть

<?php

class MyClass{
  public function my_function() {
    add_submenu_page(
        'my-top-level-slug',
        'My Custom Page',
        'My Custom Page',
        'manage_options',
        'my-top-level-slug'
    );
  }
}

Но это 2 пробела слишком много. Я нашел некоторые проблемы на github, но не нашел решения для них.

Как это исправить?


person dingo_d    schedule 18.09.2017    source источник
comment
Прочтите [github.com/DennisBecker/php-code-formatter], как для форматирования кода PHP на GitHub   -  person Anand Choudhary    schedule 18.09.2017
comment
Это не имеет ничего общего с php_code_formatter, но со стандартами кодирования WordPress и PHP_CodeSniffer...   -  person dingo_d    schedule 18.09.2017


Ответы (1)


К сожалению, в PHPCS еще нет общих параметров конфигурации, поэтому вам необходимо установить параметры отступа для других сниффов, которые также сообщают об ошибках.

Если вы добавите аргумент командной строки -s в PHPCS, вы получите снифф-код для каждого сообщения об ошибке. Этот код говорит вам, какой сниф сообщил об ошибке и нуждается в изменении.

В данном случае, я думаю, это PEAR.Functions.FunctionCallSignature фырканье.

Настройки этого сниффа можно найти здесь: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Customisable-Sniff-Properties#pearfunctionsfunctioncallsignature

Если это тот, вам нужно добавить это в свой набор правил:

<rule ref="PEAR.Functions.FunctionCallSignature">
  <properties>
    <property name="indent" value="2"/>
  </properties>
</rule
person Greg Sherwood    schedule 19.09.2017
comment
Кажется, это тот самый. То есть, если я увижу, что это происходит в других местах, мне нужно посмотреть, какой нюх вызывает это, а затем изменить свойство? Спасибо за помощь :) - person dingo_d; 19.09.2017
comment
Да, это процесс, который вам нужно пройти. Рад, что это сработало для вас. - person Greg Sherwood; 20.09.2017