4

我正在使用带有代码嗅探器的 Netbeans 7.1.1。每当我有一个case语句时,我都会收到缩进错误,例如以下代码:

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

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

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

我收到错误“行缩进不正确;预期 12 个空格,找到 8 个”。好像codesniffer拿不定主意,挺搞笑的。当我的提交由于代码嗅探器钩子而失败时,乐趣就结束了。

我的case缩进有什么问题?

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

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

2 回答 2

2

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

于 2016-07-06T10:39:29.370 回答
1

也可以忽略特定标记的缩进问题:

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

这是令牌列表

于 2018-11-27T19:20:48.170 回答