rubocop 1.89.0 → 1.90.0

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.
Files changed (176) hide show
  1. checksums.yaml +4 -4
  2. data/config/default.yml +74 -7
  3. data/exe/rubocop +1 -1
  4. data/lib/rubocop/cached_data.rb +7 -2
  5. data/lib/rubocop/cli/command/execute_runner.rb +31 -0
  6. data/lib/rubocop/cli.rb +2 -4
  7. data/lib/rubocop/comment_config/directive_range.rb +32 -0
  8. data/lib/rubocop/comment_config/disable_next.rb +97 -0
  9. data/lib/rubocop/comment_config.rb +46 -30
  10. data/lib/rubocop/config.rb +23 -5
  11. data/lib/rubocop/config_loader.rb +1 -2
  12. data/lib/rubocop/config_loader_resolver.rb +1 -2
  13. data/lib/rubocop/config_validator.rb +1 -2
  14. data/lib/rubocop/cop/autocorrect_logic.rb +8 -0
  15. data/lib/rubocop/cop/base.rb +34 -2
  16. data/lib/rubocop/cop/corrector.rb +3 -3
  17. data/lib/rubocop/cop/internal_affairs/node_matcher_directive.rb +1 -2
  18. data/lib/rubocop/cop/internal_affairs/node_pattern_groups/ast_walker.rb +1 -2
  19. data/lib/rubocop/cop/layout/block_alignment.rb +1 -2
  20. data/lib/rubocop/cop/layout/class_structure.rb +102 -26
  21. data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +1 -2
  22. data/lib/rubocop/cop/layout/empty_line_after_magic_comment.rb +63 -5
  23. data/lib/rubocop/cop/layout/end_alignment.rb +1 -2
  24. data/lib/rubocop/cop/layout/extra_spacing.rb +105 -3
  25. data/lib/rubocop/cop/layout/first_argument_indentation.rb +21 -1
  26. data/lib/rubocop/cop/layout/line_continuation_spacing.rb +1 -2
  27. data/lib/rubocop/cop/layout/line_length.rb +1 -2
  28. data/lib/rubocop/cop/layout/multiline_assignment_layout.rb +1 -2
  29. data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +5 -5
  30. data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +1 -2
  31. data/lib/rubocop/cop/layout/space_around_operators.rb +7 -0
  32. data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +2 -4
  33. data/lib/rubocop/cop/lint/ambiguous_range.rb +1 -2
  34. data/lib/rubocop/cop/lint/argument_mismatch.rb +89 -0
  35. data/lib/rubocop/cop/lint/constant_reassignment.rb +17 -11
  36. data/lib/rubocop/cop/lint/cop_directive_syntax.rb +84 -8
  37. data/lib/rubocop/cop/lint/deprecated_reference.rb +11 -2
  38. data/lib/rubocop/cop/lint/duplicate_methods.rb +112 -14
  39. data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +1 -2
  40. data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +1 -2
  41. data/lib/rubocop/cop/lint/interpolation_check.rb +1 -2
  42. data/lib/rubocop/cop/lint/literal_as_condition.rb +3 -6
  43. data/lib/rubocop/cop/lint/literal_in_interpolation.rb +3 -6
  44. data/lib/rubocop/cop/lint/missing_cop_enable_directive.rb +25 -12
  45. data/lib/rubocop/cop/lint/name_typo.rb +53 -6
  46. data/lib/rubocop/cop/lint/out_of_range_regexp_ref.rb +15 -0
  47. data/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +98 -19
  48. data/lib/rubocop/cop/lint/redundant_cop_enable_directive.rb +47 -7
  49. data/lib/rubocop/cop/lint/redundant_require_statement.rb +1 -2
  50. data/lib/rubocop/cop/lint/redundant_safe_navigation.rb +1 -2
  51. data/lib/rubocop/cop/lint/redundant_splat_expansion.rb +1 -2
  52. data/lib/rubocop/cop/lint/redundant_type_conversion.rb +1 -2
  53. data/lib/rubocop/cop/lint/redundant_with_index.rb +1 -2
  54. data/lib/rubocop/cop/lint/safe_navigation_chain.rb +1 -2
  55. data/lib/rubocop/cop/lint/safe_navigation_consistency.rb +2 -4
  56. data/lib/rubocop/cop/lint/super_argument_mismatch.rb +179 -0
  57. data/lib/rubocop/cop/lint/suppressed_exception_in_number_conversion.rb +1 -2
  58. data/lib/rubocop/cop/lint/to_enum_arguments.rb +1 -2
  59. data/lib/rubocop/cop/lint/unreachable_code.rb +1 -2
  60. data/lib/rubocop/cop/lint/unused_private_method.rb +94 -17
  61. data/lib/rubocop/cop/lint/useless_access_modifier.rb +1 -2
  62. data/lib/rubocop/cop/lint/useless_assignment.rb +1 -2
  63. data/lib/rubocop/cop/lint/useless_constant_scoping.rb +36 -0
  64. data/lib/rubocop/cop/lint/useless_method_definition.rb +1 -1
  65. data/lib/rubocop/cop/lint/useless_rescue.rb +1 -2
  66. data/lib/rubocop/cop/lint/utils/nil_receiver_checker.rb +61 -7
  67. data/lib/rubocop/cop/lint/void.rb +1 -2
  68. data/lib/rubocop/cop/lint.rb +2 -0
  69. data/lib/rubocop/cop/metrics/perceived_complexity.rb +1 -2
  70. data/lib/rubocop/cop/migration/department_name.rb +1 -2
  71. data/lib/rubocop/cop/mixin/comments_help.rb +1 -2
  72. data/lib/rubocop/cop/mixin/configurable_enforced_style.rb +1 -2
  73. data/lib/rubocop/cop/mixin/hash_shorthand_syntax.rb +1 -2
  74. data/lib/rubocop/cop/mixin/hash_subset.rb +1 -2
  75. data/lib/rubocop/cop/mixin/indexed_method_arity.rb +94 -0
  76. data/lib/rubocop/cop/mixin/line_length_help.rb +7 -1
  77. data/lib/rubocop/cop/mixin/preceding_following_alignment.rb +51 -6
  78. data/lib/rubocop/cop/mixin/range_help.rb +1 -2
  79. data/lib/rubocop/cop/mixin/statement_modifier.rb +13 -7
  80. data/lib/rubocop/cop/mixin/trailing_comma.rb +2 -4
  81. data/lib/rubocop/cop/mixin.rb +4 -0
  82. data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +16 -0
  83. data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +2 -4
  84. data/lib/rubocop/cop/naming/method_name.rb +5 -2
  85. data/lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb +1 -2
  86. data/lib/rubocop/cop/offense.rb +27 -4
  87. data/lib/rubocop/cop/registry.rb +34 -10
  88. data/lib/rubocop/cop/style/accessor_grouping.rb +1 -2
  89. data/lib/rubocop/cop/style/arguments_forwarding.rb +3 -6
  90. data/lib/rubocop/cop/style/array_first_last.rb +1 -2
  91. data/lib/rubocop/cop/style/bitwise_predicate.rb +1 -2
  92. data/lib/rubocop/cop/style/block_delimiters.rb +3 -6
  93. data/lib/rubocop/cop/style/case_like_if.rb +2 -4
  94. data/lib/rubocop/cop/style/class_and_module_children.rb +1 -2
  95. data/lib/rubocop/cop/style/combinable_loops.rb +1 -2
  96. data/lib/rubocop/cop/style/concat_array_literals.rb +1 -2
  97. data/lib/rubocop/cop/style/conditional_assignment.rb +1 -2
  98. data/lib/rubocop/cop/style/constant_visibility.rb +1 -2
  99. data/lib/rubocop/cop/style/copyright.rb +1 -2
  100. data/lib/rubocop/cop/style/directive_scope.rb +171 -0
  101. data/lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb +36 -10
  102. data/lib/rubocop/cop/style/empty_case_condition.rb +1 -2
  103. data/lib/rubocop/cop/style/format_string_token.rb +1 -2
  104. data/lib/rubocop/cop/style/guard_clause.rb +1 -2
  105. data/lib/rubocop/cop/style/hash_each_methods.rb +1 -2
  106. data/lib/rubocop/cop/style/hash_syntax.rb +1 -2
  107. data/lib/rubocop/cop/style/identical_conditional_branches.rb +2 -4
  108. data/lib/rubocop/cop/style/if_inside_else.rb +1 -2
  109. data/lib/rubocop/cop/style/if_unless_modifier.rb +1 -2
  110. data/lib/rubocop/cop/style/if_unless_modifier_of_if_unless.rb +1 -2
  111. data/lib/rubocop/cop/style/map_to_hash.rb +1 -2
  112. data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +2 -4
  113. data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +1 -2
  114. data/lib/rubocop/cop/style/multiline_method_signature.rb +1 -2
  115. data/lib/rubocop/cop/style/negated_if_else_condition.rb +1 -2
  116. data/lib/rubocop/cop/style/negative_array_index.rb +2 -4
  117. data/lib/rubocop/cop/style/nil_comparison.rb +1 -2
  118. data/lib/rubocop/cop/style/operator_method_call.rb +1 -2
  119. data/lib/rubocop/cop/style/parallel_assignment.rb +1 -2
  120. data/lib/rubocop/cop/style/redundant_assignment.rb +1 -2
  121. data/lib/rubocop/cop/style/redundant_condition.rb +2 -4
  122. data/lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb +1 -2
  123. data/lib/rubocop/cop/style/redundant_each.rb +1 -2
  124. data/lib/rubocop/cop/style/redundant_format.rb +2 -4
  125. data/lib/rubocop/cop/style/redundant_parentheses.rb +2 -4
  126. data/lib/rubocop/cop/style/redundant_regexp_argument.rb +1 -2
  127. data/lib/rubocop/cop/style/redundant_return.rb +1 -2
  128. data/lib/rubocop/cop/style/redundant_self_assignment.rb +1 -2
  129. data/lib/rubocop/cop/style/redundant_string_escape.rb +1 -2
  130. data/lib/rubocop/cop/style/rescue_modifier.rb +1 -2
  131. data/lib/rubocop/cop/style/safe_navigation.rb +1 -2
  132. data/lib/rubocop/cop/style/sample.rb +11 -6
  133. data/lib/rubocop/cop/style/select_by_regexp.rb +1 -2
  134. data/lib/rubocop/cop/style/semicolon.rb +2 -4
  135. data/lib/rubocop/cop/style/single_line_do_end_block.rb +1 -2
  136. data/lib/rubocop/cop/style/sole_nested_conditional.rb +1 -2
  137. data/lib/rubocop/cop/style/stabby_lambda_parentheses.rb +2 -0
  138. data/lib/rubocop/cop/style/string_concatenation.rb +18 -5
  139. data/lib/rubocop/cop/style/super_arguments.rb +1 -2
  140. data/lib/rubocop/cop/style/symbol_proc.rb +1 -2
  141. data/lib/rubocop/cop/style/time_now.rb +41 -0
  142. data/lib/rubocop/cop/style/yoda_condition.rb +1 -2
  143. data/lib/rubocop/cop/style.rb +2 -0
  144. data/lib/rubocop/cop/team.rb +11 -3
  145. data/lib/rubocop/cop/util.rb +2 -4
  146. data/lib/rubocop/cop/variable_force/variable.rb +1 -2
  147. data/lib/rubocop/cops_documentation_generator.rb +3 -6
  148. data/lib/rubocop/directive_comment.rb +37 -3
  149. data/lib/rubocop/formatter/emacs_style_formatter.rb +3 -1
  150. data/lib/rubocop/formatter/html_formatter.rb +2 -4
  151. data/lib/rubocop/formatter/json_formatter.rb +11 -6
  152. data/lib/rubocop/formatter/junit_formatter.rb +26 -9
  153. data/lib/rubocop/formatter/offense_count_formatter.rb +1 -2
  154. data/lib/rubocop/formatter/simple_text_formatter.rb +4 -3
  155. data/lib/rubocop/formatter/tap_formatter.rb +3 -1
  156. data/lib/rubocop/formatter/worst_offenders_formatter.rb +1 -2
  157. data/lib/rubocop/lockfile.rb +18 -0
  158. data/lib/rubocop/lsp/diagnostic.rb +4 -8
  159. data/lib/rubocop/lsp/routes.rb +48 -19
  160. data/lib/rubocop/mcp/server.rb +1 -2
  161. data/lib/rubocop/options.rb +10 -6
  162. data/lib/rubocop/path_util.rb +1 -2
  163. data/lib/rubocop/plugin/configuration_integrator.rb +6 -3
  164. data/lib/rubocop/rake_task.rb +1 -2
  165. data/lib/rubocop/rspec/expect_offense.rb +2 -4
  166. data/lib/rubocop/rspec/shared_contexts.rb +4 -2
  167. data/lib/rubocop/runner.rb +26 -23
  168. data/lib/rubocop/server/cache.rb +1 -2
  169. data/lib/rubocop/server/cli.rb +2 -4
  170. data/lib/rubocop/server.rb +14 -0
  171. data/lib/rubocop/target_finder.rb +4 -1
  172. data/lib/rubocop/todo_audit.rb +111 -0
  173. data/lib/rubocop/version.rb +3 -5
  174. data/lib/rubocop.rb +3 -0
  175. data/lib/ruby_lsp/rubocop/addon.rb +1 -2
  176. metadata +13 -5
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  # This module holds the RuboCop version information.
5
5
  module Version
