我正在寻找扩展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>
答案 0 :(得分:1)
想出来,感谢 @MarkBaker 。
我已使用提议的sample并对其进行了修改,以检查T_EQUAL
,T_IS_NOT_EQUAL
,T_IS_EQUAL
,T_DOUBLE_ARROW
,{{1} },T_IS_IDENTICAL
,T_IS_NOT_IDENTICAL
和T_IS_GREATER_OR_EQUAL
如果有人有兴趣,这里是complete ruleset。