forked from oracle/truffleruby
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.rubocop.yml
345 lines (281 loc) · 9.32 KB
/
.rubocop.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
AllCops:
TargetRubyVersion: 2.3
DisabledByDefault: true
DisplayCopNames: true
ExtraDetails: true
Exclude:
- 'lib/truffle/date/format.rb' # crashes Rubocop in VariableForce
- 'lib/truffle/date/delta/parser.rb' # generated code
# Department 'Lint' (58):
Lint/AmbiguousOperator:
Description: Checks for ambiguous operators in the first argument of a method invocation
without parentheses.
StyleGuide: "#method-invocation-parens"
Enabled: true
Lint/AmbiguousRegexpLiteral:
Description: Checks for ambiguous regexp literals in the first argument of a method
invocation without parentheses.
Enabled: true
# Supports --auto-correct
Lint/BlockAlignment:
Description: Align block ends correctly.
Enabled: true
EnforcedStyleAlignWith: either
SupportedStylesAlignWith:
- either
- start_of_block
- start_of_line
Lint/CircularArgumentReference:
Description: Default values in optional keyword arguments and optional ordinal arguments
should not refer back to the name of the argument.
Enabled: true
Lint/ConditionPosition:
Description: Checks for condition placed in a confusing position relative to the keyword.
StyleGuide: "#same-line-condition"
Enabled: true
# Supports --auto-correct
Lint/Debugger:
Description: Check for debugger calls.
Enabled: true
# Supports --auto-correct
Lint/DefEndAlignment:
Description: Align ends corresponding to defs correctly.
Enabled: true
EnforcedStyleAlignWith: start_of_line
SupportedStylesAlignWith:
- start_of_line
- def
AutoCorrect: false
# Supports --auto-correct
Lint/DeprecatedClassMethods:
Description: Check for deprecated class method calls.
Enabled: true
Lint/DuplicateCaseCondition:
Description: Do not repeat values in case conditionals.
Enabled: true
Lint/DuplicateMethods:
Description: Check for duplicate method definitions.
Enabled: true
Lint/DuplicatedKey:
Description: Check for duplicate keys in hash literals.
Enabled: true
Lint/EachWithObjectArgument:
Description: Check for immutable argument given to each_with_object.
Enabled: true
Lint/ElseLayout:
Description: Check for odd code arrangement in an else block.
Enabled: true
Lint/EmptyEnsure:
Description: Checks for empty ensure block.
Enabled: true
Lint/EmptyExpression:
Description: Checks for empty expressions.
Enabled: true
# Supports --auto-correct
Lint/EmptyInterpolation:
Description: Checks for empty string interpolation.
Enabled: true
Lint/EmptyWhen:
Description: Checks for `when` branches with empty bodies.
# disabled, used quite often
Enabled: false
# Supports --auto-correct
Lint/EndAlignment:
Description: Align ends correctly.
Enabled: true
EnforcedStyleAlignWith: keyword
SupportedStylesAlignWith:
- keyword
- variable
- start_of_line
AutoCorrect: false
Lint/EndInMethod:
Description: END blocks should not be placed inside method definitions.
Enabled: true
Lint/EnsureReturn:
Description: Do not use return in an ensure block.
StyleGuide: "#no-return-ensure"
Enabled: true
Lint/FloatOutOfRange:
Description: Catches floating-point literals too large or small for Ruby to represent.
Enabled: true
Lint/FormatParameterMismatch:
Description: The number of parameters to format/sprint must match the fields.
Enabled: true
Lint/HandleExceptions:
Description: Don't suppress exception.
StyleGuide: "#dont-hide-exceptions"
Enabled: true
Lint/ImplicitStringConcatenation:
Description: Checks for adjacent string literals on the same line, which could better
be represented as a single string literal.
Enabled: true
Lint/IneffectiveAccessModifier:
Description: Checks for attempts to use `private` or `protected` to set the visibility
of a class method, which does not work.
Enabled: true
# Supports --auto-correct
Lint/InheritException:
Description: Avoid inheriting from the `Exception` class.
Enabled: true
EnforcedStyle: runtime_error
SupportedStyles:
- runtime_error
- standard_error
Exclude:
- src/main/ruby/core/exception.rb
Lint/InvalidCharacterLiteral:
Description: Checks for invalid character literals with a non-escaped whitespace character.
Enabled: true
Lint/LiteralInCondition:
Description: Checks of literals used in conditions.
Details: >-
Pattern `while true` is allowed, disable the cop with
`while true # rubocop:disable Lint/LiteralInCondition` in this case.
Enabled: true
# Supports --auto-correct
Lint/LiteralInInterpolation:
Description: Checks for literals used in interpolation.
Enabled: true
Lint/Loop:
Description: Use Kernel#loop with break rather than begin/end/until or begin/end/while
for post-loop tests.
StyleGuide: "#loop-with-break"
# disabled, begin/end/until or begin/end/while seems better alternative to loop and a break
Enabled: false
# Supports --auto-correct
Lint/MultipleCompare:
Description: Use `&&` operator to compare multiple value.
Enabled: true
Lint/NestedMethodDefinition:
Description: Do not use nested method definitions.
StyleGuide: "#no-nested-methods"
Enabled: true
Lint/NextWithoutAccumulator:
Description: Do not omit the accumulator when calling `next` in a `reduce`/`inject`
block.
Enabled: true
Lint/NonLocalExitFromIterator:
Description: Do not use return in iterator to cause non-local exit.
Enabled: true
Lint/ParenthesesAsGroupedExpression:
Description: Checks for method calls with a space before the opening parenthesis.
StyleGuide: "#parens-no-spaces"
Enabled: true
# Supports --auto-correct
Lint/PercentStringArray:
Description: Checks for unwanted commas and quotes in %w/%W literals.
Enabled: true
# Supports --auto-correct
Lint/PercentSymbolArray:
Description: Checks for unwanted commas and colons in %i/%I literals.
Enabled: true
Lint/RandOne:
Description: Checks for `rand(1)` calls. Such calls always return `0` and most likely
a mistake.
Enabled: true
Lint/RequireParentheses:
Description: Use parentheses in the method call to avoid confusion about precedence.
Enabled: true
Lint/RescueException:
Description: Avoid rescuing the Exception class.
StyleGuide: "#no-blind-rescues"
Enabled: true
# Supports --auto-correct
Lint/SafeNavigationChain:
Description: Do not chain ordinary method call after safe navigation operator.
Enabled: true
Lint/ShadowedException:
Description: Avoid rescuing a higher level exception before a lower level exception.
Enabled: true
Lint/ShadowingOuterLocalVariable:
Description: Do not use the same name as outer local variable for block arguments
or block local variables.
Enabled: true
# Supports --auto-correct
Lint/StringConversionInInterpolation:
Description: Checks for Object#to_s usage in string interpolation.
StyleGuide: "#no-to-s"
Enabled: true
Lint/UnderscorePrefixedVariableName:
Description: Do not use prefix `_` for a variable that is used.
Enabled: true
# Supports --auto-correct
Lint/UnifiedInteger:
Description: Use Integer instead of Fixnum or Bignum
# disabled, not a 2.4 yet
Enabled: false
# Supports --auto-correct
Lint/UnneededDisable:
Description: 'Checks for rubocop:disable comments that can be removed. Note: this
cop is not disabled when disabling all cops. It must be explicitly disabled.'
Enabled: true
# Supports --auto-correct
Lint/UnneededSplatExpansion:
Description: Checks for splat unnecessarily being called on literals
Enabled: true
Lint/UnreachableCode:
Description: Unreachable code.
Enabled: true
# Supports --auto-correct
Lint/UnusedBlockArgument:
Description: Checks for unused block arguments.
StyleGuide: "#underscore-unused-vars"
Enabled: true
IgnoreEmptyBlocks: true
AllowUnusedKeywordArguments: false
# Supports --auto-correct
Lint/UnusedMethodArgument:
Description: Checks for unused method arguments.
StyleGuide: "#underscore-unused-vars"
# disabled, used often in primitives
Enabled: false
AllowUnusedKeywordArguments: false
IgnoreEmptyMethods: true
Lint/UselessAccessModifier:
Description: Checks for useless access modifiers.
Enabled: true
ContextCreatingMethods: []
MethodCreatingMethods: []
Lint/UselessAssignment:
Description: Checks for useless assignment to a local variable.
StyleGuide: "#underscore-unused-vars"
Enabled: true
Lint/UselessComparison:
Description: Checks for comparison of something with itself.
Enabled: true
Lint/UselessElseWithoutRescue:
Description: Checks for useless `else` in `begin..end` without `rescue`.
Enabled: true
Lint/UselessSetterCall:
Description: Checks for useless setter call to a local variable.
Enabled: true
Lint/Void:
Description: Possible use of operator/literal/variable in void context.
Enabled: true
#################### Style ###########################
Style/CaseIndentation:
Enabled: true
EnforcedStyle: 'end'
Style/IndentationConsistency:
Enabled: true
Style/IndentationWidth:
Enabled: true
# Supports --auto-correct
Style/RaiseArgs:
Description: 'Checks the arguments passed to raise/fail.'
StyleGuide: '#exception-class-messages'
Enabled: true
Style/RedundantReturn:
Enabled: true
# Supports --auto-correct
Style/StringLiterals:
Description: Checks if uses of quotes match the configured preference.
StyleGuide: "#consistent-string-literals"
Details: Use `rubocop --only Style/StringLiterals -a` to fix.
Enabled: true
EnforcedStyle: single_quotes
SupportedStyles:
- single_quotes
- double_quotes
ConsistentQuotesInMultiline: false