6
- STRING = '1.89.0'
6
+ STRING = '1.90.0'
7
7
 
8
8
  MSG = '%<version>s (using %<parser_version>s, ' \
9
9
  'rubocop-ast %<rubocop_ast_version>s, ' \
@@ -23,7 +23,7 @@ module RuboCop
23
23
 
24
24
  # NOTE: Marked as private but used by gems like standard.
25
25
  # @api private
26
- # rubocop:disable Metrics/MethodLength
26
+ # rubocop:disable-next Metrics/MethodLength
27
27
  def self.version(debug: false, env: nil)
28
28
  if debug
29
29
  target_ruby_version = target_ruby_version(env)
@@ -48,7 +48,6 @@ module RuboCop
48
48
  STRING
49
49
  end
50
50
  end
51
- # rubocop:enable Metrics/MethodLength
52
51
 
53
52
  # @api private
54
53
  def self.verbose(env: nil)
@@ -72,7 +71,7 @@ module RuboCop
72
71
  end
73
72
 
74
73
  # @api private
75
- # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
74
+ # rubocop:disable-next Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
76
75
  def self.extension_versions(env)
77
76
  plugins = config_for_pwd(env).loaded_plugins
78
77
  plugin_versions = plugins.filter_map do |plugin|
@@ -108,7 +107,6 @@ module RuboCop
108
107
 
