rubocop 1.69.2 → 1.73.1
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 +4 -4
- data/config/default.yml +90 -13
- data/config/internal_affairs.yml +16 -0
- data/lib/rubocop/cli/command/execute_runner.rb +3 -3
- data/lib/rubocop/cli/command/show_cops.rb +24 -2
- data/lib/rubocop/cli/command/suggest_extensions.rb +7 -1
- data/lib/rubocop/comment_config.rb +2 -2
- data/lib/rubocop/config.rb +17 -4
- data/lib/rubocop/config_loader.rb +48 -8
- data/lib/rubocop/config_loader_resolver.rb +35 -10
- data/lib/rubocop/config_validator.rb +19 -9
- data/lib/rubocop/cop/autocorrect_logic.rb +1 -1
- data/lib/rubocop/cop/base.rb +6 -0
- data/lib/rubocop/cop/bundler/duplicated_gem.rb +1 -1
- data/lib/rubocop/cop/bundler/gem_comment.rb +1 -1
- data/lib/rubocop/cop/internal_affairs/cop_enabled.rb +85 -0
- data/lib/rubocop/cop/internal_affairs/example_description.rb +4 -2
- data/lib/rubocop/cop/internal_affairs/location_exists.rb +116 -0
- data/lib/rubocop/cop/internal_affairs/location_expression.rb +2 -1
- data/lib/rubocop/cop/internal_affairs/node_first_or_last_argument.rb +3 -2
- data/lib/rubocop/cop/internal_affairs/node_matcher_directive.rb +1 -1
- 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 +229 -0
- data/lib/rubocop/cop/internal_affairs/node_type_multiple_predicates.rb +126 -0
- data/lib/rubocop/cop/internal_affairs/node_type_predicate.rb +4 -3
- data/lib/rubocop/cop/internal_affairs/on_send_without_on_csend.rb +90 -0
- data/lib/rubocop/cop/internal_affairs/plugin.rb +33 -0
- data/lib/rubocop/cop/internal_affairs/redundant_source_range.rb +3 -1
- data/lib/rubocop/cop/internal_affairs/single_line_comparison.rb +5 -4
- data/lib/rubocop/cop/internal_affairs/undefined_config.rb +7 -1
- data/lib/rubocop/cop/internal_affairs.rb +5 -16
- data/lib/rubocop/cop/layout/access_modifier_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/argument_alignment.rb +2 -8
- data/lib/rubocop/cop/layout/block_alignment.rb +3 -1
- data/lib/rubocop/cop/layout/class_structure.rb +9 -9
- data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +4 -4
- data/lib/rubocop/cop/layout/dot_position.rb +1 -1
- data/lib/rubocop/cop/layout/else_alignment.rb +2 -2
- data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +1 -1
- data/lib/rubocop/cop/layout/empty_line_between_defs.rb +7 -11
- data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +27 -1
- data/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_method_body.rb +22 -2
- data/lib/rubocop/cop/layout/end_alignment.rb +1 -1
- data/lib/rubocop/cop/layout/extra_spacing.rb +1 -1
- data/lib/rubocop/cop/layout/first_argument_indentation.rb +3 -8
- data/lib/rubocop/cop/layout/first_array_element_indentation.rb +2 -7
- data/lib/rubocop/cop/layout/first_hash_element_indentation.rb +2 -7
- data/lib/rubocop/cop/layout/first_hash_element_line_break.rb +1 -1
- data/lib/rubocop/cop/layout/first_parameter_indentation.rb +2 -2
- data/lib/rubocop/cop/layout/hash_alignment.rb +6 -4
- data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +2 -1
- data/lib/rubocop/cop/layout/line_continuation_spacing.rb +7 -1
- data/lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb +2 -2
- data/lib/rubocop/cop/layout/line_length.rb +4 -3
- data/lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +25 -0
- data/lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb +1 -0
- data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +4 -4
- data/lib/rubocop/cop/layout/redundant_line_break.rb +7 -6
- data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +1 -1
- data/lib/rubocop/cop/layout/single_line_block_chain.rb +1 -1
- data/lib/rubocop/cop/layout/space_after_colon.rb +2 -2
- data/lib/rubocop/cop/layout/space_after_comma.rb +1 -1
- data/lib/rubocop/cop/layout/space_after_method_name.rb +1 -1
- data/lib/rubocop/cop/layout/space_after_semicolon.rb +1 -1
- data/lib/rubocop/cop/layout/space_around_keyword.rb +1 -0
- data/lib/rubocop/cop/layout/space_around_method_call_operator.rb +1 -1
- data/lib/rubocop/cop/layout/space_around_operators.rb +3 -3
- data/lib/rubocop/cop/layout/space_before_comma.rb +1 -1
- data/lib/rubocop/cop/layout/space_before_semicolon.rb +1 -1
- data/lib/rubocop/cop/layout/trailing_whitespace.rb +5 -3
- data/lib/rubocop/cop/lint/ambiguous_block_association.rb +1 -1
- data/lib/rubocop/cop/lint/array_literal_in_regexp.rb +119 -0
- data/lib/rubocop/cop/lint/assignment_in_condition.rb +1 -3
- data/lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb +1 -1
- data/lib/rubocop/cop/lint/constant_definition_in_block.rb +3 -3
- data/lib/rubocop/cop/lint/constant_reassignment.rb +148 -0
- data/lib/rubocop/cop/lint/cop_directive_syntax.rb +84 -0
- data/lib/rubocop/cop/lint/debugger.rb +1 -1
- data/lib/rubocop/cop/lint/duplicate_match_pattern.rb +1 -1
- data/lib/rubocop/cop/lint/duplicate_methods.rb +0 -14
- data/lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb +1 -1
- data/lib/rubocop/cop/lint/duplicate_set_element.rb +20 -7
- data/lib/rubocop/cop/lint/empty_conditional_body.rb +10 -5
- data/lib/rubocop/cop/lint/empty_expression.rb +0 -2
- data/lib/rubocop/cop/lint/float_comparison.rb +6 -8
- data/lib/rubocop/cop/lint/float_out_of_range.rb +1 -1
- data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +2 -2
- data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +1 -1
- data/lib/rubocop/cop/lint/literal_as_condition.rb +99 -9
- data/lib/rubocop/cop/lint/literal_in_interpolation.rb +24 -6
- data/lib/rubocop/cop/lint/missing_super.rb +2 -2
- data/lib/rubocop/cop/lint/mixed_case_range.rb +3 -3
- data/lib/rubocop/cop/lint/mixed_regexp_capture_types.rb +1 -1
- data/lib/rubocop/cop/lint/nested_method_definition.rb +8 -4
- data/lib/rubocop/cop/lint/next_without_accumulator.rb +1 -1
- data/lib/rubocop/cop/lint/non_atomic_file_operation.rb +4 -3
- data/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb +1 -1
- data/lib/rubocop/cop/lint/numeric_operation_with_constant_result.rb +18 -31
- data/lib/rubocop/cop/lint/out_of_range_regexp_ref.rb +2 -1
- data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +1 -5
- data/lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb +1 -1
- data/lib/rubocop/cop/lint/redundant_require_statement.rb +0 -21
- data/lib/rubocop/cop/lint/redundant_string_coercion.rb +2 -2
- data/lib/rubocop/cop/lint/redundant_type_conversion.rb +252 -0
- data/lib/rubocop/cop/lint/rescue_exception.rb +1 -1
- data/lib/rubocop/cop/lint/safe_navigation_chain.rb +8 -1
- data/lib/rubocop/cop/lint/shared_mutable_default.rb +65 -0
- data/lib/rubocop/cop/lint/suppressed_exception.rb +1 -1
- data/lib/rubocop/cop/lint/suppressed_exception_in_number_conversion.rb +111 -0
- data/lib/rubocop/cop/lint/symbol_conversion.rb +1 -1
- data/lib/rubocop/cop/lint/syntax.rb +4 -1
- data/lib/rubocop/cop/lint/unescaped_bracket_in_regexp.rb +1 -4
- data/lib/rubocop/cop/lint/unexpected_block_arity.rb +1 -1
- data/lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb +1 -1
- data/lib/rubocop/cop/lint/unreachable_code.rb +1 -1
- data/lib/rubocop/cop/lint/unreachable_loop.rb +1 -1
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +4 -4
- data/lib/rubocop/cop/lint/useless_assignment.rb +1 -1
- data/lib/rubocop/cop/lint/useless_constant_scoping.rb +80 -0
- data/lib/rubocop/cop/lint/useless_method_definition.rb +1 -1
- data/lib/rubocop/cop/lint/useless_numeric_operation.rb +2 -1
- data/lib/rubocop/cop/lint/useless_ruby2_keywords.rb +2 -2
- data/lib/rubocop/cop/lint/void.rb +11 -9
- data/lib/rubocop/cop/metrics/block_nesting.rb +1 -1
- data/lib/rubocop/cop/metrics/collection_literal_length.rb +7 -0
- data/lib/rubocop/cop/metrics/cyclomatic_complexity.rb +1 -1
- data/lib/rubocop/cop/metrics/method_length.rb +8 -1
- data/lib/rubocop/cop/metrics/module_length.rb +1 -1
- data/lib/rubocop/cop/metrics/perceived_complexity.rb +1 -1
- data/lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb +7 -7
- data/lib/rubocop/cop/mixin/alignment.rb +2 -2
- data/lib/rubocop/cop/mixin/allowed_pattern.rb +4 -4
- data/lib/rubocop/cop/mixin/check_line_breakable.rb +11 -11
- data/lib/rubocop/cop/mixin/comments_help.rb +4 -2
- data/lib/rubocop/cop/mixin/dig_help.rb +1 -1
- data/lib/rubocop/cop/mixin/frozen_string_literal.rb +1 -1
- data/lib/rubocop/cop/mixin/hash_shorthand_syntax.rb +22 -22
- data/lib/rubocop/cop/mixin/hash_subset.rb +203 -0
- data/lib/rubocop/cop/mixin/hash_transform_method.rb +74 -74
- data/lib/rubocop/cop/mixin/method_complexity.rb +1 -1
- data/lib/rubocop/cop/mixin/percent_literal.rb +1 -1
- data/lib/rubocop/cop/mixin/preceding_following_alignment.rb +48 -24
- data/lib/rubocop/cop/mixin/range_help.rb +3 -3
- data/lib/rubocop/cop/mixin/space_before_punctuation.rb +1 -1
- data/lib/rubocop/cop/mixin/statement_modifier.rb +8 -3
- data/lib/rubocop/cop/mixin/string_help.rb +2 -2
- data/lib/rubocop/cop/mixin/string_literals_help.rb +1 -1
- data/lib/rubocop/cop/mixin/trailing_comma.rb +15 -3
- data/lib/rubocop/cop/naming/block_forwarding.rb +19 -15
- data/lib/rubocop/cop/naming/predicate_name.rb +44 -0
- data/lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb +3 -3
- data/lib/rubocop/cop/naming/variable_name.rb +64 -6
- data/lib/rubocop/cop/security/compound_hash.rb +1 -0
- data/lib/rubocop/cop/style/access_modifier_declarations.rb +34 -5
- data/lib/rubocop/cop/style/accessor_grouping.rb +19 -5
- data/lib/rubocop/cop/style/and_or.rb +1 -1
- data/lib/rubocop/cop/style/arguments_forwarding.rb +39 -23
- data/lib/rubocop/cop/style/array_first_last.rb +18 -2
- data/lib/rubocop/cop/style/block_delimiters.rb +7 -20
- data/lib/rubocop/cop/style/class_and_module_children.rb +6 -3
- data/lib/rubocop/cop/style/collection_methods.rb +1 -1
- data/lib/rubocop/cop/style/combinable_defined.rb +1 -1
- data/lib/rubocop/cop/style/combinable_loops.rb +2 -2
- data/lib/rubocop/cop/style/commented_keyword.rb +1 -1
- data/lib/rubocop/cop/style/concat_array_literals.rb +1 -1
- data/lib/rubocop/cop/style/conditional_assignment.rb +6 -4
- data/lib/rubocop/cop/style/documentation.rb +1 -1
- data/lib/rubocop/cop/style/double_negation.rb +3 -3
- data/lib/rubocop/cop/style/each_for_simple_loop.rb +4 -7
- data/lib/rubocop/cop/style/each_with_object.rb +2 -3
- data/lib/rubocop/cop/style/empty_else.rb +4 -2
- data/lib/rubocop/cop/style/empty_literal.rb +1 -1
- data/lib/rubocop/cop/style/empty_method.rb +1 -1
- data/lib/rubocop/cop/style/endless_method.rb +163 -18
- data/lib/rubocop/cop/style/eval_with_location.rb +1 -1
- data/lib/rubocop/cop/style/exact_regexp_match.rb +3 -10
- data/lib/rubocop/cop/style/explicit_block_argument.rb +15 -2
- data/lib/rubocop/cop/style/exponential_notation.rb +1 -1
- data/lib/rubocop/cop/style/fetch_env_var.rb +1 -1
- data/lib/rubocop/cop/style/float_division.rb +8 -4
- data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +1 -1
- data/lib/rubocop/cop/style/hash_each_methods.rb +3 -6
- data/lib/rubocop/cop/style/hash_except.rb +24 -148
- data/lib/rubocop/cop/style/hash_slice.rb +80 -0
- data/lib/rubocop/cop/style/hash_syntax.rb +6 -3
- data/lib/rubocop/cop/style/identical_conditional_branches.rb +22 -3
- data/lib/rubocop/cop/style/if_unless_modifier.rb +3 -3
- data/lib/rubocop/cop/style/if_with_boolean_literal_branches.rb +1 -1
- data/lib/rubocop/cop/style/if_with_semicolon.rb +2 -2
- data/lib/rubocop/cop/style/infinite_loop.rb +1 -1
- data/lib/rubocop/cop/style/inverse_methods.rb +6 -6
- data/lib/rubocop/cop/style/it_assignment.rb +36 -0
- data/lib/rubocop/cop/style/keyword_parameters_order.rb +1 -1
- data/lib/rubocop/cop/style/line_end_concatenation.rb +10 -4
- data/lib/rubocop/cop/style/map_into_array.rb +1 -1
- data/lib/rubocop/cop/style/map_to_hash.rb +1 -1
- data/lib/rubocop/cop/style/map_to_set.rb +3 -2
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +19 -12
- data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +2 -0
- data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +2 -1
- data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +2 -4
- data/lib/rubocop/cop/style/method_def_parentheses.rb +1 -1
- data/lib/rubocop/cop/style/missing_else.rb +2 -0
- data/lib/rubocop/cop/style/multiline_block_chain.rb +1 -1
- data/lib/rubocop/cop/style/multiple_comparison.rb +26 -20
- data/lib/rubocop/cop/style/mutable_constant.rb +3 -3
- data/lib/rubocop/cop/style/negated_if_else_condition.rb +1 -1
- data/lib/rubocop/cop/style/nested_parenthesized_calls.rb +1 -1
- data/lib/rubocop/cop/style/object_then.rb +13 -15
- data/lib/rubocop/cop/style/open_struct_use.rb +5 -5
- data/lib/rubocop/cop/style/parallel_assignment.rb +1 -5
- data/lib/rubocop/cop/style/parentheses_around_condition.rb +2 -2
- data/lib/rubocop/cop/style/percent_literal_delimiters.rb +1 -1
- data/lib/rubocop/cop/style/proc.rb +1 -2
- data/lib/rubocop/cop/style/quoted_symbols.rb +1 -1
- data/lib/rubocop/cop/style/raise_args.rb +6 -4
- data/lib/rubocop/cop/style/random_with_offset.rb +3 -3
- data/lib/rubocop/cop/style/redundant_begin.rb +1 -1
- data/lib/rubocop/cop/style/redundant_condition.rb +48 -2
- data/lib/rubocop/cop/style/redundant_current_directory_in_path.rb +2 -1
- data/lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb +6 -10
- data/lib/rubocop/cop/style/redundant_each.rb +1 -1
- data/lib/rubocop/cop/style/redundant_exception.rb +2 -2
- data/lib/rubocop/cop/style/redundant_format.rb +250 -0
- data/lib/rubocop/cop/style/redundant_freeze.rb +2 -2
- data/lib/rubocop/cop/style/redundant_initialize.rb +12 -3
- data/lib/rubocop/cop/style/redundant_line_continuation.rb +34 -13
- data/lib/rubocop/cop/style/redundant_parentheses.rb +28 -14
- data/lib/rubocop/cop/style/redundant_regexp_argument.rb +3 -0
- data/lib/rubocop/cop/style/redundant_regexp_character_class.rb +1 -1
- data/lib/rubocop/cop/style/redundant_regexp_escape.rb +1 -1
- data/lib/rubocop/cop/style/redundant_self_assignment.rb +14 -28
- data/lib/rubocop/cop/style/redundant_sort.rb +2 -2
- data/lib/rubocop/cop/style/redundant_string_escape.rb +2 -2
- data/lib/rubocop/cop/style/return_nil.rb +1 -1
- data/lib/rubocop/cop/style/safe_navigation.rb +2 -2
- data/lib/rubocop/cop/style/semicolon.rb +1 -1
- data/lib/rubocop/cop/style/send_with_literal_method_name.rb +2 -1
- data/lib/rubocop/cop/style/single_line_block_params.rb +1 -1
- data/lib/rubocop/cop/style/single_line_do_end_block.rb +1 -2
- data/lib/rubocop/cop/style/single_line_methods.rb +6 -7
- data/lib/rubocop/cop/style/slicing_with_range.rb +40 -11
- data/lib/rubocop/cop/style/sole_nested_conditional.rb +2 -2
- data/lib/rubocop/cop/style/string_concatenation.rb +2 -2
- data/lib/rubocop/cop/style/string_literals.rb +1 -1
- data/lib/rubocop/cop/style/string_methods.rb +1 -1
- data/lib/rubocop/cop/style/super_arguments.rb +65 -17
- data/lib/rubocop/cop/style/ternary_parentheses.rb +1 -1
- data/lib/rubocop/cop/style/top_level_method_definition.rb +1 -1
- data/lib/rubocop/cop/style/trailing_comma_in_arguments.rb +4 -1
- data/lib/rubocop/cop/style/trailing_comma_in_array_literal.rb +47 -6
- data/lib/rubocop/cop/style/trailing_comma_in_hash_literal.rb +48 -6
- data/lib/rubocop/cop/style/trivial_accessors.rb +1 -1
- data/lib/rubocop/cop/style/while_until_modifier.rb +0 -1
- data/lib/rubocop/cop/style/yoda_condition.rb +8 -4
- data/lib/rubocop/cop/style/yoda_expression.rb +2 -1
- data/lib/rubocop/cop/util.rb +12 -5
- data/lib/rubocop/cop/utils/format_string.rb +7 -5
- data/lib/rubocop/cop/variable_force/variable.rb +14 -2
- data/lib/rubocop/cop/variable_force/variable_table.rb +3 -3
- data/lib/rubocop/cops_documentation_generator.rb +25 -14
- data/lib/rubocop/directive_comment.rb +44 -10
- data/lib/rubocop/formatter/formatter_set.rb +1 -1
- data/lib/rubocop/lsp/diagnostic.rb +189 -0
- data/lib/rubocop/lsp/logger.rb +2 -2
- data/lib/rubocop/lsp/routes.rb +7 -23
- data/lib/rubocop/lsp/runtime.rb +17 -49
- data/lib/rubocop/lsp/server.rb +0 -2
- data/lib/rubocop/lsp/stdin_runner.rb +83 -0
- data/lib/rubocop/options.rb +28 -12
- data/lib/rubocop/path_util.rb +15 -8
- 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 +4 -1
- data/lib/rubocop/result_cache.rb +13 -13
- data/lib/rubocop/rspec/cop_helper.rb +9 -0
- data/lib/rubocop/rspec/expect_offense.rb +6 -2
- data/lib/rubocop/rspec/shared_contexts.rb +19 -1
- data/lib/rubocop/rspec/support.rb +2 -2
- data/lib/rubocop/runner.rb +5 -6
- data/lib/rubocop/server/cache.rb +35 -2
- data/lib/rubocop/server/cli.rb +2 -2
- data/lib/rubocop/target_finder.rb +1 -0
- data/lib/rubocop/target_ruby.rb +15 -0
- data/lib/rubocop/version.rb +17 -2
- data/lib/rubocop.rb +11 -1
- data/lib/ruby_lsp/rubocop/addon.rb +75 -0
- data/lib/ruby_lsp/rubocop/runtime_adapter.rb +47 -0
- metadata +53 -16
- data/lib/rubocop/cop/utils/regexp_ranges.rb +0 -113
- data/lib/rubocop/rspec/host_environment_simulation_helper.rb +0 -28
data/lib/rubocop/server/cli.rb
CHANGED
@@ -86,7 +86,7 @@ module RuboCop
|
|
86
86
|
end
|
87
87
|
# rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength
|
88
88
|
|
89
|
-
# rubocop:disable Metrics/CyclomaticComplexity, Metrics/MethodLength
|
89
|
+
# rubocop:disable Metrics/CyclomaticComplexity, Metrics/MethodLength
|
90
90
|
def run_command(server_command, detach:)
|
91
91
|
case server_command
|
92
92
|
when '--server'
|
@@ -107,7 +107,7 @@ module RuboCop
|
|
107
107
|
Server::ClientCommand::Status.new.run
|
108
108
|
end
|
109
109
|
end
|
110
|
-
# rubocop:enable Metrics/CyclomaticComplexity, Metrics/MethodLength
|
110
|
+
# rubocop:enable Metrics/CyclomaticComplexity, Metrics/MethodLength
|
111
111
|
|
112
112
|
def fetch_cache_root_path_from(arguments)
|
113
113
|
cache_root = arguments.detect { |argument| argument.start_with?('--cache-root') }
|
@@ -127,6 +127,7 @@ module RuboCop
|
|
127
127
|
if mode == :only_recognized_file_types || force_exclusion?
|
128
128
|
files.select! { |file| included_file?(file) }
|
129
129
|
end
|
130
|
+
files.reject! { |file| FileTest.directory?(file) }
|
130
131
|
|
131
132
|
force_exclusion? ? without_excluded(files) : files
|
132
133
|
end
|
data/lib/rubocop/target_ruby.rb
CHANGED
@@ -34,6 +34,20 @@ module RuboCop
|
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
37
|
+
# The target ruby version may be configured by setting the
|
38
|
+
# `RUBOCOP_TARGET_RUBY_VERSION` environment variable.
|
39
|
+
class RuboCopEnvVar < Source
|
40
|
+
def name
|
41
|
+
'`RUBOCOP_TARGET_RUBY_VERSION` environment variable'
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def find_version
|
47
|
+
ENV.fetch('RUBOCOP_TARGET_RUBY_VERSION', nil)&.to_f
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
37
51
|
# The target ruby version may be configured in RuboCop's config.
|
38
52
|
# @api private
|
39
53
|
class RuboCopConfig < Source
|
@@ -246,6 +260,7 @@ module RuboCop
|
|
246
260
|
end
|
247
261
|
|
248
262
|
SOURCES = [
|
263
|
+
RuboCopEnvVar,
|
249
264
|
RuboCopConfig,
|
250
265
|
GemspecFile,
|
251
266
|
RubyVersionFile,
|
data/lib/rubocop/version.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
module RuboCop
|
4
4
|
# This module holds the RuboCop version information.
|
5
5
|
module Version
|
6
|
-
STRING = '1.
|
6
|
+
STRING = '1.73.1'
|
7
7
|
|
8
8
|
MSG = '%<version>s (using %<parser_version>s, ' \
|
9
9
|
'rubocop-ast %<rubocop_ast_version>s, ' \
|
@@ -63,9 +63,21 @@ module RuboCop
|
|
63
63
|
end
|
64
64
|
|
65
65
|
# @api private
|
66
|
+
# rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
|
66
67
|
def self.extension_versions(env)
|
68
|
+
plugins = config_for_pwd(env).loaded_plugins
|
69
|
+
plugin_versions = plugins.filter_map do |plugin|
|
70
|
+
next if Plugin::BUILTIN_INTERNAL_PLUGINS.key?(plugin.about.name)
|
71
|
+
next unless (plugin_name = plugin.about.name)
|
72
|
+
|
73
|
+
" - #{plugin_name} #{plugin.about.version}"
|
74
|
+
end
|
75
|
+
|
76
|
+
# TODO: It needs to be maintained for a while to ensure compatibility with extensions that
|
77
|
+
# don't support plugins. It should be removed in future once the old style becomes obsolete.
|
67
78
|
features = config_for_pwd(env).loaded_features.sort
|
68
|
-
features.
|
79
|
+
features -= plugins.map { |plugin| plugin.about.name }
|
80
|
+
feature_versions = features.filter_map do |loaded_feature|
|
69
81
|
next unless (match = loaded_feature.match(/rubocop-(?<feature>.*)/))
|
70
82
|
|
71
83
|
# Get the expected name of the folder containing the extension code.
|
@@ -84,7 +96,10 @@ module RuboCop
|
|
84
96
|
|
85
97
|
" - #{loaded_feature} #{feature_version}"
|
86
98
|
end
|
99
|
+
|
100
|
+
plugin_versions + feature_versions
|
87
101
|
end
|
102
|
+
# rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
|
88
103
|
|
89
104
|
# @api private
|
90
105
|
def self.target_ruby_version(env)
|
data/lib/rubocop.rb
CHANGED
@@ -100,6 +100,7 @@ require_relative 'rubocop/cop/mixin/frozen_string_literal'
|
|
100
100
|
require_relative 'rubocop/cop/mixin/gem_declaration'
|
101
101
|
require_relative 'rubocop/cop/mixin/gemspec_help'
|
102
102
|
require_relative 'rubocop/cop/mixin/hash_alignment_styles'
|
103
|
+
require_relative 'rubocop/cop/mixin/hash_subset'
|
103
104
|
require_relative 'rubocop/cop/mixin/hash_transform_method'
|
104
105
|
require_relative 'rubocop/cop/mixin/integer_node'
|
105
106
|
require_relative 'rubocop/cop/mixin/interpolation'
|
@@ -147,7 +148,6 @@ require_relative 'rubocop/cop/mixin/comments_help' # relies on visibility_help
|
|
147
148
|
require_relative 'rubocop/cop/mixin/def_node' # relies on visibility_help
|
148
149
|
|
149
150
|
require_relative 'rubocop/cop/utils/format_string'
|
150
|
-
require_relative 'rubocop/cop/utils/regexp_ranges'
|
151
151
|
|
152
152
|
require_relative 'rubocop/cop/migration/department_name'
|
153
153
|
|
@@ -293,6 +293,7 @@ require_relative 'rubocop/cop/lint/ambiguous_operator'
|
|
293
293
|
require_relative 'rubocop/cop/lint/ambiguous_operator_precedence'
|
294
294
|
require_relative 'rubocop/cop/lint/ambiguous_range'
|
295
295
|
require_relative 'rubocop/cop/lint/ambiguous_regexp_literal'
|
296
|
+
require_relative 'rubocop/cop/lint/array_literal_in_regexp'
|
296
297
|
require_relative 'rubocop/cop/lint/assignment_in_condition'
|
297
298
|
require_relative 'rubocop/cop/lint/big_decimal_new'
|
298
299
|
require_relative 'rubocop/cop/lint/binary_operator_with_identical_operands'
|
@@ -300,7 +301,9 @@ require_relative 'rubocop/cop/lint/boolean_symbol'
|
|
300
301
|
require_relative 'rubocop/cop/lint/circular_argument_reference'
|
301
302
|
require_relative 'rubocop/cop/lint/constant_definition_in_block'
|
302
303
|
require_relative 'rubocop/cop/lint/constant_overwritten_in_rescue'
|
304
|
+
require_relative 'rubocop/cop/lint/constant_reassignment'
|
303
305
|
require_relative 'rubocop/cop/lint/constant_resolution'
|
306
|
+
require_relative 'rubocop/cop/lint/cop_directive_syntax'
|
304
307
|
require_relative 'rubocop/cop/lint/debugger'
|
305
308
|
require_relative 'rubocop/cop/lint/deprecated_class_methods'
|
306
309
|
require_relative 'rubocop/cop/lint/deprecated_constants'
|
@@ -329,6 +332,7 @@ require_relative 'rubocop/cop/lint/empty_in_pattern'
|
|
329
332
|
require_relative 'rubocop/cop/lint/empty_interpolation'
|
330
333
|
require_relative 'rubocop/cop/lint/empty_when'
|
331
334
|
require_relative 'rubocop/cop/lint/ensure_return'
|
335
|
+
require_relative 'rubocop/cop/lint/shared_mutable_default'
|
332
336
|
require_relative 'rubocop/cop/lint/erb_new_arguments'
|
333
337
|
require_relative 'rubocop/cop/lint/flip_flop'
|
334
338
|
require_relative 'rubocop/cop/lint/float_comparison'
|
@@ -380,6 +384,7 @@ require_relative 'rubocop/cop/lint/redundant_require_statement'
|
|
380
384
|
require_relative 'rubocop/cop/lint/redundant_safe_navigation'
|
381
385
|
require_relative 'rubocop/cop/lint/redundant_splat_expansion'
|
382
386
|
require_relative 'rubocop/cop/lint/redundant_string_coercion'
|
387
|
+
require_relative 'rubocop/cop/lint/redundant_type_conversion'
|
383
388
|
require_relative 'rubocop/cop/lint/redundant_with_index'
|
384
389
|
require_relative 'rubocop/cop/lint/redundant_with_object'
|
385
390
|
require_relative 'rubocop/cop/lint/refinement_import_methods'
|
@@ -401,6 +406,7 @@ require_relative 'rubocop/cop/lint/shadowed_exception'
|
|
401
406
|
require_relative 'rubocop/cop/lint/shadowing_outer_local_variable'
|
402
407
|
require_relative 'rubocop/cop/lint/struct_new_override'
|
403
408
|
require_relative 'rubocop/cop/lint/suppressed_exception'
|
409
|
+
require_relative 'rubocop/cop/lint/suppressed_exception_in_number_conversion'
|
404
410
|
require_relative 'rubocop/cop/lint/symbol_conversion'
|
405
411
|
require_relative 'rubocop/cop/lint/syntax'
|
406
412
|
require_relative 'rubocop/cop/lint/to_enum_arguments'
|
@@ -421,6 +427,7 @@ require_relative 'rubocop/cop/lint/uri_escape_unescape'
|
|
421
427
|
require_relative 'rubocop/cop/lint/uri_regexp'
|
422
428
|
require_relative 'rubocop/cop/lint/useless_access_modifier'
|
423
429
|
require_relative 'rubocop/cop/lint/useless_assignment'
|
430
|
+
require_relative 'rubocop/cop/lint/useless_constant_scoping'
|
424
431
|
require_relative 'rubocop/cop/lint/useless_defined'
|
425
432
|
require_relative 'rubocop/cop/lint/useless_else_without_rescue'
|
426
433
|
require_relative 'rubocop/cop/lint/useless_method_definition'
|
@@ -557,6 +564,7 @@ require_relative 'rubocop/cop/style/hash_conversion'
|
|
557
564
|
require_relative 'rubocop/cop/style/hash_each_methods'
|
558
565
|
require_relative 'rubocop/cop/style/hash_except'
|
559
566
|
require_relative 'rubocop/cop/style/hash_like_case'
|
567
|
+
require_relative 'rubocop/cop/style/hash_slice'
|
560
568
|
require_relative 'rubocop/cop/style/hash_syntax'
|
561
569
|
require_relative 'rubocop/cop/style/hash_transform_keys'
|
562
570
|
require_relative 'rubocop/cop/style/hash_transform_values'
|
@@ -573,6 +581,7 @@ require_relative 'rubocop/cop/style/inverse_methods'
|
|
573
581
|
require_relative 'rubocop/cop/style/inline_comment'
|
574
582
|
require_relative 'rubocop/cop/style/invertible_unless_condition'
|
575
583
|
require_relative 'rubocop/cop/style/ip_addresses'
|
584
|
+
require_relative 'rubocop/cop/style/it_assignment'
|
576
585
|
require_relative 'rubocop/cop/style/keyword_arguments_merging'
|
577
586
|
require_relative 'rubocop/cop/style/keyword_parameters_order'
|
578
587
|
require_relative 'rubocop/cop/style/lambda'
|
@@ -598,6 +607,7 @@ require_relative 'rubocop/cop/style/redundant_each'
|
|
598
607
|
require_relative 'rubocop/cop/style/redundant_fetch_block'
|
599
608
|
require_relative 'rubocop/cop/style/redundant_file_extension_in_require'
|
600
609
|
require_relative 'rubocop/cop/style/redundant_filter_chain'
|
610
|
+
require_relative 'rubocop/cop/style/redundant_format'
|
601
611
|
require_relative 'rubocop/cop/style/redundant_heredoc_delimiter_quotes'
|
602
612
|
require_relative 'rubocop/cop/style/redundant_initialize'
|
603
613
|
require_relative 'rubocop/cop/style/redundant_interpolation_unfreeze'
|
@@ -0,0 +1,75 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../../rubocop'
|
4
|
+
require_relative '../../rubocop/lsp/logger'
|
5
|
+
require_relative 'runtime_adapter'
|
6
|
+
|
7
|
+
module RubyLsp
|
8
|
+
module RuboCop
|
9
|
+
# A Ruby LSP add-on for RuboCop.
|
10
|
+
class Addon < RubyLsp::Addon
|
11
|
+
def initializer
|
12
|
+
@runtime_adapter = nil
|
13
|
+
end
|
14
|
+
|
15
|
+
def name
|
16
|
+
'RuboCop'
|
17
|
+
end
|
18
|
+
|
19
|
+
def activate(global_state, message_queue)
|
20
|
+
::RuboCop::LSP::Logger.log(
|
21
|
+
"Activating RuboCop LSP addon #{::RuboCop::Version::STRING}.", prefix: '[RuboCop]'
|
22
|
+
)
|
23
|
+
|
24
|
+
@runtime_adapter = RuntimeAdapter.new
|
25
|
+
global_state.register_formatter('rubocop', @runtime_adapter)
|
26
|
+
register_additional_file_watchers(global_state, message_queue)
|
27
|
+
|
28
|
+
::RuboCop::LSP::Logger.log(
|
29
|
+
"Initialized RuboCop LSP addon #{::RuboCop::Version::STRING}.", prefix: '[RuboCop]'
|
30
|
+
)
|
31
|
+
end
|
32
|
+
|
33
|
+
def deactivate
|
34
|
+
@runtime_adapter = nil
|
35
|
+
end
|
36
|
+
|
37
|
+
# rubocop:disable Layout/LineLength, Metrics/MethodLength
|
38
|
+
def register_additional_file_watchers(global_state, message_queue)
|
39
|
+
return unless global_state.supports_watching_files
|
40
|
+
|
41
|
+
message_queue << Request.new(
|
42
|
+
id: 'rubocop-file-watcher',
|
43
|
+
method: 'client/registerCapability',
|
44
|
+
params: Interface::RegistrationParams.new(
|
45
|
+
registrations: [
|
46
|
+
Interface::Registration.new(
|
47
|
+
id: 'workspace/didChangeWatchedFilesRuboCop',
|
48
|
+
method: 'workspace/didChangeWatchedFiles',
|
49
|
+
register_options: Interface::DidChangeWatchedFilesRegistrationOptions.new(
|
50
|
+
watchers: [
|
51
|
+
Interface::FileSystemWatcher.new(
|
52
|
+
glob_pattern: '**/.rubocop{,_todo}.yml',
|
53
|
+
kind: Constant::WatchKind::CREATE | Constant::WatchKind::CHANGE | Constant::WatchKind::DELETE
|
54
|
+
)
|
55
|
+
]
|
56
|
+
)
|
57
|
+
)
|
58
|
+
]
|
59
|
+
)
|
60
|
+
)
|
61
|
+
end
|
62
|
+
# rubocop:enable Layout/LineLength, Metrics/MethodLength
|
63
|
+
|
64
|
+
def workspace_did_change_watched_files(changes)
|
65
|
+
return unless changes.any? { |change| change[:uri].end_with?('.rubocop.yml') }
|
66
|
+
|
67
|
+
@runtime_adapter = RuntimeAdapter.new
|
68
|
+
|
69
|
+
::RuboCop::LSP::Logger.log(<<~MESSAGE, prefix: '[RuboCop]')
|
70
|
+
Re-initialized RuboCop LSP addon #{::RuboCop::Version::STRING} due to .rubocop.yml file change.
|
71
|
+
MESSAGE
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../../rubocop/lsp/runtime'
|
4
|
+
|
5
|
+
module RubyLsp
|
6
|
+
module RuboCop
|
7
|
+
# Provides an adapter to bridge RuboCop's built-in LSP runtime with Ruby LSP's add-on.
|
8
|
+
# @api private
|
9
|
+
class RuntimeAdapter
|
10
|
+
include RubyLsp::Requests::Support::Formatter
|
11
|
+
|
12
|
+
def initialize
|
13
|
+
config_store = ::RuboCop::ConfigStore.new
|
14
|
+
|
15
|
+
@runtime = ::RuboCop::LSP::Runtime.new(config_store)
|
16
|
+
end
|
17
|
+
|
18
|
+
def run_diagnostic(uri, document)
|
19
|
+
@runtime.offenses(uri_to_path(uri), document.source, document.encoding)
|
20
|
+
end
|
21
|
+
|
22
|
+
def run_formatting(uri, document)
|
23
|
+
@runtime.format(uri_to_path(uri), document.source, command: 'rubocop.formatAutocorrects')
|
24
|
+
end
|
25
|
+
|
26
|
+
def run_range_formatting(_uri, _partial_source, _base_indentation)
|
27
|
+
# Not yet supported. Should return the formatted version of `partial_source` which is
|
28
|
+
# a partial selection of the entire document. For example, it should not try to add
|
29
|
+
# a frozen_string_literal magic comment and all style corrections should start from
|
30
|
+
# the `base_indentation`.
|
31
|
+
nil
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
# duplicated from: lib/standard/lsp/routes.rb
|
37
|
+
# modified to incorporate Ruby LSP's to_standardized_path method
|
38
|
+
def uri_to_path(uri)
|
39
|
+
if uri.respond_to?(:to_standardized_path) && (standardized_path = uri.to_standardized_path)
|
40
|
+
standardized_path
|
41
|
+
else
|
42
|
+
uri.to_s.delete_prefix('file://')
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
metadata
CHANGED
@@ -1,16 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubocop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.73.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bozhidar Batsov
|
8
8
|
- Jonas Arvidsson
|
9
9
|
- Yuji Nakayama
|
10
|
-
autorequire:
|
11
10
|
bindir: exe
|
12
11
|
cert_chain: []
|
13
|
-
date:
|
12
|
+
date: 2025-02-27 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: json
|
@@ -30,16 +29,30 @@ dependencies:
|
|
30
29
|
name: language_server-protocol
|
31
30
|
requirement: !ruby/object:Gem::Requirement
|
32
31
|
requirements:
|
33
|
-
- - "
|
32
|
+
- - "~>"
|
34
33
|
- !ruby/object:Gem::Version
|
35
|
-
version: 3.17.0
|
34
|
+
version: 3.17.0.2
|
36
35
|
type: :runtime
|
37
36
|
prerelease: false
|
38
37
|
version_requirements: !ruby/object:Gem::Requirement
|
39
38
|
requirements:
|
40
|
-
- - "
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: 3.17.0.2
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: lint_roller
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 1.1.0
|
49
|
+
type: :runtime
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
41
54
|
- !ruby/object:Gem::Version
|
42
|
-
version:
|
55
|
+
version: 1.1.0
|
43
56
|
- !ruby/object:Gem::Dependency
|
44
57
|
name: parallel
|
45
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -114,7 +127,7 @@ dependencies:
|
|
114
127
|
requirements:
|
115
128
|
- - ">="
|
116
129
|
- !ruby/object:Gem::Version
|
117
|
-
version: 1.
|
130
|
+
version: 1.38.0
|
118
131
|
- - "<"
|
119
132
|
- !ruby/object:Gem::Version
|
120
133
|
version: '2.0'
|
@@ -124,7 +137,7 @@ dependencies:
|
|
124
137
|
requirements:
|
125
138
|
- - ">="
|
126
139
|
- !ruby/object:Gem::Version
|
127
|
-
version: 1.
|
140
|
+
version: 1.38.0
|
128
141
|
- - "<"
|
129
142
|
- !ruby/object:Gem::Version
|
130
143
|
version: '2.0'
|
@@ -266,12 +279,14 @@ files:
|
|
266
279
|
- lib/rubocop/cop/ignored_node.rb
|
267
280
|
- lib/rubocop/cop/internal_affairs.rb
|
268
281
|
- lib/rubocop/cop/internal_affairs/cop_description.rb
|
282
|
+
- lib/rubocop/cop/internal_affairs/cop_enabled.rb
|
269
283
|
- lib/rubocop/cop/internal_affairs/create_empty_file.rb
|
270
284
|
- lib/rubocop/cop/internal_affairs/empty_line_between_expect_offense_and_correction.rb
|
271
285
|
- lib/rubocop/cop/internal_affairs/example_description.rb
|
272
286
|
- lib/rubocop/cop/internal_affairs/example_heredoc_delimiter.rb
|
273
287
|
- lib/rubocop/cop/internal_affairs/inherit_deprecated_cop_class.rb
|
274
288
|
- lib/rubocop/cop/internal_affairs/lambda_or_proc.rb
|
289
|
+
- lib/rubocop/cop/internal_affairs/location_exists.rb
|
275
290
|
- lib/rubocop/cop/internal_affairs/location_expression.rb
|
276
291
|
- lib/rubocop/cop/internal_affairs/location_line_equality_comparison.rb
|
277
292
|
- lib/rubocop/cop/internal_affairs/method_name_end_with.rb
|
@@ -279,10 +294,16 @@ files:
|
|
279
294
|
- lib/rubocop/cop/internal_affairs/node_destructuring.rb
|
280
295
|
- lib/rubocop/cop/internal_affairs/node_first_or_last_argument.rb
|
281
296
|
- lib/rubocop/cop/internal_affairs/node_matcher_directive.rb
|
297
|
+
- lib/rubocop/cop/internal_affairs/node_pattern_groups.rb
|
298
|
+
- lib/rubocop/cop/internal_affairs/node_pattern_groups/ast_processor.rb
|
299
|
+
- lib/rubocop/cop/internal_affairs/node_pattern_groups/ast_walker.rb
|
300
|
+
- lib/rubocop/cop/internal_affairs/node_type_multiple_predicates.rb
|
282
301
|
- lib/rubocop/cop/internal_affairs/node_type_predicate.rb
|
283
302
|
- lib/rubocop/cop/internal_affairs/numblock_handler.rb
|
284
303
|
- lib/rubocop/cop/internal_affairs/offense_location_keyword.rb
|
304
|
+
- lib/rubocop/cop/internal_affairs/on_send_without_on_csend.rb
|
285
305
|
- lib/rubocop/cop/internal_affairs/operator_keyword.rb
|
306
|
+
- lib/rubocop/cop/internal_affairs/plugin.rb
|
286
307
|
- lib/rubocop/cop/internal_affairs/processed_source_buffer_name.rb
|
287
308
|
- lib/rubocop/cop/internal_affairs/redundant_context_config_parameter.rb
|
288
309
|
- lib/rubocop/cop/internal_affairs/redundant_described_class_as_subject.rb
|
@@ -404,6 +425,7 @@ files:
|
|
404
425
|
- lib/rubocop/cop/lint/ambiguous_operator_precedence.rb
|
405
426
|
- lib/rubocop/cop/lint/ambiguous_range.rb
|
406
427
|
- lib/rubocop/cop/lint/ambiguous_regexp_literal.rb
|
428
|
+
- lib/rubocop/cop/lint/array_literal_in_regexp.rb
|
407
429
|
- lib/rubocop/cop/lint/assignment_in_condition.rb
|
408
430
|
- lib/rubocop/cop/lint/big_decimal_new.rb
|
409
431
|
- lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb
|
@@ -411,7 +433,9 @@ files:
|
|
411
433
|
- lib/rubocop/cop/lint/circular_argument_reference.rb
|
412
434
|
- lib/rubocop/cop/lint/constant_definition_in_block.rb
|
413
435
|
- lib/rubocop/cop/lint/constant_overwritten_in_rescue.rb
|
436
|
+
- lib/rubocop/cop/lint/constant_reassignment.rb
|
414
437
|
- lib/rubocop/cop/lint/constant_resolution.rb
|
438
|
+
- lib/rubocop/cop/lint/cop_directive_syntax.rb
|
415
439
|
- lib/rubocop/cop/lint/debugger.rb
|
416
440
|
- lib/rubocop/cop/lint/deprecated_class_methods.rb
|
417
441
|
- lib/rubocop/cop/lint/deprecated_constants.rb
|
@@ -491,6 +515,7 @@ files:
|
|
491
515
|
- lib/rubocop/cop/lint/redundant_safe_navigation.rb
|
492
516
|
- lib/rubocop/cop/lint/redundant_splat_expansion.rb
|
493
517
|
- lib/rubocop/cop/lint/redundant_string_coercion.rb
|
518
|
+
- lib/rubocop/cop/lint/redundant_type_conversion.rb
|
494
519
|
- lib/rubocop/cop/lint/redundant_with_index.rb
|
495
520
|
- lib/rubocop/cop/lint/redundant_with_object.rb
|
496
521
|
- lib/rubocop/cop/lint/refinement_import_methods.rb
|
@@ -510,8 +535,10 @@ files:
|
|
510
535
|
- lib/rubocop/cop/lint/shadowed_argument.rb
|
511
536
|
- lib/rubocop/cop/lint/shadowed_exception.rb
|
512
537
|
- lib/rubocop/cop/lint/shadowing_outer_local_variable.rb
|
538
|
+
- lib/rubocop/cop/lint/shared_mutable_default.rb
|
513
539
|
- lib/rubocop/cop/lint/struct_new_override.rb
|
514
540
|
- lib/rubocop/cop/lint/suppressed_exception.rb
|
541
|
+
- lib/rubocop/cop/lint/suppressed_exception_in_number_conversion.rb
|
515
542
|
- lib/rubocop/cop/lint/symbol_conversion.rb
|
516
543
|
- lib/rubocop/cop/lint/syntax.rb
|
517
544
|
- lib/rubocop/cop/lint/to_enum_arguments.rb
|
@@ -532,6 +559,7 @@ files:
|
|
532
559
|
- lib/rubocop/cop/lint/uri_regexp.rb
|
533
560
|
- lib/rubocop/cop/lint/useless_access_modifier.rb
|
534
561
|
- lib/rubocop/cop/lint/useless_assignment.rb
|
562
|
+
- lib/rubocop/cop/lint/useless_constant_scoping.rb
|
535
563
|
- lib/rubocop/cop/lint/useless_defined.rb
|
536
564
|
- lib/rubocop/cop/lint/useless_else_without_rescue.rb
|
537
565
|
- lib/rubocop/cop/lint/useless_method_definition.rb
|
@@ -592,6 +620,7 @@ files:
|
|
592
620
|
- lib/rubocop/cop/mixin/gemspec_help.rb
|
593
621
|
- lib/rubocop/cop/mixin/hash_alignment_styles.rb
|
594
622
|
- lib/rubocop/cop/mixin/hash_shorthand_syntax.rb
|
623
|
+
- lib/rubocop/cop/mixin/hash_subset.rb
|
595
624
|
- lib/rubocop/cop/mixin/hash_transform_method.rb
|
596
625
|
- lib/rubocop/cop/mixin/heredoc.rb
|
597
626
|
- lib/rubocop/cop/mixin/integer_node.rb
|
@@ -754,6 +783,7 @@ files:
|
|
754
783
|
- lib/rubocop/cop/style/hash_each_methods.rb
|
755
784
|
- lib/rubocop/cop/style/hash_except.rb
|
756
785
|
- lib/rubocop/cop/style/hash_like_case.rb
|
786
|
+
- lib/rubocop/cop/style/hash_slice.rb
|
757
787
|
- lib/rubocop/cop/style/hash_syntax.rb
|
758
788
|
- lib/rubocop/cop/style/hash_transform_keys.rb
|
759
789
|
- lib/rubocop/cop/style/hash_transform_values.rb
|
@@ -770,6 +800,7 @@ files:
|
|
770
800
|
- lib/rubocop/cop/style/inverse_methods.rb
|
771
801
|
- lib/rubocop/cop/style/invertible_unless_condition.rb
|
772
802
|
- lib/rubocop/cop/style/ip_addresses.rb
|
803
|
+
- lib/rubocop/cop/style/it_assignment.rb
|
773
804
|
- lib/rubocop/cop/style/keyword_arguments_merging.rb
|
774
805
|
- lib/rubocop/cop/style/keyword_parameters_order.rb
|
775
806
|
- lib/rubocop/cop/style/lambda.rb
|
@@ -854,6 +885,7 @@ files:
|
|
854
885
|
- lib/rubocop/cop/style/redundant_fetch_block.rb
|
855
886
|
- lib/rubocop/cop/style/redundant_file_extension_in_require.rb
|
856
887
|
- lib/rubocop/cop/style/redundant_filter_chain.rb
|
888
|
+
- lib/rubocop/cop/style/redundant_format.rb
|
857
889
|
- lib/rubocop/cop/style/redundant_freeze.rb
|
858
890
|
- lib/rubocop/cop/style/redundant_heredoc_delimiter_quotes.rb
|
859
891
|
- lib/rubocop/cop/style/redundant_initialize.rb
|
@@ -939,7 +971,6 @@ files:
|
|
939
971
|
- lib/rubocop/cop/team.rb
|
940
972
|
- lib/rubocop/cop/util.rb
|
941
973
|
- lib/rubocop/cop/utils/format_string.rb
|
942
|
-
- lib/rubocop/cop/utils/regexp_ranges.rb
|
943
974
|
- lib/rubocop/cop/variable_force.rb
|
944
975
|
- lib/rubocop/cop/variable_force/assignment.rb
|
945
976
|
- lib/rubocop/cop/variable_force/branch.rb
|
@@ -985,22 +1016,28 @@ files:
|
|
985
1016
|
- lib/rubocop/formatter/worst_offenders_formatter.rb
|
986
1017
|
- lib/rubocop/lockfile.rb
|
987
1018
|
- lib/rubocop/lsp.rb
|
1019
|
+
- lib/rubocop/lsp/diagnostic.rb
|
988
1020
|
- lib/rubocop/lsp/logger.rb
|
989
1021
|
- lib/rubocop/lsp/routes.rb
|
990
1022
|
- lib/rubocop/lsp/runtime.rb
|
991
1023
|
- lib/rubocop/lsp/server.rb
|
992
1024
|
- lib/rubocop/lsp/severity.rb
|
1025
|
+
- lib/rubocop/lsp/stdin_runner.rb
|
993
1026
|
- lib/rubocop/magic_comment.rb
|
994
1027
|
- lib/rubocop/name_similarity.rb
|
995
1028
|
- lib/rubocop/options.rb
|
996
1029
|
- lib/rubocop/path_util.rb
|
997
1030
|
- lib/rubocop/platform.rb
|
1031
|
+
- lib/rubocop/plugin.rb
|
1032
|
+
- lib/rubocop/plugin/configuration_integrator.rb
|
1033
|
+
- lib/rubocop/plugin/load_error.rb
|
1034
|
+
- lib/rubocop/plugin/loader.rb
|
1035
|
+
- lib/rubocop/plugin/not_supported_error.rb
|
998
1036
|
- lib/rubocop/rake_task.rb
|
999
1037
|
- lib/rubocop/remote_config.rb
|
1000
1038
|
- lib/rubocop/result_cache.rb
|
1001
1039
|
- lib/rubocop/rspec/cop_helper.rb
|
1002
1040
|
- lib/rubocop/rspec/expect_offense.rb
|
1003
|
-
- lib/rubocop/rspec/host_environment_simulation_helper.rb
|
1004
1041
|
- lib/rubocop/rspec/parallel_formatter.rb
|
1005
1042
|
- lib/rubocop/rspec/shared_contexts.rb
|
1006
1043
|
- lib/rubocop/rspec/support.rb
|
@@ -1030,17 +1067,18 @@ files:
|
|
1030
1067
|
- lib/rubocop/version.rb
|
1031
1068
|
- lib/rubocop/warning.rb
|
1032
1069
|
- lib/rubocop/yaml_duplication_checker.rb
|
1070
|
+
- lib/ruby_lsp/rubocop/addon.rb
|
1071
|
+
- lib/ruby_lsp/rubocop/runtime_adapter.rb
|
1033
1072
|
homepage: https://github.com/rubocop/rubocop
|
1034
1073
|
licenses:
|
1035
1074
|
- MIT
|
1036
1075
|
metadata:
|
1037
1076
|
homepage_uri: https://rubocop.org/
|
1038
|
-
changelog_uri: https://github.com/rubocop/rubocop/releases/tag/v1.
|
1077
|
+
changelog_uri: https://github.com/rubocop/rubocop/releases/tag/v1.73.1
|
1039
1078
|
source_code_uri: https://github.com/rubocop/rubocop/
|
1040
|
-
documentation_uri: https://docs.rubocop.org/rubocop/1.
|
1079
|
+
documentation_uri: https://docs.rubocop.org/rubocop/1.73/
|
1041
1080
|
bug_tracker_uri: https://github.com/rubocop/rubocop/issues
|
1042
1081
|
rubygems_mfa_required: 'true'
|
1043
|
-
post_install_message:
|
1044
1082
|
rdoc_options: []
|
1045
1083
|
require_paths:
|
1046
1084
|
- lib
|
@@ -1055,8 +1093,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1055
1093
|
- !ruby/object:Gem::Version
|
1056
1094
|
version: '0'
|
1057
1095
|
requirements: []
|
1058
|
-
rubygems_version: 3.
|
1059
|
-
signing_key:
|
1096
|
+
rubygems_version: 3.6.2
|
1060
1097
|
specification_version: 4
|
1061
1098
|
summary: Automatic Ruby code style checking tool.
|
1062
1099
|
test_files: []
|
@@ -1,113 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module RuboCop
|
4
|
-
module Cop
|
5
|
-
module Utils
|
6
|
-
# Helper to abstract complexity of building range pairs
|
7
|
-
# with octal escape reconstruction (needed for regexp_parser < 2.7).
|
8
|
-
class RegexpRanges
|
9
|
-
attr_reader :root
|
10
|
-
|
11
|
-
def initialize(root)
|
12
|
-
@root = root
|
13
|
-
@compound_token = []
|
14
|
-
@pairs = []
|
15
|
-
@populated = false
|
16
|
-
end
|
17
|
-
|
18
|
-
def compound_token
|
19
|
-
populate_all unless @populated
|
20
|
-
|
21
|
-
@compound_token
|
22
|
-
end
|
23
|
-
|
24
|
-
def pairs
|
25
|
-
populate_all unless @populated
|
26
|
-
|
27
|
-
@pairs
|
28
|
-
end
|
29
|
-
|
30
|
-
private
|
31
|
-
|
32
|
-
def populate_all
|
33
|
-
populate(@root)
|
34
|
-
|
35
|
-
# If either bound is a compound the first one is an escape
|
36
|
-
# and that's all we need to work with.
|
37
|
-
# If there are any cops that wanted to operate on the compound
|
38
|
-
# expression we could wrap it with a facade class.
|
39
|
-
@pairs.map! { |pair| pair.map(&:first) }
|
40
|
-
|
41
|
-
@populated = true
|
42
|
-
end
|
43
|
-
|
44
|
-
def populate(expr)
|
45
|
-
expressions = expr.expressions.to_a
|
46
|
-
|
47
|
-
until expressions.empty?
|
48
|
-
current = expressions.shift
|
49
|
-
|
50
|
-
if escaped_octal?(current)
|
51
|
-
@compound_token << current
|
52
|
-
@compound_token.concat(pop_octal_digits(expressions))
|
53
|
-
# If we have all the digits we can discard.
|
54
|
-
end
|
55
|
-
|
56
|
-
next unless current.type == :set
|
57
|
-
|
58
|
-
process_set(expressions, current)
|
59
|
-
@compound_token.clear
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
def process_set(expressions, current)
|
64
|
-
case current.token
|
65
|
-
when :range
|
66
|
-
@pairs << compose_range(expressions, current)
|
67
|
-
when :character
|
68
|
-
# Child expressions may include the range we are looking for.
|
69
|
-
populate(current)
|
70
|
-
when :intersection
|
71
|
-
# Each child expression could have child expressions that lead to ranges.
|
72
|
-
current.expressions.each do |intersected|
|
73
|
-
populate(intersected)
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
def compose_range(expressions, current)
|
79
|
-
range_start, range_end = current.expressions
|
80
|
-
range_start = if @compound_token.size.between?(1, 2) && octal_digit?(range_start.text)
|
81
|
-
@compound_token.dup << range_start
|
82
|
-
else
|
83
|
-
[range_start]
|
84
|
-
end
|
85
|
-
range_end = [range_end]
|
86
|
-
range_end.concat(pop_octal_digits(expressions)) if escaped_octal?(range_end.first)
|
87
|
-
[range_start, range_end]
|
88
|
-
end
|
89
|
-
|
90
|
-
def escaped_octal?(expr)
|
91
|
-
expr.text.valid_encoding? && expr.text =~ /^\\[0-7]$/
|
92
|
-
end
|
93
|
-
|
94
|
-
def octal_digit?(char)
|
95
|
-
('0'..'7').cover?(char)
|
96
|
-
end
|
97
|
-
|
98
|
-
def pop_octal_digits(expressions)
|
99
|
-
digits = []
|
100
|
-
|
101
|
-
2.times do
|
102
|
-
next unless (next_child = expressions.first)
|
103
|
-
next unless next_child.type == :literal && next_child.text =~ /^[0-7]$/
|
104
|
-
|
105
|
-
digits << expressions.shift
|
106
|
-
end
|
107
|
-
|
108
|
-
digits
|
109
|
-
end
|
110
|
-
end
|
111
|
-
end
|
112
|
-
end
|
113
|
-
end
|