CodeSniffer案例缩进问题

时间:2013-03-06 09:48:36

标签: php netbeans-7 codesniffer

我正在使用带有codesniffer的Ne​​tbeans 7.1.1。每当我有case语句时,我会收到缩进错误,例如对于以下代码:

    switch ((int) $itemData['column_count']) {
        case 4:
            return 'grid-4columns';
        case 6:
            return 'grid-6columns';
        default:
            return '';
    }

我得到“行缩进不正确;预计8个空格,每case行找到12个”。当我从这些行中删除4个空格时,例如

    switch ((int) $itemData['column_count']) {
    case 4:
        return 'grid-4columns';
    case 6:
        return 'grid-6columns';
    default:
        return '';
    }

我收到错误“行缩进错误;预计12个空格,找到8”。看起来像codeniffer无法下定决心,这很有趣。当我的提交失败时,乐趣就会因为codeniffer hook而终止。

我的case缩进有什么问题?

更新:我的规则集中只有一个缩进规则:

<rule ref="Generic.WhiteSpace.ScopeIndent" />

2 个答案:

答案 0 :(得分:1)

我使用<rule ref="PEAR.WhiteSpace.ScopeIndent" />时遇到了完全相同的问题,我修改了它只是切换到<rule ref="Generic.WhiteSpace.ScopeIndent" />

答案 1 :(得分:0)

也可以忽略特定令牌的缩进问题:

<!-- 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:规则。

Here is a list of tokens