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