rubocop 1.69.2 → 1.72.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.
Files changed (284) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +1 -1
  3. data/README.md +2 -2
  4. data/config/default.yml +66 -2
  5. data/lib/rubocop/cli/command/execute_runner.rb +3 -3
  6. data/lib/rubocop/cli/command/show_cops.rb +24 -2
  7. data/lib/rubocop/cli/command/suggest_extensions.rb +7 -1
  8. data/lib/rubocop/comment_config.rb +2 -2
  9. data/lib/rubocop/config.rb +17 -4
  10. data/lib/rubocop/config_loader.rb +48 -8
  11. data/lib/rubocop/config_loader_resolver.rb +33 -8
  12. data/lib/rubocop/config_validator.rb +18 -8
  13. data/lib/rubocop/cop/autocorrect_logic.rb +1 -1
  14. data/lib/rubocop/cop/base.rb +6 -0
  15. data/lib/rubocop/cop/bundler/duplicated_gem.rb +1 -1
  16. data/lib/rubocop/cop/bundler/gem_comment.rb +1 -1
  17. data/lib/rubocop/cop/internal_affairs/cop_enabled.rb +85 -0
  18. data/lib/rubocop/cop/internal_affairs/example_description.rb +4 -2
  19. data/lib/rubocop/cop/internal_affairs/location_exists.rb +116 -0
  20. data/lib/rubocop/cop/internal_affairs/location_expression.rb +2 -1
  21. data/lib/rubocop/cop/internal_affairs/node_first_or_last_argument.rb +3 -2
  22. data/lib/rubocop/cop/internal_affairs/node_matcher_directive.rb +1 -1
  23. data/lib/rubocop/cop/internal_affairs/node_pattern_groups/ast_processor.rb +63 -0
  24. data/lib/rubocop/cop/internal_affairs/node_pattern_groups/ast_walker.rb +131 -0
  25. data/lib/rubocop/cop/internal_affairs/node_pattern_groups.rb +229 -0
  26. data/lib/rubocop/cop/internal_affairs/node_type_multiple_predicates.rb +126 -0
  27. data/lib/rubocop/cop/internal_affairs/node_type_predicate.rb +4 -3
  28. data/lib/rubocop/cop/internal_affairs/on_send_without_on_csend.rb +90 -0
  29. data/lib/rubocop/cop/internal_affairs/plugin.rb +33 -0
  30. data/lib/rubocop/cop/internal_affairs/redundant_source_range.rb +3 -1
  31. data/lib/rubocop/cop/internal_affairs/single_line_comparison.rb +5 -4
  32. data/lib/rubocop/cop/internal_affairs/undefined_config.rb +7 -1
  33. data/lib/rubocop/cop/internal_affairs.rb +5 -16
  34. data/lib/rubocop/cop/layout/access_modifier_indentation.rb +1 -1
  35. data/lib/rubocop/cop/layout/argument_alignment.rb +2 -8
  36. data/lib/rubocop/cop/layout/block_alignment.rb +3 -1
  37. data/lib/rubocop/cop/layout/class_structure.rb +9 -9
  38. data/lib/rubocop/cop/layout/dot_position.rb +1 -1
  39. data/lib/rubocop/cop/layout/else_alignment.rb +2 -2
  40. data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +1 -1
  41. data/lib/rubocop/cop/layout/empty_line_between_defs.rb +7 -11
  42. data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +1 -0
  43. data/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +1 -1
  44. data/lib/rubocop/cop/layout/empty_lines_around_method_body.rb +22 -2
  45. data/lib/rubocop/cop/layout/end_alignment.rb +1 -1
  46. data/lib/rubocop/cop/layout/extra_spacing.rb +1 -1
  47. data/lib/rubocop/cop/layout/first_argument_indentation.rb +3 -8
  48. data/lib/rubocop/cop/layout/first_array_element_indentation.rb +2 -7
  49. data/lib/rubocop/cop/layout/first_hash_element_indentation.rb +2 -7
  50. data/lib/rubocop/cop/layout/first_hash_element_line_break.rb +1 -1
  51. data/lib/rubocop/cop/layout/first_parameter_indentation.rb +2 -2
  52. data/lib/rubocop/cop/layout/hash_alignment.rb +6 -4
  53. data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +2 -1
  54. data/lib/rubocop/cop/layout/line_continuation_spacing.rb +7 -1
  55. data/lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb +2 -2
  56. data/lib/rubocop/cop/layout/line_length.rb +1 -0
  57. data/lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb +1 -1
  58. data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +25 -0
  59. data/lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb +1 -0
  60. data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +4 -4
  61. data/lib/rubocop/cop/layout/redundant_line_break.rb +7 -6
  62. data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +1 -1
  63. data/lib/rubocop/cop/layout/single_line_block_chain.rb +1 -1
  64. data/lib/rubocop/cop/layout/space_after_colon.rb +2 -2
  65. data/lib/rubocop/cop/layout/space_after_comma.rb +1 -1
  66. data/lib/rubocop/cop/layout/space_after_method_name.rb +1 -1
  67. data/lib/rubocop/cop/layout/space_after_semicolon.rb +1 -1
  68. data/lib/rubocop/cop/layout/space_around_keyword.rb +1 -0
  69. data/lib/rubocop/cop/layout/space_around_method_call_operator.rb +1 -1
  70. data/lib/rubocop/cop/layout/space_around_operators.rb +3 -3
  71. data/lib/rubocop/cop/layout/space_before_comma.rb +1 -1
  72. data/lib/rubocop/cop/layout/space_before_semicolon.rb +1 -1
  73. data/lib/rubocop/cop/layout/trailing_whitespace.rb +5 -3
  74. data/lib/rubocop/cop/lint/ambiguous_block_association.rb +1 -1
  75. data/lib/rubocop/cop/lint/array_literal_in_regexp.rb +119 -0
  76. data/lib/rubocop/cop/lint/assignment_in_condition.rb +1 -3
  77. data/lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb +1 -1
  78. data/lib/rubocop/cop/lint/constant_definition_in_block.rb +3 -3
  79. data/lib/rubocop/cop/lint/constant_reassignment.rb +148 -0
  80. data/lib/rubocop/cop/lint/cop_directive_syntax.rb +84 -0
  81. data/lib/rubocop/cop/lint/debugger.rb +1 -1
  82. data/lib/rubocop/cop/lint/duplicate_match_pattern.rb +1 -1
  83. data/lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb +1 -1
  84. data/lib/rubocop/cop/lint/duplicate_set_element.rb +20 -7
  85. data/lib/rubocop/cop/lint/empty_expression.rb +0 -2
  86. data/lib/rubocop/cop/lint/float_comparison.rb +5 -2
  87. data/lib/rubocop/cop/lint/float_out_of_range.rb +1 -1
  88. data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +2 -2
  89. data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +1 -1
  90. data/lib/rubocop/cop/lint/literal_in_interpolation.rb +24 -6
  91. data/lib/rubocop/cop/lint/missing_super.rb +2 -2
  92. data/lib/rubocop/cop/lint/mixed_case_range.rb +1 -1
  93. data/lib/rubocop/cop/lint/mixed_regexp_capture_types.rb +1 -1
  94. data/lib/rubocop/cop/lint/nested_method_definition.rb +8 -4
  95. data/lib/rubocop/cop/lint/next_without_accumulator.rb +1 -1
  96. data/lib/rubocop/cop/lint/non_atomic_file_operation.rb +4 -3
  97. data/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb +1 -1
  98. data/lib/rubocop/cop/lint/numeric_operation_with_constant_result.rb +18 -31
  99. data/lib/rubocop/cop/lint/out_of_range_regexp_ref.rb +2 -1
  100. data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +1 -5
  101. data/lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb +1 -1
  102. data/lib/rubocop/cop/lint/redundant_string_coercion.rb +2 -2
  103. data/lib/rubocop/cop/lint/redundant_type_conversion.rb +231 -0
  104. data/lib/rubocop/cop/lint/rescue_exception.rb +1 -1
  105. data/lib/rubocop/cop/lint/safe_navigation_chain.rb +8 -1
  106. data/lib/rubocop/cop/lint/shared_mutable_default.rb +65 -0
  107. data/lib/rubocop/cop/lint/suppressed_exception.rb +1 -1
  108. data/lib/rubocop/cop/lint/suppressed_exception_in_number_conversion.rb +111 -0
  109. data/lib/rubocop/cop/lint/symbol_conversion.rb +1 -1
  110. data/lib/rubocop/cop/lint/syntax.rb +4 -1
  111. data/lib/rubocop/cop/lint/unescaped_bracket_in_regexp.rb +1 -4
  112. data/lib/rubocop/cop/lint/unexpected_block_arity.rb +1 -1
  113. data/lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb +1 -1
  114. data/lib/rubocop/cop/lint/unreachable_code.rb +1 -1
  115. data/lib/rubocop/cop/lint/unreachable_loop.rb +1 -1
  116. data/lib/rubocop/cop/lint/useless_access_modifier.rb +4 -4
  117. data/lib/rubocop/cop/lint/useless_assignment.rb +1 -1
  118. data/lib/rubocop/cop/lint/useless_constant_scoping.rb +80 -0
  119. data/lib/rubocop/cop/lint/useless_method_definition.rb +1 -1
  120. data/lib/rubocop/cop/lint/useless_numeric_operation.rb +2 -1
  121. data/lib/rubocop/cop/lint/useless_ruby2_keywords.rb +2 -2
  122. data/lib/rubocop/cop/lint/void.rb +5 -9
  123. data/lib/rubocop/cop/metrics/block_nesting.rb +1 -1
  124. data/lib/rubocop/cop/metrics/collection_literal_length.rb +7 -0
  125. data/lib/rubocop/cop/metrics/cyclomatic_complexity.rb +1 -1
  126. data/lib/rubocop/cop/metrics/method_length.rb +8 -1
  127. data/lib/rubocop/cop/metrics/module_length.rb +1 -1
  128. data/lib/rubocop/cop/metrics/perceived_complexity.rb +1 -1
  129. data/lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb +7 -7
  130. data/lib/rubocop/cop/mixin/alignment.rb +2 -2
  131. data/lib/rubocop/cop/mixin/allowed_pattern.rb +4 -4
  132. data/lib/rubocop/cop/mixin/check_line_breakable.rb +11 -11
  133. data/lib/rubocop/cop/mixin/comments_help.rb +4 -2
  134. data/lib/rubocop/cop/mixin/dig_help.rb +1 -1
  135. data/lib/rubocop/cop/mixin/frozen_string_literal.rb +1 -1
  136. data/lib/rubocop/cop/mixin/hash_shorthand_syntax.rb +22 -22
  137. data/lib/rubocop/cop/mixin/hash_subset.rb +188 -0
  138. data/lib/rubocop/cop/mixin/hash_transform_method.rb +74 -74
  139. data/lib/rubocop/cop/mixin/method_complexity.rb +1 -1
  140. data/lib/rubocop/cop/mixin/percent_literal.rb +1 -1
  141. data/lib/rubocop/cop/mixin/preceding_following_alignment.rb +48 -24
  142. data/lib/rubocop/cop/mixin/range_help.rb +3 -3
  143. data/lib/rubocop/cop/mixin/space_before_punctuation.rb +1 -1
  144. data/lib/rubocop/cop/mixin/statement_modifier.rb +8 -3
  145. data/lib/rubocop/cop/mixin/string_help.rb +2 -2
  146. data/lib/rubocop/cop/mixin/string_literals_help.rb +1 -1
  147. data/lib/rubocop/cop/mixin/trailing_comma.rb +3 -3
  148. data/lib/rubocop/cop/naming/block_forwarding.rb +19 -15
  149. data/lib/rubocop/cop/naming/predicate_name.rb +44 -0
  150. data/lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb +3 -3
  151. data/lib/rubocop/cop/security/compound_hash.rb +1 -0
  152. data/lib/rubocop/cop/style/access_modifier_declarations.rb +34 -5
  153. data/lib/rubocop/cop/style/and_or.rb +1 -1
  154. data/lib/rubocop/cop/style/arguments_forwarding.rb +39 -23
  155. data/lib/rubocop/cop/style/array_first_last.rb +18 -2
  156. data/lib/rubocop/cop/style/block_delimiters.rb +7 -20
  157. data/lib/rubocop/cop/style/class_and_module_children.rb +6 -3
  158. data/lib/rubocop/cop/style/collection_methods.rb +1 -1
  159. data/lib/rubocop/cop/style/combinable_defined.rb +1 -1
  160. data/lib/rubocop/cop/style/combinable_loops.rb +2 -2
  161. data/lib/rubocop/cop/style/concat_array_literals.rb +1 -1
  162. data/lib/rubocop/cop/style/conditional_assignment.rb +6 -4
  163. data/lib/rubocop/cop/style/documentation.rb +1 -1
  164. data/lib/rubocop/cop/style/double_negation.rb +3 -3
  165. data/lib/rubocop/cop/style/each_for_simple_loop.rb +4 -7
  166. data/lib/rubocop/cop/style/each_with_object.rb +2 -3
  167. data/lib/rubocop/cop/style/empty_else.rb +4 -2
  168. data/lib/rubocop/cop/style/empty_literal.rb +1 -1
  169. data/lib/rubocop/cop/style/empty_method.rb +1 -1
  170. data/lib/rubocop/cop/style/eval_with_location.rb +1 -1
  171. data/lib/rubocop/cop/style/exact_regexp_match.rb +3 -10
  172. data/lib/rubocop/cop/style/explicit_block_argument.rb +15 -2
  173. data/lib/rubocop/cop/style/exponential_notation.rb +1 -1
  174. data/lib/rubocop/cop/style/fetch_env_var.rb +1 -1
  175. data/lib/rubocop/cop/style/float_division.rb +8 -4
  176. data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +1 -1
  177. data/lib/rubocop/cop/style/hash_each_methods.rb +3 -6
  178. data/lib/rubocop/cop/style/hash_except.rb +24 -148
  179. data/lib/rubocop/cop/style/hash_slice.rb +80 -0
  180. data/lib/rubocop/cop/style/hash_syntax.rb +6 -3
  181. data/lib/rubocop/cop/style/identical_conditional_branches.rb +22 -3
  182. data/lib/rubocop/cop/style/if_unless_modifier.rb +3 -3
  183. data/lib/rubocop/cop/style/if_with_boolean_literal_branches.rb +1 -1
  184. data/lib/rubocop/cop/style/if_with_semicolon.rb +2 -2
  185. data/lib/rubocop/cop/style/infinite_loop.rb +1 -1
  186. data/lib/rubocop/cop/style/inverse_methods.rb +6 -6
  187. data/lib/rubocop/cop/style/it_assignment.rb +36 -0
  188. data/lib/rubocop/cop/style/keyword_parameters_order.rb +1 -1
  189. data/lib/rubocop/cop/style/map_into_array.rb +1 -1
  190. data/lib/rubocop/cop/style/map_to_hash.rb +1 -1
  191. data/lib/rubocop/cop/style/map_to_set.rb +3 -2
  192. data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +19 -12
  193. data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +2 -0
  194. data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +2 -1
  195. data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +2 -4
  196. data/lib/rubocop/cop/style/method_def_parentheses.rb +1 -1
  197. data/lib/rubocop/cop/style/missing_else.rb +2 -0
  198. data/lib/rubocop/cop/style/multiline_block_chain.rb +1 -1
  199. data/lib/rubocop/cop/style/multiple_comparison.rb +26 -20
  200. data/lib/rubocop/cop/style/mutable_constant.rb +3 -3
  201. data/lib/rubocop/cop/style/negated_if_else_condition.rb +1 -1
  202. data/lib/rubocop/cop/style/nested_parenthesized_calls.rb +1 -1
  203. data/lib/rubocop/cop/style/object_then.rb +13 -15
  204. data/lib/rubocop/cop/style/open_struct_use.rb +5 -5
  205. data/lib/rubocop/cop/style/parallel_assignment.rb +1 -5
  206. data/lib/rubocop/cop/style/parentheses_around_condition.rb +2 -2
  207. data/lib/rubocop/cop/style/percent_literal_delimiters.rb +1 -1
  208. data/lib/rubocop/cop/style/proc.rb +1 -2
  209. data/lib/rubocop/cop/style/quoted_symbols.rb +1 -1
  210. data/lib/rubocop/cop/style/raise_args.rb +6 -4
  211. data/lib/rubocop/cop/style/random_with_offset.rb +3 -3
  212. data/lib/rubocop/cop/style/redundant_begin.rb +1 -1
  213. data/lib/rubocop/cop/style/redundant_condition.rb +2 -2
  214. data/lib/rubocop/cop/style/redundant_current_directory_in_path.rb +2 -1
  215. data/lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb +6 -10
  216. data/lib/rubocop/cop/style/redundant_each.rb +1 -1
  217. data/lib/rubocop/cop/style/redundant_exception.rb +2 -2
  218. data/lib/rubocop/cop/style/redundant_format.rb +238 -0
  219. data/lib/rubocop/cop/style/redundant_freeze.rb +2 -2
  220. data/lib/rubocop/cop/style/redundant_initialize.rb +12 -3
  221. data/lib/rubocop/cop/style/redundant_line_continuation.rb +34 -13
  222. data/lib/rubocop/cop/style/redundant_parentheses.rb +28 -14
  223. data/lib/rubocop/cop/style/redundant_regexp_argument.rb +3 -0
  224. data/lib/rubocop/cop/style/redundant_regexp_character_class.rb +1 -1
  225. data/lib/rubocop/cop/style/redundant_regexp_escape.rb +1 -1
  226. data/lib/rubocop/cop/style/redundant_self_assignment.rb +14 -28
  227. data/lib/rubocop/cop/style/redundant_sort.rb +2 -2
  228. data/lib/rubocop/cop/style/redundant_string_escape.rb +2 -2
  229. data/lib/rubocop/cop/style/return_nil.rb +1 -1
  230. data/lib/rubocop/cop/style/safe_navigation.rb +2 -2
  231. data/lib/rubocop/cop/style/semicolon.rb +1 -1
  232. data/lib/rubocop/cop/style/send_with_literal_method_name.rb +2 -1
  233. data/lib/rubocop/cop/style/single_line_block_params.rb +1 -1
  234. data/lib/rubocop/cop/style/single_line_do_end_block.rb +1 -2
  235. data/lib/rubocop/cop/style/single_line_methods.rb +3 -4
  236. data/lib/rubocop/cop/style/slicing_with_range.rb +40 -11
  237. data/lib/rubocop/cop/style/sole_nested_conditional.rb +2 -2
  238. data/lib/rubocop/cop/style/string_concatenation.rb +1 -1
  239. data/lib/rubocop/cop/style/string_literals.rb +1 -1
  240. data/lib/rubocop/cop/style/string_methods.rb +1 -1
  241. data/lib/rubocop/cop/style/super_arguments.rb +65 -17
  242. data/lib/rubocop/cop/style/ternary_parentheses.rb +1 -1
  243. data/lib/rubocop/cop/style/top_level_method_definition.rb +1 -1
  244. data/lib/rubocop/cop/style/trailing_comma_in_arguments.rb +4 -1
  245. data/lib/rubocop/cop/style/while_until_modifier.rb +0 -1
  246. data/lib/rubocop/cop/style/yoda_condition.rb +8 -4
  247. data/lib/rubocop/cop/style/yoda_expression.rb +2 -1
  248. data/lib/rubocop/cop/util.rb +12 -5
  249. data/lib/rubocop/cop/utils/format_string.rb +7 -5
  250. data/lib/rubocop/cop/variable_force/variable.rb +14 -2
  251. data/lib/rubocop/cop/variable_force/variable_table.rb +3 -3
  252. data/lib/rubocop/cops_documentation_generator.rb +13 -13
  253. data/lib/rubocop/directive_comment.rb +44 -10
  254. data/lib/rubocop/formatter/formatter_set.rb +1 -1
  255. data/lib/rubocop/lsp/diagnostic.rb +189 -0
  256. data/lib/rubocop/lsp/logger.rb +2 -2
  257. data/lib/rubocop/lsp/routes.rb +7 -23
  258. data/lib/rubocop/lsp/runtime.rb +17 -49
  259. data/lib/rubocop/lsp/server.rb +0 -2
  260. data/lib/rubocop/lsp/stdin_runner.rb +83 -0
  261. data/lib/rubocop/options.rb +28 -12
  262. data/lib/rubocop/path_util.rb +15 -8
  263. data/lib/rubocop/plugin/configuration_integrator.rb +143 -0
  264. data/lib/rubocop/plugin/load_error.rb +26 -0
  265. data/lib/rubocop/plugin/loader.rb +100 -0
  266. data/lib/rubocop/plugin/not_supported_error.rb +29 -0
  267. data/lib/rubocop/plugin.rb +39 -0
  268. data/lib/rubocop/rake_task.rb +4 -1
  269. data/lib/rubocop/result_cache.rb +13 -13
  270. data/lib/rubocop/rspec/cop_helper.rb +9 -0
  271. data/lib/rubocop/rspec/expect_offense.rb +6 -2
  272. data/lib/rubocop/rspec/shared_contexts.rb +4 -1
  273. data/lib/rubocop/rspec/support.rb +1 -2
  274. data/lib/rubocop/runner.rb +5 -6
  275. data/lib/rubocop/server/cache.rb +35 -2
  276. data/lib/rubocop/server/cli.rb +2 -2
  277. data/lib/rubocop/target_finder.rb +1 -0
  278. data/lib/rubocop/target_ruby.rb +15 -0
  279. data/lib/rubocop/version.rb +17 -2
  280. data/lib/rubocop.rb +11 -0
  281. data/lib/ruby_lsp/rubocop/addon.rb +75 -0
  282. data/lib/ruby_lsp/rubocop/runtime_adapter.rb +47 -0
  283. metadata +53 -15
  284. data/lib/rubocop/rspec/host_environment_simulation_helper.rb +0 -28
