ruby-lsp 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +9 -1
  3. data/.github/workflows/publish_docs.yml +32 -0
  4. data/.rubocop.yml +25 -0
  5. data/CHANGELOG.md +23 -0
  6. data/Gemfile +8 -4
  7. data/Gemfile.lock +64 -13
  8. data/README.md +58 -1
  9. data/Rakefile +5 -0
  10. data/VERSION +1 -1
  11. data/bin/tapioca +29 -0
  12. data/dev.yml +3 -0
  13. data/exe/ruby-lsp +19 -3
  14. data/lib/ruby-lsp.rb +2 -0
  15. data/lib/ruby_lsp/cli.rb +23 -7
  16. data/lib/ruby_lsp/document.rb +98 -6
  17. data/lib/ruby_lsp/handler.rb +119 -18
  18. data/lib/ruby_lsp/internal.rb +7 -0
  19. data/lib/ruby_lsp/requests/base_request.rb +19 -5
  20. data/lib/ruby_lsp/requests/code_actions.rb +30 -9
  21. data/lib/ruby_lsp/requests/diagnostics.rb +29 -77
  22. data/lib/ruby_lsp/requests/document_highlight.rb +111 -0
  23. data/lib/ruby_lsp/requests/document_symbol.rb +75 -16
  24. data/lib/ruby_lsp/requests/folding_ranges.rb +63 -19
  25. data/lib/ruby_lsp/requests/formatting.rb +19 -2
  26. data/lib/ruby_lsp/requests/rubocop_request.rb +21 -8
  27. data/lib/ruby_lsp/requests/selection_ranges.rb +114 -0
  28. data/lib/ruby_lsp/requests/semantic_highlighting.rb +132 -61
  29. data/lib/ruby_lsp/requests/support/rubocop_diagnostic.rb +100 -0
  30. data/lib/ruby_lsp/requests/support/selection_range.rb +20 -0
  31. data/lib/ruby_lsp/requests/support/semantic_token_encoder.rb +70 -0
  32. data/lib/ruby_lsp/requests/support/syntax_error_diagnostic.rb +32 -0
  33. data/lib/ruby_lsp/requests.rb +10 -0
  34. data/lib/ruby_lsp/store.rb +23 -2
  35. data/rakelib/check_docs.rake +57 -0
  36. data/ruby-lsp.gemspec +2 -1
  37. data/sorbet/config +4 -0
  38. data/sorbet/rbi/.rubocop.yml +8 -0
  39. data/sorbet/rbi/gems/ansi@1.5.0.rbi +338 -0
  40. data/sorbet/rbi/gems/ast@2.4.2.rbi +522 -0
  41. data/sorbet/rbi/gems/builder@3.2.4.rbi +418 -0
  42. data/sorbet/rbi/gems/coderay@1.1.3.rbi +8 -0
  43. data/sorbet/rbi/gems/debug@1.5.0.rbi +1273 -0
  44. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +867 -0
  45. data/sorbet/rbi/gems/io-console@0.5.11.rbi +8 -0
  46. data/sorbet/rbi/gems/irb@1.4.1.rbi +376 -0
  47. data/sorbet/rbi/gems/language_server-protocol@3.16.0.3.rbi +7325 -0
  48. data/sorbet/rbi/gems/method_source@1.0.0.rbi +8 -0
  49. data/sorbet/rbi/gems/minitest-reporters@1.5.0.rbi +612 -0
  50. data/sorbet/rbi/gems/minitest@5.15.0.rbi +994 -0
  51. data/sorbet/rbi/gems/parallel@1.22.1.rbi +163 -0
  52. data/sorbet/rbi/gems/parser@3.1.2.0.rbi +3968 -0
  53. data/sorbet/rbi/gems/prettier_print@0.1.0.rbi +734 -0
  54. data/sorbet/rbi/gems/pry@0.14.1.rbi +8 -0
  55. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +227 -0
  56. data/sorbet/rbi/gems/rake@13.0.6.rbi +1853 -0
  57. data/sorbet/rbi/gems/rbi@0.0.14.rbi +2337 -0
  58. data/sorbet/rbi/gems/regexp_parser@2.5.0.rbi +1854 -0
  59. data/sorbet/rbi/gems/reline@0.3.1.rbi +1274 -0
  60. data/sorbet/rbi/gems/rexml@3.2.5.rbi +3852 -0
  61. data/sorbet/rbi/gems/rubocop-ast@1.18.0.rbi +4180 -0
  62. data/sorbet/rbi/gems/rubocop-minitest@0.20.0.rbi +1369 -0
  63. data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +246 -0
  64. data/sorbet/rbi/gems/rubocop-shopify@2.6.0.rbi +8 -0
  65. data/sorbet/rbi/gems/rubocop-sorbet@0.6.8.rbi +652 -0
  66. data/sorbet/rbi/gems/rubocop@1.30.0.rbi +36729 -0
  67. data/sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi +732 -0
  68. data/sorbet/rbi/gems/spoom@1.1.11.rbi +1600 -0
  69. data/sorbet/rbi/gems/syntax_tree@2.7.1.rbi +6777 -0
  70. data/sorbet/rbi/gems/tapioca@0.8.1.rbi +1972 -0
  71. data/sorbet/rbi/gems/thor@1.2.1.rbi +2921 -0
  72. data/sorbet/rbi/gems/unicode-display_width@2.1.0.rbi +27 -0
  73. data/sorbet/rbi/gems/unparser@0.6.5.rbi +2789 -0
  74. data/sorbet/rbi/gems/webrick@1.7.0.rbi +1779 -0
  75. data/sorbet/rbi/gems/yard-sorbet@0.6.1.rbi +289 -0
  76. data/sorbet/rbi/gems/yard@0.9.27.rbi +13048 -0
  77. data/sorbet/rbi/shims/fiddle.rbi +4 -0
  78. data/sorbet/rbi/shims/hash.rbi +6 -0
  79. data/sorbet/rbi/shims/rdoc.rbi +4 -0
  80. data/sorbet/tapioca/config.yml +13 -0
  81. data/sorbet/tapioca/require.rb +7 -0
  82. metadata +74 -6
  83. data/shipit.production.yml +0 -1
