自定义代码niffer规则/嗅探

时间:2016-11-13 15:01:45

标签: php codesniffer phpcodesniffer

我正在寻找扩展CodeSniffer的PSR2标准的自定义规则,但找不到可靠的解决方案。

以下是示例代码:

if ($var1==$var2) {
    $var3=1;
    $var4 = array("test"=>"test1");
}

我需要在== >= <=!=以及分配变量$var3 = 1;=>时强制执行空格

我创建了一个名为MyStandard的自定义标准,它扩展了PSR-2,我已经为圈复杂度,行长度和制表符缩进而不是空格放置了规则,但无法解决最后的那些

编辑:我当前的ruleset.xml如下所示:

<?xml version="1.0"?>
<ruleset name="MyStandard">
    <description>PSR2 with tabs instead of spaces.</description>
    <arg name="tab-width" value="4"/>
    <rule ref="PSR2">
        <exclude name="Generic.WhiteSpace.DisallowTabIndent"/>
        <exclude name="PSR1.Classes.ClassDeclaration.MissingNamespace"/>
    </rule>
    <rule ref="Generic.WhiteSpace.DisallowSpaceIndent"/>
    <rule ref="Generic.WhiteSpace.ScopeIndent">
        <properties>
            <property name="indent" value="4"/>
            <property name="tabIndent" value="true"/>
        </properties>
    </rule>
    <rule ref="Generic.Files.LineLength">
        <properties>
            <property name="lineLimit" value="140"/>
            <property name="absoluteLineLimit" value="160"/>
        </properties>
     </rule>
     <rule ref="Squiz.WhiteSpace.SuperfluousWhitespace">
         <properties>
             <property name="ignoreBlankLines" value="false"/>
         </properties>
     </rule>
     <rule ref="Squiz.WhiteSpace.SuperfluousWhitespace.StartFile">
         <severity>10</severity>
     </rule>
     <rule ref="Squiz.WhiteSpace.SuperfluousWhitespace.EndFile">
         <severity>10</severity>
     </rule>
     <rule ref="Generic.Metrics.CyclomaticComplexity"/>
</ruleset>

1 个答案:

答案 0 :(得分:1)

想出来,感谢 @MarkBaker

我已使用提议的sample并对其进行了修改,以检查T_EQUALT_IS_NOT_EQUALT_IS_EQUALT_DOUBLE_ARROW,{{1} },T_IS_IDENTICALT_IS_NOT_IDENTICALT_IS_GREATER_OR_EQUAL

如果有人有兴趣,这里是complete ruleset