@@ -2,8 +2,10 @@
2
2
 
3
3
  require 'digest'
4
4
  require 'pathname'
5
+ require 'yaml'
5
6
  require_relative '../cache_config'
6
7
  require_relative '../config_finder'
8
+ require_relative '../path_util'
7
9
 
8
10
  #
9
11
  # This code is based on https://github.com/fohte/rubocop-daemon.
@@ -50,9 +52,11 @@ module RuboCop
50
52
  end.find(&:exist?)
51
53
  version_data = lockfile_path&.read || RuboCop::Version::STRING
52
54
  config_data = Pathname(ConfigFinder.find_config_path(Dir.pwd)).read
53
- todo_data = (rubocop_todo = Pathname('.rubocop_todo.yml')).exist? ? rubocop_todo.read : ''
55
+ yaml = YAML.safe_load(config_data, permitted_classes: [Regexp, Symbol], aliases: true)
56
+ inherit_from_data = inherit_from_data(yaml)
57
+ require_data = require_data(yaml)
54
58
 
55
- Digest::SHA1.hexdigest(version_data + config_data + todo_data)
59
+ Digest::SHA1.hexdigest(version_data + config_data + inherit_from_data + require_data)
56
60
  end
57
61
  # rubocop:enable Metrics/AbcSize
