The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# 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]