109
108
  plugin_versions + feature_versions
110
109
  end
111
- # rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
112
110
 
113
111
  # @api private
114
112
  def self.target_ruby_version(env)
data/lib/rubocop.rb CHANGED
@@ -110,6 +110,8 @@ require_relative 'rubocop/lockfile'
110
110
  require_relative 'rubocop/lsp'
111
111
  require_relative 'rubocop/target_finder'
112
112
  require_relative 'rubocop/directive_comment'
113
+ require_relative 'rubocop/comment_config/directive_range'
114
+ require_relative 'rubocop/comment_config/disable_next'
113
115
  require_relative 'rubocop/comment_config'
114
116
  require_relative 'rubocop/result_cache'
115
117
  require_relative 'rubocop/runner'
@@ -128,6 +130,7 @@ require_relative 'rubocop/cli/command/show_docs_url'
128
130
  require_relative 'rubocop/cli/command/suggest_extensions'
129
131
  require_relative 'rubocop/cli/command/version'
130
132
  require_relative 'rubocop/config_regeneration'
133
+ require_relative 'rubocop/todo_audit'
131
134
  require_relative 'rubocop/options'
132
135
  require_relative 'rubocop/remote_config'
133
136
  require_relative 'rubocop/target_ruby'
@@ -41,7 +41,7 @@ module RubyLsp
41
41
  @runtime_adapter = nil