58
62
 
@@ -164,6 +168,35 @@ module RuboCop
164
168
  def write_version_file(version)
165
169
  version_path.write(version)
166
170
  end
171
+
172
+ def inherit_from_data(yaml)
173
+ return '' unless (inherit_from_paths = yaml['inherit_from'])
174
+
175
+ Array(inherit_from_paths).map do |path|
176
+ next if PathUtil.remote_file?(path)
177
+
178
+ path = Pathname(path)
179
+
180
+ path.exist? ? path.read : ''
181
+ end.join
182
+ end
183
+
184
+ def require_data(yaml)
185
+ return '' unless (require_paths = yaml['require'])
186
+
187
+ Array(require_paths).map do |path|
188
+ # NOTE: This targets only relative or absolute path specifications.
189
+ # For example, specifications like `require: rubocop-performance`,
190
+ # which can be loaded from `$LOAD_PATH`, are ignored.
191
+ next unless path.start_with?('.', '/')
192
+
193
+ # NOTE: `.so` files are not typically specified, so only `.rb` files are targeted.
194
+ path = "#{path}.rb" unless path.end_with?('.rb')
195
+ path = Pathname(path)
196
+
197
+ path.exist? ? path.read : ''
198
+ end.join
199
+ end
167
200
  end
168
201
  end
