rubocop 1.71.2 → 1.72.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/config/default.yml +28 -0
  4. data/lib/rubocop/cli/command/suggest_extensions.rb +7 -1
  5. data/lib/rubocop/comment_config.rb +1 -1
  6. data/lib/rubocop/config.rb +4 -0
  7. data/lib/rubocop/config_loader.rb +40 -8
  8. data/lib/rubocop/config_loader_resolver.rb +21 -7
  9. data/lib/rubocop/cop/internal_affairs/location_exists.rb +116 -0
  10. data/lib/rubocop/cop/internal_affairs/node_pattern_groups/ast_walker.rb +1 -1
  11. data/lib/rubocop/cop/internal_affairs/plugin.rb +33 -0
  12. data/lib/rubocop/cop/internal_affairs/undefined_config.rb +7 -1
  13. data/lib/rubocop/cop/internal_affairs.rb +1 -16
  14. data/lib/rubocop/cop/layout/block_alignment.rb +2 -0
  15. data/lib/rubocop/cop/layout/else_alignment.rb +1 -1
  16. data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +1 -1
  17. data/lib/rubocop/cop/layout/empty_lines_around_method_body.rb +22 -2
  18. data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +1 -1
  19. data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +2 -2
  20. data/lib/rubocop/cop/layout/space_around_method_call_operator.rb +1 -1
  21. data/lib/rubocop/cop/lint/cop_directive_syntax.rb +84 -0
  22. data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +1 -1
  23. data/lib/rubocop/cop/lint/redundant_type_conversion.rb +221 -0
  24. data/lib/rubocop/cop/lint/suppressed_exception_in_number_conversion.rb +111 -0
  25. data/lib/rubocop/cop/lint/useless_constant_scoping.rb +74 -0
  26. data/lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb +7 -7
  27. data/lib/rubocop/cop/mixin/alignment.rb +2 -2
  28. data/lib/rubocop/cop/mixin/comments_help.rb +1 -1
  29. data/lib/rubocop/cop/mixin/hash_shorthand_syntax.rb +18 -18
  30. data/lib/rubocop/cop/mixin/hash_transform_method.rb +74 -74
  31. data/lib/rubocop/cop/mixin/percent_literal.rb +1 -1
  32. data/lib/rubocop/cop/mixin/range_help.rb +3 -3
  33. data/lib/rubocop/cop/mixin/string_help.rb +1 -1
  34. data/lib/rubocop/cop/naming/predicate_name.rb +44 -0
  35. data/lib/rubocop/cop/style/redundant_format.rb +222 -0
  36. data/lib/rubocop/cop/style/redundant_parentheses.rb +17 -3
  37. data/lib/rubocop/cop/util.rb +1 -1
  38. data/lib/rubocop/cop/utils/format_string.rb +7 -5
  39. data/lib/rubocop/directive_comment.rb +35 -2
  40. data/lib/rubocop/lsp/runtime.rb +2 -0
  41. data/lib/rubocop/lsp/server.rb +0 -2
  42. data/lib/rubocop/options.rb +26 -11
  43. data/lib/rubocop/path_util.rb +4 -0
  44. data/lib/rubocop/plugin/configuration_integrator.rb +141 -0
  45. data/lib/rubocop/plugin/load_error.rb +35 -0
  46. data/lib/rubocop/plugin/loader.rb +100 -0
  47. data/lib/rubocop/plugin/not_supported_error.rb +29 -0
  48. data/lib/rubocop/plugin.rb +39 -0
  49. data/lib/rubocop/rake_task.rb +4 -1
  50. data/lib/rubocop/server/cache.rb +35 -2
  51. data/lib/rubocop/server/cli.rb +2 -2
  52. data/lib/rubocop/version.rb +17 -2
  53. data/lib/rubocop.rb +5 -0
  54. data/lib/ruby_lsp/rubocop/addon.rb +7 -10
  55. data/lib/ruby_lsp/rubocop/{wraps_built_in_lsp_runtime.rb → runtime_adapter.rb} +5 -8
  56. metadata +35 -9
@@ -2,14 +2,14 @@
2
2
 
3
3
  require_relative '../../rubocop'
4
4
  require_relative '../../rubocop/lsp/logger'
5
- require_relative 'wraps_built_in_lsp_runtime'
5
+ require_relative 'runtime_adapter'
6
6
 
7
7
  module RubyLsp
8
8
  module RuboCop
9
9
  # A Ruby LSP add-on for RuboCop.
10
10
  class Addon < RubyLsp::Addon
11
11
  def initializer
