standard 0.1.0 → 1.51.1

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 (80) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +11 -0
  3. data/.github/workflows/test.yml +24 -0
  4. data/.github/workflows/update.yml +54 -0
  5. data/.gitignore +3 -0
  6. data/.standard.yml +1 -1
  7. data/CHANGELOG.md +703 -0
  8. data/Gemfile +13 -0
  9. data/Gemfile.lock +71 -37
  10. data/LICENSE.txt +3 -4
  11. data/README.md +459 -264
  12. data/Rakefile +5 -4
  13. data/bin/console +0 -4
  14. data/bin/rake +27 -0
  15. data/bin/run +9 -0
  16. data/config/base.yml +1065 -193
  17. data/config/default.yml +8 -0
  18. data/config/ruby-1.8.yml +10 -2
  19. data/config/ruby-1.9.yml +11 -1
  20. data/config/ruby-2.0.yml +4 -0
  21. data/config/ruby-2.1.yml +4 -0
  22. data/config/ruby-2.2.yml +13 -5
  23. data/config/ruby-2.3.yml +10 -0
  24. data/config/ruby-2.4.yml +10 -0
  25. data/config/ruby-2.5.yml +10 -0
  26. data/config/ruby-2.6.yml +13 -0
  27. data/config/ruby-2.7.yml +10 -0
  28. data/config/ruby-3.0.yml +13 -0
  29. data/config/ruby-3.1.yml +11 -0
  30. data/config/ruby-3.2.yml +4 -0
  31. data/config/ruby-3.3.yml +7 -0
  32. data/docs/ARCHITECTURE.md +33 -0
  33. data/docs/RELEASE.md +41 -0
  34. data/docs/RUBY_VERSIONS.md +51 -0
  35. data/docs/UPGRADING.md +31 -0
  36. data/lib/ruby_lsp/standard/addon.rb +58 -0
  37. data/lib/ruby_lsp/standard/wraps_built_in_lsp_standardizer.rb +44 -0
  38. data/lib/standard/base/plugin.rb +69 -0
  39. data/lib/standard/base.rb +8 -0
  40. data/lib/standard/builds_config.rb +11 -1
  41. data/lib/standard/cli.rb +1 -7
  42. data/lib/standard/creates_config_store/assigns_rubocop_yaml.rb +2 -18
  43. data/lib/standard/creates_config_store/configures_ignored_paths.rb +2 -2
  44. data/lib/standard/creates_config_store/merges_user_config_extensions.rb +37 -0
  45. data/lib/standard/creates_config_store/sets_target_ruby_version.rb +21 -8
  46. data/lib/standard/creates_config_store.rb +5 -0
  47. data/lib/standard/formatter.rb +92 -37
  48. data/lib/standard/loads_runner.rb +17 -3
  49. data/lib/standard/loads_yaml_config.rb +18 -11
  50. data/lib/standard/lsp/diagnostic.rb +174 -0
  51. data/lib/standard/lsp/kills_server.rb +10 -0
  52. data/lib/standard/lsp/logger.rb +21 -0
  53. data/lib/standard/lsp/routes.rb +175 -0
  54. data/lib/standard/lsp/server.rb +37 -0
  55. data/lib/standard/lsp/standardizer.rb +34 -0
  56. data/lib/standard/lsp/stdin_rubocop_runner.rb +71 -0
  57. data/lib/standard/merges_settings.rb +22 -11
  58. data/lib/standard/plugin/combines_plugin_configs.rb +15 -0
  59. data/lib/standard/plugin/creates_runner_context.rb +15 -0
  60. data/lib/standard/plugin/determines_class_constant.rb +56 -0
  61. data/lib/standard/plugin/initializes_plugins.rb +23 -0
  62. data/lib/standard/plugin/merges_plugins_into_rubocop_config.rb +177 -0
  63. data/lib/standard/plugin/standardizes_configured_plugins.rb +37 -0
  64. data/lib/standard/plugin.rb +11 -0
  65. data/lib/standard/railtie.rb +1 -1
  66. data/lib/standard/rake.rb +8 -1
  67. data/lib/standard/{parses_cli_option.rb → resolves_yaml_option.rb} +9 -2
  68. data/lib/standard/rubocop/ext.rb +17 -0
  69. data/lib/standard/runners/genignore.rb +44 -0
  70. data/lib/standard/runners/help.rb +9 -5
  71. data/lib/standard/runners/lsp.rb +11 -0
  72. data/lib/standard/runners/rubocop.rb +14 -18
  73. data/lib/standard/runners/verbose_version.rb +14 -0
  74. data/lib/standard/version.rb +1 -1
  75. data/lib/standard.rb +6 -4
  76. data/standard.gemspec +22 -20
  77. metadata +72 -73
  78. data/.circleci/config.yml +0 -35
  79. data/lib/standard/cop/semantic_blocks.rb +0 -162
  80. data/lib/standard/detects_fixability.rb +0 -20