169
202
  end
@@ -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
@@ -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,
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  # This module holds the RuboCop version information.
5
5
  module Version
6
- STRING = '1.69.2'
6
+ STRING = '1.72.2'
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.filter_map do |loaded_feature|
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'
@@ -293,6 +294,7 @@ require_relative 'rubocop/cop/lint/ambiguous_operator'
293
294
  require_relative 'rubocop/cop/lint/ambiguous_operator_precedence'
294
295
  require_relative 'rubocop/cop/lint/ambiguous_range'
295
296
  require_relative 'rubocop/cop/lint/ambiguous_regexp_literal'
297
+ require_relative 'rubocop/cop/lint/array_literal_in_regexp'
296
298
  require_relative 'rubocop/cop/lint/assignment_in_condition'
297
299
  require_relative 'rubocop/cop/lint/big_decimal_new'
298
300
  require_relative 'rubocop/cop/lint/binary_operator_with_identical_operands'
@@ -300,7 +302,9 @@ require_relative 'rubocop/cop/lint/boolean_symbol'
300
302
  require_relative 'rubocop/cop/lint/circular_argument_reference'
301
303
  require_relative 'rubocop/cop/lint/constant_definition_in_block'
302
304
  require_relative 'rubocop/cop/lint/constant_overwritten_in_rescue'
