我使用Netbeans 7.1.1与codesniffer。每当我有一个case
语句,我得到缩进错误,例如以下代码:
switch ((int) $itemData['column_count']) {
case 4:
return 'grid-4columns';
case 6:
return 'grid-6columns';
default:
return '';
}
我得到"Line缩进不正确;期望8个空格,发现每个case
行12"。当我从这些行中删除4个空格时,例如
switch ((int) $itemData['column_count']) {
case 4:
return 'grid-4columns';
case 6:
return 'grid-6columns';
default:
return '';
}
我得到错误"行缩进不正确;预期12个空间,发现8"。看起来代码嗅探不能下定决心,这很有趣。当我的提交因为代码区别钩子而失败时,乐趣就结束了。
我的case
缩进的问题是什么?
更新:我在我的规则集中只有一个缩进规则:
<rule ref="Generic.WhiteSpace.ScopeIndent" />
我使用<rule ref="PEAR.WhiteSpace.ScopeIndent" />
有完全相同的问题,我修复了它只是切换到<rule ref="Generic.WhiteSpace.ScopeIndent" />
也可以忽略特定标记的缩进问题:
<!-- If you are using Generic -->
<rule ref="Generic.WhiteSpace.ScopeIndent">
<properties>
<property name="ignoreIndentationTokens" type="array" value="T_COMMENT,T_DOC_COMMENT_OPEN_TAG,T_CASE" />
</properties>
</rule>
<!-- If you are using PEAR -->
<rule ref="PEAR.WhiteSpace.ScopeIndent">
<properties>
<property name="ignoreIndentationTokens" type="array" value="T_COMMENT,T_DOC_COMMENT_OPEN_TAG,T_CASE" />
</properties>
</rule>
注意T_CASE
。这可以防止嗅探器检查您的case:
规则。
这里是一个标记列表