42
42
  end
43
43
 
44
- # rubocop:disable Metrics/MethodLength
44
+ # rubocop:disable-next Metrics/MethodLength
45
45
  def register_additional_file_watchers(global_state, message_queue)
46
46
  return unless global_state.supports_watching_files
47
47
 
@@ -66,7 +66,6 @@ module RubyLsp
66
66
  )
67
67
  )
68
68
  end
69
- # rubocop:enable Metrics/MethodLength
70
69
 
71
70
  def workspace_did_change_watched_files(changes)
72
71
  if (changed_config_file = changed_config_file(changes))
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.89.0
4
+ version: 1.90.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bozhidar Batsov
@@ -15,14 +15,14 @@ dependencies:
15
15
  name: json
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - "~>"
18
+ - - ">="
19
19
  - !ruby/object:Gem::Version
20
20
  version: '2.3'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - "~>"
25
+ - - ">="
26
26
  - !ruby/object:Gem::Version
27
27
  version: '2.3'
28
28
  - !ruby/object:Gem::Dependency
@@ -216,6 +216,8 @@ files:
216
216
  - lib/rubocop/cli/command/version.rb
217
217
  - lib/rubocop/cli/environment.rb
218
218
  - lib/rubocop/comment_config.rb
219
+ - lib/rubocop/comment_config/directive_range.rb
220
+ - lib/rubocop/comment_config/disable_next.rb
219
221
  - lib/rubocop/config.rb