305
+ require_relative 'rubocop/cop/lint/constant_reassignment'
303
306
  require_relative 'rubocop/cop/lint/constant_resolution'
307
+ require_relative 'rubocop/cop/lint/cop_directive_syntax'
304
308
  require_relative 'rubocop/cop/lint/debugger'
305
309
  require_relative 'rubocop/cop/lint/deprecated_class_methods'
306
310
  require_relative 'rubocop/cop/lint/deprecated_constants'
@@ -329,6 +333,7 @@ require_relative 'rubocop/cop/lint/empty_in_pattern'
329
333
  require_relative 'rubocop/cop/lint/empty_interpolation'
330
334
  require_relative 'rubocop/cop/lint/empty_when'
331
335
  require_relative 'rubocop/cop/lint/ensure_return'
336
+ require_relative 'rubocop/cop/lint/shared_mutable_default'
332
337
  require_relative 'rubocop/cop/lint/erb_new_arguments'
333
338
  require_relative 'rubocop/cop/lint/flip_flop'
334
339
  require_relative 'rubocop/cop/lint/float_comparison'
@@ -380,6 +385,7 @@ require_relative 'rubocop/cop/lint/redundant_require_statement'
380
385
  require_relative 'rubocop/cop/lint/redundant_safe_navigation'
