rubocop 1.71.2 → 1.75.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +3 -3
- data/config/default.yml +118 -21
- data/config/internal_affairs.yml +20 -0
- data/config/obsoletion.yml +3 -1
- data/lib/rubocop/cli/command/suggest_extensions.rb +7 -1
- data/lib/rubocop/cli.rb +1 -1
- data/lib/rubocop/comment_config.rb +1 -1
- data/lib/rubocop/config.rb +39 -6
- data/lib/rubocop/config_loader.rb +48 -9
- data/lib/rubocop/config_loader_resolver.rb +24 -9
- data/lib/rubocop/config_obsoletion/extracted_cop.rb +4 -3
- data/lib/rubocop/config_obsoletion/renamed_cop.rb +18 -3
- data/lib/rubocop/config_obsoletion.rb +46 -2
- data/lib/rubocop/config_validator.rb +2 -1
- data/lib/rubocop/cop/internal_affairs/example_description.rb +7 -3
- data/lib/rubocop/cop/internal_affairs/location_exists.rb +116 -0
- data/lib/rubocop/cop/internal_affairs/node_pattern_groups/ast_walker.rb +1 -1
- data/lib/rubocop/cop/internal_affairs/node_pattern_groups.rb +2 -1
- data/lib/rubocop/cop/internal_affairs/node_type_group.rb +91 -0
- data/lib/rubocop/cop/internal_affairs/plugin.rb +33 -0
- data/lib/rubocop/cop/internal_affairs/redundant_described_class_as_subject.rb +6 -5
- data/lib/rubocop/cop/internal_affairs/undefined_config.rb +7 -1
- data/lib/rubocop/cop/internal_affairs.rb +2 -16
- data/lib/rubocop/cop/layout/block_alignment.rb +2 -0
- data/lib/rubocop/cop/layout/block_end_newline.rb +1 -0
- data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +4 -4
- data/lib/rubocop/cop/layout/def_end_alignment.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 +3 -3
- data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +27 -1
- data/lib/rubocop/cop/layout/empty_lines_around_block_body.rb +1 -0
- data/lib/rubocop/cop/layout/empty_lines_around_method_body.rb +22 -2
- data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +1 -1
- data/lib/rubocop/cop/layout/indentation_width.rb +1 -0
- data/lib/rubocop/cop/layout/line_length.rb +8 -4
- data/lib/rubocop/cop/layout/multiline_block_layout.rb +1 -0
- data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +2 -2
- data/lib/rubocop/cop/layout/multiline_method_parameter_line_breaks.rb +1 -0
- data/lib/rubocop/cop/layout/redundant_line_break.rb +9 -5
- data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +3 -5
- data/lib/rubocop/cop/layout/space_around_method_call_operator.rb +1 -1
- data/lib/rubocop/cop/layout/space_around_operators.rb +4 -1
- data/lib/rubocop/cop/layout/space_before_block_braces.rb +1 -0
- data/lib/rubocop/cop/layout/space_inside_block_braces.rb +1 -0
- data/lib/rubocop/cop/lint/cop_directive_syntax.rb +84 -0
- data/lib/rubocop/cop/lint/debugger.rb +2 -2
- data/lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb +1 -1
- data/lib/rubocop/cop/lint/duplicate_methods.rb +2 -17
- data/lib/rubocop/cop/lint/empty_conditional_body.rb +14 -64
- data/lib/rubocop/cop/lint/erb_new_arguments.rb +0 -6
- data/lib/rubocop/cop/lint/float_comparison.rb +1 -6
- data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +1 -1
- data/lib/rubocop/cop/lint/literal_as_condition.rb +103 -9
- data/lib/rubocop/cop/lint/mixed_case_range.rb +2 -2
- data/lib/rubocop/cop/lint/nested_method_definition.rb +1 -1
- data/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb +3 -3
- data/lib/rubocop/cop/lint/or_assignment_to_constant.rb +1 -1
- data/lib/rubocop/cop/lint/raise_exception.rb +29 -10
- data/lib/rubocop/cop/lint/redundant_require_statement.rb +0 -21
- data/lib/rubocop/cop/lint/redundant_type_conversion.rb +261 -0
- data/lib/rubocop/cop/lint/redundant_with_index.rb +3 -0
- data/lib/rubocop/cop/lint/redundant_with_object.rb +3 -0
- data/lib/rubocop/cop/lint/return_in_void_context.rb +9 -11
- data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +8 -1
- data/lib/rubocop/cop/lint/shared_mutable_default.rb +12 -1
- 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/to_enum_arguments.rb +1 -1
- data/lib/rubocop/cop/lint/top_level_return_with_argument.rb +1 -1
- data/lib/rubocop/cop/lint/unexpected_block_arity.rb +2 -0
- data/lib/rubocop/cop/lint/unreachable_code.rb +1 -0
- data/lib/rubocop/cop/lint/unreachable_loop.rb +5 -5
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +1 -0
- data/lib/rubocop/cop/lint/useless_constant_scoping.rb +71 -0
- data/lib/rubocop/cop/lint/void.rb +7 -0
- data/lib/rubocop/cop/metrics/block_length.rb +1 -0
- data/lib/rubocop/cop/metrics/method_length.rb +1 -0
- data/lib/rubocop/cop/metrics/utils/code_length_calculator.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 +2 -2
- data/lib/rubocop/cop/mixin/check_single_line_suitability.rb +2 -2
- data/lib/rubocop/cop/mixin/comments_help.rb +1 -1
- data/lib/rubocop/cop/mixin/def_node.rb +1 -1
- data/lib/rubocop/cop/mixin/empty_lines_around_body.rb +1 -1
- data/lib/rubocop/cop/mixin/forbidden_identifiers.rb +20 -0
- data/lib/rubocop/cop/mixin/forbidden_pattern.rb +16 -0
- data/lib/rubocop/cop/mixin/frozen_string_literal.rb +0 -1
- data/lib/rubocop/cop/mixin/hash_shorthand_syntax.rb +18 -18
- data/lib/rubocop/cop/mixin/hash_subset.rb +19 -4
- data/lib/rubocop/cop/mixin/hash_transform_method.rb +74 -74
- data/lib/rubocop/cop/mixin/method_complexity.rb +1 -0
- data/lib/rubocop/cop/mixin/percent_literal.rb +1 -1
- data/lib/rubocop/cop/mixin/range_help.rb +15 -3
- data/lib/rubocop/cop/mixin/string_help.rb +1 -1
- data/lib/rubocop/cop/mixin/target_ruby_version.rb +1 -1
- data/lib/rubocop/cop/mixin/trailing_comma.rb +12 -0
- data/lib/rubocop/cop/naming/block_forwarding.rb +3 -3
- data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +1 -1
- data/lib/rubocop/cop/naming/method_name.rb +64 -8
- data/lib/rubocop/cop/naming/predicate_name.rb +44 -0
- data/lib/rubocop/cop/naming/variable_name.rb +51 -6
- data/lib/rubocop/cop/registry.rb +9 -6
- data/lib/rubocop/cop/style/accessor_grouping.rb +19 -5
- data/lib/rubocop/cop/style/arguments_forwarding.rb +3 -3
- data/lib/rubocop/cop/style/array_intersect.rb +39 -28
- data/lib/rubocop/cop/style/block_delimiters.rb +2 -1
- data/lib/rubocop/cop/style/class_and_module_children.rb +29 -7
- data/lib/rubocop/cop/style/class_equality_comparison.rb +1 -1
- data/lib/rubocop/cop/style/collection_methods.rb +1 -0
- data/lib/rubocop/cop/style/combinable_loops.rb +1 -0
- data/lib/rubocop/cop/style/commented_keyword.rb +10 -3
- data/lib/rubocop/cop/style/comparable_between.rb +75 -0
- data/lib/rubocop/cop/style/conditional_assignment.rb +3 -0
- data/lib/rubocop/cop/style/double_negation.rb +2 -2
- data/lib/rubocop/cop/style/empty_literal.rb +4 -0
- data/lib/rubocop/cop/style/endless_method.rb +163 -18
- data/lib/rubocop/cop/style/expand_path_arguments.rb +2 -7
- data/lib/rubocop/cop/style/explicit_block_argument.rb +2 -2
- data/lib/rubocop/cop/style/exponential_notation.rb +2 -2
- data/lib/rubocop/cop/style/for.rb +1 -0
- data/lib/rubocop/cop/style/format_string_token.rb +38 -11
- data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +3 -2
- data/lib/rubocop/cop/style/global_std_stream.rb +3 -0
- data/lib/rubocop/cop/style/guard_clause.rb +2 -1
- data/lib/rubocop/cop/style/hash_each_methods.rb +3 -2
- data/lib/rubocop/cop/style/hash_fetch_chain.rb +105 -0
- data/lib/rubocop/cop/style/hash_syntax.rb +3 -0
- data/lib/rubocop/cop/style/if_inside_else.rb +10 -13
- data/lib/rubocop/cop/style/if_unless_modifier.rb +2 -2
- data/lib/rubocop/cop/style/inverse_methods.rb +9 -5
- data/lib/rubocop/cop/style/invertible_unless_condition.rb +2 -2
- data/lib/rubocop/cop/style/ip_addresses.rb +2 -2
- data/lib/rubocop/cop/style/it_block_parameter.rb +100 -0
- data/lib/rubocop/cop/style/keyword_parameters_order.rb +13 -7
- data/lib/rubocop/cop/style/lambda.rb +1 -0
- data/lib/rubocop/cop/style/line_end_concatenation.rb +10 -4
- data/lib/rubocop/cop/style/map_into_array.rb +1 -0
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +4 -4
- data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +2 -1
- data/lib/rubocop/cop/style/multiline_block_chain.rb +2 -1
- data/lib/rubocop/cop/style/multiline_method_signature.rb +1 -9
- data/lib/rubocop/cop/style/next.rb +44 -0
- data/lib/rubocop/cop/style/object_then.rb +1 -0
- data/lib/rubocop/cop/style/proc.rb +1 -0
- data/lib/rubocop/cop/style/raise_args.rb +8 -8
- data/lib/rubocop/cop/style/redundant_begin.rb +1 -0
- data/lib/rubocop/cop/style/redundant_condition.rb +57 -0
- data/lib/rubocop/cop/style/redundant_current_directory_in_path.rb +14 -4
- data/lib/rubocop/cop/style/redundant_format.rb +257 -0
- data/lib/rubocop/cop/style/redundant_freeze.rb +1 -1
- data/lib/rubocop/cop/style/redundant_parentheses.rb +20 -5
- data/lib/rubocop/cop/style/redundant_self.rb +1 -0
- data/lib/rubocop/cop/style/redundant_self_assignment.rb +1 -1
- data/lib/rubocop/cop/style/redundant_sort_by.rb +17 -1
- data/lib/rubocop/cop/style/rescue_modifier.rb +3 -0
- data/lib/rubocop/cop/style/return_nil.rb +2 -2
- data/lib/rubocop/cop/style/select_by_regexp.rb +4 -1
- data/lib/rubocop/cop/style/single_line_do_end_block.rb +3 -1
- data/lib/rubocop/cop/style/single_line_methods.rb +3 -3
- data/lib/rubocop/cop/style/sole_nested_conditional.rb +41 -106
- data/lib/rubocop/cop/style/string_concatenation.rb +1 -1
- data/lib/rubocop/cop/style/super_arguments.rb +1 -2
- data/lib/rubocop/cop/style/symbol_proc.rb +2 -0
- data/lib/rubocop/cop/style/top_level_method_definition.rb +1 -0
- 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/util.rb +2 -2
- data/lib/rubocop/cop/utils/format_string.rb +10 -5
- data/lib/rubocop/cop/variable_force/scope.rb +1 -1
- data/lib/rubocop/cop/variable_force/variable.rb +2 -7
- data/lib/rubocop/cop/variable_force.rb +1 -1
- data/lib/rubocop/cops_documentation_generator.rb +12 -1
- data/lib/rubocop/directive_comment.rb +36 -3
- data/lib/rubocop/ext/regexp_node.rb +0 -1
- data/lib/rubocop/lsp/runtime.rb +6 -4
- data/lib/rubocop/lsp/server.rb +0 -2
- data/lib/rubocop/lsp/stdin_runner.rb +3 -1
- data/lib/rubocop/magic_comment.rb +8 -0
- data/lib/rubocop/options.rb +26 -11
- data/lib/rubocop/path_util.rb +4 -0
- data/lib/rubocop/plugin/configuration_integrator.rb +143 -0
- data/lib/rubocop/plugin/load_error.rb +26 -0
- data/lib/rubocop/plugin/loader.rb +100 -0
- data/lib/rubocop/plugin/not_supported_error.rb +29 -0
- data/lib/rubocop/plugin.rb +46 -0
- data/lib/rubocop/rake_task.rb +4 -1
- data/lib/rubocop/rspec/cop_helper.rb +13 -1
- data/lib/rubocop/rspec/shared_contexts.rb +35 -0
- data/lib/rubocop/rspec/support.rb +3 -0
- data/lib/rubocop/runner.rb +5 -1
- data/lib/rubocop/server/cache.rb +47 -11
- data/lib/rubocop/server/cli.rb +2 -2
- data/lib/rubocop/target_finder.rb +1 -1
- data/lib/rubocop/target_ruby.rb +1 -1
- data/lib/rubocop/version.rb +30 -8
- data/lib/rubocop.rb +10 -1
- data/lib/ruby_lsp/rubocop/addon.rb +7 -10
- data/lib/ruby_lsp/rubocop/{wraps_built_in_lsp_runtime.rb → runtime_adapter.rb} +25 -10
- metadata +43 -12
- data/lib/rubocop/cop/utils/regexp_ranges.rb +0 -113
data/lib/rubocop/server/cache.rb
CHANGED
@@ -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,12 @@ 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
|
-
|
55
|
+
yaml = load_erb_templated_yaml(config_data)
|
54
56
|
|
55
|
-
|
57
|
+
inherit_from_data = inherit_from_data(yaml)
|
58
|
+
require_data = require_data(yaml)
|
59
|
+
|
60
|
+
Digest::SHA1.hexdigest(version_data + config_data + inherit_from_data + require_data)
|
56
61
|
end
|
57
62
|
# rubocop:enable Metrics/AbcSize
|
58
63
|
|
@@ -72,7 +77,6 @@ module RuboCop
|
|
72
77
|
File.expand_path(File.join(cache_root_dir, 'server'))
|
73
78
|
end
|
74
79
|
|
75
|
-
# rubocop:disable Metrics/MethodLength
|
76
80
|
def cache_root_dir_from_config
|
77
81
|
CacheConfig.root_dir do
|
78
82
|
# `RuboCop::ConfigStore` has heavy dependencies, this is a lightweight implementation
|
@@ -83,13 +87,7 @@ module RuboCop
|
|
83
87
|
# Returns early if `CacheRootDirectory` is not used before requiring `erb` or `yaml`.
|
84
88
|
next unless file_contents.include?('CacheRootDirectory')
|
85
89
|
|
86
|
-
|
87
|
-
yaml_code = ERB.new(file_contents).result
|
88
|
-
|
89
|
-
require 'yaml'
|
90
|
-
config_yaml = YAML.safe_load(
|
91
|
-
yaml_code, permitted_classes: [Regexp, Symbol], aliases: true
|
92
|
-
)
|
90
|
+
config_yaml = load_erb_templated_yaml(file_contents)
|
93
91
|
|
94
92
|
# For compatibility with Ruby 3.0 or lower.
|
95
93
|
if Gem::Version.new(Psych::VERSION) < Gem::Version.new('4.0.0')
|
@@ -99,7 +97,6 @@ module RuboCop
|
|
99
97
|
config_yaml&.dig('AllCops', 'CacheRootDirectory')
|
100
98
|
end
|
101
99
|
end
|
102
|
-
# rubocop:enable Metrics/MethodLength
|
103
100
|
|
104
101
|
def port_path
|
105
102
|
dir.join('port')
|
@@ -164,6 +161,45 @@ module RuboCop
|
|
164
161
|
def write_version_file(version)
|
165
162
|
version_path.write(version)
|
166
163
|
end
|
164
|
+
|
165
|
+
def inherit_from_data(yaml)
|
166
|
+
return '' unless (inherit_from_paths = yaml['inherit_from'])
|
167
|
+
|
168
|
+
Array(inherit_from_paths).map do |path|
|
169
|
+
next if PathUtil.remote_file?(path)
|
170
|
+
|
171
|
+
path = Pathname(path)
|
172
|
+
|
173
|
+
path.exist? ? path.read : ''
|
174
|
+
end.join
|
175
|
+
end
|
176
|
+
|
177
|
+
def require_data(yaml)
|
178
|
+
return '' unless (require_paths = yaml['require'])
|
179
|
+
|
180
|
+
Array(require_paths).map do |path|
|
181
|
+
# NOTE: This targets only relative or absolute path specifications.
|
182
|
+
# For example, specifications like `require: rubocop-performance`,
|
183
|
+
# which can be loaded from `$LOAD_PATH`, are ignored.
|
184
|
+
next unless path.start_with?('.', '/')
|
185
|
+
|
186
|
+
# NOTE: `.so` files are not typically specified, so only `.rb` files are targeted.
|
187
|
+
path = "#{path}.rb" unless path.end_with?('.rb')
|
188
|
+
path = Pathname(path)
|
189
|
+
|
190
|
+
path.exist? ? path.read : ''
|
191
|
+
end.join
|
192
|
+
end
|
193
|
+
|
194
|
+
private
|
195
|
+
|
196
|
+
def load_erb_templated_yaml(content)
|
197
|
+
require 'erb'
|
198
|
+
yaml_code = ERB.new(content).result
|
199
|
+
|
200
|
+
require 'yaml'
|
201
|
+
YAML.safe_load(yaml_code, permitted_classes: [Regexp, Symbol], aliases: true)
|
202
|
+
end
|
167
203
|
end
|
168
204
|
end
|
169
205
|
end
|
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') }
|
@@ -175,7 +175,7 @@ module RuboCop
|
|
175
175
|
end
|
176
176
|
|
177
177
|
def ruby_executable?(file)
|
178
|
-
return false
|
178
|
+
return false if !File.extname(file).empty? || !File.exist?(file) || File.empty?(file)
|
179
179
|
|
180
180
|
first_line = File.open(file, &:readline)
|
181
181
|
/#!.*(#{ruby_interpreters(file).join('|')})/.match?(first_line)
|
data/lib/rubocop/target_ruby.rb
CHANGED
@@ -4,7 +4,7 @@ module RuboCop
|
|
4
4
|
# The kind of Ruby that code inspected by RuboCop is written in.
|
5
5
|
# @api private
|
6
6
|
class TargetRuby
|
7
|
-
KNOWN_RUBIES = [2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 3.0, 3.1, 3.2, 3.3, 3.4].freeze
|
7
|
+
KNOWN_RUBIES = [2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5].freeze
|
8
8
|
DEFAULT_VERSION = 2.7
|
9
9
|
|
10
10
|
OBSOLETE_RUBIES = {
|
data/lib/rubocop/version.rb
CHANGED
@@ -3,13 +3,15 @@
|
|
3
3
|
module RuboCop
|
4
4
|
# This module holds the RuboCop version information.
|
5
5
|
module Version
|
6
|
-
STRING = '1.
|
6
|
+
STRING = '1.75.2'
|
7
7
|
|
8
8
|
MSG = '%<version>s (using %<parser_version>s, ' \
|
9
9
|
'rubocop-ast %<rubocop_ast_version>s, ' \
|
10
10
|
'analyzing as Ruby %<target_ruby_version>s, ' \
|
11
11
|
'running on %<ruby_engine>s %<ruby_version>s)%<server_mode>s [%<ruby_platform>s]'
|
12
12
|
|
13
|
+
MINIMUM_PARSABLE_PRISM_VERSION = 3.3
|
14
|
+
|
13
15
|
CANONICAL_FEATURE_NAMES = {
|
14
16
|
'Rspec' => 'RSpec', 'Graphql' => 'GraphQL', 'Md' => 'Markdown', 'Factory_bot' => 'FactoryBot',
|
15
17
|
'Thread_safety' => 'ThreadSafety', 'Rspec_rails' => 'RSpecRails'
|
@@ -20,11 +22,14 @@ module RuboCop
|
|
20
22
|
|
21
23
|
# NOTE: Marked as private but used by gems like standard.
|
22
24
|
# @api private
|
25
|
+
# rubocop:disable Metrics/MethodLength
|
23
26
|
def self.version(debug: false, env: nil)
|
24
27
|
if debug
|
25
|
-
|
28
|
+
target_ruby_version = target_ruby_version(env)
|
29
|
+
verbose_version = format(MSG, version: STRING,
|
30
|
+
parser_version: parser_version(target_ruby_version),
|
26
31
|
rubocop_ast_version: RuboCop::AST::Version::STRING,
|
27
|
-
target_ruby_version: target_ruby_version
|
32
|
+
target_ruby_version: target_ruby_version,
|
28
33
|
ruby_engine: RUBY_ENGINE, ruby_version: RUBY_VERSION,
|
29
34
|
server_mode: server_mode,
|
30
35
|
ruby_platform: RUBY_PLATFORM)
|
@@ -41,6 +46,7 @@ module RuboCop
|
|
41
46
|
STRING
|
42
47
|
end
|
43
48
|
end
|
49
|
+
# rubocop:enable Metrics/MethodLength
|
44
50
|
|
45
51
|
# @api private
|
46
52
|
def self.verbose(env: nil)
|
@@ -48,24 +54,37 @@ module RuboCop
|
|
48
54
|
end
|
49
55
|
|
50
56
|
# @api private
|
51
|
-
def self.parser_version
|
57
|
+
def self.parser_version(target_ruby_version)
|
52
58
|
config_path = ConfigFinder.find_config_path(Dir.pwd)
|
53
59
|
yaml = Util.silence_warnings do
|
54
60
|
ConfigLoader.load_yaml_configuration(config_path)
|
55
61
|
end
|
62
|
+
parser_engine = yaml.dig('AllCops', 'ParserEngine')
|
63
|
+
parser_engine_text = ", #{parser_engine}" if parser_engine
|
56
64
|
|
57
|
-
if
|
58
|
-
|
59
|
-
"Prism #{Prism::VERSION}"
|
65
|
+
if target_ruby_version >= MINIMUM_PARSABLE_PRISM_VERSION
|
66
|
+
"Parser #{Parser::VERSION}, Prism #{Prism::VERSION}#{parser_engine_text}"
|
60
67
|
else
|
61
68
|
"Parser #{Parser::VERSION}"
|
62
69
|
end
|
63
70
|
end
|
64
71
|
|
65
72
|
# @api private
|
73
|
+
# rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
|
66
74
|
def self.extension_versions(env)
|
75
|
+
plugins = config_for_pwd(env).loaded_plugins
|
76
|
+
plugin_versions = plugins.filter_map do |plugin|
|
77
|
+
next if Plugin::BUILTIN_INTERNAL_PLUGINS.key?(plugin.about.name)
|
78
|
+
next unless (plugin_name = plugin.about.name)
|
79
|
+
|
80
|
+
" - #{plugin_name} #{plugin.about.version}"
|
81
|
+
end
|
82
|
+
|
83
|
+
# TODO: It needs to be maintained for a while to ensure compatibility with extensions that
|
84
|
+
# don't support plugins. It should be removed in future once the old style becomes obsolete.
|
67
85
|
features = config_for_pwd(env).loaded_features.sort
|
68
|
-
features.
|
86
|
+
features -= plugins.map { |plugin| plugin.about.name }
|
87
|
+
feature_versions = features.filter_map do |loaded_feature|
|
69
88
|
next unless (match = loaded_feature.match(/rubocop-(?<feature>.*)/))
|
70
89
|
|
71
90
|
# Get the expected name of the folder containing the extension code.
|
@@ -84,7 +103,10 @@ module RuboCop
|
|
84
103
|
|
85
104
|
" - #{loaded_feature} #{feature_version}"
|
86
105
|
end
|
106
|
+
|
107
|
+
plugin_versions + feature_versions
|
87
108
|
end
|
109
|
+
# rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
|
88
110
|
|
89
111
|
# @api private
|
90
112
|
def self.target_ruby_version(env)
|
data/lib/rubocop.rb
CHANGED
@@ -75,6 +75,8 @@ require_relative 'rubocop/cop/mixin/allowed_identifiers'
|
|
75
75
|
require_relative 'rubocop/cop/mixin/allowed_methods'
|
76
76
|
require_relative 'rubocop/cop/mixin/allowed_pattern'
|
77
77
|
require_relative 'rubocop/cop/mixin/allowed_receivers'
|
78
|
+
require_relative 'rubocop/cop/mixin/forbidden_identifiers'
|
79
|
+
require_relative 'rubocop/cop/mixin/forbidden_pattern'
|
78
80
|
require_relative 'rubocop/cop/mixin/auto_corrector' # rubocop:todo Naming/InclusiveLanguage
|
79
81
|
require_relative 'rubocop/cop/mixin/check_assignment'
|
80
82
|
require_relative 'rubocop/cop/mixin/check_line_breakable'
|
@@ -148,7 +150,6 @@ require_relative 'rubocop/cop/mixin/comments_help' # relies on visibility_help
|
|
148
150
|
require_relative 'rubocop/cop/mixin/def_node' # relies on visibility_help
|
149
151
|
|
150
152
|
require_relative 'rubocop/cop/utils/format_string'
|
151
|
-
require_relative 'rubocop/cop/utils/regexp_ranges'
|
152
153
|
|
153
154
|
require_relative 'rubocop/cop/migration/department_name'
|
154
155
|
|
@@ -304,6 +305,7 @@ require_relative 'rubocop/cop/lint/constant_definition_in_block'
|
|
304
305
|
require_relative 'rubocop/cop/lint/constant_overwritten_in_rescue'
|
305
306
|
require_relative 'rubocop/cop/lint/constant_reassignment'
|
306
307
|
require_relative 'rubocop/cop/lint/constant_resolution'
|
308
|
+
require_relative 'rubocop/cop/lint/cop_directive_syntax'
|
307
309
|
require_relative 'rubocop/cop/lint/debugger'
|
308
310
|
require_relative 'rubocop/cop/lint/deprecated_class_methods'
|
309
311
|
require_relative 'rubocop/cop/lint/deprecated_constants'
|
@@ -384,6 +386,7 @@ require_relative 'rubocop/cop/lint/redundant_require_statement'
|
|
384
386
|
require_relative 'rubocop/cop/lint/redundant_safe_navigation'
|
385
387
|
require_relative 'rubocop/cop/lint/redundant_splat_expansion'
|
386
388
|
require_relative 'rubocop/cop/lint/redundant_string_coercion'
|
389
|
+
require_relative 'rubocop/cop/lint/redundant_type_conversion'
|
387
390
|
require_relative 'rubocop/cop/lint/redundant_with_index'
|
388
391
|
require_relative 'rubocop/cop/lint/redundant_with_object'
|
389
392
|
require_relative 'rubocop/cop/lint/refinement_import_methods'
|
@@ -405,6 +408,7 @@ require_relative 'rubocop/cop/lint/shadowed_exception'
|
|
405
408
|
require_relative 'rubocop/cop/lint/shadowing_outer_local_variable'
|
406
409
|
require_relative 'rubocop/cop/lint/struct_new_override'
|
407
410
|
require_relative 'rubocop/cop/lint/suppressed_exception'
|
411
|
+
require_relative 'rubocop/cop/lint/suppressed_exception_in_number_conversion'
|
408
412
|
require_relative 'rubocop/cop/lint/symbol_conversion'
|
409
413
|
require_relative 'rubocop/cop/lint/syntax'
|
410
414
|
require_relative 'rubocop/cop/lint/to_enum_arguments'
|
@@ -425,6 +429,7 @@ require_relative 'rubocop/cop/lint/uri_escape_unescape'
|
|
425
429
|
require_relative 'rubocop/cop/lint/uri_regexp'
|
426
430
|
require_relative 'rubocop/cop/lint/useless_access_modifier'
|
427
431
|
require_relative 'rubocop/cop/lint/useless_assignment'
|
432
|
+
require_relative 'rubocop/cop/lint/useless_constant_scoping'
|
428
433
|
require_relative 'rubocop/cop/lint/useless_defined'
|
429
434
|
require_relative 'rubocop/cop/lint/useless_else_without_rescue'
|
430
435
|
require_relative 'rubocop/cop/lint/useless_method_definition'
|
@@ -506,6 +511,7 @@ require_relative 'rubocop/cop/style/combinable_loops'
|
|
506
511
|
require_relative 'rubocop/cop/style/command_literal'
|
507
512
|
require_relative 'rubocop/cop/style/comment_annotation'
|
508
513
|
require_relative 'rubocop/cop/style/commented_keyword'
|
514
|
+
require_relative 'rubocop/cop/style/comparable_between'
|
509
515
|
require_relative 'rubocop/cop/style/comparable_clamp'
|
510
516
|
require_relative 'rubocop/cop/style/concat_array_literals'
|
511
517
|
require_relative 'rubocop/cop/style/conditional_assignment'
|
@@ -560,6 +566,7 @@ require_relative 'rubocop/cop/style/hash_as_last_array_item'
|
|
560
566
|
require_relative 'rubocop/cop/style/hash_conversion'
|
561
567
|
require_relative 'rubocop/cop/style/hash_each_methods'
|
562
568
|
require_relative 'rubocop/cop/style/hash_except'
|
569
|
+
require_relative 'rubocop/cop/style/hash_fetch_chain'
|
563
570
|
require_relative 'rubocop/cop/style/hash_like_case'
|
564
571
|
require_relative 'rubocop/cop/style/hash_slice'
|
565
572
|
require_relative 'rubocop/cop/style/hash_syntax'
|
@@ -579,6 +586,7 @@ require_relative 'rubocop/cop/style/inline_comment'
|
|
579
586
|
require_relative 'rubocop/cop/style/invertible_unless_condition'
|
580
587
|
require_relative 'rubocop/cop/style/ip_addresses'
|
581
588
|
require_relative 'rubocop/cop/style/it_assignment'
|
589
|
+
require_relative 'rubocop/cop/style/it_block_parameter'
|
582
590
|
require_relative 'rubocop/cop/style/keyword_arguments_merging'
|
583
591
|
require_relative 'rubocop/cop/style/keyword_parameters_order'
|
584
592
|
require_relative 'rubocop/cop/style/lambda'
|
@@ -604,6 +612,7 @@ require_relative 'rubocop/cop/style/redundant_each'
|
|
604
612
|
require_relative 'rubocop/cop/style/redundant_fetch_block'
|
605
613
|
require_relative 'rubocop/cop/style/redundant_file_extension_in_require'
|
606
614
|
require_relative 'rubocop/cop/style/redundant_filter_chain'
|
615
|
+
require_relative 'rubocop/cop/style/redundant_format'
|
607
616
|
require_relative 'rubocop/cop/style/redundant_heredoc_delimiter_quotes'
|
608
617
|
require_relative 'rubocop/cop/style/redundant_initialize'
|
609
618
|
require_relative 'rubocop/cop/style/redundant_interpolation_unfreeze'
|
@@ -2,14 +2,14 @@
|
|
2
2
|
|
3
3
|
require_relative '../../rubocop'
|
4
4
|
require_relative '../../rubocop/lsp/logger'
|
5
|
-
require_relative '
|
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
|
-
@
|
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
|
-
|
25
|
-
@
|
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
|
-
@
|
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
|
-
@
|
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,26 +4,33 @@ require_relative '../../rubocop/lsp/runtime'
|
|
4
4
|
|
5
5
|
module RubyLsp
|
6
6
|
module RuboCop
|
7
|
-
#
|
8
|
-
|
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
|
-
|
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(
|
15
|
+
@runtime = ::RuboCop::LSP::Runtime.new(config_store)
|
19
16
|
end
|
20
17
|
|
21
18
|
def run_diagnostic(uri, document)
|
22
|
-
@runtime.offenses(
|
19
|
+
@runtime.offenses(
|
20
|
+
uri_to_path(uri),
|
21
|
+
document.source,
|
22
|
+
document.encoding,
|
23
|
+
prism_result: prism_result(document)
|
24
|
+
)
|
23
25
|
end
|
24
26
|
|
25
27
|
def run_formatting(uri, document)
|
26
|
-
@runtime.format(
|
28
|
+
@runtime.format(
|
29
|
+
uri_to_path(uri),
|
30
|
+
document.source,
|
31
|
+
command: 'rubocop.formatAutocorrects',
|
32
|
+
prism_result: prism_result(document)
|
33
|
+
)
|
27
34
|
end
|
28
35
|
|
29
36
|
def run_range_formatting(_uri, _partial_source, _base_indentation)
|
@@ -45,6 +52,14 @@ module RubyLsp
|
|
45
52
|
uri.to_s.delete_prefix('file://')
|
46
53
|
end
|
47
54
|
end
|
55
|
+
|
56
|
+
def prism_result(document)
|
57
|
+
prism_result = document.parse_result
|
58
|
+
|
59
|
+
# NOTE: `prism_result` must be `Prism::ParseLexResult` compatible object.
|
60
|
+
# This is for compatibility parsed result unsupported.
|
61
|
+
prism_result.is_a?(Prism::ParseLexResult) ? prism_result : nil
|
62
|
+
end
|
48
63
|
end
|
49
64
|
end
|
50
65
|
end
|
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.
|
4
|
+
version: 1.75.2
|
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-
|
12
|
+
date: 2025-04-03 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:
|
55
|
+
version: 1.1.0
|
42
56
|
- !ruby/object:Gem::Dependency
|
43
57
|
name: parallel
|
44
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -113,7 +127,7 @@ dependencies:
|
|
113
127
|
requirements:
|
114
128
|
- - ">="
|
115
129
|
- !ruby/object:Gem::Version
|
116
|
-
version: 1.
|
130
|
+
version: 1.44.0
|
117
131
|
- - "<"
|
118
132
|
- !ruby/object:Gem::Version
|
119
133
|
version: '2.0'
|
@@ -123,7 +137,7 @@ dependencies:
|
|
123
137
|
requirements:
|
124
138
|
- - ">="
|
125
139
|
- !ruby/object:Gem::Version
|
126
|
-
version: 1.
|
140
|
+
version: 1.44.0
|
127
141
|
- - "<"
|
128
142
|
- !ruby/object:Gem::Version
|
129
143
|
version: '2.0'
|
@@ -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
|
@@ -282,12 +297,14 @@ files:
|
|
282
297
|
- lib/rubocop/cop/internal_affairs/node_pattern_groups.rb
|
283
298
|
- lib/rubocop/cop/internal_affairs/node_pattern_groups/ast_processor.rb
|
284
299
|
- lib/rubocop/cop/internal_affairs/node_pattern_groups/ast_walker.rb
|
300
|
+
- lib/rubocop/cop/internal_affairs/node_type_group.rb
|
285
301
|
- lib/rubocop/cop/internal_affairs/node_type_multiple_predicates.rb
|
286
302
|
- lib/rubocop/cop/internal_affairs/node_type_predicate.rb
|
287
303
|
- lib/rubocop/cop/internal_affairs/numblock_handler.rb
|
288
304
|
- lib/rubocop/cop/internal_affairs/offense_location_keyword.rb
|
289
305
|
- lib/rubocop/cop/internal_affairs/on_send_without_on_csend.rb
|
290
306
|
- lib/rubocop/cop/internal_affairs/operator_keyword.rb
|
307
|
+
- lib/rubocop/cop/internal_affairs/plugin.rb
|
291
308
|
- lib/rubocop/cop/internal_affairs/processed_source_buffer_name.rb
|
292
309
|
- lib/rubocop/cop/internal_affairs/redundant_context_config_parameter.rb
|
293
310
|
- lib/rubocop/cop/internal_affairs/redundant_described_class_as_subject.rb
|
@@ -419,6 +436,7 @@ files:
|
|
419
436
|
- lib/rubocop/cop/lint/constant_overwritten_in_rescue.rb
|
420
437
|
- lib/rubocop/cop/lint/constant_reassignment.rb
|
421
438
|
- lib/rubocop/cop/lint/constant_resolution.rb
|
439
|
+
- lib/rubocop/cop/lint/cop_directive_syntax.rb
|
422
440
|
- lib/rubocop/cop/lint/debugger.rb
|
423
441
|
- lib/rubocop/cop/lint/deprecated_class_methods.rb
|
424
442
|
- lib/rubocop/cop/lint/deprecated_constants.rb
|
@@ -498,6 +516,7 @@ files:
|
|
498
516
|
- lib/rubocop/cop/lint/redundant_safe_navigation.rb
|
499
517
|
- lib/rubocop/cop/lint/redundant_splat_expansion.rb
|
500
518
|
- lib/rubocop/cop/lint/redundant_string_coercion.rb
|
519
|
+
- lib/rubocop/cop/lint/redundant_type_conversion.rb
|
501
520
|
- lib/rubocop/cop/lint/redundant_with_index.rb
|
502
521
|
- lib/rubocop/cop/lint/redundant_with_object.rb
|
503
522
|
- lib/rubocop/cop/lint/refinement_import_methods.rb
|
@@ -520,6 +539,7 @@ files:
|
|
520
539
|
- lib/rubocop/cop/lint/shared_mutable_default.rb
|
521
540
|
- lib/rubocop/cop/lint/struct_new_override.rb
|
522
541
|
- lib/rubocop/cop/lint/suppressed_exception.rb
|
542
|
+
- lib/rubocop/cop/lint/suppressed_exception_in_number_conversion.rb
|
523
543
|
- lib/rubocop/cop/lint/symbol_conversion.rb
|
524
544
|
- lib/rubocop/cop/lint/syntax.rb
|
525
545
|
- lib/rubocop/cop/lint/to_enum_arguments.rb
|
@@ -540,6 +560,7 @@ files:
|
|
540
560
|
- lib/rubocop/cop/lint/uri_regexp.rb
|
541
561
|
- lib/rubocop/cop/lint/useless_access_modifier.rb
|
542
562
|
- lib/rubocop/cop/lint/useless_assignment.rb
|
563
|
+
- lib/rubocop/cop/lint/useless_constant_scoping.rb
|
543
564
|
- lib/rubocop/cop/lint/useless_defined.rb
|
544
565
|
- lib/rubocop/cop/lint/useless_else_without_rescue.rb
|
545
566
|
- lib/rubocop/cop/lint/useless_method_definition.rb
|
@@ -595,6 +616,8 @@ files:
|
|
595
616
|
- lib/rubocop/cop/mixin/endless_method_rewriter.rb
|
596
617
|
- lib/rubocop/cop/mixin/enforce_superclass.rb
|
597
618
|
- lib/rubocop/cop/mixin/first_element_line_break.rb
|
619
|
+
- lib/rubocop/cop/mixin/forbidden_identifiers.rb
|
620
|
+
- lib/rubocop/cop/mixin/forbidden_pattern.rb
|
598
621
|
- lib/rubocop/cop/mixin/frozen_string_literal.rb
|
599
622
|
- lib/rubocop/cop/mixin/gem_declaration.rb
|
600
623
|
- lib/rubocop/cop/mixin/gemspec_help.rb
|
@@ -708,6 +731,7 @@ files:
|
|
708
731
|
- lib/rubocop/cop/style/command_literal.rb
|
709
732
|
- lib/rubocop/cop/style/comment_annotation.rb
|
710
733
|
- lib/rubocop/cop/style/commented_keyword.rb
|
734
|
+
- lib/rubocop/cop/style/comparable_between.rb
|
711
735
|
- lib/rubocop/cop/style/comparable_clamp.rb
|
712
736
|
- lib/rubocop/cop/style/concat_array_literals.rb
|
713
737
|
- lib/rubocop/cop/style/conditional_assignment.rb
|
@@ -762,6 +786,7 @@ files:
|
|
762
786
|
- lib/rubocop/cop/style/hash_conversion.rb
|
763
787
|
- lib/rubocop/cop/style/hash_each_methods.rb
|
764
788
|
- lib/rubocop/cop/style/hash_except.rb
|
789
|
+
- lib/rubocop/cop/style/hash_fetch_chain.rb
|
765
790
|
- lib/rubocop/cop/style/hash_like_case.rb
|
766
791
|
- lib/rubocop/cop/style/hash_slice.rb
|
767
792
|
- lib/rubocop/cop/style/hash_syntax.rb
|
@@ -781,6 +806,7 @@ files:
|
|
781
806
|
- lib/rubocop/cop/style/invertible_unless_condition.rb
|
782
807
|
- lib/rubocop/cop/style/ip_addresses.rb
|
783
808
|
- lib/rubocop/cop/style/it_assignment.rb
|
809
|
+
- lib/rubocop/cop/style/it_block_parameter.rb
|
784
810
|
- lib/rubocop/cop/style/keyword_arguments_merging.rb
|
785
811
|
- lib/rubocop/cop/style/keyword_parameters_order.rb
|
786
812
|
- lib/rubocop/cop/style/lambda.rb
|
@@ -865,6 +891,7 @@ files:
|
|
865
891
|
- lib/rubocop/cop/style/redundant_fetch_block.rb
|
866
892
|
- lib/rubocop/cop/style/redundant_file_extension_in_require.rb
|
867
893
|
- lib/rubocop/cop/style/redundant_filter_chain.rb
|
894
|
+
- lib/rubocop/cop/style/redundant_format.rb
|
868
895
|
- lib/rubocop/cop/style/redundant_freeze.rb
|
869
896
|
- lib/rubocop/cop/style/redundant_heredoc_delimiter_quotes.rb
|
870
897
|
- lib/rubocop/cop/style/redundant_initialize.rb
|
@@ -950,7 +977,6 @@ files:
|
|
950
977
|
- lib/rubocop/cop/team.rb
|
951
978
|
- lib/rubocop/cop/util.rb
|
952
979
|
- lib/rubocop/cop/utils/format_string.rb
|
953
|
-
- lib/rubocop/cop/utils/regexp_ranges.rb
|
954
980
|
- lib/rubocop/cop/variable_force.rb
|
955
981
|
- lib/rubocop/cop/variable_force/assignment.rb
|
956
982
|
- lib/rubocop/cop/variable_force/branch.rb
|
@@ -1008,6 +1034,11 @@ files:
|
|
1008
1034
|
- lib/rubocop/options.rb
|
1009
1035
|
- lib/rubocop/path_util.rb
|
1010
1036
|
- lib/rubocop/platform.rb
|
1037
|
+
- lib/rubocop/plugin.rb
|
1038
|
+
- lib/rubocop/plugin/configuration_integrator.rb
|
1039
|
+
- lib/rubocop/plugin/load_error.rb
|
1040
|
+
- lib/rubocop/plugin/loader.rb
|
1041
|
+
- lib/rubocop/plugin/not_supported_error.rb
|
1011
1042
|
- lib/rubocop/rake_task.rb
|
1012
1043
|
- lib/rubocop/remote_config.rb
|
1013
1044
|
- lib/rubocop/result_cache.rb
|
@@ -1043,15 +1074,15 @@ files:
|
|
1043
1074
|
- lib/rubocop/warning.rb
|
1044
1075
|
- lib/rubocop/yaml_duplication_checker.rb
|
1045
1076
|
- lib/ruby_lsp/rubocop/addon.rb
|
1046
|
-
- lib/ruby_lsp/rubocop/
|
1077
|
+
- lib/ruby_lsp/rubocop/runtime_adapter.rb
|
1047
1078
|
homepage: https://github.com/rubocop/rubocop
|
1048
1079
|
licenses:
|
1049
1080
|
- MIT
|
1050
1081
|
metadata:
|
1051
1082
|
homepage_uri: https://rubocop.org/
|
1052
|
-
changelog_uri: https://github.com/rubocop/rubocop/releases/tag/v1.
|
1083
|
+
changelog_uri: https://github.com/rubocop/rubocop/releases/tag/v1.75.2
|
1053
1084
|
source_code_uri: https://github.com/rubocop/rubocop/
|
1054
|
-
documentation_uri: https://docs.rubocop.org/rubocop/1.
|
1085
|
+
documentation_uri: https://docs.rubocop.org/rubocop/1.75/
|
1055
1086
|
bug_tracker_uri: https://github.com/rubocop/rubocop/issues
|
1056
1087
|
rubygems_mfa_required: 'true'
|
1057
1088
|
rdoc_options: []
|