0

私が使用しているコーディング標準では、インデントに 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 でいくつかの問題を見つけましたが、これに対する解決策は見つかりませんでした。

これを修正する方法は?

4

1 に答える 1

1

残念ながら、PHPCS にはまだ構成設定が共有されていないため、エラーを報告している他のスニフに対してもインデント設定を行う必要があります。

コマンド ライン引数を PHPCS に追加すると-s、各エラー メッセージのスニフ コードが得られます。そのコードは、どのスニフがエラーを報告し、変更が必要かを示します。

この場合は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
于 2017-09-19T03:55:46.000 に答える