1

我正在配置使用自定义规则集phpcs使用WordPress 编码标准。

我的phpcs.xml长相是这样的

<?xml version="1.0"?>
<ruleset name="Bulk Delete">
    <description>Bulk Delete coding standard</description>

    <file>./</file>

    <!--Docs issues should be shown as warnings -->
    <rule ref="WordPress-Docs">
        <type>warning</type>
    </rule>
</ruleset>

WordPress-Docs是一个自定义规则集,它被定义WordPress 编码标准嗅探的一部分,我希望将此规则集中的所有消息标记为warnings而不是errors.

PHP CodeSniffer wiki 中的注释规则集文件说我可以做这样的事情。

<!--
    Here we are including a specific sniff but also changing
    the error message of a specific message inside the sniff.
    Note that the specific code for the message, which is
    CommentFound in this case, is defined by the sniff developer.
    You can display these codes by using the -s command line
    argument when checking a file.

    Also note that this message has a variable inside it,
    which is why it is important that sniffs use a printf style
    format for their error messages.

    We also drop the severity of this message from the
    default value (5) so that it is hidden by default. It can be
    displayed by setting the minimum severity on the PHP_CodeSniffer
    command line. This is great if you want to use some messages
    only in code reviews and not have them block code commits.
 -->
 <rule ref="Generic.Commenting.Todo.CommentFound">
  <message>Please review this TODO comment: %s</message>
  <severity>3</severity>
 </rule>

但这仅在您直接包括嗅探时才有效。但在我的情况下,我想让这项工作适用于使用rule标签包含的自定义规则集。

有可能做到吗?

4

1 回答 1

3

编辑:现在 PHPCS 从 3.0.0 版开始支持更改整个标准、类别或嗅探的消息类型。因此,现在可以使用以下规则集语法:

<rule ref="WordPress-Docs">
    <type>warning</type>
</rule>

原答案:

不,这在 PHP_CodeSniffer 中是不可能的。您只能更改特定消息代码的类型,而不能更改整个规则集、类别或嗅探文件。

如果您可以控制 WordPress 标准,则可以使用自定义配置选项让用户指定 Doc 标准是否应该使用错误或警告,但这将是一个非常具体的用例。

如果没有这种级别的控制,您实际上无法在一次运行中做任何事情。你必须跑 2 次;第一个包含除 Doc 标准之外的所有内容,第二个仅包含 Doc 标准。第一个是您要纠正的规则错误列表,第二个是您的信息列表。

这不是一个好的解决方案,但是如果没有核心 PHP_CodeSniffer 更改,我想不出任何办法来做你想做的事情,你可以在这里建议:https ://github.com/squizlabs/PHP_CodeSniffer/issues

于 2015-06-09T05:18:57.850 回答