Я настраиваю 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 вики говорит, что я могу сделать что-то вроде этого.
<!--
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
тег.
Возможно ли это сделать?
Нет, это невозможно в PHP_CodeSniffer. Вы можете изменить только тип определенных кодов сообщений, но не целые наборы правил, категории или файлы сниффинга.
Если бы вы имели контроль над стандартом WordPress, вы могли бы использовать настраиваемую опцию конфигурации, чтобы пользователи могли указать, следует ли в стандарте Doc использовать ошибки или предупреждения, но это будет очень конкретный вариант использования.
Без этого уровня контроля вы ничего не сможете сделать за один раз. Вы должны сделать 2 пробега; первый со всем, кроме стандарта Doc, а второй только со стандартом Doc. Первый — это список ошибок вашего правила, который вы хотите исправить, а второй — ваш информационный список.
Это не очень хорошее решение, но я не могу придумать, что делать после того, как изменилось ядро PHP_CodeSniffer, которое вы можете предложить здесь: https://github.com/squizlabs/PHP_CodeSniffer/issues
Других решений пока нет …