# frozen_string_literal: true

module RuboCop
  module Cop # rubocop:disable Style/Documentation
    # Autoloads mixin modules included by cops. Mixins are autoloaded to reduce the number of
    # requires because they're used only when the relevant cop class is loaded.

    autoload :ArrayMinSize, "#{__dir__}/mixin/array_min_size"
    autoload :ArraySyntax, "#{__dir__}/mixin/array_syntax"
    autoload :Alignment, "#{__dir__}/mixin/alignment"
    autoload :AllowedIdentifiers, "#{__dir__}/mixin/allowed_identifiers"
    autoload :AllowedMethods, "#{__dir__}/mixin/allowed_methods"
    autoload :AllowedPattern, "#{__dir__}/mixin/allowed_pattern"
    autoload :AllowedReceivers, "#{__dir__}/mixin/allowed_receivers"
    autoload :ForbiddenIdentifiers, "#{__dir__}/mixin/forbidden_identifiers"
    autoload :ForbiddenPattern, "#{__dir__}/mixin/forbidden_pattern"
    autoload :AutoCorrector, "#{__dir__}/mixin/auto_corrector" # rubocop:todo Naming/InclusiveLanguage
    autoload :CheckAssignment, "#{__dir__}/mixin/check_assignment"
    autoload :CheckLineBreakable, "#{__dir__}/mixin/check_line_breakable"
    autoload :CheckSingleLineSuitability, "#{__dir__}/mixin/check_single_line_suitability"
    autoload :ConfigurableMax, "#{__dir__}/mixin/configurable_max"
    autoload :CodeLength, "#{__dir__}/mixin/code_length"
    autoload :ConfigurableEnforcedStyle, "#{__dir__}/mixin/configurable_enforced_style"
    autoload :ConfigurableFormatting, "#{__dir__}/mixin/configurable_formatting"
    autoload :ConfigurableNaming, "#{__dir__}/mixin/configurable_naming"
    autoload :ConfigurableNumbering, "#{__dir__}/mixin/configurable_numbering"
    autoload :DigHelp, "#{__dir__}/mixin/dig_help"
    autoload :DocumentationComment, "#{__dir__}/mixin/documentation_comment"
    autoload :Duplication, "#{__dir__}/mixin/duplication"
    autoload :RangeHelp, "#{__dir__}/mixin/range_help"
    autoload :ProjectIndexHelp, "#{__dir__}/mixin/project_index_help"
    autoload :AnnotationComment, "#{__dir__}/mixin/annotation_comment"
    autoload :EmptyParameter, "#{__dir__}/mixin/empty_parameter"
    autoload :EndKeywordAlignment, "#{__dir__}/mixin/end_keyword_alignment"
    autoload :EndlessMethodRewriter, "#{__dir__}/mixin/endless_method_rewriter"
    autoload :EnforceSuperclass, "#{__dir__}/mixin/enforce_superclass"
    autoload :FirstElementLineBreak, "#{__dir__}/mixin/first_element_line_break"
    autoload :FrozenStringLiteral, "#{__dir__}/mixin/frozen_string_literal"
    autoload :GemDeclaration, "#{__dir__}/mixin/gem_declaration"
    autoload :GemspecHelp, "#{__dir__}/mixin/gemspec_help"
    autoload :HashAlignmentStyles, "#{__dir__}/mixin/hash_alignment_styles"
    autoload :HashSubset, "#{__dir__}/mixin/hash_subset"
    autoload :HashTransformMethod, "#{__dir__}/mixin/hash_transform_method"
    autoload :IntegerNode, "#{__dir__}/mixin/integer_node"
    autoload :Interpolation, "#{__dir__}/mixin/interpolation"
    autoload :LineLengthHelp, "#{__dir__}/mixin/line_length_help"
    autoload :MatchRange, "#{__dir__}/mixin/match_range"
    autoload :HashShorthandSyntax, "#{__dir__}/mixin/hash_shorthand_syntax"
    autoload :MethodComplexity, "#{__dir__}/mixin/method_complexity"
    autoload :MethodPreference, "#{__dir__}/mixin/method_preference"
    autoload :MinBodyLength, "#{__dir__}/mixin/min_body_length"
    autoload :MinBranchesCount, "#{__dir__}/mixin/min_branches_count"
    autoload :MultilineElementIndentation, "#{__dir__}/mixin/multiline_element_indentation"
    autoload :MultilineElementLineBreaks, "#{__dir__}/mixin/multiline_element_line_breaks"
    autoload :MultilineExpressionIndentation, "#{__dir__}/mixin/multiline_expression_indentation"
    autoload :MultilineLiteralBraceLayout, "#{__dir__}/mixin/multiline_literal_brace_layout"
    autoload :NegativeConditional, "#{__dir__}/mixin/negative_conditional"
    autoload :Heredoc, "#{__dir__}/mixin/heredoc"
    autoload :NilMethods, "#{__dir__}/mixin/nil_methods"
    autoload :OnNormalIfUnless, "#{__dir__}/mixin/on_normal_if_unless"
    autoload :OrderedGemNode, "#{__dir__}/mixin/ordered_gem_node"
    autoload :Parentheses, "#{__dir__}/mixin/parentheses"
    autoload :PercentArray, "#{__dir__}/mixin/percent_array"
    autoload :PercentLiteral, "#{__dir__}/mixin/percent_literal"
    autoload :PrecedingFollowingAlignment, "#{__dir__}/mixin/preceding_following_alignment"
    autoload :PreferredDelimiters, "#{__dir__}/mixin/preferred_delimiters"
    autoload :RationalLiteral, "#{__dir__}/mixin/rational_literal"
    autoload :ReparsedEquivalence, "#{__dir__}/mixin/reparsed_equivalence"
    autoload :RequireLibrary, "#{__dir__}/mixin/require_library"
    autoload :RescueNode, "#{__dir__}/mixin/rescue_node"
    autoload :SafeAssignment, "#{__dir__}/mixin/safe_assignment"
    autoload :SpaceAfterPunctuation, "#{__dir__}/mixin/space_after_punctuation"
    autoload :SpaceBeforePunctuation, "#{__dir__}/mixin/space_before_punctuation"
    autoload :SurroundingSpace, "#{__dir__}/mixin/surrounding_space"
    autoload :StatementModifier, "#{__dir__}/mixin/statement_modifier"
    autoload :StringHelp, "#{__dir__}/mixin/string_help"
    autoload :StringLiteralsHelp, "#{__dir__}/mixin/string_literals_help"
    autoload :SymbolHelp, "#{__dir__}/mixin/symbol_help"
    autoload :TargetRubyVersion, "#{__dir__}/mixin/target_ruby_version"
    autoload :TrailingBody, "#{__dir__}/mixin/trailing_body"
    autoload :TrailingComma, "#{__dir__}/mixin/trailing_comma"
    autoload :UncommunicativeName, "#{__dir__}/mixin/uncommunicative_name"
    autoload :VisibilityHelp, "#{__dir__}/mixin/visibility_help"
    autoload :CommentsHelp, "#{__dir__}/mixin/comments_help"
    autoload :DefNode, "#{__dir__}/mixin/def_node"
  end
end
