rubocop 1.86.0 → 1.86.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/config/default.yml +14 -3
- data/lib/rubocop/cli/command/auto_generate_config.rb +27 -1
- data/lib/rubocop/cli/command/list_enabled_cops_for.rb +40 -0
- data/lib/rubocop/cli/command/show_docs_url.rb +3 -7
- data/lib/rubocop/cli/command/suggest_extensions.rb +1 -1
- data/lib/rubocop/cli.rb +4 -7
- data/lib/rubocop/comment_config.rb +12 -15
- data/lib/rubocop/config.rb +13 -9
- data/lib/rubocop/config_loader_resolver.rb +2 -1
- data/lib/rubocop/cop/autocorrect_logic.rb +2 -1
- data/lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb +1 -5
- data/lib/rubocop/cop/correctors.rb +28 -0
- data/lib/rubocop/cop/documentation.rb +2 -3
- data/lib/rubocop/cop/exclude_limit.rb +31 -5
- data/lib/rubocop/cop/gemspec/require_mfa.rb +3 -3
- data/lib/rubocop/cop/internal_affairs/location_line_equality_comparison.rb +1 -0
- data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +1 -1
- data/lib/rubocop/cop/layout/end_alignment.rb +4 -2
- data/lib/rubocop/cop/layout/line_length.rb +5 -3
- data/lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +26 -1
- data/lib/rubocop/cop/lint/duplicate_methods.rb +10 -5
- data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +3 -13
- data/lib/rubocop/cop/lint/require_relative_self_path.rb +2 -0
- data/lib/rubocop/cop/lint/syntax.rb +25 -1
- data/lib/rubocop/cop/lint/unused_method_argument.rb +10 -0
- data/lib/rubocop/cop/lint/useless_assignment.rb +3 -8
- data/lib/rubocop/cop/lint/utils/nil_receiver_checker.rb +33 -8
- data/lib/rubocop/cop/mixin/configurable_max.rb +6 -5
- data/lib/rubocop/cop/mixin.rb +85 -0
- data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +1 -1
- data/lib/rubocop/cop/offense.rb +8 -0
- data/lib/rubocop/cop/registry.rb +19 -24
- data/lib/rubocop/cop/style/access_modifier_declarations.rb +14 -2
- data/lib/rubocop/cop/style/copyright.rb +21 -10
- data/lib/rubocop/cop/style/date_time.rb +2 -2
- data/lib/rubocop/cop/style/document_dynamic_eval_definition.rb +6 -1
- data/lib/rubocop/cop/style/guard_clause.rb +9 -6
- data/lib/rubocop/cop/style/hash_lookup_method.rb +12 -7
- data/lib/rubocop/cop/style/if_inside_else.rb +16 -7
- data/lib/rubocop/cop/style/module_member_existence_check.rb +7 -14
- data/lib/rubocop/cop/style/one_class_per_file.rb +24 -4
- data/lib/rubocop/cop/style/reduce_to_hash.rb +16 -0
- data/lib/rubocop/cop/style/redundant_line_continuation.rb +16 -0
- data/lib/rubocop/cop/style/redundant_parentheses.rb +4 -1
- data/lib/rubocop/cop/style/redundant_self.rb +2 -2
- data/lib/rubocop/cop/style/redundant_struct_keyword_init.rb +10 -0
- data/lib/rubocop/cop/style/regexp_literal.rb +29 -0
- data/lib/rubocop/cop/style/sole_nested_conditional.rb +4 -2
- data/lib/rubocop/cop/style/symbol_proc.rb +3 -3
- data/lib/rubocop/cop/style/while_until_modifier.rb +16 -0
- data/lib/rubocop/cop/team.rb +86 -35
- data/lib/rubocop/formatter/disabled_config_formatter.rb +4 -1
- data/lib/rubocop/lsp/runtime.rb +1 -2
- data/lib/rubocop/mcp/server.rb +2 -0
- data/lib/rubocop/options.rb +8 -4
- data/lib/rubocop/rspec/cop_helper.rb +8 -0
- data/lib/rubocop/rspec/shared_contexts.rb +21 -0
- data/lib/rubocop/runner.rb +77 -55
- data/lib/rubocop/target_finder.rb +13 -6
- data/lib/rubocop/version.rb +1 -1
- data/lib/rubocop.rb +7 -96
- metadata +7 -4
|
@@ -212,6 +212,27 @@ RSpec.shared_context 'lsp' do
|
|
|
212
212
|
end
|
|
213
213
|
end
|
|
214
214
|
|
|
215
|
+
RSpec.shared_context 'with exclude limit tracking' do
|
|
216
|
+
around do |example|
|
|
217
|
+
Dir.mktmpdir('rubocop-exclude-limit') do |dir|
|
|
218
|
+
RuboCop::ExcludeLimit.tmp_dir = Pathname.new(dir)
|
|
219
|
+
example.run
|
|
220
|
+
ensure
|
|
221
|
+
RuboCop::ExcludeLimit.tmp_dir = nil
|
|
222
|
+
end
|
|
223
|
+
end
|
|
224
|
+
|
|
225
|
+
# Reads exclude_limit values from the tmp files written by ExcludeLimit.
|
|
226
|
+
# Returns a hash like { 'Max' => 81 } or nil if no values were written.
|
|
227
|
+
def read_exclude_limit(cop, parameter_name = nil)
|
|
228
|
+
if parameter_name
|
|
229
|
+
read_exclude_limit(cop)[parameter_name]
|
|
230
|
+
else
|
|
231
|
+
RuboCop::ExcludeLimit.read_limits(cop.class.badge.to_s)
|
|
232
|
+
end
|
|
233
|
+
end
|
|
234
|
+
end
|
|
235
|
+
|
|
215
236
|
RSpec.shared_context 'ruby 2.0' do
|
|
216
237
|
# Prism supports parsing Ruby 3.3+.
|
|
217
238
|
let(:ruby_version) { ENV['PARSER_ENGINE'] == 'parser_prism' ? 3.3 : 2.0 }
|
data/lib/rubocop/runner.rb
CHANGED
|
@@ -62,6 +62,8 @@ module RuboCop
|
|
|
62
62
|
@errors = []
|
|
63
63
|
@warnings = []
|
|
64
64
|
@aborting = false
|
|
65
|
+
@inspected_files = []
|
|
66
|
+
@report_queue = {}
|
|
65
67
|
end
|
|
66
68
|
|
|
67
69
|
def run(paths)
|
|
@@ -73,7 +75,6 @@ module RuboCop
|
|
|
73
75
|
if @options[:list_target_files]
|
|
74
76
|
list_files(target_files)
|
|
75
77
|
else
|
|
76
|
-
warm_cache(target_files) if @options[:parallel]
|
|
77
78
|
inspect_files(target_files)
|
|
78
79
|
end
|
|
79
80
|
rescue Interrupt
|
|
@@ -90,21 +91,6 @@ module RuboCop
|
|
|
90
91
|
|
|
91
92
|
private
|
|
92
93
|
|
|
93
|
-
# Warms up the RuboCop cache by forking a suitable number of RuboCop
|
|
94
|
-
# instances that each inspects its allotted group of files.
|
|
95
|
-
def warm_cache(target_files)
|
|
96
|
-
saved_options = @options.dup
|
|
97
|
-
if target_files.length <= 1
|
|
98
|
-
puts 'Skipping parallel inspection: only a single file needs inspection' if @options[:debug]
|
|
99
|
-
return
|
|
100
|
-
end
|
|
101
|
-
puts 'Running parallel inspection' if @options[:debug]
|
|
102
|
-
%i[autocorrect safe_autocorrect].each { |opt| @options[opt] = false }
|
|
103
|
-
Parallel.each(target_files) { |target_file| file_offenses(target_file) }
|
|
104
|
-
ensure
|
|
105
|
-
@options = saved_options
|
|
106
|
-
end
|
|
107
|
-
|
|
108
94
|
def find_target_files(paths)
|
|
109
95
|
target_finder = TargetFinder.new(@config_store, @options)
|
|
110
96
|
mode = if @options[:only_recognized_file_types]
|
|
@@ -116,12 +102,15 @@ module RuboCop
|
|
|
116
102
|
target_files.each(&:freeze).freeze
|
|
117
103
|
end
|
|
118
104
|
|
|
119
|
-
def inspect_files(files)
|
|
120
|
-
inspected_files = []
|
|
121
|
-
|
|
105
|
+
def inspect_files(files) # rubocop:disable Metrics/AbcSize
|
|
122
106
|
formatter_set.started(files)
|
|
107
|
+
file_iterator(files) do |file|
|
|
108
|
+
offenses = process_file(file)
|
|
109
|
+
succeeded = offenses.none? { |o| considered_failure?(o) && offense_displayed?(o) }
|
|
110
|
+
raise Parallel::Break if @options[:fail_fast] && !succeeded
|
|
123
111
|
|
|
124
|
-
|
|
112
|
+
[offenses, succeeded]
|
|
113
|
+
end
|
|
125
114
|
ensure
|
|
126
115
|
# OPTIMIZE: Calling `ResultCache.cleanup` takes time. This optimization
|
|
127
116
|
# mainly targets editors that integrates RuboCop. When RuboCop is run
|
|
@@ -129,23 +118,74 @@ module RuboCop
|
|
|
129
118
|
if files.size > 1 && cached_run?
|
|
130
119
|
ResultCache.cleanup(@config_store, @options[:debug], @options[:cache_root])
|
|
131
120
|
end
|
|
132
|
-
|
|
133
|
-
formatter_set.finished(inspected_files.freeze)
|
|
121
|
+
formatter_set.finished(@inspected_files.freeze)
|
|
134
122
|
formatter_set.close_output_files
|
|
135
123
|
end
|
|
136
124
|
|
|
137
|
-
def
|
|
138
|
-
|
|
139
|
-
offenses = process_file(file)
|
|
140
|
-
yield file
|
|
125
|
+
def file_iterator(files, &block)
|
|
126
|
+
all_passed = true
|
|
141
127
|
|
|
142
|
-
|
|
143
|
-
|
|
128
|
+
on_start = ->(file, _index) { file_started(file) }
|
|
129
|
+
on_finish = lambda do |file, index, (offenses, passed)|
|
|
130
|
+
all_passed &&= passed
|
|
131
|
+
finished_report(file, index, offenses)
|
|
132
|
+
end
|
|
144
133
|
|
|
145
|
-
|
|
146
|
-
|
|
134
|
+
if run_in_parallel?(files)
|
|
135
|
+
parallel_file_iterator(files, on_start, on_finish, &block)
|
|
136
|
+
else
|
|
137
|
+
serial_file_iterator(files, on_start, on_finish, &block)
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
process_remaining_report_queue
|
|
147
141
|
|
|
148
|
-
|
|
142
|
+
all_passed
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
def finished_report(file, index, offenses)
|
|
146
|
+
@report_queue[index] = [file, offenses]
|
|
147
|
+
@next_index_to_report ||= 0
|
|
148
|
+
while @report_queue.key?(@next_index_to_report)
|
|
149
|
+
process_report_queue_entry(@next_index_to_report)
|
|
150
|
+
@next_index_to_report += 1
|
|
151
|
+
end
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
def process_report_queue_entry(index)
|
|
155
|
+
file, offenses = @report_queue.delete(index)
|
|
156
|
+
file_finished(file, offenses)
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
def process_remaining_report_queue
|
|
160
|
+
@report_queue.keys.sort.each do |index|
|
|
161
|
+
process_report_queue_entry(index)
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
def run_in_parallel?(files)
|
|
166
|
+
return false if @options[:auto_gen_config]
|
|
167
|
+
return false unless @options[:parallel]
|
|
168
|
+
|
|
169
|
+
if files.size <= 1
|
|
170
|
+
puts 'Skipping parallel inspection: only a single file needs inspection' if @options[:debug]
|
|
171
|
+
return false
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
puts 'Running parallel inspection' if @options[:debug]
|
|
175
|
+
true
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
def parallel_file_iterator(files, on_start, on_finish, &block)
|
|
179
|
+
Parallel.each(files, start: on_start, finish: on_finish, &block)
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
def serial_file_iterator(files, on_start, on_finish, &block)
|
|
183
|
+
files.each_with_index do |file, index|
|
|
184
|
+
on_start.call(file, index)
|
|
185
|
+
result = yield file
|
|
186
|
+
on_finish.call(file, index, result)
|
|
187
|
+
rescue Parallel::Break
|
|
188
|
+
break
|
|
149
189
|
end
|
|
150
190
|
end
|
|
151
191
|
|
|
@@ -154,16 +194,13 @@ module RuboCop
|
|
|
154
194
|
end
|
|
155
195
|
|
|
156
196
|
def process_file(file)
|
|
157
|
-
|
|
158
|
-
offenses = file_offenses(file)
|
|
197
|
+
file_offenses(file)
|
|
159
198
|
rescue InfiniteCorrectionLoop => e
|
|
160
199
|
raise e if @options[:raise_cop_error]
|
|
161
200
|
|
|
162
201
|
errors << e
|
|
163
202
|
warn Rainbow(e.message).red
|
|
164
|
-
|
|
165
|
-
ensure
|
|
166
|
-
file_finished(file, offenses || [])
|
|
203
|
+
e.offenses.compact.sort.freeze
|
|
167
204
|
end
|
|
168
205
|
|
|
169
206
|
def file_offenses(file)
|
|
@@ -250,6 +287,7 @@ module RuboCop
|
|
|
250
287
|
end
|
|
251
288
|
|
|
252
289
|
def file_finished(file, offenses)
|
|
290
|
+
@inspected_files << file
|
|
253
291
|
offenses = offenses_to_report(offenses)
|
|
254
292
|
formatter_set.file_finished(file, offenses)
|
|
255
293
|
end
|
|
@@ -258,10 +296,6 @@ module RuboCop
|
|
|
258
296
|
@cached_run ||=
|
|
259
297
|
(@options[:cache] == 'true' ||
|
|
260
298
|
(@options[:cache] != 'false' && @config_store.for_pwd.for_all_cops['UseCache'])) &&
|
|
261
|
-
# When running --auto-gen-config, there's some processing done in the
|
|
262
|
-
# cops related to calculating the Max parameters for Metrics cops. We
|
|
263
|
-
# need to do that processing and cannot use caching.
|
|
264
|
-
!@options[:auto_gen_config] &&
|
|
265
299
|
# We can't cache results from code which is piped in to stdin
|
|
266
300
|
!@options[:stdin]
|
|
267
301
|
end
|
|
@@ -350,21 +384,9 @@ module RuboCop
|
|
|
350
384
|
|
|
351
385
|
def inspect_file(processed_source, team = mobilize_team(processed_source))
|
|
352
386
|
extracted_ruby_sources = extract_ruby_sources(processed_source)
|
|
353
|
-
offenses =
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
report = team.investigate(
|
|
357
|
-
extracted_ruby_source[:processed_source],
|
|
358
|
-
offset: extracted_ruby_source[:offset],
|
|
359
|
-
original: processed_source
|
|
360
|
-
)
|
|
361
|
-
@errors.concat(team.errors)
|
|
362
|
-
@warnings.concat(team.warnings)
|
|
363
|
-
offenses.concat(report.offenses)
|
|
364
|
-
|
|
365
|
-
break if team.updated_source_file?
|
|
366
|
-
end
|
|
367
|
-
|
|
387
|
+
offenses = team.investigate_fragments(extracted_ruby_sources, original: processed_source)
|
|
388
|
+
@errors.concat(team.errors)
|
|
389
|
+
@warnings.concat(team.warnings)
|
|
368
390
|
[offenses, team.updated_source_file?]
|
|
369
391
|
end
|
|
370
392
|
|
|
@@ -44,10 +44,10 @@ module RuboCop
|
|
|
44
44
|
all_files = find_files(base_dir, File::FNM_DOTMATCH)
|
|
45
45
|
base_dir_config = @config_store.for(base_dir)
|
|
46
46
|
|
|
47
|
-
target_files = if
|
|
47
|
+
target_files = if hidden_dir?(base_dir)
|
|
48
48
|
all_files.select { |file| ruby_file?(file) }
|
|
49
49
|
else
|
|
50
|
-
all_files.select { |file| to_inspect?(file, base_dir_config) }
|
|
50
|
+
all_files.select { |file| to_inspect?(file, base_dir, base_dir_config) }
|
|
51
51
|
end
|
|
52
52
|
|
|
53
53
|
target_files.sort_by!(&order)
|
|
@@ -72,15 +72,22 @@ module RuboCop
|
|
|
72
72
|
|
|
73
73
|
private
|
|
74
74
|
|
|
75
|
-
def to_inspect?(file, base_dir_config)
|
|
75
|
+
def to_inspect?(file, base_dir, base_dir_config)
|
|
76
76
|
return false if base_dir_config.file_to_exclude?(file)
|
|
77
|
-
return true if !
|
|
77
|
+
return true if !hidden_file_in_dir?(file, base_dir) && ruby_file?(file)
|
|
78
78
|
|
|
79
79
|
base_dir_config.file_to_include?(file)
|
|
80
80
|
end
|
|
81
81
|
|
|
82
|
-
def
|
|
83
|
-
|
|
82
|
+
def hidden_dir?(dir)
|
|
83
|
+
basename = File.basename(dir)
|
|
84
|
+
basename.start_with?('.') && basename != '.' && basename != '..'
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def hidden_file_in_dir?(file, base_dir)
|
|
88
|
+
base_dir = "#{base_dir}#{File::SEPARATOR}" unless base_dir.end_with?(File::SEPARATOR)
|
|
89
|
+
relative = file.delete_prefix(base_dir)
|
|
90
|
+
relative.start_with?('.') || relative.include?(HIDDEN_PATH_SUBSTRING)
|
|
84
91
|
end
|
|
85
92
|
|
|
86
93
|
def wanted_dir_patterns(base_dir, exclude_pattern, flags)
|
data/lib/rubocop/version.rb
CHANGED
data/lib/rubocop.rb
CHANGED
|
@@ -52,6 +52,7 @@ require_relative 'rubocop/cop/cop'
|
|
|
52
52
|
require_relative 'rubocop/cop/commissioner'
|
|
53
53
|
require_relative 'rubocop/cop/documentation'
|
|
54
54
|
require_relative 'rubocop/cop/corrector'
|
|
55
|
+
require_relative 'rubocop/cop/correctors'
|
|
55
56
|
require_relative 'rubocop/cop/force'
|
|
56
57
|
require_relative 'rubocop/cop/severity'
|
|
57
58
|
require_relative 'rubocop/cop/generator'
|
|
@@ -68,109 +69,18 @@ require_relative 'rubocop/cop/variable_force/reference'
|
|
|
68
69
|
require_relative 'rubocop/cop/variable_force/scope'
|
|
69
70
|
require_relative 'rubocop/cop/variable_force/variable_table'
|
|
70
71
|
|
|
71
|
-
require_relative 'rubocop/cop/mixin
|
|
72
|
-
|
|
73
|
-
require_relative 'rubocop/cop/mixin/
|
|
74
|
-
|
|
75
|
-
require_relative 'rubocop/cop/mixin/
|
|
76
|
-
require_relative 'rubocop/cop/mixin/allowed_pattern'
|
|
77
|
-
require_relative 'rubocop/cop/mixin/allowed_receivers'
|
|
78
|
-
require_relative 'rubocop/cop/mixin/forbidden_identifiers'
|
|
79
|
-
require_relative 'rubocop/cop/mixin/forbidden_pattern'
|
|
80
|
-
require_relative 'rubocop/cop/mixin/auto_corrector' # rubocop:todo Naming/InclusiveLanguage
|
|
81
|
-
require_relative 'rubocop/cop/mixin/check_assignment'
|
|
82
|
-
require_relative 'rubocop/cop/mixin/check_line_breakable'
|
|
83
|
-
require_relative 'rubocop/cop/mixin/check_single_line_suitability'
|
|
84
|
-
require_relative 'rubocop/cop/mixin/configurable_max'
|
|
85
|
-
require_relative 'rubocop/cop/mixin/code_length' # relies on configurable_max
|
|
86
|
-
require_relative 'rubocop/cop/mixin/configurable_enforced_style'
|
|
87
|
-
require_relative 'rubocop/cop/mixin/configurable_formatting'
|
|
88
|
-
require_relative 'rubocop/cop/mixin/configurable_naming'
|
|
89
|
-
require_relative 'rubocop/cop/mixin/configurable_numbering'
|
|
90
|
-
require_relative 'rubocop/cop/mixin/dig_help'
|
|
91
|
-
require_relative 'rubocop/cop/mixin/documentation_comment'
|
|
92
|
-
require_relative 'rubocop/cop/mixin/duplication'
|
|
93
|
-
require_relative 'rubocop/cop/mixin/range_help'
|
|
94
|
-
require_relative 'rubocop/cop/mixin/annotation_comment' # relies on range
|
|
95
|
-
require_relative 'rubocop/cop/mixin/empty_lines_around_body' # relies on range
|
|
96
|
-
require_relative 'rubocop/cop/mixin/empty_parameter'
|
|
97
|
-
require_relative 'rubocop/cop/mixin/end_keyword_alignment'
|
|
98
|
-
require_relative 'rubocop/cop/mixin/endless_method_rewriter'
|
|
99
|
-
require_relative 'rubocop/cop/mixin/enforce_superclass'
|
|
100
|
-
require_relative 'rubocop/cop/mixin/first_element_line_break'
|
|
101
|
-
require_relative 'rubocop/cop/mixin/frozen_string_literal'
|
|
102
|
-
require_relative 'rubocop/cop/mixin/gem_declaration'
|
|
103
|
-
require_relative 'rubocop/cop/mixin/gemspec_help'
|
|
104
|
-
require_relative 'rubocop/cop/mixin/hash_alignment_styles'
|
|
105
|
-
require_relative 'rubocop/cop/mixin/hash_subset'
|
|
106
|
-
require_relative 'rubocop/cop/mixin/hash_transform_method'
|
|
107
|
-
require_relative 'rubocop/cop/mixin/integer_node'
|
|
108
|
-
require_relative 'rubocop/cop/mixin/interpolation'
|
|
109
|
-
require_relative 'rubocop/cop/mixin/line_length_help'
|
|
110
|
-
require_relative 'rubocop/cop/mixin/match_range'
|
|
72
|
+
require_relative 'rubocop/cop/mixin'
|
|
73
|
+
# TODO: move to Layout module once cop lazy loading is implemented
|
|
74
|
+
require_relative 'rubocop/cop/mixin/empty_lines_around_body'
|
|
75
|
+
# TODO: move to Lint module once cop lazy loading is implemented
|
|
76
|
+
require_relative 'rubocop/cop/mixin/unused_argument'
|
|
111
77
|
require_relative 'rubocop/cop/metrics/utils/repeated_csend_discount'
|
|
112
78
|
require_relative 'rubocop/cop/metrics/utils/repeated_attribute_discount'
|
|
113
|
-
require_relative 'rubocop/cop/mixin/hash_shorthand_syntax'
|
|
114
|
-
require_relative 'rubocop/cop/mixin/method_complexity'
|
|
115
|
-
require_relative 'rubocop/cop/mixin/method_preference'
|
|
116
|
-
require_relative 'rubocop/cop/mixin/min_body_length'
|
|
117
|
-
require_relative 'rubocop/cop/mixin/min_branches_count'
|
|
118
|
-
require_relative 'rubocop/cop/mixin/multiline_element_indentation'
|
|
119
|
-
require_relative 'rubocop/cop/mixin/multiline_element_line_breaks'
|
|
120
|
-
require_relative 'rubocop/cop/mixin/multiline_expression_indentation'
|
|
121
|
-
require_relative 'rubocop/cop/mixin/multiline_literal_brace_layout'
|
|
122
|
-
require_relative 'rubocop/cop/mixin/negative_conditional'
|
|
123
|
-
require_relative 'rubocop/cop/mixin/heredoc'
|
|
124
|
-
require_relative 'rubocop/cop/mixin/nil_methods'
|
|
125
|
-
require_relative 'rubocop/cop/mixin/on_normal_if_unless'
|
|
126
|
-
require_relative 'rubocop/cop/mixin/ordered_gem_node'
|
|
127
|
-
require_relative 'rubocop/cop/mixin/parentheses'
|
|
128
|
-
require_relative 'rubocop/cop/mixin/percent_array'
|
|
129
|
-
require_relative 'rubocop/cop/mixin/percent_literal'
|
|
130
|
-
require_relative 'rubocop/cop/mixin/preceding_following_alignment'
|
|
131
|
-
require_relative 'rubocop/cop/mixin/preferred_delimiters'
|
|
132
|
-
require_relative 'rubocop/cop/mixin/rational_literal'
|
|
133
|
-
require_relative 'rubocop/cop/mixin/require_library'
|
|
134
|
-
require_relative 'rubocop/cop/mixin/rescue_node'
|
|
135
|
-
require_relative 'rubocop/cop/mixin/safe_assignment'
|
|
136
|
-
require_relative 'rubocop/cop/mixin/space_after_punctuation'
|
|
137
|
-
require_relative 'rubocop/cop/mixin/space_before_punctuation'
|
|
138
|
-
require_relative 'rubocop/cop/mixin/surrounding_space'
|
|
139
|
-
require_relative 'rubocop/cop/mixin/statement_modifier'
|
|
140
|
-
require_relative 'rubocop/cop/mixin/string_help'
|
|
141
|
-
require_relative 'rubocop/cop/mixin/string_literals_help'
|
|
142
|
-
require_relative 'rubocop/cop/mixin/symbol_help'
|
|
143
|
-
require_relative 'rubocop/cop/mixin/target_ruby_version'
|
|
144
|
-
require_relative 'rubocop/cop/mixin/trailing_body'
|
|
145
|
-
require_relative 'rubocop/cop/mixin/trailing_comma'
|
|
146
|
-
require_relative 'rubocop/cop/mixin/uncommunicative_name'
|
|
147
|
-
require_relative 'rubocop/cop/mixin/unused_argument'
|
|
148
|
-
require_relative 'rubocop/cop/mixin/visibility_help'
|
|
149
|
-
require_relative 'rubocop/cop/mixin/comments_help' # relies on visibility_help
|
|
150
|
-
require_relative 'rubocop/cop/mixin/def_node' # relies on visibility_help
|
|
151
79
|
|
|
152
80
|
require_relative 'rubocop/cop/utils/format_string'
|
|
153
81
|
|
|
154
82
|
require_relative 'rubocop/cop/migration/department_name'
|
|
155
83
|
|
|
156
|
-
require_relative 'rubocop/cop/correctors/alignment_corrector'
|
|
157
|
-
require_relative 'rubocop/cop/correctors/condition_corrector'
|
|
158
|
-
require_relative 'rubocop/cop/correctors/each_to_for_corrector'
|
|
159
|
-
require_relative 'rubocop/cop/correctors/empty_line_corrector'
|
|
160
|
-
require_relative 'rubocop/cop/correctors/for_to_each_corrector'
|
|
161
|
-
require_relative 'rubocop/cop/correctors/if_then_corrector'
|
|
162
|
-
require_relative 'rubocop/cop/correctors/lambda_literal_to_method_corrector'
|
|
163
|
-
require_relative 'rubocop/cop/correctors/line_break_corrector'
|
|
164
|
-
require_relative 'rubocop/cop/correctors/multiline_literal_brace_corrector'
|
|
165
|
-
require_relative 'rubocop/cop/correctors/ordered_gem_corrector'
|
|
166
|
-
require_relative 'rubocop/cop/correctors/parentheses_corrector'
|
|
167
|
-
require_relative 'rubocop/cop/correctors/percent_literal_corrector'
|
|
168
|
-
require_relative 'rubocop/cop/correctors/punctuation_corrector'
|
|
169
|
-
require_relative 'rubocop/cop/correctors/require_library_corrector'
|
|
170
|
-
require_relative 'rubocop/cop/correctors/space_corrector'
|
|
171
|
-
require_relative 'rubocop/cop/correctors/string_literal_corrector'
|
|
172
|
-
require_relative 'rubocop/cop/correctors/unused_arg_corrector'
|
|
173
|
-
|
|
174
84
|
require_relative 'rubocop/cop/bundler/duplicated_gem'
|
|
175
85
|
require_relative 'rubocop/cop/bundler/duplicated_group'
|
|
176
86
|
require_relative 'rubocop/cop/bundler/gem_comment'
|
|
@@ -824,6 +734,7 @@ require_relative 'rubocop/cli/command/auto_generate_config'
|
|
|
824
734
|
require_relative 'rubocop/cli/command/execute_runner'
|
|
825
735
|
require_relative 'rubocop/cli/command/init_dotfile'
|
|
826
736
|
require_relative 'rubocop/cli/command/lsp'
|
|
737
|
+
require_relative 'rubocop/cli/command/list_enabled_cops_for'
|
|
827
738
|
require_relative 'rubocop/cli/command/mcp'
|
|
828
739
|
require_relative 'rubocop/cli/command/show_cops'
|
|
829
740
|
require_relative 'rubocop/cli/command/show_docs_url'
|
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.86.
|
|
4
|
+
version: 1.86.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Bozhidar Batsov
|
|
@@ -57,14 +57,14 @@ dependencies:
|
|
|
57
57
|
name: parallel
|
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
|
59
59
|
requirements:
|
|
60
|
-
- - "
|
|
60
|
+
- - ">="
|
|
61
61
|
- !ruby/object:Gem::Version
|
|
62
62
|
version: '1.10'
|
|
63
63
|
type: :runtime
|
|
64
64
|
prerelease: false
|
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
|
66
66
|
requirements:
|
|
67
|
-
- - "
|
|
67
|
+
- - ">="
|
|
68
68
|
- !ruby/object:Gem::Version
|
|
69
69
|
version: '1.10'
|
|
70
70
|
- !ruby/object:Gem::Dependency
|
|
@@ -207,6 +207,7 @@ files:
|
|
|
207
207
|
- lib/rubocop/cli/command/base.rb
|
|
208
208
|
- lib/rubocop/cli/command/execute_runner.rb
|
|
209
209
|
- lib/rubocop/cli/command/init_dotfile.rb
|
|
210
|
+
- lib/rubocop/cli/command/list_enabled_cops_for.rb
|
|
210
211
|
- lib/rubocop/cli/command/lsp.rb
|
|
211
212
|
- lib/rubocop/cli/command/mcp.rb
|
|
212
213
|
- lib/rubocop/cli/command/show_cops.rb
|
|
@@ -245,6 +246,7 @@ files:
|
|
|
245
246
|
- lib/rubocop/cop/commissioner.rb
|
|
246
247
|
- lib/rubocop/cop/cop.rb
|
|
247
248
|
- lib/rubocop/cop/corrector.rb
|
|
249
|
+
- lib/rubocop/cop/correctors.rb
|
|
248
250
|
- lib/rubocop/cop/correctors/alignment_corrector.rb
|
|
249
251
|
- lib/rubocop/cop/correctors/condition_corrector.rb
|
|
250
252
|
- lib/rubocop/cop/correctors/each_to_for_corrector.rb
|
|
@@ -596,6 +598,7 @@ files:
|
|
|
596
598
|
- lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb
|
|
597
599
|
- lib/rubocop/cop/metrics/utils/repeated_csend_discount.rb
|
|
598
600
|
- lib/rubocop/cop/migration/department_name.rb
|
|
601
|
+
- lib/rubocop/cop/mixin.rb
|
|
599
602
|
- lib/rubocop/cop/mixin/alignment.rb
|
|
600
603
|
- lib/rubocop/cop/mixin/allowed_identifiers.rb
|
|
601
604
|
- lib/rubocop/cop/mixin/allowed_methods.rb
|
|
@@ -1114,7 +1117,7 @@ licenses:
|
|
|
1114
1117
|
- MIT
|
|
1115
1118
|
metadata:
|
|
1116
1119
|
homepage_uri: https://rubocop.org/
|
|
1117
|
-
changelog_uri: https://github.com/rubocop/rubocop/releases/tag/v1.86.
|
|
1120
|
+
changelog_uri: https://github.com/rubocop/rubocop/releases/tag/v1.86.2
|
|
1118
1121
|
source_code_uri: https://github.com/rubocop/rubocop/
|
|
1119
1122
|
documentation_uri: https://docs.rubocop.org/rubocop/1.86/
|
|
1120
1123
|
bug_tracker_uri: https://github.com/rubocop/rubocop/issues
|