381
386
  require_relative 'rubocop/cop/lint/redundant_splat_expansion'
382
387
  require_relative 'rubocop/cop/lint/redundant_string_coercion'
388
+ require_relative 'rubocop/cop/lint/redundant_type_conversion'
383
389
  require_relative 'rubocop/cop/lint/redundant_with_index'
384
390
  require_relative 'rubocop/cop/lint/redundant_with_object'
385
391
  require_relative 'rubocop/cop/lint/refinement_import_methods'
@@ -401,6 +407,7 @@ require_relative 'rubocop/cop/lint/shadowed_exception'
401
407
  require_relative 'rubocop/cop/lint/shadowing_outer_local_variable'
402
408
  require_relative 'rubocop/cop/lint/struct_new_override'
403
409
  require_relative 'rubocop/cop/lint/suppressed_exception'
410
+ require_relative 'rubocop/cop/lint/suppressed_exception_in_number_conversion'
404
411
  require_relative 'rubocop/cop/lint/symbol_conversion'
405
412
  require_relative 'rubocop/cop/lint/syntax'
406
413
  require_relative 'rubocop/cop/lint/to_enum_arguments'
@@ -421,6 +428,7 @@ require_relative 'rubocop/cop/lint/uri_escape_unescape'
421
428
  require_relative 'rubocop/cop/lint/uri_regexp'