@@ -0,0 +1,8 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `method_source` gem.
5
+ # Please instead update this file by running `bin/tapioca gem method_source`.
6
+
7
+ # THIS IS AN EMPTY RBI FILE.
8
+ # see https://github.com/Shopify/tapioca/wiki/Manual-Gem-Requires
@@ -0,0 +1,612 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `minitest-reporters` gem.
5
+ # Please instead update this file by running `bin/tapioca gem minitest-reporters`.
6
+
7
+ module Minitest
8
+ class << self
9
+ def __run(reporter, options); end
10
+ def after_run(&block); end
11
+ def autorun; end
12
+ def backtrace_filter; end
13
+ def backtrace_filter=(_arg0); end
14
+ def clock_time; end
15
+ def extensions; end
16
+ def extensions=(_arg0); end
17
+ def filter_backtrace(bt); end
18
+ def info_signal; end
19
+ def info_signal=(_arg0); end
20
+ def init_plugins(options); end
21
+ def load_plugins; end
22
+ def parallel_executor; end
23
+ def parallel_executor=(_arg0); end
24
+ def process_args(args = T.unsafe(nil)); end
25
+ def reporter; end
26
+ def reporter=(_arg0); end
27
+ def run(args = T.unsafe(nil)); end
28
+ def run_one_method(klass, method_name); end
29
+ end
30
+ end
31
+
32
+ Minitest::ENCS = T.let(T.unsafe(nil), TrueClass)
33
+
34
+ # Filters backtraces of exceptions that may arise when running tests.
35
+ class Minitest::ExtensibleBacktraceFilter
36
+ # Creates a new backtrace filter.
37
+ #
38
+ # @return [ExtensibleBacktraceFilter] a new instance of ExtensibleBacktraceFilter
39
+ def initialize; end
40
+
41
+ # Adds a filter.
42
+ #
43
+ # @param regex [Regex] the filter
44
+ def add_filter(regex); end
45
+
46
+ # Filters a backtrace.
47
+ #
48
+ # This will add new lines to the new backtrace until a filtered line is
49
+ # encountered. If there were lines added to the new backtrace, it returns
50
+ # those lines. However, if the first line in the backtrace was filtered,
51
+ # resulting in an empty backtrace, it returns all lines that would have
52
+ # been unfiltered. If that in turn does not contain any lines, it returns
53
+ # the original backtrace.
54
+ #
55
+ # @note This logic is based off of Minitest's #filter_backtrace.
56
+ # @param backtrace [Array] the backtrace to filter
57
+ # @return [Array] the filtered backtrace
58
+ def filter(backtrace); end
59
+
60
+ # Determines if the string would be filtered.
61
+ #
62
+ # @param str [String]
63
+ # @return [Boolean]
64
+ def filters?(str); end
65
+
66
+ class << self
67
+ # Returns the default filter.
68
+ #
69
+ # The default filter will filter out all Minitest and minitest-reporters
70
+ # lines.
71
+ #
72
+ # @return [Minitest::ExtensibleBacktraceFilter]
73
+ def default_filter; end
74
+ end
75
+ end
76
+
77
+ module Minitest::RelativePosition
78
+ private
79
+
80
+ def pad(str, size = T.unsafe(nil)); end
81
+ def pad_mark(str); end
82
+ def pad_test(str); end
83
+ def print_with_info_padding(line); end
84
+ end
85
+
86
+ Minitest::RelativePosition::INFO_PADDING = T.let(T.unsafe(nil), Integer)
87
+ Minitest::RelativePosition::MARK_SIZE = T.let(T.unsafe(nil), Integer)
88
+ Minitest::RelativePosition::TEST_PADDING = T.let(T.unsafe(nil), Integer)
89
+ Minitest::RelativePosition::TEST_SIZE = T.let(T.unsafe(nil), Integer)
90
+
91
+ module Minitest::Reporters
92
+ class << self
93
+ def choose_reporters(console_reporters, env); end
94
+ def clock_time; end
95
+ def minitest_version; end
96
+
97
+ # Returns the value of attribute reporters.
98
+ def reporters; end
99
+
100
+ # Sets the attribute reporters
101
+ #
102
+ # @param value the value to set the attribute reporters to.
103
+ def reporters=(_arg0); end
104
+
105
+ def use!(console_reporters = T.unsafe(nil), env = T.unsafe(nil), backtrace_filter = T.unsafe(nil)); end
106
+ def use_around_test_hooks!; end
107
+ def use_old_activesupport_fix!; end
108
+ def use_runner!(console_reporters, env); end
109
+ end
110
+ end
111
+
112
+ module Minitest::Reporters::ANSI; end
113
+
114
+ module Minitest::Reporters::ANSI::Code
115
+ include ::ANSI::Constants
116
+ include ::ANSI::Code
117
+ extend ::ANSI::Constants
118
+ extend ::ANSI::Code
119
+
120
+ class << self
121
+ # @return [Boolean]
122
+ def color?; end
123
+ end
124
+ end
125
+
126
+ class Minitest::Reporters::BaseReporter < ::Minitest::StatisticsReporter
127
+ # @return [BaseReporter] a new instance of BaseReporter
128
+ def initialize(options = T.unsafe(nil)); end
129
+
130
+ def add_defaults(defaults); end
131
+
132
+ # called by our own after hooks
133
+ def after_test(_test); end
134
+
135
+ # called by our own before hooks
136
+ def before_test(test); end
137
+
138
+ def record(test); end
139
+ def report; end
140
+
141
+ # Returns the value of attribute tests.
142
+ def tests; end
143
+
144
+ # Sets the attribute tests
145
+ #
146
+ # @param value the value to set the attribute tests to.
147
+ def tests=(_arg0); end
148
+
149
+ protected
150
+
151
+ def after_suite(test); end
152
+ def before_suite(test); end
153
+ def filter_backtrace(backtrace); end
154
+ def print(*args); end
155
+ def print_colored_status(test); end
156
+ def print_info(e, name = T.unsafe(nil)); end
157
+ def puts(*args); end
158
+ def result(test); end
159
+ def test_class(result); end
160
+ def total_count; end
161
+ def total_time; end
162
+ end
163
+
164
+ class Minitest::Reporters::DefaultReporter < ::Minitest::Reporters::BaseReporter
165
+ include ::ANSI::Constants
166
+ include ::ANSI::Code
167
+ include ::Minitest::Reporters::ANSI::Code
168
+ include ::Minitest::RelativePosition
169
+
170
+ # @return [DefaultReporter] a new instance of DefaultReporter
171
+ def initialize(options = T.unsafe(nil)); end
172
+
173
+ def after_suite(suite); end
174
+ def before_suite(suite); end
175
+ def before_test(test); end
176
+ def on_record(test); end
177
+ def on_report; end
178
+ def on_start; end
179
+ def print_failure(test); end
180
+ def record(test); end
181
+ def record_failure(record); end
182
+ def record_pass(record); end
183
+ def record_skip(record); end
184
+ def report; end
185
+ def start; end
186
+ def to_s; end
187
+
188
+ private
189
+
190
+ # @return [Boolean]
191
+ def color?; end
192
+
193
+ def colored_for(result, string); end
194
+ def get_source_location(result); end
195
+ def green(string); end
196
+ def location(exception); end
197
+ def message_for(test); end
198
+ def red(string); end
199
+ def relative_path(path); end
200
+ def result_line; end
201
+ def suite_duration(suite); end
202
+ def suite_result; end
203
+ def yellow(string); end
204
+ end
205
+
206
+ # A reporter for generating HTML test reports
207
+ # This is recommended to be used with a CI server, where the report is kept as an artifact and is accessible via
208
+ # a shared link
209
+ #
210
+ # The reporter sorts the results alphabetically and then by results
211
+ # so that failing and skipped tests are at the top.
212
+ #
213
+ # When using Minitest Specs, the number prefix is dropped from the name of the test so that it reads well
214
+ #
215
+ # On each test run all files in the reports directory are deleted, this prevents a build up of old reports
216
+ #
217
+ # The report is generated using ERB. A custom ERB template can be provided but it is not required
218
+ # The default ERB template uses JQuery and Bootstrap, both of these are included by referencing the CDN sites
219
+ class Minitest::Reporters::HtmlReporter < ::Minitest::Reporters::BaseReporter
220
+ # The constructor takes a hash, and uses the following keys:
221
+ # :title - the title that will be used in the report, defaults to 'Test Results'
222
+ # :reports_dir - the directory the reports should be written to, defaults to 'test/html_reports'
223
+ # :erb_template - the path to a custom ERB template, defaults to the supplied ERB template
224
+ # :mode - Useful for debugging, :terse suppresses errors and is the default, :verbose lets errors bubble up
225
+ # :output_filename - the report's filename, defaults to 'index.html'
226
+ #
227
+ # @return [HtmlReporter] a new instance of HtmlReporter
228
+ def initialize(args = T.unsafe(nil)); end
229
+
230
+ # Trims off the number prefix on test names when using Minitest Specs
231
+ def friendly_name(test); end
232
+
233
+ # The number of tests that passed
234
+ def passes; end
235
+
236
+ # The percentage of tests that failed
237
+ def percent_errors_failures; end
238
+
239
+ # The percentage of tests that passed, calculated in a way that avoids rounding errors
240
+ def percent_passes; end
241
+
242
+ # The percentage of tests that were skipped
243
+ def percent_skipps; end
244
+
245
+ # Called by the framework to generate the report
246
+ def report; end
247
+
248
+ def start; end
249
+
250
+ # The title of the report
251
+ def title; end
252
+
253
+ private
254
+
255
+ # Test suites are first ordered by evaluating the results of the tests, then by test suite name
256
+ # Test suites which have failing tests are given highest order
257
+ # Tests suites which have skipped tests are given second highest priority
258
+ def compare_suites(suite_a, suite_b); end
259
+
260
+ def compare_suites_by_name(suite_a, suite_b); end
261
+
262
+ # Tests are first ordered by evaluating the results of the tests, then by tests names
263
+ # Tess which fail are given highest order
264
+ # Tests which are skipped are given second highest priority
265
+ def compare_tests(test_a, test_b); end
266
+
267
+ def compare_tests_by_name(test_a, test_b); end
268
+ def html_file; end
269
+
270
+ # taken from the JUnit reporter
271
+ def location(exception); end
272
+
273
+ # based on message_for(test) from the JUnit reporter
274
+ def message_for(test); end
275
+
276
+ # based on analyze_suite from the JUnit reporter
277
+ def summarize_suite(suite, tests); end
278
+
279
+ # @return [Boolean]
280
+ def test_fail_or_error?(test); end
281
+
282
+ def total_time_to_hms; end
283
+ end
284
+
285
+ # A reporter for writing JUnit test reports
286
+ # Intended for easy integration with CI servers - tested on JetBrains TeamCity
287
+ #
288
+ # Inspired by ci_reporter (see https://github.com/nicksieger/ci_reporter)
289
+ # Also inspired by Marc Seeger's attempt at producing a JUnitReporter (see https://github.com/rb2k/minitest-reporters/commit/e13d95b5f884453a9c77f62bc5cba3fa1df30ef5)
290
+ # Also inspired by minitest-ci (see https://github.com/bhenderson/minitest-ci)
291
+ class Minitest::Reporters::JUnitReporter < ::Minitest::Reporters::BaseReporter
292
+ # @return [JUnitReporter] a new instance of JUnitReporter
293
+ def initialize(reports_dir = T.unsafe(nil), empty = T.unsafe(nil), options = T.unsafe(nil)); end
294
+
295
+ def get_relative_path(result); end
296
+ def report; end
297
+
298
+ # Returns the value of attribute reports_path.
299
+ def reports_path; end
300
+
301
+ private
302
+
303
+ def analyze_suite(tests); end
304
+ def filename_for(suite); end
305
+ def get_source_location(result); end
306
+ def location(exception); end
307
+ def message_for(test); end
308
+ def parse_xml_for(xml, suite, tests); end
309
+ def xml_message_for(test); end
310
+ end
311
+
312
+ Minitest::Reporters::JUnitReporter::DEFAULT_REPORTS_DIR = T.let(T.unsafe(nil), String)
313
+
314
+ # This reporter creates a report providing the average (mean), minimum and
315
+ # maximum times for a test to run. Running this for all your tests will
316
+ # allow you to:
317
+ #
318
+ # 1) Identify the slowest running tests over time as potential candidates
319
+ # for improvements or refactoring.
320
+ # 2) Identify (and fix) regressions in test run speed caused by changes to
321
+ # your tests or algorithms in your code.
322
+ # 3) Provide an abundance of statistics to enjoy.
323
+ #
324
+ # This is achieved by creating a (configurable) 'previous runs' statistics
325
+ # file which is parsed at the end of each run to provide a new
326
+ # (configurable) report. These statistics can be reset at any time by using
327
+ # a simple rake task:
328
+ #
329
+ # rake reset_statistics
330
+ class Minitest::Reporters::MeanTimeReporter < ::Minitest::Reporters::DefaultReporter
331
+ # @option previous_runs_filename
332
+ # @option show_count
333
+ # @option show_progress
334
+ # @option show_all_runs
335
+ # @option sort_column
336
+ # @option order
337
+ # @option report_filename
338
+ # @param order [Hash] a customizable set of options
339
+ # @param previous_runs_filename [Hash] a customizable set of options
340
+ # @param options [Hash]
341
+ # @param report_filename [Hash] a customizable set of options
342
+ # @param show_count [Hash] a customizable set of options
343
+ # @param show_progress [Hash] a customizable set of options
344
+ # @param show_all_runs [Hash] a customizable set of options
345
+ # @param sort_column [Hash] a customizable set of options
346
+ # @return [Minitest::Reporters::MeanTimeReporter]
347
+ def initialize(options = T.unsafe(nil)); end
348
+
349
+ # Copies the suite times from the
350
+ # {Minitest::Reporters::DefaultReporter#after_suite} method, making them
351
+ # available to this class.
352
+ #
353
+ # @return [Hash<String => Float>]
354
+ def after_suite(suite); end
355
+
356
+ def on_record(test); end
357
+ def on_report; end
358
+ def on_start; end
359
+
360
+ # Runs the {Minitest::Reporters::DefaultReporter#report} method and then
361
+ # enhances it by storing the results to the 'previous_runs_filename' and
362
+ # outputs the parsed results to both the 'report_filename' and the
363
+ # terminal.
364
+ def report; end
365
+
366
+ # Resets the 'previous runs' file, essentially removing all previous
367
+ # statistics gathered.
368
+ #
369
+ # @return [void]
370
+ def reset_statistics!; end
371
+
372
+ protected
373
+
374
+ # Returns the value of attribute all_suite_times.
375
+ def all_suite_times; end
376
+
377
+ # Sets the attribute all_suite_times
378
+ #
379
+ # @param value the value to set the attribute all_suite_times to.
380
+ def all_suite_times=(_arg0); end
381
+
382
+ private
383
+
384
+ # @return [Boolean] Whether the given :order option is :asc.
385
+ def asc?; end
386
+
387
+ # @return [String] A yellow 'Avg:' label.
388
+ def avg_label; end
389
+
390
+ # @return [Array<Hash<Symbol => String>>] All of the results sorted by
391
+ # the :sort_column option. (Defaults to :avg).
392
+ def column_sorted_body; end
393
+
394
+ # Creates a new report file in the 'report_filename'. This file contains
395
+ # a line for each test of the following example format: (this is a single
396
+ # line despite explicit wrapping)
397
+ #
398
+ # Avg: 0.0555555 Min: 0.0498765 Max: 0.0612345 Last: 0.0499421
399
+ # Description: The test name
400
+ #
401
+ # Note however the timings are to 9 decimal places, and padded to 12
402
+ # characters and each label is coloured, Avg (yellow), Min (green),
403
+ # Max (red), Last (multi), and Description (blue). It looks pretty!
404
+ #
405
+ # The 'Last' label is special in that it will be colour coded depending
406
+ # on whether the last run was faster (bright green) or slower (bright red)
407
+ # or inconclusive (purple). This helps to identify changes on a per run
408
+ # basis.
409
+ #
410
+ # @return [void]
411
+ def create_new_report!; end
412
+
413
+ # Creates a new 'previous runs' file, or updates the existing one with
414
+ # the latest timings.
415
+ #
416
+ # @return [void]
417
+ def create_or_update_previous_runs!; end
418
+
419
+ # @return [Hash<String => Float>]
420
+ def current_run; end
421
+
422
+ # @return [Hash] Sets default values for the filenames used by this class,
423
+ # and the number of tests to output to output to the screen after each
424
+ # run.
425
+ def defaults; end
426
+
427
+ # @return [String] A blue 'Description:' label.
428
+ def des_label; end
429
+
430
+ # @return [Boolean] Whether the given :order option is :desc (default).
431
+ def desc?; end
432
+
433
+ # @return [String] A red 'Max:' label.
434
+ def max_label; end
435
+
436
+ # @return [String] A green 'Min:' label.
437
+ def min_label; end
438
+
439
+ # @return [Hash]
440
+ def options; end
441
+
442
+ # @raise [Minitest::Reporters::MeanTimeReporter::InvalidOrder] When the given :order option is invalid.
443
+ # @return [Symbol] The :order option, or by default; :desc.
444
+ def order; end
445
+
446
+ # @return [String] All of the column-sorted results sorted by the :order
447
+ # option. (Defaults to :desc).
448
+ def order_sorted_body; end
449
+
450
+ # @return [Hash<String => Array<Float>]] Hash<String => Array<Float>]
451
+ def previous_run; end
452
+
453
+ # @return [String] The path to the file which contains all the durations
454
+ # for each test run. The previous runs file is in YAML format, using the
455
+ # test name for the key and an array containing the time taken to run
456
+ # this test for values.
457
+ def previous_runs_filename; end
458
+
459
+ # Returns a boolean indicating whether a previous runs file exists.
460
+ #
461
+ # @return [Boolean]
462
+ def previously_ran?; end
463
+
464
+ # @param run [Float] The last run time.
465
+ # @param min [Float] The minimum run time.
466
+ # @param max [Float] The maximum run time.
467
+ # @return [Symbol] One of :faster, :slower or :inconclusive.
468
+ def rate(run, min, max); end
469
+
470
+ # The report itself. Displays statistics about all runs, ideal for use
471
+ # with the Unix 'head' command. Listed in slowest average descending
472
+ # order.
473
+ #
474
+ # @return [String]
475
+ def report_body; end
476
+
477
+ # @return [String] The path to the file which contains the parsed test
478
+ # results. The results file contains a line for each test with the
479
+ # average time of the test, the minimum time the test took to run,
480
+ # the maximum time the test took to run and a description of the test
481
+ # (which is the test name as emitted by Minitest).
482
+ def report_filename; end
483
+
484
+ # Added to the top of the report file and to the screen output.
485
+ #
486
+ # @return [String]
487
+ def report_title; end
488
+
489
+ # @param rating [Symbol] One of :faster, :slower or :inconclusive.
490
+ # @return [String] A purple 'Last:' label.
491
+ def run_label(rating); end
492
+
493
+ # A barbaric way to find out how many runs are in the previous runs file;
494
+ # this method takes the first test listed, and counts its samples
495
+ # trusting (naively) all runs to be the same number of samples. This will
496
+ # produce incorrect averages when new tests are added, so it is advised
497
+ # to restart the statistics by removing the 'previous runs' file. A rake
498
+ # task is provided to make this more convenient.
499
+ #
500
+ # rake reset_statistics
501
+ #
502
+ # @return [Fixnum]
503
+ def samples; end
504
+
505
+ # @return [Fixnum] The number of tests to output to output to the screen
506
+ # after each run.
507
+ def show_count; end
508
+
509
+ # @raise [Minitest::Reporters::MeanTimeReporter::InvalidSortColumn] When the given :sort_column option is invalid.
510
+ # @return [Symbol] The :sort_column option, or by default; :avg.
511
+ def sort_column; end
512
+
513
+ # Writes a number of tests (configured via the 'show_count' option) to the
514
+ # screen after creating the report. See '#create_new_report!' for example
515
+ # output information.
516
+ #
517
+ # @return [void]
518
+ def write_to_screen!; end
519
+
520
+ class << self
521
+ # Reset the statistics file for this reporter. Called via a rake task:
522
+ #
523
+ # rake reset_statistics
524
+ #
525
+ # @return [Boolean]
526
+ def reset_statistics!; end
527
+ end
528
+ end
529
+
530
+ class Minitest::Reporters::MeanTimeReporter::InvalidOrder < ::StandardError; end
531
+ class Minitest::Reporters::MeanTimeReporter::InvalidSortColumn < ::StandardError; end
532
+
533
+ class Minitest::Reporters::ProgressReporter < ::Minitest::Reporters::BaseReporter
534
+ include ::Minitest::RelativePosition
535
+ include ::ANSI::Constants
536
+ include ::ANSI::Code
537
+ include ::Minitest::Reporters::ANSI::Code
538
+
539
+ # @return [ProgressReporter] a new instance of ProgressReporter
540
+ def initialize(options = T.unsafe(nil)); end
541
+
542
+ def before_test(test); end
543
+ def record(test); end
544
+ def report; end
545
+ def start; end
546
+
547
+ private
548
+
549
+ def color; end
550
+ def color=(color); end
551
+ def print_test_with_time(test); end
552
+ def show; end
553
+ end
554
+
555
+ Minitest::Reporters::ProgressReporter::PROGRESS_MARK = T.let(T.unsafe(nil), String)
556
+
557
+ # Simple reporter designed for RubyMate.
558
+ class Minitest::Reporters::RubyMateReporter < ::Minitest::Reporters::BaseReporter
559
+ include ::Minitest::RelativePosition
560
+
561
+ def record(test); end
562
+ def report; end
563
+ def start; end
564
+
565
+ private
566
+
567
+ def print_test_with_time(test); end
568
+ end
569
+
570
+ Minitest::Reporters::RubyMateReporter::INFO_PADDING = T.let(T.unsafe(nil), Integer)
571
+
572
+ class Minitest::Reporters::RubyMineReporter < ::Minitest::Reporters::DefaultReporter
573
+ def initialize(options = T.unsafe(nil)); end
574
+ end
575
+
576
+ class Minitest::Reporters::SpecReporter < ::Minitest::Reporters::BaseReporter
577
+ include ::ANSI::Constants
578
+ include ::ANSI::Code
579
+ include ::Minitest::Reporters::ANSI::Code
580
+ include ::Minitest::RelativePosition
581
+
582
+ def record(test); end
583
+ def report; end
584
+ def start; end
585
+
586
+ protected
587
+
588
+ def after_suite(_suite); end
589
+ def before_suite(suite); end
590
+ def record_print_failures_if_any(test); end
591
+ def record_print_status(test); end
592
+ end
593
+
594
+ class Minitest::Reporters::Suite
595
+ # @return [Suite] a new instance of Suite
596
+ def initialize(name); end
597
+
598
+ def ==(other); end
599
+
600
+ # @return [Boolean]
601
+ def eql?(other); end
602
+
603
+ def hash; end
604
+
605
+ # Returns the value of attribute name.
606
+ def name; end
607
+
608
+ def to_s; end
609
+ end
610
+
611
+ Minitest::Reporters::VERSION = T.let(T.unsafe(nil), String)
612
+ Minitest::VERSION = T.let(T.unsafe(nil), String)