Отключить критику для всего файла - 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
,