Отключить критику для всего файла - Parse::RecDescent precompiled parser & PerlCritic/Tidyall

Я пытаюсь удалить ошибку из моей проверки работоспособности [когда я помещаю код в мое git-репо, есть ловушка, которая проверяет код с помощью perltidy & critic... с помощью tidyall как обработчик.]

Конкретная проблема, с которой я столкнулся, связана с предварительно скомпилированным грамматическим парсером.... и я не хочу погружаться в него и исправлять (извините - это за пределами моей зоны комфорта)

Если я добавлю простой ## no critic в начало файла, затем

perlcritic path/to/class/file.pm

возвращается

path/to/class/file.pm source OK

тем не мение

tidyall --check-only -r .

возвращается с

perlcritic /tmp/Code-TidyAll-Frb0/path/to/class/file.pm failed
    exited with 2 - output was:
Unrestricted '## no critic' annotation at line 6, column 1. (Miscellanea::ProhibitUnrestrictedNoCritic, severity 3)

Я знаю, что могу это исправить в tidyall.ini файл:

[PerlCritic lib]
select = **/*.{pm}
ignore = **/class/file.pm

.... однако я чувствую, что должно быть более чистое решение.

(или почему не tidyall критика так же, как critic?)

1 ответ

Решение

почему не tidyall критика так же, как critic?

Просто perlcritic в командной строке по умолчанию имеет уровень серьезности 5, если вы не настроили что-то другое в вашем ~/.perlcriticrc, Правило ProhibitUnrestrictedNoCritic по умолчанию имеет уровень серьезности 3, поэтому ваш tidyall бежит Perl::Critic по крайней мере с серьезностью 3. В соответствии с документацией, вы можете изменить это через что-то вроде этого в tidyall.ini:

[PerlCritic]
argv = -severity 4

А потом tidyallчеки должны быть такими же, как perlcritic -4 из командной строки. (Если вы не настроили пользовательские уровни серьезности в вашем .perlcriticrc.)


Обновление: согласно вашему комментарию, вы хотите проверить все на "брутальном" уровне. В этом случае вы можете создать perlcriticrc файл, содержащий строку [-Miscellanea::ProhibitUnrestrictedNoCritic] который отключит эту политику, а затем указать perlcritic в этом файле, добавив аргумент командной строки --profile /path/to/custom/perlcriticrc,

Другие вопросы по тегам