12
- @wraps_built_in_lsp_runtime = nil
12
+ @runtime_adapter = nil
13
13
  end
14
14
 
15
15
  def name
@@ -21,11 +21,8 @@ module RubyLsp
21
21
  "Activating RuboCop LSP addon #{::RuboCop::Version::STRING}.", prefix: '[RuboCop]'
22
22
  )
23
23
 
24
- ::RuboCop::LSP.enable
25
- @wraps_built_in_lsp_runtime = WrapsBuiltinLspRuntime.new
26
-
27
- global_state.register_formatter('rubocop', @wraps_built_in_lsp_runtime)
28
-
24
+ @runtime_adapter = RuntimeAdapter.new
25
+ global_state.register_formatter('rubocop', @runtime_adapter)
29
26
  register_additional_file_watchers(global_state, message_queue)
30
27
 
31
28
  ::RuboCop::LSP::Logger.log(
@@ -34,7 +31,7 @@ module RubyLsp
34
31
  end
35
32
 
36
33
  def deactivate
37
- @wraps_built_in_lsp_runtime = nil
34
+ @runtime_adapter = nil
38
35
  end
39
36
 
40
37
  # rubocop:disable Layout/LineLength, Metrics/MethodLength
@@ -67,9 +64,9 @@ module RubyLsp
67
64
  def workspace_did_change_watched_files(changes)
68
65
  return unless changes.any? { |change| change[:uri].end_with?('.rubocop.yml') }
69
66
 
70
- @wraps_built_in_lsp_runtime.init!
67
+ @runtime_adapter = RuntimeAdapter.new
71
68
 
72
- ::RuboCop::LSP::Logger(<<~MESSAGE, prefix: '[RuboCop]')
69
+ ::RuboCop::LSP::Logger.log(<<~MESSAGE, prefix: '[RuboCop]')
73
70
  Re-initialized RuboCop LSP addon #{::RuboCop::Version::STRING} due to .rubocop.yml file change.
74
71
  MESSAGE
75
72
  end
@@ -4,18 +4,15 @@ require_relative '../../rubocop/lsp/runtime'
4
4
 
5
5
  module RubyLsp
6
6
  module RuboCop
7
- # Wrap RuboCop's built-in runtime for Ruby LSP's add-on.
8
- class WrapsBuiltinLspRuntime
7
+ # Provides an adapter to bridge RuboCop's built-in LSP runtime with Ruby LSP's add-on.
8
+ # @api private
9
+ class RuntimeAdapter
9
10
  include RubyLsp::Requests::Support::Formatter
10
11
 
11
12
  def initialize
12
- init!
13
- end
14
-
15
- def init!
16
- config = ::RuboCop::ConfigStore.new
13
+ config_store = ::RuboCop::ConfigStore.new
17
14
 
18
- @runtime = ::RuboCop::LSP::Runtime.new(config)
15
+ @runtime = ::RuboCop::LSP::Runtime.new(config_store)
19
16
  end
20
17
 
21
18
  def run_diagnostic(uri, document)
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.71.2
4
+ version: 1.72.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bozhidar Batsov
@@ -9,7 +9,7 @@ authors:
9
9
  - Yuji Nakayama
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2025-02-04 00:00:00.000000000 Z
12
+ date: 2025-02-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
@@ -29,16 +29,30 @@ dependencies:
29
29
  name: language_server-protocol
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - ">="
32
+ - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: 3.17.0
34
+ version: 3.17.0.2
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - ">="
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
+ - - "~>"
40
54
  - !ruby/object:Gem::Version
41
- version: 3.17.0
55
+ version: 1.1.0
42
56
  - !ruby/object:Gem::Dependency
43
57
  name: parallel
44
58
  requirement: !ruby/object:Gem::Requirement
@@ -272,6 +286,7 @@ files:
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
@@ -288,6 +303,7 @@ files:
288
303
  - lib/rubocop/cop/internal_affairs/offense_location_keyword.rb
289
304
  - lib/rubocop/cop/internal_affairs/on_send_without_on_csend.rb
290
305
  - lib/rubocop/cop/internal_affairs/operator_keyword.rb
306
+ - lib/rubocop/cop/internal_affairs/plugin.rb
291
307
  - lib/rubocop/cop/internal_affairs/processed_source_buffer_name.rb
292
308
  - lib/rubocop/cop/internal_affairs/redundant_context_config_parameter.rb
293
309
  - lib/rubocop/cop/internal_affairs/redundant_described_class_as_subject.rb
@@ -419,6 +435,7 @@ files:
419
435
  - lib/rubocop/cop/lint/constant_overwritten_in_rescue.rb
420
436
  - lib/rubocop/cop/lint/constant_reassignment.rb
421
437
  - lib/rubocop/cop/lint/constant_resolution.rb
438
+ - lib/rubocop/cop/lint/cop_directive_syntax.rb
422
439
  - lib/rubocop/cop/lint/debugger.rb
423
440
  - lib/rubocop/cop/lint/deprecated_class_methods.rb
424
441
  - lib/rubocop/cop/lint/deprecated_constants.rb
@@ -498,6 +515,7 @@ files:
498
515
  - lib/rubocop/cop/lint/redundant_safe_navigation.rb
499
516
  - lib/rubocop/cop/lint/redundant_splat_expansion.rb
500
517
  - lib/rubocop/cop/lint/redundant_string_coercion.rb
518
+ - lib/rubocop/cop/lint/redundant_type_conversion.rb
501
519
  - lib/rubocop/cop/lint/redundant_with_index.rb
502
520
  - lib/rubocop/cop/lint/redundant_with_object.rb
503
521
  - lib/rubocop/cop/lint/refinement_import_methods.rb
@@ -520,6 +538,7 @@ files:
520
538
  - lib/rubocop/cop/lint/shared_mutable_default.rb
521
539
  - lib/rubocop/cop/lint/struct_new_override.rb
522
540
  - lib/rubocop/cop/lint/suppressed_exception.rb
541
+ - lib/rubocop/cop/lint/suppressed_exception_in_number_conversion.rb
523
542
  - lib/rubocop/cop/lint/symbol_conversion.rb
524
543
  - lib/rubocop/cop/lint/syntax.rb
525
544
  - lib/rubocop/cop/lint/to_enum_arguments.rb
@@ -540,6 +559,7 @@ files:
540
559
  - lib/rubocop/cop/lint/uri_regexp.rb
541
560
  - lib/rubocop/cop/lint/useless_access_modifier.rb
542
561
  - lib/rubocop/cop/lint/useless_assignment.rb
562
+ - lib/rubocop/cop/lint/useless_constant_scoping.rb
543
563
  - lib/rubocop/cop/lint/useless_defined.rb
544
564
  - lib/rubocop/cop/lint/useless_else_without_rescue.rb
545
565
  - lib/rubocop/cop/lint/useless_method_definition.rb
@@ -865,6 +885,7 @@ files:
865
885
  - lib/rubocop/cop/style/redundant_fetch_block.rb
866
886
  - lib/rubocop/cop/style/redundant_file_extension_in_require.rb
867
887
  - lib/rubocop/cop/style/redundant_filter_chain.rb
888
+ - lib/rubocop/cop/style/redundant_format.rb
868
889
  - lib/rubocop/cop/style/redundant_freeze.rb
869
890
  - lib/rubocop/cop/style/redundant_heredoc_delimiter_quotes.rb
870
891
  - lib/rubocop/cop/style/redundant_initialize.rb
@@ -1008,6 +1029,11 @@ files:
1008
1029
  - lib/rubocop/options.rb
1009
1030
  - lib/rubocop/path_util.rb
1010
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
1011
1037
  - lib/rubocop/rake_task.rb
1012
1038
  - lib/rubocop/remote_config.rb
1013
1039
  - lib/rubocop/result_cache.rb
@@ -1043,15 +1069,15 @@ files:
1043
1069
  - lib/rubocop/warning.rb
1044
1070
  - lib/rubocop/yaml_duplication_checker.rb
1045
1071
  - lib/ruby_lsp/rubocop/addon.rb
1046
- - lib/ruby_lsp/rubocop/wraps_built_in_lsp_runtime.rb
1072
+ - lib/ruby_lsp/rubocop/runtime_adapter.rb
1047
1073
  homepage: https://github.com/rubocop/rubocop
1048
1074
  licenses:
1049
1075
  - MIT
1050
1076
  metadata:
1051
1077
  homepage_uri: https://rubocop.org/
1052
- changelog_uri: https://github.com/rubocop/rubocop/releases/tag/v1.71.2
1078
+ changelog_uri: https://github.com/rubocop/rubocop/releases/tag/v1.72.0
1053
1079
  source_code_uri: https://github.com/rubocop/rubocop/
1054
- documentation_uri: https://docs.rubocop.org/rubocop/1.71/
1080
+ documentation_uri: https://docs.rubocop.org/rubocop/1.72/
1055
1081
  bug_tracker_uri: https://github.com/rubocop/rubocop/issues
1056
1082
  rubygems_mfa_required: 'true'
1057
1083
  rdoc_options: []