422
429
  require_relative 'rubocop/cop/lint/useless_access_modifier'
423
430
  require_relative 'rubocop/cop/lint/useless_assignment'
431
+ require_relative 'rubocop/cop/lint/useless_constant_scoping'
424
432
  require_relative 'rubocop/cop/lint/useless_defined'
425
433
  require_relative 'rubocop/cop/lint/useless_else_without_rescue'
426
434
  require_relative 'rubocop/cop/lint/useless_method_definition'
@@ -557,6 +565,7 @@ require_relative 'rubocop/cop/style/hash_conversion'
557
565
  require_relative 'rubocop/cop/style/hash_each_methods'
558
566
  require_relative 'rubocop/cop/style/hash_except'
559
567
  require_relative 'rubocop/cop/style/hash_like_case'
568
+ require_relative 'rubocop/cop/style/hash_slice'
560
569
  require_relative 'rubocop/cop/style/hash_syntax'
561
570
  require_relative 'rubocop/cop/style/hash_transform_keys'
562
571
  require_relative 'rubocop/cop/style/hash_transform_values'
@@ -573,6 +582,7 @@ require_relative 'rubocop/cop/style/inverse_methods'
573
582
  require_relative 'rubocop/cop/style/inline_comment'
574
583
  require_relative 'rubocop/cop/style/invertible_unless_condition'
575
584
  require_relative 'rubocop/cop/style/ip_addresses'
585
+ require_relative 'rubocop/cop/style/it_assignment'
576
586
  require_relative 'rubocop/cop/style/keyword_arguments_merging'
577
587
  require_relative 'rubocop/cop/style/keyword_parameters_order'
578
588
  require_relative 'rubocop/cop/style/lambda'
@@ -598,6 +608,7 @@ require_relative 'rubocop/cop/style/redundant_each'
598
608
  require_relative 'rubocop/cop/style/redundant_fetch_block'
599
609
  require_relative 'rubocop/cop/style/redundant_file_extension_in_require'
600
610
  require_relative 'rubocop/cop/style/redundant_filter_chain'
611
+ require_relative 'rubocop/cop/style/redundant_format'
601
612
  require_relative 'rubocop/cop/style/redundant_heredoc_delimiter_quotes'
602
613
  require_relative 'rubocop/cop/style/redundant_initialize'
603
614
  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.69.2
4
+ version: 1.72.2
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: 2024-12-12 00:00:00.000000000 Z
12
+ date: 2025-02-17 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: 3.17.0
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.36.2
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.36.2
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
@@ -985,22 +1017,28 @@ files:
985
1017
  - lib/rubocop/formatter/worst_offenders_formatter.rb
