# This is the Perl::Critic policy file for Padre. # # The general rule here is to only add one rule at a time to this file, # and generally only in situations where we will not generate many false # positives (requiring spammy # no critic entries) and where we will not # generate cargo cult behaviour in contributors. # # For example, using the ProhibitExcessComplexity policy would be a BAD idea # for Padre, because many of the classes that represent Wx widgets and # dialogs need to have large (and sometimes complex) constructors. # Prohibiting complexity results in "Bulldozing" behaviour, where arbitrary # chunks of constructors get removed and put in _setup_whatever methods. # The constructor is now just as complex as it always was, except that now # the code is scatterred all over the file and it is even harder to maintain # than it was in one big method. severity = 4 # Disable Perl::Critic::More if you are unfortunate enough to have installed it theme = not more ###################################################################### # Disabling critic sucks, configure a better policy [Miscellanea::ProhibitUnrestrictedNoCritic] severity = 3 [Miscellanea::ProhibitUselessNoCritic] severity = 5 ###################################################################### # Temporarily downgraded as the noise obscures more important tests [Subroutines::RequireFinalReturn] severity = 3 [Subroutines::RequireArgUnpacking] severity = 3 [Subroutines::ProhibitBuiltinHomonyms] severity = 3 ###################################################################### # Policies that Padre disagrees with or tolerates as worth the risk [-BuiltinFunctions::ProhibitStringyEval] [-ClassHierarchies::ProhibitExplicitISA] [-CodeLayout::ProhibitHardTabs] [-ControlStructures::ProhibitMutatingListFunctions] [-ControlStructures::ProhibitUnlessBlocks] [-Subroutines::ProhibitExplicitReturnUndef] [-TestingAndDebugging::ProhibitNoStrict] [-TestingAndDebugging::ProhibitNoWarnings] [-ValuesAndExpressions::ProhibitConstantPragma] [-ValuesAndExpressions::ProhibitMixedBooleanOperators] [-Variables::ProhibitPunctuationVars] ###################################################################### # Policies that we allow, but only in non-installed (testing) code # Everything ABOVE this section should be the same between both # of the critic config files. [-Variables::RequireLocalizedPunctuationVars] [-Modules::ProhibitAutomaticExportation] [-Modules::ProhibitMultiplePackages]