rubocop 0.93.1 → 1.79.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE.txt +1 -1
- data/README.md +133 -103
- data/assets/output.css.erb +159 -0
- data/assets/output.html.erb +2 -161
- data/config/default.yml +1864 -271
- data/config/internal_affairs.yml +31 -0
- data/config/obsoletion.yml +243 -0
- data/exe/rubocop +16 -9
- data/lib/rubocop/arguments_env.rb +17 -0
- data/lib/rubocop/arguments_file.rb +17 -0
- data/lib/rubocop/cache_config.rb +29 -0
- data/lib/rubocop/cached_data.rb +22 -8
- data/lib/rubocop/cli/command/{auto_genenerate_config.rb → auto_generate_config.rb} +55 -29
- data/lib/rubocop/cli/command/execute_runner.rb +39 -19
- data/lib/rubocop/cli/command/init_dotfile.rb +2 -4
- data/lib/rubocop/cli/command/lsp.rb +19 -0
- data/lib/rubocop/cli/command/show_cops.rb +26 -7
- data/lib/rubocop/cli/command/show_docs_url.rb +48 -0
- data/lib/rubocop/cli/command/suggest_extensions.rb +132 -0
- data/lib/rubocop/cli/command/version.rb +2 -2
- data/lib/rubocop/cli.rb +108 -16
- data/lib/rubocop/comment_config.rb +107 -104
- data/lib/rubocop/config.rb +160 -58
- data/lib/rubocop/config_finder.rb +78 -0
- data/lib/rubocop/config_loader.rb +112 -102
- data/lib/rubocop/config_loader_resolver.rb +124 -47
- data/lib/rubocop/config_obsoletion/changed_enforced_styles.rb +33 -0
- data/lib/rubocop/config_obsoletion/changed_parameter.rb +26 -0
- data/lib/rubocop/config_obsoletion/cop_rule.rb +33 -0
- data/lib/rubocop/config_obsoletion/extracted_cop.rb +47 -0
- data/lib/rubocop/config_obsoletion/parameter_rule.rb +56 -0
- data/lib/rubocop/config_obsoletion/removed_cop.rb +41 -0
- data/lib/rubocop/config_obsoletion/renamed_cop.rb +49 -0
- data/lib/rubocop/config_obsoletion/rule.rb +41 -0
- data/lib/rubocop/config_obsoletion/split_cop.rb +27 -0
- data/lib/rubocop/config_obsoletion.rb +110 -238
- data/lib/rubocop/config_regeneration.rb +1 -1
- data/lib/rubocop/config_store.rb +13 -3
- data/lib/rubocop/config_validator.rb +110 -43
- data/lib/rubocop/cop/autocorrect_logic.rb +82 -18
- data/lib/rubocop/cop/badge.rb +21 -26
- data/lib/rubocop/cop/base.rb +235 -118
- data/lib/rubocop/cop/bundler/duplicated_gem.rb +33 -16
- data/lib/rubocop/cop/bundler/duplicated_group.rb +127 -0
- data/lib/rubocop/cop/bundler/gem_comment.rb +46 -13
- data/lib/rubocop/cop/bundler/gem_filename.rb +102 -0
- data/lib/rubocop/cop/bundler/gem_version.rb +132 -0
- data/lib/rubocop/cop/bundler/insecure_protocol_source.rb +46 -22
- data/lib/rubocop/cop/bundler/ordered_gems.rb +17 -20
- data/lib/rubocop/cop/commissioner.rb +57 -36
- data/lib/rubocop/cop/cop.rb +86 -54
- data/lib/rubocop/cop/corrector.rb +41 -22
- data/lib/rubocop/cop/correctors/alignment_corrector.rb +10 -27
- data/lib/rubocop/cop/correctors/condition_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/each_to_for_corrector.rb +8 -14
- data/lib/rubocop/cop/correctors/empty_line_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/for_to_each_corrector.rb +11 -18
- data/lib/rubocop/cop/correctors/if_then_corrector.rb +55 -0
- data/lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb +10 -7
- data/lib/rubocop/cop/correctors/line_break_corrector.rb +13 -8
- data/lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb +26 -12
- data/lib/rubocop/cop/correctors/ordered_gem_corrector.rb +10 -16
- data/lib/rubocop/cop/correctors/parentheses_corrector.rb +65 -4
- data/lib/rubocop/cop/correctors/percent_literal_corrector.rb +17 -13
- data/lib/rubocop/cop/correctors/punctuation_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/require_library_corrector.rb +23 -0
- data/lib/rubocop/cop/correctors/space_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/string_literal_corrector.rb +7 -9
- data/lib/rubocop/cop/correctors/unused_arg_corrector.rb +2 -2
- data/lib/rubocop/cop/documentation.rb +47 -3
- data/lib/rubocop/cop/exclude_limit.rb +26 -0
- data/lib/rubocop/cop/force.rb +13 -1
- data/lib/rubocop/cop/gemspec/add_runtime_dependency.rb +38 -0
- data/lib/rubocop/cop/gemspec/attribute_assignment.rb +91 -0
- data/lib/rubocop/cop/gemspec/dependency_version.rb +152 -0
- data/lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb +91 -0
- data/lib/rubocop/cop/gemspec/development_dependencies.rb +107 -0
- data/lib/rubocop/cop/gemspec/duplicated_assignment.rb +47 -40
- data/lib/rubocop/cop/gemspec/ordered_dependencies.rb +16 -19
- data/lib/rubocop/cop/gemspec/require_mfa.rb +159 -0
- data/lib/rubocop/cop/gemspec/required_ruby_version.rb +50 -32
- data/lib/rubocop/cop/gemspec/ruby_version_globals_usage.rb +9 -14
- data/lib/rubocop/cop/generator/configuration_injector.rb +2 -3
- data/lib/rubocop/cop/generator/require_file_injector.rb +5 -8
- data/lib/rubocop/cop/generator.rb +38 -39
- data/lib/rubocop/cop/internal_affairs/cop_description.rb +118 -0
- data/lib/rubocop/cop/internal_affairs/cop_enabled.rb +85 -0
- data/lib/rubocop/cop/internal_affairs/create_empty_file.rb +37 -0
- data/lib/rubocop/cop/internal_affairs/empty_line_between_expect_offense_and_correction.rb +69 -0
- data/lib/rubocop/cop/internal_affairs/example_description.rb +118 -0
- data/lib/rubocop/cop/internal_affairs/example_heredoc_delimiter.rb +111 -0
- data/lib/rubocop/cop/internal_affairs/inherit_deprecated_cop_class.rb +34 -0
- data/lib/rubocop/cop/internal_affairs/lambda_or_proc.rb +46 -0
- data/lib/rubocop/cop/internal_affairs/location_exists.rb +116 -0
- data/lib/rubocop/cop/internal_affairs/location_expression.rb +38 -0
- data/lib/rubocop/cop/internal_affairs/location_line_equality_comparison.rb +61 -0
- data/lib/rubocop/cop/internal_affairs/method_name_end_with.rb +82 -0
- data/lib/rubocop/cop/internal_affairs/method_name_equal.rb +19 -22
- data/lib/rubocop/cop/internal_affairs/node_destructuring.rb +3 -3
- data/lib/rubocop/cop/internal_affairs/node_first_or_last_argument.rb +54 -0
- data/lib/rubocop/cop/internal_affairs/node_matcher_directive.rb +241 -0
- data/lib/rubocop/cop/internal_affairs/node_pattern_groups/ast_processor.rb +63 -0
- data/lib/rubocop/cop/internal_affairs/node_pattern_groups/ast_walker.rb +131 -0
- data/lib/rubocop/cop/internal_affairs/node_pattern_groups.rb +231 -0
- data/lib/rubocop/cop/internal_affairs/node_type_group.rb +92 -0
- data/lib/rubocop/cop/internal_affairs/node_type_multiple_predicates.rb +126 -0
- data/lib/rubocop/cop/internal_affairs/node_type_predicate.rb +5 -5
- data/lib/rubocop/cop/internal_affairs/numblock_handler.rb +69 -0
- data/lib/rubocop/cop/internal_affairs/offense_location_keyword.rb +3 -2
- data/lib/rubocop/cop/internal_affairs/on_send_without_on_csend.rb +90 -0
- data/lib/rubocop/cop/internal_affairs/operator_keyword.rb +48 -0
- data/lib/rubocop/cop/internal_affairs/plugin.rb +33 -0
- data/lib/rubocop/cop/internal_affairs/processed_source_buffer_name.rb +42 -0
- data/lib/rubocop/cop/internal_affairs/redundant_context_config_parameter.rb +46 -0
- data/lib/rubocop/cop/internal_affairs/redundant_described_class_as_subject.rb +63 -0
- data/lib/rubocop/cop/internal_affairs/redundant_expect_offense_arguments.rb +34 -0
- data/lib/rubocop/cop/internal_affairs/redundant_let_rubocop_config_new.rb +73 -0
- data/lib/rubocop/cop/internal_affairs/redundant_location_argument.rb +2 -1
- data/lib/rubocop/cop/internal_affairs/redundant_message_argument.rb +9 -21
- data/lib/rubocop/cop/internal_affairs/redundant_method_dispatch_node.rb +56 -0
- data/lib/rubocop/cop/internal_affairs/redundant_source_range.rb +75 -0
- data/lib/rubocop/cop/internal_affairs/single_line_comparison.rb +63 -0
- data/lib/rubocop/cop/internal_affairs/style_detected_api_use.rb +146 -0
- data/lib/rubocop/cop/internal_affairs/undefined_config.rb +94 -0
- data/lib/rubocop/cop/internal_affairs/useless_message_assertion.rb +6 -9
- data/lib/rubocop/cop/internal_affairs/useless_restrict_on_send.rb +60 -0
- data/lib/rubocop/cop/internal_affairs.rb +32 -1
- data/lib/rubocop/cop/layout/access_modifier_indentation.rb +18 -12
- data/lib/rubocop/cop/layout/argument_alignment.rb +79 -21
- data/lib/rubocop/cop/layout/array_alignment.rb +11 -10
- data/lib/rubocop/cop/layout/assignment_indentation.rb +13 -11
- data/lib/rubocop/cop/layout/begin_end_alignment.rb +2 -6
- data/lib/rubocop/cop/layout/block_alignment.rb +64 -53
- data/lib/rubocop/cop/layout/block_end_newline.rb +34 -15
- data/lib/rubocop/cop/layout/case_indentation.rb +73 -11
- data/lib/rubocop/cop/layout/class_structure.rb +114 -38
- data/lib/rubocop/cop/layout/closing_heredoc_indentation.rb +2 -3
- data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +26 -36
- data/lib/rubocop/cop/layout/comment_indentation.rb +55 -28
- data/lib/rubocop/cop/layout/condition_position.rb +1 -5
- data/lib/rubocop/cop/layout/def_end_alignment.rb +6 -10
- data/lib/rubocop/cop/layout/dot_position.rb +48 -15
- data/lib/rubocop/cop/layout/else_alignment.rb +27 -13
- data/lib/rubocop/cop/layout/empty_comment.rb +9 -14
- data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +82 -28
- data/lib/rubocop/cop/layout/empty_line_after_magic_comment.rb +14 -7
- data/lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb +2 -2
- data/lib/rubocop/cop/layout/empty_line_between_defs.rb +170 -27
- data/lib/rubocop/cop/layout/empty_lines.rb +4 -4
- data/lib/rubocop/cop/layout/empty_lines_after_module_inclusion.rb +101 -0
- data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +48 -22
- data/lib/rubocop/cop/layout/empty_lines_around_arguments.rb +13 -29
- data/lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb +26 -5
- data/lib/rubocop/cop/layout/empty_lines_around_begin_body.rb +6 -7
- data/lib/rubocop/cop/layout/empty_lines_around_block_body.rb +8 -5
- data/lib/rubocop/cop/layout/empty_lines_around_class_body.rb +11 -11
- data/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +24 -17
- data/lib/rubocop/cop/layout/empty_lines_around_method_body.rb +24 -2
- data/lib/rubocop/cop/layout/empty_lines_around_module_body.rb +10 -10
- data/lib/rubocop/cop/layout/end_alignment.rb +36 -10
- data/lib/rubocop/cop/layout/end_of_line.rb +11 -11
- data/lib/rubocop/cop/layout/extra_spacing.rb +19 -21
- data/lib/rubocop/cop/layout/first_argument_indentation.rb +70 -39
- data/lib/rubocop/cop/layout/first_array_element_indentation.rb +49 -31
- data/lib/rubocop/cop/layout/first_array_element_line_break.rb +37 -11
- data/lib/rubocop/cop/layout/first_hash_element_indentation.rb +79 -29
- data/lib/rubocop/cop/layout/first_hash_element_line_break.rb +39 -5
- data/lib/rubocop/cop/layout/first_method_argument_line_break.rb +67 -11
- data/lib/rubocop/cop/layout/first_method_parameter_line_break.rb +54 -22
- data/lib/rubocop/cop/layout/first_parameter_indentation.rb +12 -11
- data/lib/rubocop/cop/layout/hash_alignment.rb +73 -37
- data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +41 -15
- data/lib/rubocop/cop/layout/heredoc_indentation.rb +16 -27
- data/lib/rubocop/cop/layout/indentation_consistency.rb +10 -7
- data/lib/rubocop/cop/layout/indentation_style.rb +32 -32
- data/lib/rubocop/cop/layout/indentation_width.rb +64 -37
- data/lib/rubocop/cop/layout/initial_indentation.rb +3 -6
- data/lib/rubocop/cop/layout/leading_comment_space.rb +87 -5
- data/lib/rubocop/cop/layout/leading_empty_lines.rb +1 -1
- data/lib/rubocop/cop/layout/line_continuation_leading_space.rb +153 -0
- data/lib/rubocop/cop/layout/line_continuation_spacing.rb +146 -0
- data/lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb +143 -0
- data/lib/rubocop/cop/layout/line_length.rb +200 -64
- data/lib/rubocop/cop/layout/multiline_array_brace_layout.rb +7 -7
- data/lib/rubocop/cop/layout/multiline_array_line_breaks.rb +33 -4
- data/lib/rubocop/cop/layout/multiline_assignment_layout.rb +31 -5
- data/lib/rubocop/cop/layout/multiline_block_layout.rb +15 -20
- data/lib/rubocop/cop/layout/multiline_hash_brace_layout.rb +7 -7
- data/lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb +32 -5
- data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +68 -4
- data/lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb +9 -8
- data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +69 -26
- data/lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb +8 -8
- data/lib/rubocop/cop/layout/multiline_method_parameter_line_breaks.rb +78 -0
- data/lib/rubocop/cop/layout/multiline_operation_indentation.rb +21 -18
- data/lib/rubocop/cop/layout/parameter_alignment.rb +11 -11
- data/lib/rubocop/cop/layout/redundant_line_break.rb +134 -0
- data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +38 -36
- data/lib/rubocop/cop/layout/single_line_block_chain.rb +69 -0
- data/lib/rubocop/cop/layout/space_after_colon.rb +4 -6
- data/lib/rubocop/cop/layout/space_after_comma.rb +10 -2
- data/lib/rubocop/cop/layout/space_after_method_name.rb +3 -5
- data/lib/rubocop/cop/layout/space_after_not.rb +3 -2
- data/lib/rubocop/cop/layout/space_after_semicolon.rb +11 -1
- data/lib/rubocop/cop/layout/space_around_block_parameters.rb +32 -34
- data/lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb +3 -2
- data/lib/rubocop/cop/layout/space_around_keyword.rb +42 -11
- data/lib/rubocop/cop/layout/space_around_method_call_operator.rb +3 -3
- data/lib/rubocop/cop/layout/space_around_operators.rb +101 -41
- data/lib/rubocop/cop/layout/space_before_block_braces.rb +29 -16
- data/lib/rubocop/cop/layout/space_before_brackets.rb +40 -0
- data/lib/rubocop/cop/layout/space_before_comma.rb +1 -1
- data/lib/rubocop/cop/layout/space_before_comment.rb +4 -6
- data/lib/rubocop/cop/layout/space_before_first_arg.rb +10 -12
- data/lib/rubocop/cop/layout/space_before_semicolon.rb +1 -1
- data/lib/rubocop/cop/layout/space_in_lambda_literal.rb +16 -12
- data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +51 -39
- data/lib/rubocop/cop/layout/space_inside_array_percent_literal.rb +5 -7
- data/lib/rubocop/cop/layout/space_inside_block_braces.rb +56 -33
- data/lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb +41 -8
- data/lib/rubocop/cop/layout/space_inside_parens.rb +93 -25
- data/lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb +34 -0
- data/lib/rubocop/cop/layout/space_inside_range_literal.rb +1 -1
- data/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +12 -9
- data/lib/rubocop/cop/layout/space_inside_string_interpolation.rb +7 -8
- data/lib/rubocop/cop/layout/trailing_empty_lines.rb +15 -10
- data/lib/rubocop/cop/layout/trailing_whitespace.rb +72 -16
- data/lib/rubocop/cop/legacy/corrections_proxy.rb +3 -9
- data/lib/rubocop/cop/legacy/corrector.rb +13 -5
- data/lib/rubocop/cop/lint/ambiguous_assignment.rb +54 -0
- data/lib/rubocop/cop/lint/ambiguous_block_association.rb +50 -12
- data/lib/rubocop/cop/lint/ambiguous_operator.rb +11 -9
- data/lib/rubocop/cop/lint/ambiguous_operator_precedence.rb +111 -0
- data/lib/rubocop/cop/lint/ambiguous_range.rb +113 -0
- data/lib/rubocop/cop/lint/ambiguous_regexp_literal.rb +13 -7
- data/lib/rubocop/cop/lint/array_literal_in_regexp.rb +118 -0
- data/lib/rubocop/cop/lint/assignment_in_condition.rb +25 -15
- data/lib/rubocop/cop/lint/big_decimal_new.rb +5 -7
- data/lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb +30 -14
- data/lib/rubocop/cop/lint/boolean_symbol.rb +10 -7
- data/lib/rubocop/cop/lint/circular_argument_reference.rb +5 -15
- data/lib/rubocop/cop/lint/constant_definition_in_block.rb +30 -4
- data/lib/rubocop/cop/lint/constant_overwritten_in_rescue.rb +51 -0
- data/lib/rubocop/cop/lint/constant_reassignment.rb +148 -0
- data/lib/rubocop/cop/lint/constant_resolution.rb +7 -3
- data/lib/rubocop/cop/lint/cop_directive_syntax.rb +84 -0
- data/lib/rubocop/cop/lint/debugger.rb +99 -35
- data/lib/rubocop/cop/lint/deprecated_class_methods.rb +73 -63
- data/lib/rubocop/cop/lint/deprecated_constants.rb +88 -0
- data/lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb +25 -21
- data/lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb +24 -1
- data/lib/rubocop/cop/lint/duplicate_branch.rb +188 -0
- data/lib/rubocop/cop/lint/duplicate_case_condition.rb +4 -18
- data/lib/rubocop/cop/lint/duplicate_elsif_condition.rb +1 -1
- data/lib/rubocop/cop/lint/duplicate_hash_key.rb +4 -9
- data/lib/rubocop/cop/lint/duplicate_magic_comment.rb +73 -0
- data/lib/rubocop/cop/lint/duplicate_match_pattern.rb +122 -0
- data/lib/rubocop/cop/lint/duplicate_methods.rb +168 -58
- data/lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb +121 -0
- data/lib/rubocop/cop/lint/duplicate_require.rb +14 -4
- data/lib/rubocop/cop/lint/duplicate_rescue_exception.rb +1 -1
- data/lib/rubocop/cop/lint/duplicate_set_element.rb +87 -0
- data/lib/rubocop/cop/lint/each_with_object_argument.rb +3 -6
- data/lib/rubocop/cop/lint/else_layout.rb +32 -10
- data/lib/rubocop/cop/lint/empty_block.rb +94 -0
- data/lib/rubocop/cop/lint/empty_class.rb +95 -0
- data/lib/rubocop/cop/lint/empty_conditional_body.rb +85 -4
- data/lib/rubocop/cop/lint/empty_ensure.rb +3 -15
- data/lib/rubocop/cop/lint/empty_expression.rb +1 -3
- data/lib/rubocop/cop/lint/empty_file.rb +2 -6
- data/lib/rubocop/cop/lint/empty_in_pattern.rb +64 -0
- data/lib/rubocop/cop/lint/empty_interpolation.rb +5 -9
- data/lib/rubocop/cop/lint/empty_when.rb +5 -5
- data/lib/rubocop/cop/lint/ensure_return.rb +3 -13
- data/lib/rubocop/cop/lint/erb_new_arguments.rb +40 -43
- data/lib/rubocop/cop/lint/flip_flop.rb +8 -2
- data/lib/rubocop/cop/lint/float_comparison.rb +59 -16
- data/lib/rubocop/cop/lint/float_out_of_range.rb +2 -9
- data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +17 -22
- data/lib/rubocop/cop/lint/hash_compare_by_identity.rb +15 -4
- data/lib/rubocop/cop/lint/hash_new_with_keyword_arguments_as_default.rb +55 -0
- data/lib/rubocop/cop/lint/heredoc_method_call_position.rb +18 -21
- data/lib/rubocop/cop/lint/identity_comparison.rb +19 -16
- data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +25 -15
- data/lib/rubocop/cop/lint/incompatible_io_select_with_fiber_scheduler.rb +81 -0
- data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +6 -16
- data/lib/rubocop/cop/lint/inherit_exception.rb +29 -29
- data/lib/rubocop/cop/lint/interpolation_check.rb +21 -13
- data/lib/rubocop/cop/lint/it_without_arguments_in_block.rb +50 -0
- data/lib/rubocop/cop/lint/lambda_without_literal_block.rb +51 -0
- data/lib/rubocop/cop/lint/literal_as_condition.rb +145 -13
- data/lib/rubocop/cop/lint/literal_assignment_in_condition.rb +85 -0
- data/lib/rubocop/cop/lint/literal_in_interpolation.rb +130 -18
- data/lib/rubocop/cop/lint/loop.rb +13 -19
- data/lib/rubocop/cop/lint/missing_cop_enable_directive.rb +48 -22
- data/lib/rubocop/cop/lint/missing_super.rb +70 -10
- data/lib/rubocop/cop/lint/mixed_case_range.rb +113 -0
- data/lib/rubocop/cop/lint/mixed_regexp_capture_types.rb +3 -3
- data/lib/rubocop/cop/lint/multiple_comparison.rb +5 -4
- data/lib/rubocop/cop/lint/nested_method_definition.rb +64 -20
- data/lib/rubocop/cop/lint/nested_percent_literal.rb +17 -5
- data/lib/rubocop/cop/lint/next_without_accumulator.rb +11 -10
- data/lib/rubocop/cop/lint/no_return_in_begin_end_blocks.rb +53 -0
- data/lib/rubocop/cop/lint/non_atomic_file_operation.rb +174 -0
- data/lib/rubocop/cop/lint/non_deterministic_require_order.rb +41 -18
- data/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb +7 -4
- data/lib/rubocop/cop/lint/number_conversion.rb +142 -21
- data/lib/rubocop/cop/lint/numbered_parameter_assignment.rb +46 -0
- data/lib/rubocop/cop/lint/numeric_operation_with_constant_result.rb +94 -0
- data/lib/rubocop/cop/lint/or_assignment_to_constant.rb +41 -0
- data/lib/rubocop/cop/lint/ordered_magic_comments.rb +5 -8
- data/lib/rubocop/cop/lint/out_of_range_regexp_ref.rb +63 -13
- data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +17 -15
- data/lib/rubocop/cop/lint/percent_string_array.rb +13 -7
- data/lib/rubocop/cop/lint/percent_symbol_array.rb +4 -10
- data/lib/rubocop/cop/lint/raise_exception.rb +36 -12
- data/lib/rubocop/cop/lint/rand_one.rb +3 -7
- data/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +156 -97
- data/lib/rubocop/cop/lint/redundant_cop_enable_directive.rb +33 -23
- data/lib/rubocop/cop/lint/redundant_dir_glob_sort.rb +62 -0
- data/lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb +130 -0
- data/lib/rubocop/cop/lint/redundant_require_statement.rb +36 -6
- data/lib/rubocop/cop/lint/redundant_safe_navigation.rb +196 -15
- data/lib/rubocop/cop/lint/redundant_splat_expansion.rb +67 -33
- data/lib/rubocop/cop/lint/redundant_string_coercion.rb +37 -21
- data/lib/rubocop/cop/lint/redundant_type_conversion.rb +261 -0
- data/lib/rubocop/cop/lint/redundant_with_index.rb +22 -14
- data/lib/rubocop/cop/lint/redundant_with_object.rb +17 -15
- data/lib/rubocop/cop/lint/refinement_import_methods.rb +52 -0
- data/lib/rubocop/cop/lint/regexp_as_condition.rb +9 -6
- data/lib/rubocop/cop/lint/require_parentheses.rb +6 -10
- data/lib/rubocop/cop/lint/require_range_parentheses.rb +57 -0
- data/lib/rubocop/cop/lint/require_relative_self_path.rb +50 -0
- data/lib/rubocop/cop/lint/rescue_exception.rb +2 -7
- data/lib/rubocop/cop/lint/rescue_type.rb +7 -18
- data/lib/rubocop/cop/lint/return_in_void_context.rb +13 -30
- data/lib/rubocop/cop/lint/safe_navigation_chain.rb +73 -19
- data/lib/rubocop/cop/lint/safe_navigation_consistency.rb +109 -47
- data/lib/rubocop/cop/lint/safe_navigation_with_empty.rb +3 -3
- data/lib/rubocop/cop/lint/script_permission.rb +4 -4
- data/lib/rubocop/cop/lint/self_assignment.rb +72 -11
- data/lib/rubocop/cop/lint/send_with_mixin_argument.rb +8 -12
- data/lib/rubocop/cop/lint/shadowed_argument.rb +8 -13
- data/lib/rubocop/cop/lint/shadowed_exception.rb +30 -43
- data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +68 -5
- data/lib/rubocop/cop/lint/shared_mutable_default.rb +76 -0
- data/lib/rubocop/cop/lint/struct_new_override.rb +16 -16
- data/lib/rubocop/cop/lint/suppressed_exception.rb +48 -5
- data/lib/rubocop/cop/lint/suppressed_exception_in_number_conversion.rb +111 -0
- data/lib/rubocop/cop/lint/symbol_conversion.rb +184 -0
- data/lib/rubocop/cop/lint/syntax.rb +17 -10
- data/lib/rubocop/cop/lint/to_enum_arguments.rb +99 -0
- data/lib/rubocop/cop/lint/to_json.rb +2 -3
- data/lib/rubocop/cop/lint/top_level_return_with_argument.rb +24 -10
- data/lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb +4 -6
- data/lib/rubocop/cop/lint/triple_quotes.rb +71 -0
- data/lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb +2 -4
- data/lib/rubocop/cop/lint/unescaped_bracket_in_regexp.rb +88 -0
- data/lib/rubocop/cop/lint/unexpected_block_arity.rb +92 -0
- data/lib/rubocop/cop/lint/unified_integer.rb +4 -5
- data/lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb +205 -0
- data/lib/rubocop/cop/lint/unreachable_code.rb +59 -14
- data/lib/rubocop/cop/lint/unreachable_loop.rb +48 -11
- data/lib/rubocop/cop/lint/unused_block_argument.rb +11 -9
- data/lib/rubocop/cop/lint/unused_method_argument.rb +29 -9
- data/lib/rubocop/cop/lint/uri_escape_unescape.rb +2 -1
- data/lib/rubocop/cop/lint/uri_regexp.rb +25 -7
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +57 -24
- data/lib/rubocop/cop/lint/useless_assignment.rb +109 -25
- data/lib/rubocop/cop/lint/useless_constant_scoping.rb +71 -0
- data/lib/rubocop/cop/lint/useless_default_value_argument.rb +90 -0
- data/lib/rubocop/cop/lint/useless_defined.rb +55 -0
- data/lib/rubocop/cop/lint/useless_else_without_rescue.rb +6 -7
- data/lib/rubocop/cop/lint/useless_method_definition.rb +18 -11
- data/lib/rubocop/cop/lint/useless_numeric_operation.rb +79 -0
- data/lib/rubocop/cop/lint/useless_or.rb +98 -0
- data/lib/rubocop/cop/lint/useless_rescue.rb +89 -0
- data/lib/rubocop/cop/lint/useless_ruby2_keywords.rb +127 -0
- data/lib/rubocop/cop/lint/useless_setter_call.rb +29 -37
- data/lib/rubocop/cop/lint/useless_times.rb +25 -17
- data/lib/rubocop/cop/lint/utils/nil_receiver_checker.rb +121 -0
- data/lib/rubocop/cop/lint/void.rb +156 -31
- data/lib/rubocop/cop/message_annotator.rb +12 -7
- data/lib/rubocop/cop/metrics/abc_size.rb +35 -3
- data/lib/rubocop/cop/metrics/block_length.rb +30 -16
- data/lib/rubocop/cop/metrics/block_nesting.rb +23 -16
- data/lib/rubocop/cop/metrics/class_length.rb +30 -20
- data/lib/rubocop/cop/metrics/collection_literal_length.rb +83 -0
- data/lib/rubocop/cop/metrics/cyclomatic_complexity.rb +7 -14
- data/lib/rubocop/cop/metrics/method_length.rb +32 -11
- data/lib/rubocop/cop/metrics/module_length.rb +17 -14
- data/lib/rubocop/cop/metrics/parameter_lists.rb +104 -7
- data/lib/rubocop/cop/metrics/perceived_complexity.rb +3 -4
- data/lib/rubocop/cop/metrics/utils/abc_size_calculator.rb +28 -26
- data/lib/rubocop/cop/metrics/utils/code_length_calculator.rb +69 -18
- data/lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb +143 -0
- data/lib/rubocop/cop/metrics/utils/repeated_csend_discount.rb +6 -1
- data/lib/rubocop/cop/migration/department_name.rb +8 -10
- data/lib/rubocop/cop/mixin/alignment.rb +20 -11
- data/lib/rubocop/cop/mixin/allowed_identifiers.rb +18 -0
- data/lib/rubocop/cop/mixin/allowed_methods.rb +29 -2
- data/lib/rubocop/cop/mixin/allowed_pattern.rb +68 -0
- data/lib/rubocop/cop/mixin/allowed_receivers.rb +34 -0
- data/lib/rubocop/cop/mixin/annotation_comment.rb +56 -28
- data/lib/rubocop/cop/mixin/check_assignment.rb +4 -12
- data/lib/rubocop/cop/mixin/check_line_breakable.rb +53 -9
- data/lib/rubocop/cop/mixin/check_single_line_suitability.rb +49 -0
- data/lib/rubocop/cop/mixin/code_length.rb +17 -6
- data/lib/rubocop/cop/mixin/comments_help.rb +62 -15
- data/lib/rubocop/cop/mixin/configurable_enforced_style.rb +23 -11
- data/lib/rubocop/cop/mixin/configurable_formatting.rb +4 -8
- data/lib/rubocop/cop/mixin/configurable_max.rb +5 -0
- data/lib/rubocop/cop/mixin/configurable_numbering.rb +4 -3
- data/lib/rubocop/cop/mixin/def_node.rb +5 -12
- data/lib/rubocop/cop/mixin/dig_help.rb +27 -0
- data/lib/rubocop/cop/mixin/documentation_comment.rb +8 -8
- data/lib/rubocop/cop/mixin/duplication.rb +1 -1
- data/lib/rubocop/cop/mixin/empty_lines_around_body.rb +7 -8
- data/lib/rubocop/cop/mixin/empty_parameter.rb +2 -3
- data/lib/rubocop/cop/mixin/end_keyword_alignment.rb +3 -6
- data/lib/rubocop/cop/mixin/endless_method_rewriter.rb +24 -0
- data/lib/rubocop/cop/mixin/enforce_superclass.rb +19 -7
- data/lib/rubocop/cop/mixin/first_element_line_break.rb +13 -11
- data/lib/rubocop/cop/mixin/forbidden_identifiers.rb +20 -0
- data/lib/rubocop/cop/mixin/forbidden_pattern.rb +16 -0
- data/lib/rubocop/cop/mixin/frozen_string_literal.rb +53 -16
- data/lib/rubocop/cop/mixin/gem_declaration.rb +13 -0
- data/lib/rubocop/cop/mixin/gemspec_help.rb +52 -0
- data/lib/rubocop/cop/mixin/hash_alignment_styles.rb +34 -24
- data/lib/rubocop/cop/mixin/hash_shorthand_syntax.rb +236 -0
- data/lib/rubocop/cop/mixin/hash_subset.rb +203 -0
- data/lib/rubocop/cop/mixin/hash_transform_method.rb +83 -88
- data/lib/rubocop/cop/mixin/heredoc.rb +11 -2
- data/lib/rubocop/cop/mixin/interpolation.rb +1 -3
- data/lib/rubocop/cop/mixin/line_length_help.rb +65 -20
- data/lib/rubocop/cop/mixin/match_range.rb +2 -5
- data/lib/rubocop/cop/mixin/method_complexity.rb +33 -19
- data/lib/rubocop/cop/mixin/method_preference.rb +1 -2
- data/lib/rubocop/cop/mixin/min_branches_count.rb +40 -0
- data/lib/rubocop/cop/mixin/multiline_element_indentation.rb +39 -16
- data/lib/rubocop/cop/mixin/multiline_element_line_breaks.rb +6 -9
- data/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +26 -55
- data/lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb +2 -3
- data/lib/rubocop/cop/mixin/negative_conditional.rb +4 -2
- data/lib/rubocop/cop/mixin/ordered_gem_node.rb +12 -7
- data/lib/rubocop/cop/mixin/percent_array.rb +75 -9
- data/lib/rubocop/cop/mixin/percent_literal.rb +2 -8
- data/lib/rubocop/cop/mixin/preceding_following_alignment.rb +79 -41
- data/lib/rubocop/cop/mixin/preferred_delimiters.rb +6 -9
- data/lib/rubocop/cop/mixin/range_help.rb +51 -22
- data/lib/rubocop/cop/mixin/rational_literal.rb +1 -0
- data/lib/rubocop/cop/mixin/require_library.rb +61 -0
- data/lib/rubocop/cop/mixin/rescue_node.rb +9 -7
- data/lib/rubocop/cop/mixin/safe_assignment.rb +7 -3
- data/lib/rubocop/cop/mixin/space_after_punctuation.rb +3 -5
- data/lib/rubocop/cop/mixin/space_before_punctuation.rb +3 -4
- data/lib/rubocop/cop/mixin/statement_modifier.rb +34 -10
- data/lib/rubocop/cop/mixin/string_help.rb +10 -5
- data/lib/rubocop/cop/mixin/string_literals_help.rb +15 -5
- data/lib/rubocop/cop/mixin/surrounding_space.rb +17 -13
- data/lib/rubocop/cop/mixin/symbol_help.rb +13 -0
- data/lib/rubocop/cop/mixin/target_ruby_version.rb +17 -1
- data/lib/rubocop/cop/mixin/trailing_body.rb +2 -3
- data/lib/rubocop/cop/mixin/trailing_comma.rb +26 -11
- data/lib/rubocop/cop/mixin/uncommunicative_name.rb +12 -14
- data/lib/rubocop/cop/mixin/unused_argument.rb +1 -3
- data/lib/rubocop/cop/mixin/visibility_help.rb +42 -8
- data/lib/rubocop/cop/naming/accessor_method_name.rb +23 -2
- data/lib/rubocop/cop/naming/ascii_identifiers.rb +4 -9
- data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +15 -5
- data/lib/rubocop/cop/naming/block_forwarding.rb +156 -0
- data/lib/rubocop/cop/naming/block_parameter_name.rb +3 -3
- data/lib/rubocop/cop/naming/class_and_module_camel_case.rb +4 -2
- data/lib/rubocop/cop/naming/constant_name.rb +14 -14
- data/lib/rubocop/cop/naming/file_name.rb +48 -26
- data/lib/rubocop/cop/naming/heredoc_delimiter_case.rb +12 -6
- data/lib/rubocop/cop/naming/heredoc_delimiter_naming.rb +4 -2
- data/lib/rubocop/cop/naming/inclusive_language.rb +297 -0
- data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +155 -32
- data/lib/rubocop/cop/naming/method_name.rb +191 -19
- data/lib/rubocop/cop/naming/method_parameter_name.rb +2 -2
- data/lib/rubocop/cop/naming/predicate_method.rb +306 -0
- data/lib/rubocop/cop/naming/predicate_prefix.rb +204 -0
- data/lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb +72 -13
- data/lib/rubocop/cop/naming/variable_name.rb +65 -5
- data/lib/rubocop/cop/naming/variable_number.rb +107 -13
- data/lib/rubocop/cop/offense.rb +9 -15
- data/lib/rubocop/cop/registry.rb +95 -53
- data/lib/rubocop/cop/security/compound_hash.rb +108 -0
- data/lib/rubocop/cop/security/eval.rb +4 -2
- data/lib/rubocop/cop/security/io_methods.rb +49 -0
- data/lib/rubocop/cop/security/json_load.rb +10 -8
- data/lib/rubocop/cop/security/marshal_load.rb +2 -1
- data/lib/rubocop/cop/security/open.rb +28 -10
- data/lib/rubocop/cop/security/yaml_load.rb +16 -4
- data/lib/rubocop/cop/severity.rb +3 -3
- data/lib/rubocop/cop/style/access_modifier_declarations.rb +238 -8
- data/lib/rubocop/cop/style/accessor_grouping.rb +91 -29
- data/lib/rubocop/cop/style/alias.rb +26 -22
- data/lib/rubocop/cop/style/ambiguous_endless_method_definition.rb +79 -0
- data/lib/rubocop/cop/style/and_or.rb +29 -14
- data/lib/rubocop/cop/style/arguments_forwarding.rb +564 -0
- data/lib/rubocop/cop/style/array_coercion.rb +24 -4
- data/lib/rubocop/cop/style/array_first_last.rb +80 -0
- data/lib/rubocop/cop/style/array_intersect.rb +161 -0
- data/lib/rubocop/cop/style/array_join.rb +2 -1
- data/lib/rubocop/cop/style/ascii_comments.rb +4 -8
- data/lib/rubocop/cop/style/attr.rb +13 -4
- data/lib/rubocop/cop/style/auto_resource_cleanup.rb +22 -18
- data/lib/rubocop/cop/style/bare_percent_literals.rb +1 -1
- data/lib/rubocop/cop/style/begin_block.rb +1 -2
- data/lib/rubocop/cop/style/bisected_attr_accessor/macro.rb +60 -0
- data/lib/rubocop/cop/style/bisected_attr_accessor.rb +61 -77
- data/lib/rubocop/cop/style/bitwise_predicate.rb +100 -0
- data/lib/rubocop/cop/style/block_comments.rb +4 -4
- data/lib/rubocop/cop/style/block_delimiters.rb +144 -23
- data/lib/rubocop/cop/style/case_equality.rb +49 -21
- data/lib/rubocop/cop/style/case_like_if.rb +56 -31
- data/lib/rubocop/cop/style/character_literal.rb +20 -16
- data/lib/rubocop/cop/style/class_and_module_children.rb +97 -26
- data/lib/rubocop/cop/style/class_check.rb +2 -1
- data/lib/rubocop/cop/style/class_equality_comparison.rb +83 -13
- data/lib/rubocop/cop/style/class_methods.rb +2 -4
- data/lib/rubocop/cop/style/class_methods_definitions.rb +3 -2
- data/lib/rubocop/cop/style/class_vars.rb +4 -4
- data/lib/rubocop/cop/style/collection_compact.rb +143 -0
- data/lib/rubocop/cop/style/collection_methods.rb +27 -7
- data/lib/rubocop/cop/style/collection_querying.rb +167 -0
- data/lib/rubocop/cop/style/colon_method_call.rb +4 -5
- data/lib/rubocop/cop/style/colon_method_definition.rb +1 -1
- data/lib/rubocop/cop/style/combinable_defined.rb +115 -0
- data/lib/rubocop/cop/style/combinable_loops.rb +52 -12
- data/lib/rubocop/cop/style/command_literal.rb +6 -11
- data/lib/rubocop/cop/style/comment_annotation.rb +59 -32
- data/lib/rubocop/cop/style/commented_keyword.rb +65 -22
- data/lib/rubocop/cop/style/comparable_between.rb +78 -0
- data/lib/rubocop/cop/style/comparable_clamp.rb +125 -0
- data/lib/rubocop/cop/style/concat_array_literals.rb +95 -0
- data/lib/rubocop/cop/style/conditional_assignment.rb +88 -76
- data/lib/rubocop/cop/style/constant_visibility.rb +28 -9
- data/lib/rubocop/cop/style/copyright.rb +39 -29
- data/lib/rubocop/cop/style/data_inheritance.rb +82 -0
- data/lib/rubocop/cop/style/date_time.rb +16 -10
- data/lib/rubocop/cop/style/def_with_parentheses.rb +30 -15
- data/lib/rubocop/cop/style/dig_chain.rb +89 -0
- data/lib/rubocop/cop/style/dir.rb +5 -1
- data/lib/rubocop/cop/style/dir_empty.rb +54 -0
- data/lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb +49 -9
- data/lib/rubocop/cop/style/document_dynamic_eval_definition.rb +169 -0
- data/lib/rubocop/cop/style/documentation.rb +95 -30
- data/lib/rubocop/cop/style/documentation_method.rb +31 -4
- data/lib/rubocop/cop/style/double_cop_disable_directive.rb +1 -7
- data/lib/rubocop/cop/style/double_negation.rb +97 -11
- data/lib/rubocop/cop/style/each_for_simple_loop.rb +45 -14
- data/lib/rubocop/cop/style/each_with_object.rb +42 -11
- data/lib/rubocop/cop/style/empty_block_parameter.rb +3 -3
- data/lib/rubocop/cop/style/empty_case_condition.rb +21 -12
- data/lib/rubocop/cop/style/empty_else.rb +52 -18
- data/lib/rubocop/cop/style/empty_heredoc.rb +60 -0
- data/lib/rubocop/cop/style/empty_lambda_parameter.rb +3 -3
- data/lib/rubocop/cop/style/empty_literal.rb +62 -33
- data/lib/rubocop/cop/style/empty_method.rb +19 -8
- data/lib/rubocop/cop/style/empty_string_inside_interpolation.rb +100 -0
- data/lib/rubocop/cop/style/encoding.rb +27 -16
- data/lib/rubocop/cop/style/end_block.rb +2 -3
- data/lib/rubocop/cop/style/endless_method.rb +233 -0
- data/lib/rubocop/cop/style/env_home.rb +56 -0
- data/lib/rubocop/cop/style/eval_with_location.rb +144 -63
- data/lib/rubocop/cop/style/even_odd.rb +2 -1
- data/lib/rubocop/cop/style/exact_regexp_match.rb +69 -0
- data/lib/rubocop/cop/style/expand_path_arguments.rb +7 -11
- data/lib/rubocop/cop/style/explicit_block_argument.rb +78 -18
- data/lib/rubocop/cop/style/exponential_notation.rb +12 -12
- data/lib/rubocop/cop/style/fetch_env_var.rb +159 -0
- data/lib/rubocop/cop/style/file_empty.rb +71 -0
- data/lib/rubocop/cop/style/file_null.rb +89 -0
- data/lib/rubocop/cop/style/file_read.rb +109 -0
- data/lib/rubocop/cop/style/file_touch.rb +75 -0
- data/lib/rubocop/cop/style/file_write.rb +133 -0
- data/lib/rubocop/cop/style/float_division.rb +68 -6
- data/lib/rubocop/cop/style/for.rb +13 -3
- data/lib/rubocop/cop/style/format_string.rb +44 -16
- data/lib/rubocop/cop/style/format_string_token.rb +163 -26
- data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +27 -18
- data/lib/rubocop/cop/style/global_std_stream.rb +16 -2
- data/lib/rubocop/cop/style/global_vars.rb +2 -4
- data/lib/rubocop/cop/style/guard_clause.rb +206 -32
- data/lib/rubocop/cop/style/hash_as_last_array_item.rb +12 -0
- data/lib/rubocop/cop/style/hash_conversion.rb +151 -0
- data/lib/rubocop/cop/style/hash_each_methods.rb +147 -12
- data/lib/rubocop/cop/style/hash_except.rb +80 -0
- data/lib/rubocop/cop/style/hash_fetch_chain.rb +104 -0
- data/lib/rubocop/cop/style/hash_like_case.rb +6 -11
- data/lib/rubocop/cop/style/hash_slice.rb +80 -0
- data/lib/rubocop/cop/style/hash_syntax.rb +117 -33
- data/lib/rubocop/cop/style/hash_transform_keys.rb +19 -15
- data/lib/rubocop/cop/style/hash_transform_values.rb +19 -14
- data/lib/rubocop/cop/style/identical_conditional_branches.rb +153 -10
- data/lib/rubocop/cop/style/if_inside_else.rb +67 -2
- data/lib/rubocop/cop/style/if_unless_modifier.rb +188 -29
- data/lib/rubocop/cop/style/if_unless_modifier_of_if_unless.rb +4 -7
- data/lib/rubocop/cop/style/if_with_boolean_literal_branches.rb +163 -0
- data/lib/rubocop/cop/style/if_with_semicolon.rb +96 -7
- data/lib/rubocop/cop/style/implicit_runtime_error.rb +4 -3
- data/lib/rubocop/cop/style/in_pattern_then.rb +60 -0
- data/lib/rubocop/cop/style/infinite_loop.rb +9 -10
- data/lib/rubocop/cop/style/inline_comment.rb +1 -1
- data/lib/rubocop/cop/style/inverse_methods.rb +41 -28
- data/lib/rubocop/cop/style/invertible_unless_condition.rb +160 -0
- data/lib/rubocop/cop/style/ip_addresses.rb +5 -6
- data/lib/rubocop/cop/style/it_assignment.rb +93 -0
- data/lib/rubocop/cop/style/it_block_parameter.rb +121 -0
- data/lib/rubocop/cop/style/keyword_arguments_merging.rb +67 -0
- data/lib/rubocop/cop/style/keyword_parameters_order.rb +34 -6
- data/lib/rubocop/cop/style/lambda.rb +8 -9
- data/lib/rubocop/cop/style/lambda_call.rb +27 -24
- data/lib/rubocop/cop/style/line_end_concatenation.rb +31 -16
- data/lib/rubocop/cop/style/magic_comment_format.rb +307 -0
- data/lib/rubocop/cop/style/map_compact_with_conditional_block.rb +168 -0
- data/lib/rubocop/cop/style/map_into_array.rb +236 -0
- data/lib/rubocop/cop/style/map_to_hash.rb +90 -0
- data/lib/rubocop/cop/style/map_to_set.rb +63 -0
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +138 -53
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/require_parentheses.rb +11 -11
- data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +109 -36
- data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +62 -18
- data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +7 -7
- data/lib/rubocop/cop/style/method_def_parentheses.rb +37 -14
- data/lib/rubocop/cop/style/min_max.rb +6 -6
- data/lib/rubocop/cop/style/min_max_comparison.rb +91 -0
- data/lib/rubocop/cop/style/missing_else.rb +48 -33
- data/lib/rubocop/cop/style/missing_respond_to_missing.rb +37 -8
- data/lib/rubocop/cop/style/mixin_grouping.rb +10 -20
- data/lib/rubocop/cop/style/mixin_usage.rb +4 -3
- data/lib/rubocop/cop/style/module_function.rb +41 -18
- data/lib/rubocop/cop/style/multiline_block_chain.rb +7 -5
- data/lib/rubocop/cop/style/multiline_if_modifier.rb +4 -6
- data/lib/rubocop/cop/style/multiline_if_then.rb +1 -1
- data/lib/rubocop/cop/style/multiline_in_pattern_then.rb +60 -0
- data/lib/rubocop/cop/style/multiline_memoization.rb +5 -5
- data/lib/rubocop/cop/style/multiline_method_signature.rb +37 -3
- data/lib/rubocop/cop/style/multiline_ternary_operator.rb +54 -12
- data/lib/rubocop/cop/style/multiline_when_then.rb +8 -21
- data/lib/rubocop/cop/style/multiple_comparison.rb +104 -32
- data/lib/rubocop/cop/style/mutable_constant.rb +99 -28
- data/lib/rubocop/cop/style/negated_if.rb +1 -2
- data/lib/rubocop/cop/style/negated_if_else_condition.rb +137 -0
- data/lib/rubocop/cop/style/negated_unless.rb +1 -2
- data/lib/rubocop/cop/style/nested_file_dirname.rb +66 -0
- data/lib/rubocop/cop/style/nested_modifier.rb +5 -9
- data/lib/rubocop/cop/style/nested_parenthesized_calls.rb +17 -4
- data/lib/rubocop/cop/style/nested_ternary_operator.rb +23 -19
- data/lib/rubocop/cop/style/next.rb +51 -14
- data/lib/rubocop/cop/style/nil_comparison.rb +9 -1
- data/lib/rubocop/cop/style/nil_lambda.rb +70 -0
- data/lib/rubocop/cop/style/non_nil_check.rb +32 -18
- data/lib/rubocop/cop/style/not.rb +5 -5
- data/lib/rubocop/cop/style/numbered_parameters.rb +46 -0
- data/lib/rubocop/cop/style/numbered_parameters_limit.rb +58 -0
- data/lib/rubocop/cop/style/numeric_literal_prefix.rb +2 -2
- data/lib/rubocop/cop/style/numeric_literals.rb +44 -29
- data/lib/rubocop/cop/style/numeric_predicate.rb +73 -20
- data/lib/rubocop/cop/style/object_then.rb +76 -0
- data/lib/rubocop/cop/style/one_line_conditional.rb +46 -46
- data/lib/rubocop/cop/style/open_struct_use.rb +69 -0
- data/lib/rubocop/cop/style/operator_method_call.rb +91 -0
- data/lib/rubocop/cop/style/option_hash.rb +3 -4
- data/lib/rubocop/cop/style/optional_arguments.rb +7 -6
- data/lib/rubocop/cop/style/optional_boolean_parameter.rb +16 -5
- data/lib/rubocop/cop/style/or_assignment.rb +8 -13
- data/lib/rubocop/cop/style/parallel_assignment.rb +81 -66
- data/lib/rubocop/cop/style/parentheses_around_condition.rb +22 -3
- data/lib/rubocop/cop/style/percent_literal_delimiters.rb +6 -9
- data/lib/rubocop/cop/style/percent_q_literals.rb +6 -7
- data/lib/rubocop/cop/style/perl_backrefs.rb +101 -10
- data/lib/rubocop/cop/style/preferred_hash_methods.rb +11 -9
- data/lib/rubocop/cop/style/proc.rb +6 -3
- data/lib/rubocop/cop/style/quoted_symbols.rb +122 -0
- data/lib/rubocop/cop/style/raise_args.rb +57 -30
- data/lib/rubocop/cop/style/random_with_offset.rb +12 -12
- data/lib/rubocop/cop/style/redundant_argument.rb +129 -0
- data/lib/rubocop/cop/style/redundant_array_constructor.rb +77 -0
- data/lib/rubocop/cop/style/redundant_array_flatten.rb +50 -0
- data/lib/rubocop/cop/style/redundant_assignment.rb +14 -7
- data/lib/rubocop/cop/style/redundant_begin.rb +96 -8
- data/lib/rubocop/cop/style/redundant_capital_w.rb +3 -5
- data/lib/rubocop/cop/style/redundant_condition.rb +235 -32
- data/lib/rubocop/cop/style/redundant_conditional.rb +6 -19
- data/lib/rubocop/cop/style/redundant_constant_base.rb +85 -0
- data/lib/rubocop/cop/style/redundant_current_directory_in_path.rb +50 -0
- data/lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb +129 -0
- data/lib/rubocop/cop/style/redundant_each.rb +119 -0
- data/lib/rubocop/cop/style/redundant_exception.rb +36 -17
- data/lib/rubocop/cop/style/redundant_fetch_block.rb +17 -17
- data/lib/rubocop/cop/style/redundant_file_extension_in_require.rb +15 -5
- data/lib/rubocop/cop/style/redundant_filter_chain.rb +118 -0
- data/lib/rubocop/cop/style/redundant_format.rb +262 -0
- data/lib/rubocop/cop/style/redundant_freeze.rb +12 -8
- data/lib/rubocop/cop/style/redundant_heredoc_delimiter_quotes.rb +58 -0
- data/lib/rubocop/cop/style/redundant_initialize.rb +165 -0
- data/lib/rubocop/cop/style/redundant_interpolation.rb +42 -8
- data/lib/rubocop/cop/style/redundant_interpolation_unfreeze.rb +46 -0
- data/lib/rubocop/cop/style/redundant_line_continuation.rb +236 -0
- data/lib/rubocop/cop/style/redundant_parentheses.rb +184 -66
- data/lib/rubocop/cop/style/redundant_percent_q.rb +6 -8
- data/lib/rubocop/cop/style/redundant_regexp_argument.rb +107 -0
- data/lib/rubocop/cop/style/redundant_regexp_character_class.rb +27 -6
- data/lib/rubocop/cop/style/redundant_regexp_constructor.rb +46 -0
- data/lib/rubocop/cop/style/redundant_regexp_escape.rb +24 -9
- data/lib/rubocop/cop/style/redundant_return.rb +28 -8
- data/lib/rubocop/cop/style/redundant_self.rb +70 -21
- data/lib/rubocop/cop/style/redundant_self_assignment.rb +27 -37
- data/lib/rubocop/cop/style/redundant_self_assignment_branch.rb +90 -0
- data/lib/rubocop/cop/style/redundant_sort.rb +81 -34
- data/lib/rubocop/cop/style/redundant_sort_by.rb +41 -8
- data/lib/rubocop/cop/style/redundant_string_escape.rb +185 -0
- data/lib/rubocop/cop/style/regexp_literal.rb +25 -11
- data/lib/rubocop/cop/style/require_order.rb +139 -0
- data/lib/rubocop/cop/style/rescue_modifier.rb +39 -20
- data/lib/rubocop/cop/style/rescue_standard_error.rb +19 -21
- data/lib/rubocop/cop/style/return_nil.rb +16 -6
- data/lib/rubocop/cop/style/return_nil_in_predicate_method_definition.rb +137 -0
- data/lib/rubocop/cop/style/safe_navigation.rb +222 -89
- data/lib/rubocop/cop/style/safe_navigation_chain_length.rb +52 -0
- data/lib/rubocop/cop/style/sample.rb +10 -8
- data/lib/rubocop/cop/style/select_by_regexp.rb +169 -0
- data/lib/rubocop/cop/style/self_assignment.rb +15 -21
- data/lib/rubocop/cop/style/semicolon.rb +101 -27
- data/lib/rubocop/cop/style/send.rb +6 -7
- data/lib/rubocop/cop/style/send_with_literal_method_name.rb +105 -0
- data/lib/rubocop/cop/style/signal_exception.rb +17 -17
- data/lib/rubocop/cop/style/single_argument_dig.rb +26 -8
- data/lib/rubocop/cop/style/single_line_block_params.rb +38 -16
- data/lib/rubocop/cop/style/single_line_do_end_block.rb +78 -0
- data/lib/rubocop/cop/style/single_line_methods.rb +78 -15
- data/lib/rubocop/cop/style/slicing_with_range.rb +119 -10
- data/lib/rubocop/cop/style/sole_nested_conditional.rb +178 -7
- data/lib/rubocop/cop/style/special_global_vars.rb +97 -40
- data/lib/rubocop/cop/style/stabby_lambda_parentheses.rb +2 -3
- data/lib/rubocop/cop/style/static_class.rb +128 -0
- data/lib/rubocop/cop/style/stderr_puts.rb +4 -7
- data/lib/rubocop/cop/style/string_chars.rb +42 -0
- data/lib/rubocop/cop/style/string_concatenation.rb +96 -24
- data/lib/rubocop/cop/style/string_hash_keys.rb +11 -2
- data/lib/rubocop/cop/style/string_literals.rb +21 -21
- data/lib/rubocop/cop/style/string_literals_in_interpolation.rb +35 -8
- data/lib/rubocop/cop/style/string_methods.rb +2 -2
- data/lib/rubocop/cop/style/strip.rb +9 -5
- data/lib/rubocop/cop/style/struct_inheritance.rb +27 -5
- data/lib/rubocop/cop/style/super_arguments.rb +221 -0
- data/lib/rubocop/cop/style/super_with_args_parentheses.rb +35 -0
- data/lib/rubocop/cop/style/swap_values.rb +101 -0
- data/lib/rubocop/cop/style/symbol_array.rb +47 -22
- data/lib/rubocop/cop/style/symbol_literal.rb +2 -4
- data/lib/rubocop/cop/style/symbol_proc.rb +198 -22
- data/lib/rubocop/cop/style/ternary_parentheses.rb +49 -29
- data/lib/rubocop/cop/style/top_level_method_definition.rb +86 -0
- data/lib/rubocop/cop/style/trailing_body_on_class.rb +2 -1
- data/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +7 -3
- data/lib/rubocop/cop/style/trailing_body_on_module.rb +1 -1
- data/lib/rubocop/cop/style/trailing_comma_in_arguments.rb +16 -7
- data/lib/rubocop/cop/style/trailing_comma_in_array_literal.rb +48 -7
- data/lib/rubocop/cop/style/trailing_comma_in_block_args.rb +24 -9
- data/lib/rubocop/cop/style/trailing_comma_in_hash_literal.rb +49 -7
- data/lib/rubocop/cop/style/trailing_method_end_statement.rb +5 -11
- data/lib/rubocop/cop/style/trailing_underscore_variable.rb +12 -16
- data/lib/rubocop/cop/style/trivial_accessors.rb +82 -16
- data/lib/rubocop/cop/style/unless_else.rb +6 -3
- data/lib/rubocop/cop/style/unless_logical_operators.rb +106 -0
- data/lib/rubocop/cop/style/unpack_first.rb +16 -15
- data/lib/rubocop/cop/style/variable_interpolation.rb +2 -3
- data/lib/rubocop/cop/style/when_then.rb +5 -3
- data/lib/rubocop/cop/style/while_until_do.rb +0 -2
- data/lib/rubocop/cop/style/while_until_modifier.rb +11 -7
- data/lib/rubocop/cop/style/word_array.rb +79 -8
- data/lib/rubocop/cop/style/yaml_file_read.rb +66 -0
- data/lib/rubocop/cop/style/yoda_condition.rb +52 -29
- data/lib/rubocop/cop/style/yoda_expression.rb +92 -0
- data/lib/rubocop/cop/style/zero_length_predicate.rb +77 -38
- data/lib/rubocop/cop/team.rb +94 -61
- data/lib/rubocop/cop/util.rb +100 -24
- data/lib/rubocop/cop/utils/format_string.rb +11 -8
- data/lib/rubocop/cop/variable_force/assignment.rb +66 -7
- data/lib/rubocop/cop/variable_force/branch.rb +19 -5
- data/lib/rubocop/cop/variable_force/reference.rb +1 -3
- data/lib/rubocop/cop/variable_force/scope.rb +8 -12
- data/lib/rubocop/cop/variable_force/variable.rb +20 -9
- data/lib/rubocop/cop/variable_force/variable_table.rb +9 -7
- data/lib/rubocop/cop/variable_force.rb +63 -66
- data/lib/rubocop/cops_documentation_generator.rb +197 -75
- data/lib/rubocop/core_ext/string.rb +2 -6
- data/lib/rubocop/directive_comment.rb +158 -10
- data/lib/rubocop/ext/comment.rb +18 -0
- data/lib/rubocop/ext/processed_source.rb +2 -0
- data/lib/rubocop/ext/range.rb +15 -0
- data/lib/rubocop/ext/regexp_node.rb +18 -11
- data/lib/rubocop/ext/regexp_parser.rb +78 -0
- data/lib/rubocop/feature_loader.rb +94 -0
- data/lib/rubocop/file_finder.rb +12 -12
- data/lib/rubocop/file_patterns.rb +43 -0
- data/lib/rubocop/formatter/clang_style_formatter.rb +8 -10
- data/lib/rubocop/formatter/disabled_config_formatter.rb +92 -32
- data/lib/rubocop/formatter/emacs_style_formatter.rb +2 -0
- data/lib/rubocop/formatter/formatter_set.rb +29 -20
- data/lib/rubocop/formatter/fuubar_style_formatter.rb +1 -1
- data/lib/rubocop/formatter/github_actions_formatter.rb +57 -0
- data/lib/rubocop/formatter/html_formatter.rb +50 -38
- data/lib/rubocop/formatter/json_formatter.rb +5 -7
- data/lib/rubocop/formatter/junit_formatter.rb +85 -26
- data/lib/rubocop/formatter/markdown_formatter.rb +79 -0
- data/lib/rubocop/formatter/offense_count_formatter.rb +28 -9
- data/lib/rubocop/formatter/pacman_formatter.rb +2 -1
- data/lib/rubocop/formatter/progress_formatter.rb +1 -3
- data/lib/rubocop/formatter/simple_text_formatter.rb +13 -9
- data/lib/rubocop/formatter/tap_formatter.rb +10 -10
- data/lib/rubocop/formatter/worst_offenders_formatter.rb +8 -6
- data/lib/rubocop/formatter.rb +34 -0
- data/lib/rubocop/lockfile.rb +91 -0
- data/lib/rubocop/lsp/diagnostic.rb +189 -0
- data/lib/rubocop/lsp/logger.rb +22 -0
- data/lib/rubocop/lsp/routes.rb +227 -0
- data/lib/rubocop/lsp/runtime.rb +69 -0
- data/lib/rubocop/lsp/server.rb +70 -0
- data/lib/rubocop/lsp/severity.rb +27 -0
- data/lib/rubocop/lsp/stdin_runner.rb +85 -0
- data/lib/rubocop/lsp.rb +36 -0
- data/lib/rubocop/magic_comment.rb +115 -21
- data/lib/rubocop/name_similarity.rb +1 -1
- data/lib/rubocop/options.rb +348 -197
- data/lib/rubocop/path_util.rb +62 -25
- data/lib/rubocop/pending_cops_reporter.rb +56 -0
- data/lib/rubocop/plugin/configuration_integrator.rb +143 -0
- data/lib/rubocop/plugin/load_error.rb +26 -0
- data/lib/rubocop/plugin/loader.rb +100 -0
- data/lib/rubocop/plugin/not_supported_error.rb +29 -0
- data/lib/rubocop/plugin.rb +46 -0
- data/lib/rubocop/rake_task.rb +42 -11
- data/lib/rubocop/remote_config.rb +20 -13
- data/lib/rubocop/result_cache.rb +60 -57
- data/lib/rubocop/rspec/cop_helper.rb +45 -8
- data/lib/rubocop/rspec/expect_offense.rb +80 -45
- data/lib/rubocop/rspec/parallel_formatter.rb +90 -0
- data/lib/rubocop/rspec/shared_contexts.rb +164 -33
- data/lib/rubocop/rspec/support.rb +24 -3
- data/lib/rubocop/runner.rb +168 -52
- data/lib/rubocop/server/cache.rb +208 -0
- data/lib/rubocop/server/cli.rb +147 -0
- data/lib/rubocop/server/client_command/base.rb +54 -0
- data/lib/rubocop/server/client_command/exec.rb +65 -0
- data/lib/rubocop/server/client_command/restart.rb +25 -0
- data/lib/rubocop/server/client_command/start.rb +58 -0
- data/lib/rubocop/server/client_command/status.rb +28 -0
- data/lib/rubocop/server/client_command/stop.rb +31 -0
- data/lib/rubocop/server/client_command.rb +26 -0
- data/lib/rubocop/server/core.rb +116 -0
- data/lib/rubocop/server/errors.rb +23 -0
- data/lib/rubocop/server/helper.rb +34 -0
- data/lib/rubocop/server/server_command/base.rb +50 -0
- data/lib/rubocop/server/server_command/exec.rb +33 -0
- data/lib/rubocop/server/server_command/stop.rb +24 -0
- data/lib/rubocop/server/server_command.rb +21 -0
- data/lib/rubocop/server/socket_reader.rb +69 -0
- data/lib/rubocop/server.rb +53 -0
- data/lib/rubocop/string_interpreter.rb +7 -7
- data/lib/rubocop/target_finder.rb +113 -93
- data/lib/rubocop/target_ruby.rb +156 -19
- data/lib/rubocop/util.rb +16 -0
- data/lib/rubocop/version.rb +139 -8
- data/lib/rubocop/yaml_duplication_checker.rb +20 -26
- data/lib/rubocop.rb +219 -39
- data/lib/ruby_lsp/rubocop/addon.rb +75 -0
- data/lib/ruby_lsp/rubocop/runtime_adapter.rb +65 -0
- metadata +352 -66
- data/bin/console +0 -10
- data/bin/rubocop-profile +0 -32
- data/bin/setup +0 -7
- data/lib/rubocop/cop/mixin/ignored_methods.rb +0 -19
- data/lib/rubocop/cop/mixin/ignored_pattern.rb +0 -29
- data/lib/rubocop/cop/naming/predicate_name.rb +0 -104
- data/lib/rubocop/rspec/host_environment_simulation_helper.rb +0 -28
data/lib/rubocop/options.rb
CHANGED
@@ -1,20 +1,22 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'optparse'
|
4
|
-
|
4
|
+
require_relative 'arguments_env'
|
5
|
+
require_relative 'arguments_file'
|
5
6
|
|
6
7
|
module RuboCop
|
7
8
|
class IncorrectCopNameError < StandardError; end
|
9
|
+
|
8
10
|
class OptionArgumentError < StandardError; end
|
9
11
|
|
10
12
|
# This class handles command line options.
|
11
13
|
# @api private
|
12
14
|
class Options
|
13
15
|
E_STDIN_NO_PATH = '-s/--stdin requires exactly one path, relative to the ' \
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
EXITING_OPTIONS = %i[version verbose_version show_cops].freeze
|
16
|
+
'root of the project. RuboCop will use this path to determine which ' \
|
17
|
+
'cops are enabled (via eg. Include/Exclude), and so that certain cops ' \
|
18
|
+
'like Naming/FileName can be checked.'
|
19
|
+
EXITING_OPTIONS = %i[version verbose_version show_cops show_docs_url lsp].freeze
|
18
20
|
DEFAULT_MAXIMUM_EXCLUSION_ITEMS = 15
|
19
21
|
|
20
22
|
def initialize
|
@@ -23,7 +25,10 @@ module RuboCop
|
|
23
25
|
end
|
24
26
|
|
25
27
|
def parse(command_line_args)
|
28
|
+
args_from_file = ArgumentsFile.read_as_arguments
|
29
|
+
args_from_env = ArgumentsEnv.read_as_arguments
|
26
30
|
args = args_from_file.concat(args_from_env).concat(command_line_args)
|
31
|
+
|
27
32
|
define_options.parse!(args)
|
28
33
|
|
29
34
|
@validator.validate_compatibility
|
@@ -44,108 +49,148 @@ module RuboCop
|
|
44
49
|
|
45
50
|
private
|
46
51
|
|
47
|
-
|
48
|
-
if File.exist?('.rubocop') && !File.directory?('.rubocop')
|
49
|
-
File.read('.rubocop').shellsplit
|
50
|
-
else
|
51
|
-
[]
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
def args_from_env
|
56
|
-
Shellwords.split(ENV.fetch('RUBOCOP_OPTS', ''))
|
57
|
-
end
|
58
|
-
|
52
|
+
# rubocop:disable Metrics/AbcSize
|
59
53
|
def define_options
|
60
54
|
OptionParser.new do |opts|
|
61
|
-
opts.banner = 'Usage: rubocop [options] [file1, file2, ...]'
|
55
|
+
opts.banner = rainbow.wrap('Usage: rubocop [options] [file1, file2, ...]').bright
|
62
56
|
|
63
|
-
|
64
|
-
add_only_options(opts)
|
65
|
-
add_configuration_options(opts)
|
66
|
-
add_formatting_options(opts)
|
67
|
-
|
68
|
-
option(opts, '-r', '--require FILE') { |f| require f }
|
69
|
-
|
70
|
-
add_severity_option(opts)
|
71
|
-
add_flags_with_optional_args(opts)
|
57
|
+
add_check_options(opts)
|
72
58
|
add_cache_options(opts)
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
59
|
+
add_lsp_option(opts)
|
60
|
+
add_server_options(opts)
|
61
|
+
add_output_options(opts)
|
62
|
+
add_autocorrection_options(opts)
|
63
|
+
add_config_generation_options(opts)
|
64
|
+
add_additional_modes(opts)
|
65
|
+
add_general_options(opts)
|
66
|
+
|
67
|
+
# `stackprof` is not supported on JRuby and Windows.
|
68
|
+
add_profile_options(opts) if RUBY_ENGINE == 'ruby' && !Platform.windows?
|
77
69
|
end
|
78
70
|
end
|
71
|
+
# rubocop:enable Metrics/AbcSize
|
79
72
|
|
80
|
-
def
|
81
|
-
|
82
|
-
|
83
|
-
|
73
|
+
def add_check_options(opts) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
74
|
+
section(opts, 'Basic Options') do # rubocop:disable Metrics/BlockLength
|
75
|
+
option(opts, '-l', '--lint') do
|
76
|
+
@options[:only] ||= []
|
77
|
+
@options[:only] << 'Lint'
|
78
|
+
end
|
79
|
+
option(opts, '-x', '--fix-layout') do
|
80
|
+
@options[:only] ||= []
|
81
|
+
@options[:only] << 'Layout'
|
82
|
+
@options[:autocorrect] = true
|
83
|
+
end
|
84
|
+
option(opts, '--safe')
|
85
|
+
add_cop_selection_csv_option('except', opts)
|
86
|
+
add_cop_selection_csv_option('only', opts)
|
87
|
+
option(opts, '--only-guide-cops')
|
88
|
+
option(opts, '-F', '--fail-fast')
|
89
|
+
option(opts, '--disable-pending-cops')
|
90
|
+
option(opts, '--enable-pending-cops')
|
91
|
+
option(opts, '--ignore-disable-comments')
|
92
|
+
option(opts, '--force-exclusion')
|
93
|
+
option(opts, '--only-recognized-file-types')
|
94
|
+
option(opts, '--ignore-parent-exclusion')
|
95
|
+
option(opts, '--ignore-unrecognized-cops')
|
96
|
+
option(opts, '--force-default-config')
|
97
|
+
option(opts, '-s', '--stdin FILE')
|
98
|
+
option(opts, '--editor-mode')
|
99
|
+
option(opts, '-P', '--[no-]parallel')
|
100
|
+
option(opts, '--raise-cop-error')
|
101
|
+
add_severity_option(opts)
|
102
|
+
end
|
84
103
|
end
|
85
104
|
|
86
|
-
def
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
raise OptionArgumentError, message
|
105
|
+
def add_output_options(opts) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
106
|
+
section(opts, 'Output Options') do
|
107
|
+
option(opts, '-f', '--format FORMATTER') do |key|
|
108
|
+
@options[:formatters] ||= []
|
109
|
+
@options[:formatters] << [key]
|
92
110
|
end
|
93
111
|
|
94
|
-
|
95
|
-
|
96
|
-
|
112
|
+
option(opts, '-D', '--[no-]display-cop-names')
|
113
|
+
option(opts, '-E', '--extra-details')
|
114
|
+
option(opts, '-S', '--display-style-guide')
|
115
|
+
|
116
|
+
option(opts, '-o', '--out FILE') do |path|
|
117
|
+
if @options[:formatters]
|
118
|
+
@options[:formatters].last << path
|
97
119
|
else
|
98
|
-
|
99
|
-
Cop::Registry.qualified_cop_name(c, "--#{option} option")
|
100
|
-
end
|
120
|
+
@options[:output_path] = path
|
101
121
|
end
|
122
|
+
end
|
123
|
+
|
124
|
+
option(opts, '--stderr')
|
125
|
+
option(opts, '--display-time')
|
126
|
+
option(opts, '--display-only-failed')
|
127
|
+
option(opts, '--display-only-fail-level-offenses')
|
128
|
+
option(opts, '--display-only-correctable')
|
129
|
+
option(opts, '--display-only-safe-correctable')
|
102
130
|
end
|
103
131
|
end
|
104
132
|
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
133
|
+
# rubocop:todo Naming/InclusiveLanguage
|
134
|
+
# the autocorrect command-line arguments map to the autocorrect @options values like so:
|
135
|
+
# :fix_layout :autocorrect :safe_autocorrect :autocorrect_all
|
136
|
+
# -x, --fix-layout true true - -
|
137
|
+
# -a, --auto-correct - true true -
|
138
|
+
# --safe-auto-correct - true true -
|
139
|
+
# -A, --auto-correct-all - true - true
|
140
|
+
def add_autocorrection_options(opts) # rubocop:disable Metrics/MethodLength
|
141
|
+
section(opts, 'Autocorrection') do
|
142
|
+
option(opts, '-a', '--autocorrect') { @options[:safe_autocorrect] = true }
|
143
|
+
option(opts, '--auto-correct') do
|
144
|
+
handle_deprecated_option('--auto-correct', '--autocorrect')
|
145
|
+
@options[:safe_autocorrect] = true
|
146
|
+
end
|
147
|
+
option(opts, '--safe-auto-correct') do
|
148
|
+
handle_deprecated_option('--safe-auto-correct', '--autocorrect')
|
149
|
+
@options[:safe_autocorrect] = true
|
150
|
+
end
|
113
151
|
|
114
|
-
|
115
|
-
|
152
|
+
option(opts, '-A', '--autocorrect-all') { @options[:autocorrect] = true }
|
153
|
+
option(opts, '--auto-correct-all') do
|
154
|
+
handle_deprecated_option('--auto-correct-all', '--autocorrect-all')
|
155
|
+
@options[:autocorrect] = true
|
156
|
+
end
|
116
157
|
|
117
|
-
|
118
|
-
@options.replace(ConfigRegeneration.new.options.merge(@options))
|
158
|
+
option(opts, '--disable-uncorrectable')
|
119
159
|
end
|
160
|
+
end
|
161
|
+
# rubocop:enable Naming/InclusiveLanguage
|
120
162
|
|
121
|
-
|
122
|
-
|
123
|
-
|
163
|
+
def add_config_generation_options(opts)
|
164
|
+
section(opts, 'Config Generation') do
|
165
|
+
option(opts, '--auto-gen-config')
|
124
166
|
|
125
|
-
|
167
|
+
option(opts, '--regenerate-todo') do
|
168
|
+
@options.replace(ConfigRegeneration.new.options.merge(@options))
|
169
|
+
end
|
126
170
|
|
127
|
-
|
128
|
-
|
129
|
-
option(opts, '--[no-]auto-gen-timestamp')
|
171
|
+
option(opts, '--exclude-limit COUNT') { @validator.validate_exclude_limit_option }
|
172
|
+
option(opts, '--no-exclude-limit')
|
130
173
|
|
131
|
-
|
174
|
+
option(opts, '--[no-]offense-counts')
|
175
|
+
option(opts, '--[no-]auto-gen-only-exclude')
|
176
|
+
option(opts, '--[no-]auto-gen-timestamp')
|
177
|
+
option(opts, '--[no-]auto-gen-enforced-style')
|
178
|
+
end
|
132
179
|
end
|
133
180
|
|
134
|
-
def
|
135
|
-
option(opts,
|
136
|
-
|
137
|
-
|
138
|
-
end
|
181
|
+
def add_cop_selection_csv_option(option, opts)
|
182
|
+
option(opts, "--#{option} [COP1,COP2,...]") do |list|
|
183
|
+
unless list
|
184
|
+
message = "--#{option} argument should be [COP1,COP2,...]."
|
139
185
|
|
140
|
-
|
141
|
-
if @options[:formatters]
|
142
|
-
@options[:formatters].last << path
|
143
|
-
else
|
144
|
-
@options[:output_path] = path
|
186
|
+
raise OptionArgumentError, message
|
145
187
|
end
|
146
|
-
end
|
147
188
|
|
148
|
-
|
189
|
+
cop_names = list.empty? ? [''] : list.split(',')
|
190
|
+
cop_names.unshift('Lint/Syntax') if option == 'only' && !cop_names.include?('Lint/Syntax')
|
191
|
+
|
192
|
+
@options[:"#{option}"] = cop_names
|
193
|
+
end
|
149
194
|
end
|
150
195
|
|
151
196
|
def add_severity_option(opts)
|
@@ -155,67 +200,86 @@ module RuboCop
|
|
155
200
|
table) do |severity|
|
156
201
|
@options[:fail_level] = severity
|
157
202
|
end
|
158
|
-
option(opts, '--display-only-fail-level-offenses')
|
159
203
|
end
|
160
204
|
|
161
|
-
def
|
162
|
-
|
163
|
-
|
205
|
+
def add_cache_options(opts)
|
206
|
+
section(opts, 'Caching') do
|
207
|
+
option(opts, '-C', '--cache FLAG')
|
208
|
+
option(opts, '--cache-root DIR') { @validator.validate_cache_enabled_for_cache_root }
|
164
209
|
end
|
165
210
|
end
|
166
211
|
|
167
|
-
def
|
168
|
-
|
169
|
-
|
170
|
-
@validator.validate_cache_enabled_for_cache_root
|
212
|
+
def add_lsp_option(opts)
|
213
|
+
section(opts, 'LSP Option') do
|
214
|
+
option(opts, '--lsp')
|
171
215
|
end
|
172
216
|
end
|
173
217
|
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
@options[:safe_auto_correct] = true
|
183
|
-
end
|
184
|
-
option(opts, '--safe-auto-correct') do
|
185
|
-
warn '--safe-auto-correct is deprecated; use --auto-correct'
|
186
|
-
@options[:safe_auto_correct] = @options[:auto_correct] = true
|
218
|
+
def add_server_options(opts)
|
219
|
+
section(opts, 'Server Options') do
|
220
|
+
option(opts, '--[no-]server')
|
221
|
+
option(opts, '--restart-server')
|
222
|
+
option(opts, '--start-server')
|
223
|
+
option(opts, '--stop-server')
|
224
|
+
option(opts, '--server-status')
|
225
|
+
option(opts, '--no-detach')
|
187
226
|
end
|
188
|
-
|
189
|
-
|
227
|
+
end
|
228
|
+
|
229
|
+
def add_additional_modes(opts)
|
230
|
+
section(opts, 'Additional Modes') do
|
231
|
+
option(opts, '-L', '--list-target-files')
|
232
|
+
option(opts, '--show-cops [COP1,COP2,...]') do |list|
|
233
|
+
@options[:show_cops] = list.nil? ? [] : list.split(',')
|
234
|
+
end
|
235
|
+
option(opts, '--show-docs-url [COP1,COP2,...]') do |list|
|
236
|
+
@options[:show_docs_url] = list.nil? ? [] : list.split(',')
|
237
|
+
end
|
190
238
|
end
|
191
|
-
|
192
|
-
option(opts, '--enable-pending-cops')
|
193
|
-
option(opts, '--ignore-disable-comments')
|
239
|
+
end
|
194
240
|
|
195
|
-
|
241
|
+
def add_general_options(opts)
|
242
|
+
section(opts, 'General Options') do
|
243
|
+
option(opts, '--init')
|
244
|
+
option(opts, '-c', '--config FILE')
|
245
|
+
option(opts, '-d', '--debug')
|
246
|
+
option(opts, '--plugin FILE') { |f| plugin_feature(f) }
|
247
|
+
option(opts, '-r', '--require FILE') { |f| require_feature(f) }
|
248
|
+
option(opts, '--[no-]color')
|
249
|
+
option(opts, '-v', '--version')
|
250
|
+
option(opts, '-V', '--verbose-version')
|
251
|
+
end
|
252
|
+
end
|
196
253
|
|
197
|
-
|
254
|
+
def add_profile_options(opts)
|
255
|
+
section(opts, 'Profiling Options') do
|
256
|
+
option(opts, '--profile') do
|
257
|
+
@options[:profile] = true
|
258
|
+
@options[:cache] = 'false' unless @options.key?(:cache)
|
259
|
+
end
|
260
|
+
option(opts, '--memory')
|
261
|
+
end
|
262
|
+
end
|
198
263
|
|
199
|
-
|
200
|
-
|
201
|
-
|
264
|
+
def handle_deprecated_option(old_option, new_option)
|
265
|
+
warn rainbow.wrap("#{old_option} is deprecated; use #{new_option} instead.").yellow
|
266
|
+
@options[long_opt_symbol([new_option])] = @options.delete(long_opt_symbol([old_option]))
|
202
267
|
end
|
203
|
-
# rubocop:enable Metrics/MethodLength, Metrics/AbcSize
|
204
268
|
|
205
|
-
def
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
option(opts, '-x', '--fix-layout') do
|
211
|
-
@options[:only] ||= []
|
212
|
-
@options[:only] << 'Layout'
|
213
|
-
@options[:auto_correct] = true
|
269
|
+
def rainbow
|
270
|
+
@rainbow ||= begin
|
271
|
+
rainbow = Rainbow.new
|
272
|
+
rainbow.enabled = false if ARGV.include?('--no-color')
|
273
|
+
rainbow
|
214
274
|
end
|
215
275
|
end
|
216
276
|
|
217
|
-
|
218
|
-
|
277
|
+
# Creates a section of options in order to separate them visually when
|
278
|
+
# using `--help`.
|
279
|
+
def section(opts, heading, &_block)
|
280
|
+
heading = rainbow.wrap(heading).bright
|
281
|
+
opts.separator("\n#{heading}:\n")
|
282
|
+
yield
|
219
283
|
end
|
220
284
|
|
221
285
|
# Sets a value in the @options hash, based on the given long option and its
|
@@ -230,11 +294,31 @@ module RuboCop
|
|
230
294
|
end
|
231
295
|
|
232
296
|
# Finds the option in `args` starting with -- and converts it to a symbol,
|
233
|
-
# e.g. [..., '--
|
297
|
+
# e.g. [..., '--autocorrect', ...] to :autocorrect.
|
234
298
|
def long_opt_symbol(args)
|
235
299
|
long_opt = args.find { |arg| arg.start_with?('--') }
|
236
|
-
long_opt[2
|
237
|
-
|
300
|
+
long_opt[2..].sub('[no-]', '').sub(/ .*/, '').tr('-', '_').gsub(/[\[\]]/, '').to_sym
|
301
|
+
end
|
302
|
+
|
303
|
+
def plugin_feature(file)
|
304
|
+
# If any features were added on the CLI from `--plugin`,
|
305
|
+
# add them to the config.
|
306
|
+
ConfigLoaderResolver.new.resolve_plugins(Config.new, file)
|
307
|
+
end
|
308
|
+
|
309
|
+
def require_feature(file)
|
310
|
+
if Plugin.plugin_capable?(file)
|
311
|
+
# NOTE: Compatibility for before plugins style.
|
312
|
+
warn Rainbow(<<~MESSAGE).yellow
|
313
|
+
#{file} gem supports plugin, use `--plugin` instead of `--require`.
|
314
|
+
MESSAGE
|
315
|
+
plugin_feature(file)
|
316
|
+
else
|
317
|
+
# If any features were added on the CLI from `--require`,
|
318
|
+
# add them to the config.
|
319
|
+
require file
|
320
|
+
ConfigLoader.add_loaded_features(file)
|
321
|
+
end
|
238
322
|
end
|
239
323
|
end
|
240
324
|
|
@@ -242,6 +326,9 @@ module RuboCop
|
|
242
326
|
# @api private
|
243
327
|
class OptionsValidator
|
244
328
|
class << self
|
329
|
+
SYNTAX_DEPARTMENTS = %w[Syntax Lint/Syntax].freeze
|
330
|
+
private_constant :SYNTAX_DEPARTMENTS
|
331
|
+
|
245
332
|
# Cop name validation must be done later than option parsing, so it's not
|
246
333
|
# called from within Options.
|
247
334
|
def validate_cop_list(names)
|
@@ -253,7 +340,7 @@ module RuboCop
|
|
253
340
|
names.each do |name|
|
254
341
|
next if cop_names.include?(name)
|
255
342
|
next if departments.include?(name)
|
256
|
-
next if
|
343
|
+
next if SYNTAX_DEPARTMENTS.include?(name)
|
257
344
|
|
258
345
|
raise IncorrectCopNameError, format_message_from(name, cop_names)
|
259
346
|
end
|
@@ -280,35 +367,30 @@ module RuboCop
|
|
280
367
|
end
|
281
368
|
|
282
369
|
def validate_cop_options
|
283
|
-
%i[only except].each
|
284
|
-
OptionsValidator.validate_cop_list(@options[opt])
|
285
|
-
end
|
370
|
+
%i[only except].each { |opt| OptionsValidator.validate_cop_list(@options[opt]) }
|
286
371
|
end
|
287
372
|
|
288
373
|
# rubocop:disable Metrics/AbcSize
|
289
374
|
def validate_compatibility # rubocop:disable Metrics/MethodLength
|
290
375
|
if only_includes_redundant_disable?
|
291
|
-
raise OptionArgumentError, 'Lint/RedundantCopDisableDirective cannot '
|
292
|
-
'be used with --only.'
|
376
|
+
raise OptionArgumentError, 'Lint/RedundantCopDisableDirective cannot be used with --only.'
|
293
377
|
end
|
294
378
|
raise OptionArgumentError, 'Syntax checking cannot be turned off.' if except_syntax?
|
295
379
|
unless boolean_or_empty_cache?
|
296
380
|
raise OptionArgumentError, '-C/--cache argument must be true or false'
|
297
381
|
end
|
298
382
|
|
299
|
-
if display_only_fail_level_offenses_with_autocorrect?
|
300
|
-
raise OptionArgumentError, '--autocorrect cannot be used with ' \
|
301
|
-
'--display-only-fail-level-offenses'
|
302
|
-
end
|
303
383
|
validate_auto_gen_config
|
304
|
-
|
384
|
+
validate_autocorrect
|
305
385
|
validate_display_only_failed
|
306
|
-
|
386
|
+
validate_display_only_failed_and_display_only_correctable
|
387
|
+
validate_display_only_correctable_and_autocorrect
|
388
|
+
validate_lsp_and_editor_mode
|
389
|
+
disable_parallel_when_invalid_option_combo
|
307
390
|
|
308
391
|
return if incompatible_options.size <= 1
|
309
392
|
|
310
|
-
raise OptionArgumentError,
|
311
|
-
"#{incompatible_options.inspect}"
|
393
|
+
raise OptionArgumentError, "Incompatible cli options: #{incompatible_options.inspect}"
|
312
394
|
end
|
313
395
|
# rubocop:enable Metrics/AbcSize
|
314
396
|
|
@@ -320,8 +402,7 @@ module RuboCop
|
|
320
402
|
%i[exclude_limit offense_counts auto_gen_timestamp
|
321
403
|
auto_gen_only_exclude].each do |option|
|
322
404
|
if @options.key?(option)
|
323
|
-
raise OptionArgumentError,
|
324
|
-
format(message, flag: option.to_s.tr('_', '-'))
|
405
|
+
raise OptionArgumentError, format(message, flag: option.to_s.tr('_', '-'))
|
325
406
|
end
|
326
407
|
end
|
327
408
|
end
|
@@ -331,56 +412,75 @@ module RuboCop
|
|
331
412
|
return if @options[:format] == 'junit'
|
332
413
|
|
333
414
|
raise OptionArgumentError,
|
334
|
-
|
415
|
+
'--display-only-failed can only be used together with --format junit.'
|
335
416
|
end
|
336
417
|
|
337
|
-
def
|
338
|
-
return
|
339
|
-
return
|
418
|
+
def validate_display_only_correctable_and_autocorrect
|
419
|
+
return unless @options.key?(:autocorrect)
|
420
|
+
return if !@options.key?(:display_only_correctable) &&
|
421
|
+
!@options.key?(:display_only_safe_correctable)
|
340
422
|
|
341
423
|
raise OptionArgumentError,
|
342
|
-
|
424
|
+
'--autocorrect cannot be used with --display-only-[safe-]correctable.'
|
343
425
|
end
|
344
426
|
|
345
|
-
def
|
346
|
-
return unless @options.key?(:
|
427
|
+
def validate_display_only_failed_and_display_only_correctable
|
428
|
+
return unless @options.key?(:display_only_failed)
|
429
|
+
return if !@options.key?(:display_only_correctable) &&
|
430
|
+
!@options.key?(:display_only_safe_correctable)
|
431
|
+
|
432
|
+
raise OptionArgumentError,
|
433
|
+
'--display-only-failed cannot be used together with other display options.'
|
434
|
+
end
|
435
|
+
|
436
|
+
def validate_lsp_and_editor_mode
|
437
|
+
return if !@options.key?(:lsp) || !@options.key?(:editor_mode)
|
438
|
+
|
439
|
+
raise OptionArgumentError, 'Do not specify `--editor-mode` as it is redundant in `--lsp`.'
|
440
|
+
end
|
347
441
|
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
442
|
+
def validate_autocorrect
|
443
|
+
if @options.key?(:safe_autocorrect) && @options.key?(:autocorrect_all)
|
444
|
+
message = Rainbow(<<~MESSAGE).red
|
445
|
+
Error: Both safe and unsafe autocorrect options are specified, use only one.
|
446
|
+
MESSAGE
|
447
|
+
raise OptionArgumentError, message
|
352
448
|
end
|
449
|
+
return if @options.key?(:autocorrect)
|
450
|
+
return unless @options.key?(:disable_uncorrectable)
|
353
451
|
|
354
|
-
|
452
|
+
raise OptionArgumentError,
|
453
|
+
'--disable-uncorrectable can only be used together with --autocorrect.'
|
355
454
|
end
|
356
455
|
|
357
|
-
def
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
'so they cannot be combined.',
|
362
|
-
fail_fast: '-P/--parallel cannot be combined with -F/--fail-fast.',
|
363
|
-
auto_correct: '-P/--parallel cannot be combined with --auto-correct.'
|
364
|
-
}
|
456
|
+
def disable_parallel_when_invalid_option_combo
|
457
|
+
return unless @options.key?(:parallel)
|
458
|
+
|
459
|
+
invalid_flags = invalid_arguments_for_parallel
|
365
460
|
|
366
|
-
|
367
|
-
|
368
|
-
|
461
|
+
return if invalid_flags.empty?
|
462
|
+
|
463
|
+
@options.delete(:parallel)
|
464
|
+
|
465
|
+
puts '-P/--parallel is being ignored because ' \
|
466
|
+
"it is not compatible with #{invalid_flags.join(', ')}."
|
369
467
|
end
|
370
468
|
|
371
|
-
def
|
372
|
-
@options.key?(:
|
373
|
-
|
374
|
-
|
469
|
+
def invalid_arguments_for_parallel
|
470
|
+
[('--auto-gen-config' if @options.key?(:auto_gen_config)),
|
471
|
+
('-F/--fail-fast' if @options.key?(:fail_fast)),
|
472
|
+
('--profile' if @options[:profile]),
|
473
|
+
('--memory' if @options[:memory]),
|
474
|
+
('--cache false' if @options > { cache: 'false' })].compact
|
375
475
|
end
|
376
476
|
|
377
|
-
def
|
378
|
-
@options
|
477
|
+
def only_includes_redundant_disable?
|
478
|
+
@options.key?(:only) &&
|
479
|
+
(@options[:only] & %w[Lint/RedundantCopDisableDirective RedundantCopDisableDirective]).any?
|
379
480
|
end
|
380
481
|
|
381
482
|
def except_syntax?
|
382
|
-
@options.key?(:except) &&
|
383
|
-
(@options[:except] & %w[Lint/Syntax Syntax]).any?
|
483
|
+
@options.key?(:except) && (@options[:except] & %w[Lint/Syntax Syntax]).any?
|
384
484
|
end
|
385
485
|
|
386
486
|
def boolean_or_empty_cache?
|
@@ -402,13 +502,13 @@ module RuboCop
|
|
402
502
|
def validate_cache_enabled_for_cache_root
|
403
503
|
return unless @options[:cache] == 'false'
|
404
504
|
|
405
|
-
raise OptionArgumentError, '--cache-root
|
406
|
-
'--cache false'
|
505
|
+
raise OptionArgumentError, '--cache-root cannot be used with --cache false'
|
407
506
|
end
|
408
507
|
end
|
409
508
|
|
410
509
|
# This module contains help texts for command line options.
|
411
510
|
# @api private
|
511
|
+
# rubocop:disable Metrics/ModuleLength
|
412
512
|
module OptionsHelp
|
413
513
|
MAX_EXCL = RuboCop::Options::DEFAULT_MAXIMUM_EXCLUSION_ITEMS.to_s
|
414
514
|
FORMATTER_OPTION_LIST = RuboCop::Formatter::FormatterSet::BUILTIN_FORMATTERS_FOR_KEYS.keys
|
@@ -417,7 +517,8 @@ module RuboCop
|
|
417
517
|
only: 'Run only the given cop(s).',
|
418
518
|
only_guide_cops: ['Run only cops for rules that link to a',
|
419
519
|
'style guide.'],
|
420
|
-
except: '
|
520
|
+
except: 'Exclude the given cop(s).',
|
521
|
+
plugin: 'Load a RuboCop plugin.',
|
421
522
|
require: 'Require Ruby file.',
|
422
523
|
config: 'Specify configuration file.',
|
423
524
|
auto_gen_config: ['Generate a configuration file acting as a',
|
@@ -431,49 +532,72 @@ module RuboCop
|
|
431
532
|
auto_gen_timestamp:
|
432
533
|
['Include the date and time when the --auto-gen-config',
|
433
534
|
'was run in the file it generates. Default is true.'],
|
535
|
+
auto_gen_enforced_style:
|
536
|
+
['Add a setting to the TODO configuration file to enforce',
|
537
|
+
'the style used, rather than a per-file exclusion',
|
538
|
+
'if one style is used in all files for cop with',
|
539
|
+
'EnforcedStyle as a configurable option',
|
540
|
+
'when the --auto-gen-config was run',
|
541
|
+
'in the file it generates. Default is true.'],
|
434
542
|
auto_gen_only_exclude:
|
435
543
|
['Generate only Exclude parameters and not Max',
|
436
544
|
'when running --auto-gen-config, except if the',
|
437
545
|
'number of files with offenses is bigger than',
|
438
546
|
'exclude-limit. Default is false.'],
|
439
|
-
exclude_limit: ['
|
440
|
-
'
|
441
|
-
"
|
442
|
-
disable_uncorrectable: ['Used with --
|
547
|
+
exclude_limit: ['Set the limit for how many files to explicitly exclude.',
|
548
|
+
'If there are more files than the limit, the cop will',
|
549
|
+
"be disabled instead. Default is #{MAX_EXCL}."],
|
550
|
+
disable_uncorrectable: ['Used with --autocorrect to annotate any',
|
443
551
|
'offenses that do not support autocorrect',
|
444
552
|
'with `rubocop:todo` comments.'],
|
445
|
-
|
446
|
-
|
447
|
-
'
|
553
|
+
no_exclude_limit: ['Do not set the limit for how many files to exclude.'],
|
554
|
+
force_exclusion: ['Any files excluded by `Exclude` in configuration',
|
555
|
+
'files will be excluded, even if given explicitly',
|
556
|
+
'as arguments.'],
|
448
557
|
only_recognized_file_types: ['Inspect files given on the command line only if',
|
449
|
-
'they are listed in AllCops/Include parameters',
|
558
|
+
'they are listed in `AllCops/Include` parameters',
|
450
559
|
'of user configuration or default configuration.'],
|
451
|
-
ignore_disable_comments: ['
|
452
|
-
'with a
|
453
|
-
ignore_parent_exclusion: ['Prevent from inheriting AllCops/Exclude from',
|
560
|
+
ignore_disable_comments: ['Report offenses even if they have been manually disabled',
|
561
|
+
'with a `rubocop:disable` or `rubocop:todo` directive.'],
|
562
|
+
ignore_parent_exclusion: ['Prevent from inheriting `AllCops/Exclude` from',
|
454
563
|
'parent folders.'],
|
564
|
+
ignore_unrecognized_cops: ['Ignore unrecognized cops or departments in the config.'],
|
455
565
|
force_default_config: ['Use default configuration even if configuration',
|
456
566
|
'files are present in the directory tree.'],
|
457
567
|
format: ['Choose an output formatter. This option',
|
458
568
|
'can be specified multiple times to enable',
|
459
569
|
'multiple formatters at the same time.',
|
460
|
-
|
461
|
-
|
570
|
+
*FORMATTER_OPTION_LIST.map do |item|
|
571
|
+
" #{item}#{' (default)' if item == '[p]rogress'}"
|
572
|
+
end,
|
462
573
|
' custom formatter class name'],
|
463
574
|
out: ['Write output to a file instead of STDOUT.',
|
464
575
|
'This option applies to the previously',
|
465
576
|
'specified --format, or the default format',
|
466
577
|
'if no format is specified.'],
|
467
|
-
fail_level: ['Minimum severity
|
468
|
-
'
|
578
|
+
fail_level: ['Minimum severity for exit with error code.',
|
579
|
+
' [A] autocorrect',
|
580
|
+
' [I] info',
|
581
|
+
' [R] refactor',
|
582
|
+
' [C] convention',
|
583
|
+
' [W] warning',
|
584
|
+
' [E] error',
|
585
|
+
' [F] fatal'],
|
586
|
+
display_time: 'Display elapsed time in seconds.',
|
469
587
|
display_only_failed: ['Only output offense messages. Omit passing',
|
470
588
|
'cops. Only valid for --format junit.'],
|
471
589
|
display_only_fail_level_offenses:
|
472
590
|
['Only output offense messages at',
|
473
|
-
'the specified --fail-level or above'],
|
591
|
+
'the specified --fail-level or above.'],
|
592
|
+
display_only_correctable: ['Only output correctable offense messages.'],
|
593
|
+
display_only_safe_correctable: ['Only output safe-correctable offense messages',
|
594
|
+
'when combined with --display-only-correctable.'],
|
474
595
|
show_cops: ['Shows the given cops, or all cops by',
|
475
596
|
'default, and their configurations for the',
|
476
|
-
'current directory.'
|
597
|
+
'current directory.',
|
598
|
+
'You can use `*` as a wildcard.'],
|
599
|
+
show_docs_url: ['Display url to documentation for the given',
|
600
|
+
'cops, or base url by default.'],
|
477
601
|
fail_fast: ['Inspect files in order of modification',
|
478
602
|
'time and stop after the first file',
|
479
603
|
'containing offenses.'],
|
@@ -493,19 +617,46 @@ module RuboCop
|
|
493
617
|
extra_details: 'Display extra details in offense messages.',
|
494
618
|
lint: 'Run only lint cops.',
|
495
619
|
safe: 'Run only safe cops.',
|
620
|
+
stderr: ['Write all output to stderr except for the',
|
621
|
+
'autocorrected source. This is especially useful',
|
622
|
+
'when combined with --autocorrect and --stdin.'],
|
496
623
|
list_target_files: 'List all files RuboCop will inspect.',
|
497
|
-
|
624
|
+
autocorrect: 'Autocorrect offenses (only when it\'s safe).',
|
625
|
+
auto_correct: '(same, deprecated)',
|
498
626
|
safe_auto_correct: '(same, deprecated)',
|
499
|
-
|
500
|
-
|
627
|
+
autocorrect_all: 'Autocorrect offenses (safe and unsafe).',
|
628
|
+
auto_correct_all: '(same, deprecated)',
|
629
|
+
fix_layout: 'Run only layout cops, with autocorrect on.',
|
501
630
|
color: 'Force color output on or off.',
|
502
631
|
version: 'Display version.',
|
503
632
|
verbose_version: 'Display verbose version.',
|
504
633
|
parallel: ['Use available CPUs to execute inspection in',
|
505
|
-
'parallel.'
|
634
|
+
'parallel. Default is true.',
|
635
|
+
'You can specify the number of parallel processes using',
|
636
|
+
'the $PARALLEL_PROCESSOR_COUNT environment variable.'],
|
506
637
|
stdin: ['Pipe source from STDIN, using FILE in offense',
|
507
638
|
'reports. This is useful for editor integration.'],
|
508
|
-
|
639
|
+
editor_mode: ['Optimize real-time feedback in editors,',
|
640
|
+
'adjusting behaviors for editing experience.'],
|
641
|
+
init: 'Generate a .rubocop.yml file in the current directory.',
|
642
|
+
server: ['If a server process has not been started yet, start',
|
643
|
+
'the server process and execute inspection with server.',
|
644
|
+
'Default is false.',
|
645
|
+
'You can specify the server host and port with the',
|
646
|
+
'$RUBOCOP_SERVER_HOST and the $RUBOCOP_SERVER_PORT',
|
647
|
+
'environment variables.'],
|
648
|
+
restart_server: 'Restart server process.',
|
649
|
+
start_server: 'Start server process.',
|
650
|
+
stop_server: 'Stop server process.',
|
651
|
+
server_status: 'Show server status.',
|
652
|
+
no_detach: 'Run the server process in the foreground.',
|
653
|
+
lsp: 'Start a language server listening on STDIN.',
|
654
|
+
raise_cop_error: ['Raise cop-related errors with cause and location.',
|
655
|
+
'This is used to prevent cops from failing silently.',
|
656
|
+
'Default is false.'],
|
657
|
+
profile: 'Profile rubocop.',
|
658
|
+
memory: 'Profile rubocop memory usage.'
|
509
659
|
}.freeze
|
510
660
|
end
|
661
|
+
# rubocop:enable Metrics/ModuleLength
|
511
662
|
end
|