986
1018
  - lib/rubocop/lockfile.rb
987
1019
  - lib/rubocop/lsp.rb
1020
+ - lib/rubocop/lsp/diagnostic.rb
988
1021
  - lib/rubocop/lsp/logger.rb
989
1022
  - lib/rubocop/lsp/routes.rb
990
1023
  - lib/rubocop/lsp/runtime.rb
991
1024
  - lib/rubocop/lsp/server.rb
992
1025
  - lib/rubocop/lsp/severity.rb
1026
+ - lib/rubocop/lsp/stdin_runner.rb
993
1027
  - lib/rubocop/magic_comment.rb
994
1028
  - lib/rubocop/name_similarity.rb
995
1029
  - lib/rubocop/options.rb
996
1030
  - lib/rubocop/path_util.rb
997
1031
  - lib/rubocop/platform.rb
1032
+ - lib/rubocop/plugin.rb
1033
+ - lib/rubocop/plugin/configuration_integrator.rb
1034
+ - lib/rubocop/plugin/load_error.rb
1035
+ - lib/rubocop/plugin/loader.rb
1036
+ - lib/rubocop/plugin/not_supported_error.rb
998
1037
  - lib/rubocop/rake_task.rb
999
1038
  - lib/rubocop/remote_config.rb
1000
1039
  - lib/rubocop/result_cache.rb
1001
1040
  - lib/rubocop/rspec/cop_helper.rb
1002
1041
  - lib/rubocop/rspec/expect_offense.rb
1003
- - lib/rubocop/rspec/host_environment_simulation_helper.rb
1004
1042
  - lib/rubocop/rspec/parallel_formatter.rb
1005
1043
  - lib/rubocop/rspec/shared_contexts.rb
1006
1044
  - lib/rubocop/rspec/support.rb
@@ -1030,17 +1068,18 @@ files:
1030
1068
  - lib/rubocop/version.rb
1031
1069
  - lib/rubocop/warning.rb
1032
1070
  - lib/rubocop/yaml_duplication_checker.rb
1071
+ - lib/ruby_lsp/rubocop/addon.rb
1072
+ - lib/ruby_lsp/rubocop/runtime_adapter.rb
1033
1073
  homepage: https://github.com/rubocop/rubocop
1034
1074
  licenses:
1035
1075
  - MIT
1036
1076
  metadata:
1037
1077
  homepage_uri: https://rubocop.org/
1038
- changelog_uri: https://github.com/rubocop/rubocop/releases/tag/v1.69.2
1078
+ changelog_uri: https://github.com/rubocop/rubocop/releases/tag/v1.72.2
1039
1079
  source_code_uri: https://github.com/rubocop/rubocop/
1040
- documentation_uri: https://docs.rubocop.org/rubocop/1.69/
1080
+ documentation_uri: https://docs.rubocop.org/rubocop/1.72/
1041
1081
  bug_tracker_uri: https://github.com/rubocop/rubocop/issues
1042
1082
  rubygems_mfa_required: 'true'
1043
- post_install_message:
1044
1083
  rdoc_options: []
1045
1084
  require_paths:
1046
1085
  - lib
@@ -1055,8 +1094,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1055
1094
  - !ruby/object:Gem::Version
1056
1095
  version: '0'
1057
1096
  requirements: []
1058
- rubygems_version: 3.4.22
1059
- signing_key:
1097
+ rubygems_version: 3.6.2
1060
1098
  specification_version: 4
1061
1099
  summary: Automatic Ruby code style checking tool.
1062
1100
  test_files: []
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # RuboCop can be run in contexts where unexpected other libraries are included,
4
- # which may interfere with its normal behavior. In order to test those
5
- # situations, it may be necessary to require another library for the duration
6
- # of one spec
7
- module HostEnvironmentSimulatorHelper
8
- def in_its_own_process_with(*files)
9
- if ::Process.respond_to?(:fork)
10
- pid = ::Process.fork do
11
- # Need to write coverage result under different name
12
- if defined?(SimpleCov)
13
- SimpleCov.command_name "rspec-fork-#{Process.pid}"
14
- SimpleCov.pid = Process.pid
15
- end
16
-
17
- files.each { |file| require file }
18
- yield
19
- end
20
- ::Process.wait(pid)
21
-
22
- # assert that the block did not fail
23
- expect($CHILD_STATUS).to be_success
24
- else
25
- warn 'Process.fork is not available.'
26
- end
27
- end
28
- end