data/CHANGELOG.md ADDED
@@ -0,0 +1,703 @@
1
+ # Changelog
2
+
3
+ ## 1.51.1
4
+
5
+ * Fixes Layout/EmptyLineAfterGuardClause back to false after [#750](https://github.com/standardrb/standard/issues/750)
6
+
7
+ ## 1.51.0
8
+
9
+ * Updates rubocop to [1.81.2](https://github.com/rubocop/rubocop/tree/v1.81.2)
10
+
11
+ ## 1.50.0
12
+
13
+ * Updates rubocop to [1.75.5](https://github.com/rubocop/rubocop/tree/v1.75.5)
14
+
15
+ ## 1.49.0
16
+
17
+ * Updates standard performance to 1.8.0
18
+
19
+ ## 1.48.0
20
+
21
+ * Updates rubocop to [1.75.2](https://github.com/rubocop/rubocop/tree/v1.75.2)
22
+
23
+ ## 1.47.0
24
+
25
+ * Updates standard performance to 1.7.0
26
+
27
+ ## 1.46.0
28
+
29
+ * Updates rubocop to [1.73.2](https://github.com/rubocop/rubocop/tree/v1.73.2)
30
+
31
+ ## 1.45.0
32
+
33
+ * Updates rubocop to [1.71.0](https://github.com/rubocop/rubocop/tree/v1.71.0)
34
+
35
+ ## 1.44.0
36
+
37
+ * Updates rubocop to [1.70.0](https://github.com/rubocop/rubocop/tree/v1.70.0)
38
+
39
+ ## 1.43.0
40
+
41
+ * Updates rubocop to [1.69.1](https://github.com/rubocop/rubocop/tree/v1.69.1)
42
+
43
+ ## 1.42.1
44
+
45
+ * Fixes a very noisy typo!
46
+
47
+ ## 1.42.0
48
+
49
+ * Updates rubocop to [1.68.0](https://github.com/rubocop/rubocop/tree/v1.68.0)
50
+ * Inherit from `RuboCop::Cop::Base` fixing deprecation warnings.
51
+ * Add new cops
52
+
53
+ ## 1.41.1
54
+
55
+ * Adds a stub method to the Ruby LSP add-on to avoid a potential runtime exception
56
+ for range formatting requests [#655](https://github.com/standardrb/standard/pull/655)
57
+
58
+ ## 1.41.0
59
+
60
+ * Updates rubocop to [1.66.1](https://github.com/rubocop/rubocop/releases/tag/v1.66.1)
61
+ * Updates standard-performance to [1.5.0](https://github.com/standardrb/standard-performance/releases/tag/v1.5.0)
62
+
63
+ ## 1.40.1
64
+
65
+ * Fix error handling in LSP Server 84ee9f4
66
+
67
+ ## 1.40.0
68
+
69
+ * Updates rubocop to [1.65.1](https://github.com/rubocop/rubocop/releases/tag/v1.65.1)
70
+
71
+ ## 1.39.2
72
+
73
+ * Ensure a URI scheme on file paths from the built-in LSP [#642](https://github.com/standardrb/standard/pull/642).
74
+
75
+ ## 1.39.1
76
+
77
+ * Fix LSP when `format` is set [#638](https://github.com/standardrb/standard/issues/638)
78
+ * Fix LSP when todo is present (I think) [vscode-standard-ruby#26](https://github.com/standardrb/vscode-standard-ruby/issues/26)
79
+
80
+ ## 1.39.0
81
+
82
+ * Add support for LSP Code Actions / Quick Fix under Ruby LSP [#636](https://github.com/standardrb/standard/pull/636)
83
+
84
+ ## 1.38.0
85
+
86
+ * Update minimum Ruby version to 3.0
87
+ * @koic backported a line column bug in our LSP
88
+ [#635](https://github.com/standardrb/standard/pull/635)
89
+ * Implement a basic [Ruby LSP
90
+ add-on](https://github.com/Shopify/ruby-lsp/blob/main/ADDONS.md), which means
91
+ users would no longer need to install [our custom VS Code
92
+ extension](https://marketplace.visualstudio.com/items?itemName=testdouble.vscode-standard-ruby)
93
+ [#630](https://github.com/standardrb/standard/pull/630)
94
+
95
+ ## 1.37.0
96
+
97
+ * Updates rubocop to [1.64.1](https://github.com/rubocop/rubocop/releases/tag/v1.64.1)
98
+
99
+ ## 1.36.0
100
+
101
+ * Updates rubocop to [1.63.5](https://github.com/rubocop/rubocop/releases/tag/v1.63.5)
102
+ * Updates standard-performance to [1.4.0](https://github.com/standardrb/standard-performance/releases/tag/v1.4.0)
103
+
104
+ ## 1.35.1
105
+
106
+ * Corrects rubocop constraint to the patch version, not minor version.
107
+
108
+ ## 1.35.0
109
+
110
+ * Updates rubocop to [1.62](https://github.com/rubocop/rubocop/releases/tag/v1.62.1)
111
+
112
+ ## 1.34.0
113
+
114
+ * Updates rubocop to [1.60.2](https://github.com/rubocop/rubocop/releases/tag/v1.60.2)
115
+
116
+ ## 1.33.0
117
+
118
+ * Updates rubocop to [1.59.0](https://github.com/rubocop/rubocop/releases/tag/v1.59.0)
119
+ * Updates standard-performance to [1.3.0](https://github.com/standardrb/standard-performance/releases/tag/v1.3.0)
120
+
121
+ ## 1.32.1
122
+
123
+ * Fixes regeneration of TODO files ot avoid missing already-ignored rules [#587](https://github.com/standardrb/standard/pull/587)
124
+
125
+ ## 1.32.0
126
+
127
+ * Updates rubocop to [1.57.2](https://github.com/rubocop/rubocop/releases/tag/v1.57.2)
128
+
129
+ ## 1.31.2
130
+
131
+ * Updates rubocop to [1.52.4](https://github.com/rubocop/rubocop/releases/tag/v1.52.4)
132
+ * Updates standard-performance to [v1.2.1](https://github.com/standardrb/standard-performance/releases/tag/v1.2.1)
133
+
134
+ ## 1.31.1
135
+
136
+ * Updates rubocop to [1.52.2](https://github.com/rubocop/rubocop/releases/tag/v1.52.2)
137
+
138
+ ## 1.31.0
139
+
140
+ * Updates standard-performance to [v1.2.0](https://github.com/standardrb/standard-performance/releases/tag/v1.2.0)
141
+ * Updates rubocop to [1.56.0](https://github.com/rubocop/rubocop/releases/tag/v1.56.0)
142
+
143
+ ## 1.30.1
144
+
145
+ * Just kidding about about `Standard::PluginSupport`. Moving it to `LintRoller::Support`
146
+ to avoid circular dependencies between Standard Ruby and its plugins
147
+
148
+ ## 1.30.0
149
+
150
+ * Add `Standard::PluginSupport` module of classes designed to make it a little
151
+ easier to author plugins. `MergesUpstreamMetadata#merge` will allow a minimal
152
+ YAML config (say, `standard-sorbet`'s, which only contains `Enabled` values for
153
+ each rule) to merge in any other defaults from a source YAML (e.g.
154
+ `rubocop-sorbet`'s which includes `Description`, `VersionAdded`, and so on).
155
+ This way that metadata is neither absent at runtime nor duplicated in a standard
156
+ plugin that mirrors a rubocop extension
157
+
158
+ ## 1.29.0
159
+
160
+ * Updates standard-performance to [1.1.0](https://github.com/standardrb/standard-performance/releases/tag/v1.1.0)
161
+ * Updates rubocop to [1.52.0](https://github.com/rubocop/rubocop/releases/tag/v1.52.0)
162
+ * Enables Style/ExactRegexpMatch, Style/RedundantArrayConstructor, Style/RedundantFilterChain, Style/RedundantRegexpConstructor
163
+
164
+ ## 1.28.5
165
+
166
+ * Make LSP behave more nicely with nvim-lspconfig [#564](https://github.com/standardrb/standard/pull/564)
167
+
168
+ ## 1.28.4
169
+
170
+ * Fix [standard-rails#7](https://github.com/standardrb/standard-rails/issues/7#issuecomment-1563505365)
171
+
172
+ ## 1.28.3
173
+
174
+ * Older ruby support fixes from [@pboling](https://github.com/pboling):
175
+ * [#559](https://github.com/standardrb/standard/issues/559)
176
+ * [#561](https://github.com/standardrb/standard/issues/560)
177
+ * [#561](https://github.com/standardrb/standard/issues/561)
178
+
179
+ ## 1.28.2
180
+
181
+ * Attempts to fix the not-actually fixed plugin behavior in 1.28.1
182
+
183
+ ## 1.28.1
184
+
185
+ * Fixes plugin behavior caused by setting `DisabledByDefault: true` in `AllCops`
186
+ Effectively, a single lint_roller plugin whose `rules` were of type `:object`
187
+ would inadvertently mark all previously-defined rules as invalid.
188
+ [#557](https://github.com/standardrb/standard/pull/557)
189
+
190
+ ## 1.28.0
191
+
192
+ * Refactor Standard into 3 gems and convert all built-in configuration into
193
+ [lint_roller](https://github.com/standardrb/lint_roller) plugins. See:
194
+ * [standard-performance](https://github.com/standardrb/standard-performance)
195
+ * [standard-custom](https://github.com/standardrb/standard-custom)
196
+ * Standard's behavior when merging multiple `extend_config` that change the same
197
+ set of rules has been fixed to be first-in-wins, as opposed to last-in-wins.
198
+ This ensures a consistent behavior across plugins and extended configurations,
199
+ namely that the first thing to configure a given rule effectively locks it
200
+ from subsequent changes
201
+ * Enable `DisabledByDefault: true`. This shouldn't impact anyone, but might
202
+ change the behavior of some `extend_config` users. Because Standard specifies
203
+ every rule in rubocop and rubocop-performance, this configuration's absence
204
+ wasn't felt until we went to the plugin system, where it makes much more sense
205
+ for plugins to _opt-in_ to the cops they want to configure, as opposed to just
206
+ running every single one that they happen to load/require
207
+
208
+ ## 1.27.0
209
+
210
+ * Update rubocop from 1.48.1 to [1.50.2](https://github.com/rubocop/rubocop/releases/tag/v1.50.2)
211
+ * Enabled [Style/RedundantLineContinuation](https://docs.rubocop.org/rubocop/cops_style.html#styleredundantlinecontinuation)
212
+
213
+ ## 1.26.0
214
+
215
+ * Introduce `--fix-unsafely` and `rake standard:fix_unsafely` for running
216
+ unsafe corrections. Improve output about fix suggestions, as well
217
+ [#545](https://github.com/testdouble/standard/pull/545)
218
+
219
+ ## 1.25.5
220
+
221
+ * Temporarily disable registration of `executeCommand` to prevent conflict with
222
+ the VS Code extension's client-side registration of the same name
223
+ [#544](https://github.com/testdouble/standard/pull/544)
224
+
225
+ ## 1.25.4
226
+
227
+ * Bring the LSP Server's executeCommand capabilities in line with the spec
228
+ [#543](https://github.com/testdouble/standard/pull/543)
229
+
230
+ ## 1.25.3
231
+
232
+ * Relax the version specifier on `rubocop` and `rubocop-performance` to allow
233
+ patch-level updates
234
+
235
+ ## 1.25.2
236
+
237
+ * Disable Style/RedundantFetchBlock due to concerns the performance benefit
238
+ isn't worth the inconsistency it causes and the fact it is incompatible with
239
+ ActiveSupport [#527](https://github.com/testdouble/standard/issues/527)
240
+
241
+ ## 1.25.1
242
+
243
+ * When in `stdin` mode, don't invoke the RuboCop runner with `parallel: true` to
244
+ avoid an interaction that breaks auto-fixing
245
+ [#530](https://github.com/testdouble/standard/issues/530),
246
+ [#536](https://github.com/testdouble/standard/issues/536)
247
+
248
+ ## 1.25.0
249
+
250
+ * Update rubocop-performance from 1.15.2 to [1.16.0](https://github.com/rubocop/rubocop-performance/releases/tag/v1.16.0)
251
+ * Update rubocop from 1.44.1 to [1.48.1](https://github.com/rubocop/rubocop/releases/tag/v1.48.1)
252
+ * Enabled [Style/DirEmpty](https://docs.rubocop.org/rubocop/cops_style.html#styledirempty)
253
+ * Enabled [Style/RedundantHeredocDelimiterQuotes](https://docs.rubocop.org/rubocop/cops_style.html#styleredundantheredocdelimiterquotes)
254
+
255
+ ## 1.24.3
256
+
257
+ * _Further_ _further_ _further_ improve `--lsp` server to ignore files correctly
258
+
259
+ ## 1.24.2
260
+
261
+ * _Further_ _further_ improve `--lsp` server to always respond to requests
262
+
263
+ ## 1.24.1
264
+
265
+ * _Further_ improve `--lsp` server to better support commands used by VS Code
266
+
267
+ ## 1.24.0
268
+
269
+ * Improve `--lsp` server to better support the commands used by VS Code
270
+
271
+ ## 1.23.0
272
+
273
+ * Update rubocop from 1.42.0 to [1.44.1](https://github.com/rubocop/rubocop/releases/tag/v1.44.1)
274
+
275
+ ## 1.22.1
276
+
277
+ * Improve the behavior of `extend_config` to more accurately reflect how Rubocop
278
+ extensions would behave when loaded via the `rubocop` CLI (by capturing any
279
+ mutations to RuboCop's default configuration)
280
+ [#512](https://github.com/testdouble/standard/pull/512)
281
+
282
+ ## 1.22.0
283
+
284
+ * Add `extend_config` option [#506](https://github.com/testdouble/standard/pull/506)
285
+
286
+ ## 1.21.1
287
+
288
+ * Fix standard comment directives [#498](https://github.com/testdouble/standard/pull/498)
289
+
290
+ ## 1.21.0
291
+
292
+ * Update rubocop-performance from 1.15.1 to [1.15.2](https://github.com/rubocop/rubocop-performance/releases/tag/v1.15.2)
293
+ * Update rubocop from 1.40.0 to [1.42.0](https://github.com/rubocop/rubocop/releases/tag/v1.42.0)
294
+
295
+ ## 1.20.0
296
+
297
+ * Update rubocop from 1.39.0 to [1.40.0](https://github.com/rubocop/rubocop/releases/tag/v1.40.0)
298
+
299
+ ## 1.19.1
300
+
301
+ * Loosen dependency on `language_server-protocol`
302
+
303
+ ## 1.19.0
304
+
305
+ * Add a language server protocol (LSP) server via the new `standardrb --lsp`
306
+ command line mode. All credit to [@will](https://github.com/)!
307
+ [#475](https://github.com/testdouble/standard/pull/475)
308
+
309
+ ## 1.18.1
310
+
311
+ * Update rubocop-performance from 1.15.0 to [1.15.1](https://github.com/rubocop/rubocop-performance/releases/tag/v1.15.1)
312
+
313
+ ## 1.18.0
314
+
315
+ * Update rubocop from 1.38.0 to [1.39.0](https://github.com/rubocop/rubocop/releases/tag/v1.39.0)
316
+
317
+ ## 1.17.0
318
+
319
+ * Update rubocop-performance from 1.14.3 to [1.15.0](https://github.com/rubocop/rubocop-performance/releases/tag/v1.15.0)
320
+ * Update rubocop from 1.35.1 to [1.38.0](https://github.com/rubocop/rubocop/releases/tag/v1.38.0)
321
+ * Require parentheses around complex ternary conditions [3b0b499a](https://github.com/testdouble/standard/commit/3b0b499a480f8ed90dda1272d31b5617dc340b27)
322
+
323
+ ## 1.16.1
324
+
325
+ * Update rubocop from 1.35.0 to [1.35.1](https://github.com/rubocop/rubocop/releases/tag/v1.35.1)
326
+
327
+ ## 1.16.0
328
+
329
+ * Update rubocop from 1.33.0 to [1.35.0](https://github.com/rubocop/rubocop/releases/tag/v1.35.0)
330
+
331
+ ## 1.15.0
332
+
333
+ * Update rubocop from 1.32.0 to [1.33.0](https://github.com/rubocop/rubocop/releases/tag/v1.33.0)
334
+
335
+ ## 1.14.0
336
+
337
+ * Update rubocop from 1.31.2 to [1.32.0](https://github.com/rubocop/rubocop/releases/tag/v1.32.0)
338
+
339
+ ## 1.13.0
340
+
341
+ * Update rubocop-performance from 1.13.3 to [1.14.3](https://github.com/rubocop/rubocop-performance/releases/tag/v1.14.3)
342
+ * Update rubocop from 1.29.1 to [1.31.2](https://github.com/rubocop/rubocop/releases/tag/v1.31.2)
343
+
344
+ ## 1.12.1
345
+
346
+ * Update rubocop from 1.29.0 to [1.29.1](https://github.com/rubocop/rubocop/releases/tag/v1.29.1), fixing [#413](https://github.com/testdouble/standard/issues/413)
347
+
348
+ ## 1.12.0
349
+
350
+ * Update rubocop from 1.28.2 to [1.29.0](https://github.com/rubocop/rubocop/releases/tag/v1.29.0)
351
+
352
+ ## 1.11.0
353
+
354
+ * Update rubocop from 1.27.0 to [1.28.2](https://github.com/rubocop/rubocop/releases/tag/v1.28.2)
355
+
356
+ ## 1.10.0
357
+
358
+ * Update rubocop from 1.26.1 to [1.27.0](https://github.com/rubocop/rubocop/releases/tag/v1.27.0)
359
+
360
+ ## 1.9.1
361
+
362
+ * Update rubocop from 1.26.0 to [1.26.1](https://github.com/rubocop/rubocop/releases/tag/v1.26.1)
363
+
364
+ ## 1.9.0
365
+
366
+ * Rule change to `Layout/CaseIndentation` to have the `when` and `in`s inside a case statement aligned with the `end` of the case. The `end` will be aligned with a variable instead of the `case` keyword if applicable.
367
+
368
+ ## 1.8.0
369
+
370
+ * Update rubocop from 1.25.1 to [1.26.0](https://github.com/rubocop/rubocop/releases/tag/v1.26.0)
371
+
372
+ ## 1.7.3
373
+
374
+ * Update rubocop-performance from 1.13.2 to [1.13.3](https://github.com/rubocop/rubocop-performance/tag/v1.13.3)
375
+
376
+ ## 1.7.2
377
+
378
+ * Removes Style/RedundantBegin from Ruby versions <= 2.4
379
+
380
+ ## 1.7.1
381
+
382
+ * Update rubocop from 1.25.0 to [1.25.1](https://github.com/rubocop/rubocop/releases/tag/v1.25.1)
383
+
384
+ ## 1.7.0
385
+
386
+ * Update rubocop-performance from 1.13.1 to [1.13.2](https://github.com/rubocop/rubocop-performance/tag/v1.13.2)
387
+ * Update rubocop from 1.24.1 to [1.25.0](https://github.com/rubocop/rubocop/releases/tag/v1.25.0)
388
+
389
+ ## 1.6.0
390
+
391
+ * Update rubocop-performance from 1.12.0 to [1.13.1](https://github.com/rubocop/rubocop-performance/tag/v1.13.1)
392
+ * Update rubocop from 1.23.0 to [1.24.1](https://github.com/rubocop/rubocop/releases/tag/v1.24.1)
393
+
394
+ ## 1.5.0
395
+
396
+ * Update rubocop-performance from 1.11.5 to [1.12.0](https://github.com/rubocop/rubocop-performance/tag/v1.12.0)
397
+ * Update rubocop from 1.22.3 to [1.23.0](https://github.com/rubocop/rubocop/releases/tag/v1.23.0)
398
+
399
+ ## 1.4.0
400
+
401
+ * Update rubocop from 1.19.1 to [1.22.3](https://github.com/rubocop-hq/rubocop/releases/tag/v1.22.3)
402
+ * Remove [`Style/NegatedIf`](https://github.com/TODO)
403
+
404
+ ## 1.3.0
405
+
406
+ * Update rubocop from 1.19.1 to [1.20.0](https://github.com/rubocop-hq/rubocop/releases/tag/v1.20.0)
407
+
408
+ ## 1.2.0
409
+
410
+ * Update rubocop from 1.18.4 to [1.19.1](https://github.com/rubocop-hq/rubocop/releases/tag/v1.19.1)
411
+ * Update rubocop-performance from 1.11.4 to [1.11.5](https://github.com/rubocop-hq/rubocop-performance/releases/tag/v1.11.5)
412
+
413
+ ## 1.1.7
414
+
415
+ * Fix an issue with nested generated todos being ignored
416
+ [#311](https://github.com/testdouble/standard/pull/311)
417
+
418
+ ## 1.1.6
419
+
420
+ * Update rubocop from 1.18.3 to [1.18.4](https://github.com/rubocop-hq/rubocop/releases/tag/v1.18.4)
421
+
422
+ ## 1.1.5
423
+
424
+ * Update rubocop from 1.18.2 to [1.18.3](https://github.com/rubocop-hq/rubocop/releases/tag/v1.18.3)
425
+ * Update rubocop-performance from 1.11.3 to [1.11.4](https://github.com/rubocop-hq/rubocop-performance/releases/tag/v1.11.4)
426
+ * Disabled `Performance/DeletePrefix` because it was marked as unsafe.
427
+
428
+ ## 1.1.4
429
+
430
+ * Update rubocop from 1.18.1 to [1.18.2](https://github.com/rubocop-hq/rubocop/releases/tag/v1.18.2)
431
+ * Update rubocop-performance from 1.11.2 to [1.11.3](https://github.com/rubocop-hq/rubocop-performance/releases/tag/v1.11.3)
432
+
433
+ ## 1.1.3
434
+
435
+ * Update rubocop from 1.17.0 to [1.18.1](https://github.com/rubocop-hq/rubocop/releases/tag/v1.18.1)
436
+
437
+ ## 1.1.2
438
+
439
+ * Update rubocop from 1.14.0 to [1.17.0](https://github.com/rubocop-hq/rubocop/releases/tag/v1.17.0)
440
+
441
+ ## 1.1.1
442
+
443
+ * Update rubocop from 1.13.0 to [1.14.0](https://github.com/rubocop-hq/rubocop/releases/tag/v1.14.0)
444
+ * Update rubocop-performance from 1.11.1 to [1.11.2](https://github.com/rubocop-hq/rubocop-performance/releases/tag/v1.11.2)
445
+
446
+ ## 1.1.0
447
+
448
+ * Update rubocop from 1.12.1 to [1.13.0](https://github.com/rubocop-hq/rubocop/releases/tag/v1.13.0)
449
+ * Update rubocop-performance from 1.9.2 to [1.11.1](https://github.com/rubocop-hq/rubocop-performance/releases/tag/v1.11.1)
450
+ * Enabled the following rules:
451
+ * [`Performance/RedundantSplitRegexpArgument`](https://github.com/rubocop/rubocop-performance/pull/190)
452
+ * [`Style/IfWithBooleanLiteralBranches`](https://github.com/rubocop-hq/rubocop/pull/9396)
453
+ * [`Lint/TripleQuotes`](https://github.com/rubocop-hq/rubocop/pull/9402)
454
+ * [`Lint/SymbolConversion`](https://github.com/rubocop/rubocop/pull/9362)
455
+ * [`Lint/OrAssignmentToConstant`](https://github.com/rubocop-hq/rubocop/pull/9363)
456
+ * [`Lint/NumberedParameterAssignment`](https://github.com/rubocop-hq/rubocop/pull/9326)
457
+ * [`Style/HashConversion`](https://github.com/rubocop-hq/rubocop/pull/9478)
458
+ * [`Gemspec/DateAssignment`](https://github.com/rubocop-hq/rubocop/pull/9496)
459
+ * [`Style/StringChars`](https://github.com/rubocop/rubocop/pull/9615)
460
+
461
+ ## 1.0.5
462
+
463
+ * Update rubocop from 1.11.0 to [1.12.1](https://github.com/rubocop-hq/rubocop/releases/tag/v1.12.1)
464
+
465
+ ## 1.0.4
466
+
467
+ * Workaround RuboCop's CLI from erroring when it detects a cop named
468
+ BlockDelimiters by renaming it to BlockSingleLineBraces
469
+ ([#271](https://github.com/testdouble/standard/issues/271))
470
+
471
+ ## 1.0.3
472
+
473
+ * Fix an exit code bug introduced in 1.0.2
474
+ ([#272](https://github.com/testdouble/standard/pull/272)
475
+
476
+ ## 1.0.2
477
+
478
+ * Preserve RuboCop's CLI exit codes
479
+ ([#270](https://github.com/testdouble/standard/pull/270)) by
480
+ [@nicksieger](https://github.com/nicksieger)
481
+
482
+ ## 1.0.1
483
+
484
+ * Update rubocop from 1.10.0 to [1.11.0](https://github.com/rubocop-hq/rubocop/releases/tag/v1.11.0)
485
+ * Update rubocop-performance from 1.9.2 to [1.10.1](https://github.com/rubocop-hq/rubocop-performance/releases/tag/v1.10.1)
486
+
487
+ ## 1.0.0
488
+
489
+ * Relax multi-line block rules, moving away from enforcing semantic blocks to
490
+ instead allowing code to adhere to whatever multi-line format the author deems
491
+ best [#263](https://github.com/testdouble/standard/pull/263)
492
+ * Allow a `standard:disable` comment directive in addition to `rubocop:disable`
493
+ [#186](https://github.com/testdouble/standard/pull/186)
494
+ * Remove the banner text that standard outputs after failure
495
+ [#264](https://github.com/testdouble/standard/pull/264)
496
+
497
+ ## 0.13.0
498
+
499
+ * Update rubocop from 1.7.0 to [1.10.0](https://github.com/rubocop-hq/rubocop/releases/tag/v1.10.0) enabling:
500
+ * [`Lint/AmbiguousAssignment`](https://github.com/rubocop-hq/rubocop/issues/9223)
501
+ * [`Style/HashExcept`](https://github.com/rubocop-hq/rubocop/pull/9283)
502
+ * [`Lint/DeprecatedConstants`](https://github.com/rubocop-hq/rubocop/pull/9324)
503
+
504
+ ## 0.12.0
505
+
506
+ * Update rubocop from 1.7.0 to [1.8.1](https://github.com/rubocop-hq/rubocop/releases/tag/v1.8.1)
507
+ * Enabled [`Style/SlicingWithRange`](https://github.com/testdouble/standard/issues/175)
508
+
509
+ ## 0.11.0
510
+
511
+ * Update rubocop-performance from 1.9.1 to [1.9.2](https://github.com/rubocop-hq/rubocop-performance/releases/tag/v1.9.2)
512
+ * Update rubocop from 1.4.2 to [1.7.0](https://github.com/rubocop-hq/rubocop/releases/tag/v1.7.0)
513
+ * Changed `Style/NegatedIf` to `postfix`
514
+
515
+ ## 0.10.2
516
+
517
+ * Remove
518
+ [`Lint/DuplicateBranch`](https://github.com/testdouble/standard/pull/228)
519
+
520
+ ## 0.10.1
521
+
522
+ * Remove [`Performance/ArraySemiInfiniteRangeSlice`](https://github.com/testdouble/standard/pull/225#discussion_r532678908)
523
+
524
+ ## 0.10.0
525
+
526
+ * Update rubocop-performance from 1.8.1 to [1.9.1](https://github.com/rubocop-hq/rubocop-performance/releases/tag/v1.9.1) enabling:
527
+ * [`Performance/BlockGivenWithExplicitBlock`](https://github.com/rubocop-hq/rubocop-performance/pull/173)
528
+ * [`Performance/ConstantRegexp`](https://github.com/rubocop-hq/rubocop-performance/pull/174)
529
+ * [`Performance/ArraySemiInfiniteRangeSlice`](https://github.com/rubocop-hq/rubocop-performance/pull/175)
530
+ * Update rubocop from 1.2.0 to [1.4.2](https://github.com/rubocop-hq/rubocop/releases/tag/v1.4.2) enabling:
531
+ * [`Style/NilLambda`](https://github.com/rubocop-hq/rubocop/pull/9020)
532
+ * [`Lint/DuplicateBranch`](https://github.com/rubocop-hq/rubocop/pull/8404)
533
+
534
+ ## 0.9.0
535
+
536
+ * Update rubocop from 1.0.0 to [1.2.0](https://github.com/rubocop-hq/rubocop/releases/tag/v1.2.0) enabling:
537
+ * [`Lint/DuplicateRegexpCharacterClassElement`](https://github.com/rubocop-hq/rubocop/pull/8896)
538
+ * [`Style/ArgumentsForwarding`](https://github.com/rubocop-hq/rubocop/pull/7646)
539
+ * Don't find offense in `Style/SemanticBlocks` when a top-level `rescue` is used
540
+ in a `do`/`end` functional block, fixing
541
+ [#205](https://github.com/testdouble/standard/issues/205)
542
+
543
+ ## 0.8.1
544
+
545
+ * Make it match semver
546
+
547
+ ## 0.8
548
+
549
+ * Update rubocop from 0.93.1 to [1.0.0](https://github.com/rubocop-hq/rubocop/releases/tag/v1.0.0)
550
+ * Update rubocop from 0.92 to
551
+ [0.93](https://github.com/rubocop-hq/rubocop/releases/tag/v0.93) to
552
+ [0.93.1](https://github.com/rubocop-hq/rubocop/releases/tag/v0.93.1) enabling:
553
+ * [`Style/ClassEqualityComparison`](https://github.com/rubocop-hq/rubocop/pull/8833)
554
+ * Disable `Performance/Sum` because #208 and the lack of actual auto-correcting is also causing more trouble
555
+
556
+ ## 0.7
557
+
558
+ * Update rubocop from 0.91.1 to
559
+ [0.92](https://github.com/rubocop-hq/rubocop/releases/tag/v0.92)
560
+
561
+ ## 0.6.2
562
+
563
+ * Update rubocop from 0.91 to
564
+ [0.91.1](https://github.com/rubocop-hq/rubocop/releases/tag/v0.91.1)
565
+ * Update rubocop-performance from 1.8.0 to 1.8.1:
566
+ * Enable `Performance/Sum`
567
+
568
+ ## 0.6.1
569
+
570
+ * Update Rubocop from
571
+ [0.90](https://github.com/rubocop-hq/rubocop/releases/tag/v0.90.0)
572
+ to
573
+ [0.91](https://github.com/rubocop-hq/rubocop/releases/tag/v0.91.0),
574
+ enabling:
575
+ * [`Lint/UselessTimes`](https://github.com/rubocop-hq/rubocop/pull/8702)
576
+ * [`Layout/BeginEndAlignment`](https://github.com/rubocop-hq/rubocop/pull/8628)
577
+ * [`Lint/ConstantDefinitionInBlock`](https://github.com/rubocop-hq/rubocop/pull/8707)
578
+ * [`Lint/IdentityComparison`](https://github.com/rubocop-hq/rubocop/pull/8699/)
579
+ re-enabling after bug fixes:
580
+ * [`Bundler/DuplicatedGem`](https://github.com/rubocop-hq/rubocop/pull/8666)
581
+ * [`Naming/BinaryOperatorParameterName`](https://github.com/rubocop-hq/rubocop/issues/8664)
582
+
583
+ ## 0.6.0
584
+
585
+ * Update Rubocop from
586
+ [0.89.1](https://github.com/rubocop-hq/rubocop/releases/tag/v0.89.1)
587
+ to
588
+ [0.90](https://github.com/rubocop-hq/rubocop/releases/tag/v0.90.0),
589
+ enabling:
590
+ * [`Style/KeywordParametersOrder`](https://github.com/rubocop-hq/rubocop/pull/8563)
591
+ * [`Lint/DuplicateRequire`](https://github.com/rubocop-hq/rubocop/pull/8474)
592
+ * [`Lint/TrailingCommaInAttributeDeclaration`](https://github.com/rubocop-hq/rubocop/pull/8549)
593
+ * Update [`Style/Alias` to prefer `alias_method`](https://github.com/testdouble/standard/pull/196)
594
+ * Update rubocop-performance from 1.7.1 to 1.8.0:
595
+ * Plan to enable [`Performance/Sum`](https://github.com/rubocop-hq/rubocop-performance/pull/137) in the future, but there is currently a bug in the implementation
596
+ * Add `ruby-2.3.yml` to add support for 2.3.
597
+
598
+ ## 0.5.2
599
+
600
+ * Turned off `Lint/MissingSuper`, because it effectively bans a common idiom in
601
+ Sorbet ([#195](https://github.com/testdouble/standard/issues/195)) and might
602
+ be a bit too heavy-handed/opinionated for cases where a class is designed
603
+ intentionally to not run its parent's initializer (like abstract superclasses
604
+ more generally)
605
+
606
+ ## 0.5.1
607
+
608
+ * Enabled `Style/MultilineWhenThen`
609
+
610
+ ## 0.5.0
611
+
612
+ * Update Rubocop from
613
+ [0.85.0](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md#0850-2020-06-01)
614
+ to
615
+ [0.89.1](https://github.com/rubocop-hq/rubocop/releases/tag/v0.89.1),
616
+ enabling:
617
+ * `Lint/BinaryOperatorWithIdenticalOperands`
618
+ * `Lint/DuplicateElsifCondition`
619
+ * `Lint/DuplicateRescueException`
620
+ * `Lint/FloatComparison`
621
+ * `Lint/MissingSuper`
622
+ * `Lint/OutOfRangeRegexpRef`
623
+ * `Lint/RedundantRequireStatement`
624
+ * `Lint/RedundantSplatExpansion`
625
+ * `Lint/SafeNavigationWithEmpty`
626
+ * `Lint/SelfAssignment`
627
+ * `Lint/TopLevelReturnWithArgument`
628
+ * `Style/GlobalStdStream`
629
+ * `Style/RedundantAssignment`
630
+ * `Style/RedundantFetchBlock`
631
+ * `Style/RedundantFileExtensionInRequire`
632
+ * Update rubocop-performance from 1.6.0 to 1.7.1, enabling:
633
+ * `Performance/BigDecimalWithNumericArgument`
634
+ * `Performance/RedundantSortBlock`
635
+ * `Performance/RedundantStringChars`
636
+ * `Performance/ReverseFirst`
637
+ * `Performance/SortReverse`
638
+ * `Performance/Squeeze`
639
+
640
+ ## 0.4.7
641
+
642
+ * Update Rubocop from
643
+ [0.83.0](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md#0830-2020-05-11)
644
+ to
645
+ [0.85.0](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md#0850-2020-06-01), notably:
646
+
647
+ * Enable
648
+ [Lint/MixedRegexpCaptureTypes](https://rubocop.readthedocs.io/en/stable/cops_lint/#lintmixedregexpcapturetypes)
649
+ * Enable
650
+ [Lint/DeprecatedOpenSSLConstant](https://rubocop.readthedocs.io/en/stable/cops_lint/#lintdeprecatedopensslconstant)
651
+ * Enable
652
+ [Style/RedundantRegexpCharacterClass](https://github.com/rubocop-hq/rubocop/pull/8055)
653
+ * Enable
654
+ [Style/RedundantRegexpEscape](https://github.com/rubocop-hq/rubocop/pull/7908)
655
+ * Update rubocop-performance to
656
+ [1.6.0](https://github.com/rubocop-hq/rubocop-performance/blob/master/CHANGELOG.md#160-2020-05-22),
657
+ enabling:
658
+ * [Performance/BindCall](https://github.com/rubocop-hq/rubocop-performance/issues/77)
659
+ * [Performance/DeletePrefix](https://github.com/rubocop-hq/rubocop-performance/pull/105)
660
+ * [Performance/DeleteSuffix](https://github.com/rubocop-hq/rubocop-performance/pull/105)
661
+
662
+ ## 0.4.6
663
+
664
+ * Disable `Naming/BinaryOperatorParameterName` because (when non-ascii method
665
+ names are used), it incorrectly identifies them as being `+()` operator
666
+ overrides (overly aggressive)
667
+
668
+ ## 0.4.5
669
+
670
+ * Disable `Naming/AsciiIdentifiers` for the same reason as mentioned below in
671
+ 0.4.4 (specifically to allow programs written in non-Latin languages to define
672
+ identifiers)
673
+
674
+ ## 0.4.4
675
+
676
+ * Disable `Naming/MethodName` cop. While `snake_case` is the conventional way to
677
+ name a Ruby method, the cop is too restrictive in that it also prevents
678
+ non-ASCII characters from being included in method names
679
+
680
+ ## 0.4.3
681
+
682
+ * Improve output of the todo feature
683
+
684
+ ## 0.4.2
685
+
686
+ * Track Rubocop
687
+ [0.83.0](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md#0830-2020-05-11)
688
+ * Update our default to allow trailing whitespace in heredocs
689
+ * Disable auto-correct for a cop that changed `:true` to `true`, as that's not
690
+ safe
691
+ * Allow comments in empty `when` blocks
692
+
693
+ ## 0.4.1
694
+
695
+ * add given/given! as `{}` friendly blocks [#172](https://github.com/testdouble/standard/pull/172)
696
+
697
+ ## 0.4.0
698
+
699
+ * Add `--todo` mode for incremental adoption of Standard to a project ([PR](https://github.com/testdouble/standard/pull/155) by [@mrbiggred](https://github.com/mrbiggred))
700
+
701
+ ## 0.3.0
702
+
703
+ * Update Standard to track Rubocop 0.82.0 ([commit](https://github.com/testdouble/standard/commit/d663ea62d519c659087ad606bfed031c6303ff20))