Отключить критику для всего файла - Parse :: RecDescent скомпилированный парсер и PerlCritic / Tidyall - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь удалить ошибку из своей проверки работоспособности [когда я отправляю код в мое 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 Ответ

0 голосов
/ 10 января 2019

почему 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.

.
...