220
222
  - lib/rubocop/config_finder.rb
221
223
  - lib/rubocop/config_loader.rb
@@ -438,6 +440,7 @@ files:
438
440
  - lib/rubocop/cop/lint/ambiguous_operator_precedence.rb
439
441
  - lib/rubocop/cop/lint/ambiguous_range.rb
440
442
  - lib/rubocop/cop/lint/ambiguous_regexp_literal.rb
443
+ - lib/rubocop/cop/lint/argument_mismatch.rb
441
444
  - lib/rubocop/cop/lint/array_literal_in_regexp.rb
442
445
  - lib/rubocop/cop/lint/assignment_in_condition.rb
443
446
  - lib/rubocop/cop/lint/big_decimal_new.rb
@@ -553,6 +556,7 @@ files:
553
556
  - lib/rubocop/cop/lint/shadowing_outer_local_variable.rb
554
557
  - lib/rubocop/cop/lint/shared_mutable_default.rb
555
558
  - lib/rubocop/cop/lint/struct_new_override.rb
559
+ - lib/rubocop/cop/lint/super_argument_mismatch.rb
556
560
  - lib/rubocop/cop/lint/suppressed_exception.rb
557
561
  - lib/rubocop/cop/lint/suppressed_exception_in_number_conversion.rb
558
562
  - lib/rubocop/cop/lint/symbol_conversion.rb
@@ -650,6 +654,7 @@ files:
650
654
  - lib/rubocop/cop/mixin/hash_transform_method.rb
651
655
  - lib/rubocop/cop/mixin/hash_transform_method/autocorrection.rb
652
656
  - lib/rubocop/cop/mixin/heredoc.rb
657
+ - lib/rubocop/cop/mixin/indexed_method_arity.rb
653
658
  - lib/rubocop/cop/mixin/integer_node.rb
654
659
  - lib/rubocop/cop/mixin/interpolation.rb
655
660
  - lib/rubocop/cop/mixin/line_length_help.rb
@@ -775,6 +780,7 @@ files:
775
780
  - lib/rubocop/cop/style/dig_chain.rb
776
781
  - lib/rubocop/cop/style/dir.rb
777
782
  - lib/rubocop/cop/style/dir_empty.rb
783
+ - lib/rubocop/cop/style/directive_scope.rb
778
784
  - lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb
779
785
  - lib/rubocop/cop/style/document_dynamic_eval_definition.rb
780
786
  - lib/rubocop/cop/style/documentation.rb
@@ -1001,6 +1007,7 @@ files:
1001
1007
  - lib/rubocop/cop/style/symbol_proc.rb
1002
1008
  - lib/rubocop/cop/style/tally_method.rb
1003
1009
  - lib/rubocop/cop/style/ternary_parentheses.rb
1010
+ - lib/rubocop/cop/style/time_now.rb
1004
1011
  - lib/rubocop/cop/style/top_level_method_definition.rb
1005
1012
  - lib/rubocop/cop/style/trailing_body_on_class.rb
1006
1013
  - lib/rubocop/cop/style/trailing_body_on_method_definition.rb
@@ -1123,6 +1130,7 @@ files:
1123
1130
  - lib/rubocop/string_interpreter.rb
1124
1131
  - lib/rubocop/target_finder.rb
1125
1132
  - lib/rubocop/target_ruby.rb
1133
+ - lib/rubocop/todo_audit.rb
1126
1134
  - lib/rubocop/util.rb
1127
1135
  - lib/rubocop/version.rb
1128
1136
  - lib/rubocop/warning.rb
@@ -1134,9 +1142,9 @@ licenses:
1134
1142
  - MIT
1135
1143
  metadata:
1136
1144
  homepage_uri: https://rubocop.org/
1137
- changelog_uri: https://github.com/rubocop/rubocop/releases/tag/v1.89.0
1145
+ changelog_uri: https://github.com/rubocop/rubocop/releases/tag/v1.90.0
1138
1146
  source_code_uri: https://github.com/rubocop/rubocop/
1139
- documentation_uri: https://docs.rubocop.org/rubocop/1.89/
1147
+ documentation_uri: https://docs.rubocop.org/rubocop/1.90/
1140
1148
  bug_tracker_uri: https://github.com/rubocop/rubocop/issues
1141
1149
  rubygems_mfa_required: 'true'
1142
1150
  rdoc_options: []