tsumanne 0.0.0

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 (56) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +3 -0
  3. data/.rubocop.yml +32 -0
  4. data/.ruby-version +1 -0
  5. data/LICENSE.txt +21 -0
  6. data/README.md +31 -0
  7. data/Rakefile +45 -0
  8. data/lib/tsumanne/version.rb +7 -0
  9. data/lib/tsumanne.rb +128 -0
  10. data/sorbet/config +4 -0
  11. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  12. data/sorbet/rbi/gems/ast@2.4.2.rbi +584 -0
  13. data/sorbet/rbi/gems/base64@0.1.1.rbi +172 -0
  14. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +1083 -0
  15. data/sorbet/rbi/gems/erubi@1.12.0.rbi +145 -0
  16. data/sorbet/rbi/gems/ffi-compiler@1.0.1.rbi +206 -0
  17. data/sorbet/rbi/gems/ffi@1.15.5.rbi +1994 -0
  18. data/sorbet/rbi/gems/http-parser@1.2.3.rbi +422 -0
  19. data/sorbet/rbi/gems/json@2.6.3.rbi +1533 -0
  20. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14237 -0
  21. data/sorbet/rbi/gems/mhtml@0.1.6.rbi +353 -0
  22. data/sorbet/rbi/gems/netrc@0.11.0.rbi +158 -0
  23. data/sorbet/rbi/gems/parallel@1.23.0.rbi +273 -0
  24. data/sorbet/rbi/gems/parser@3.2.2.3.rbi +7253 -0
  25. data/sorbet/rbi/gems/prettier_print@1.2.1.rbi +951 -0
  26. data/sorbet/rbi/gems/racc@1.7.1.rbi +161 -0
  27. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +402 -0
  28. data/sorbet/rbi/gems/rake@13.0.6.rbi +3024 -0
  29. data/sorbet/rbi/gems/rbi@0.0.17.rbi +2967 -0
  30. data/sorbet/rbi/gems/regexp_parser@2.8.1.rbi +3749 -0
  31. data/sorbet/rbi/gems/rexml@3.2.6.rbi +4781 -0
  32. data/sorbet/rbi/gems/rspec-core@3.12.2.rbi +10805 -0
  33. data/sorbet/rbi/gems/rspec-expectations@3.12.3.rbi +8100 -0
  34. data/sorbet/rbi/gems/rspec-mocks@3.12.6.rbi +5310 -0
  35. data/sorbet/rbi/gems/rspec-support@3.12.1.rbi +1609 -0
  36. data/sorbet/rbi/gems/rspec@3.12.0.rbi +82 -0
  37. data/sorbet/rbi/gems/rubocop-ast@1.29.0.rbi +7144 -0
  38. data/sorbet/rbi/gems/rubocop-capybara@2.18.0.rbi +827 -0
  39. data/sorbet/rbi/gems/rubocop-factory_bot@2.23.1.rbi +812 -0
  40. data/sorbet/rbi/gems/rubocop-performance@1.19.0.rbi +3157 -0
  41. data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +328 -0
  42. data/sorbet/rbi/gems/rubocop-rspec@2.23.2.rbi +7691 -0
  43. data/sorbet/rbi/gems/rubocop-sorbet@0.7.3.rbi +1226 -0
  44. data/sorbet/rbi/gems/rubocop@1.56.2.rbi +56541 -0
  45. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1317 -0
  46. data/sorbet/rbi/gems/spoom@1.2.3.rbi +3199 -0
  47. data/sorbet/rbi/gems/syntax_tree@6.1.1.rbi +22855 -0
  48. data/sorbet/rbi/gems/tapioca@0.11.8.rbi +3329 -0
  49. data/sorbet/rbi/gems/thor@1.2.2.rbi +3965 -0
  50. data/sorbet/rbi/gems/unicode-display_width@2.4.2.rbi +65 -0
  51. data/sorbet/rbi/gems/unparser@0.6.8.rbi +4525 -0
  52. data/sorbet/rbi/gems/yard-sorbet@0.8.1.rbi +425 -0
  53. data/sorbet/rbi/gems/yard@0.9.34.rbi +18219 -0
  54. data/sorbet/tapioca/config.yml +13 -0
  55. data/sorbet/tapioca/require.rb +4 -0
  56. metadata +254 -0
@@ -0,0 +1,3199 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `spoom` gem.
5
+ # Please instead update this file by running `bin/tapioca gem spoom`.
6
+
7
+ # source://spoom//lib/spoom.rb#7
8
+ module Spoom; end
9
+
10
+ # source://spoom//lib/spoom/cli/helper.rb#9
11
+ module Spoom::Cli; end
12
+
13
+ # source://spoom//lib/spoom/cli/bump.rb#9
14
+ class Spoom::Cli::Bump < ::Thor
15
+ include ::Spoom::Colorize
16
+ include ::Spoom::Cli::Helper
17
+
18
+ # source://spoom//lib/spoom/cli/bump.rb#49
19
+ sig { params(directory: ::String).void }
20
+ def bump(directory = T.unsafe(nil)); end
21
+
22
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
23
+
24
+ # source://spoom//lib/spoom/cli/bump.rb#170
25
+ def print_changes(files, command:, from: T.unsafe(nil), to: T.unsafe(nil), dry: T.unsafe(nil), path: T.unsafe(nil)); end
26
+
27
+ # source://spoom//lib/spoom/cli/bump.rb#192
28
+ def undo_changes(files, from_strictness); end
29
+ end
30
+
31
+ # source://spoom//lib/spoom/cli/config.rb#9
32
+ class Spoom::Cli::Config < ::Thor
33
+ include ::Spoom::Colorize
34
+ include ::Spoom::Cli::Helper
35
+
36
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
37
+
38
+ # source://spoom//lib/spoom/cli/config.rb#15
39
+ def show; end
40
+ end
41
+
42
+ # source://spoom//lib/spoom/cli/coverage.rb#9
43
+ class Spoom::Cli::Coverage < ::Thor
44
+ include ::Spoom::Colorize
45
+ include ::Spoom::Cli::Helper
46
+
47
+ # source://spoom//lib/spoom/cli/coverage.rb#198
48
+ def bundle_install(path, sha); end
49
+
50
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
51
+
52
+ # source://spoom//lib/spoom/cli/coverage.rb#210
53
+ def message_no_data(file); end
54
+
55
+ # source://spoom//lib/spoom/cli/coverage.rb#173
56
+ def open(file = T.unsafe(nil)); end
57
+
58
+ # source://spoom//lib/spoom/cli/coverage.rb#189
59
+ def parse_time(string, option); end
60
+
61
+ # source://spoom//lib/spoom/cli/coverage.rb#142
62
+ def report; end
63
+
64
+ # source://spoom//lib/spoom/cli/coverage.rb#20
65
+ def snapshot; end
66
+
67
+ # source://spoom//lib/spoom/cli/coverage.rb#42
68
+ def timeline; end
69
+ end
70
+
71
+ # source://spoom//lib/spoom/cli/coverage.rb#12
72
+ Spoom::Cli::Coverage::DATA_DIR = T.let(T.unsafe(nil), String)
73
+
74
+ # source://spoom//lib/spoom/cli/helper.rb#10
75
+ module Spoom::Cli::Helper
76
+ include ::Spoom::Colorize
77
+
78
+ requires_ancestor { Thor }
79
+
80
+ # source://spoom//lib/spoom/cli/helper.rb#119
81
+ sig { params(string: ::String).returns(::String) }
82
+ def blue(string); end
83
+
84
+ # Is the `--color` option true?
85
+ #
86
+ # source://spoom//lib/spoom/cli/helper.rb#83
87
+ sig { returns(T::Boolean) }
88
+ def color?; end
89
+
90
+ # Colorize a string if `color?`
91
+ #
92
+ # source://spoom//lib/spoom/cli/helper.rb#112
93
+ sig { params(string: ::String, color: ::Spoom::Color).returns(::String) }
94
+ def colorize(string, *color); end
95
+
96
+ # Returns the context at `--path` (by default the current working directory)
97
+ #
98
+ # source://spoom//lib/spoom/cli/helper.rb#51
99
+ sig { returns(::Spoom::Context) }
100
+ def context; end
101
+
102
+ # Raise if `spoom` is not ran inside a context with a `sorbet/config` file
103
+ #
104
+ # source://spoom//lib/spoom/cli/helper.rb#57
105
+ sig { returns(::Spoom::Context) }
106
+ def context_requiring_sorbet!; end
107
+
108
+ # source://spoom//lib/spoom/cli/helper.rb#124
109
+ sig { params(string: ::String).returns(::String) }
110
+ def cyan(string); end
111
+
112
+ # Return the path specified through `--path`
113
+ #
114
+ # source://spoom//lib/spoom/cli/helper.rb#72
115
+ sig { returns(::String) }
116
+ def exec_path; end
117
+
118
+ # source://spoom//lib/spoom/cli/helper.rb#129
119
+ sig { params(string: ::String).returns(::String) }
120
+ def gray(string); end
121
+
122
+ # source://spoom//lib/spoom/cli/helper.rb#134
123
+ sig { params(string: ::String).returns(::String) }
124
+ def green(string); end
125
+
126
+ # source://spoom//lib/spoom/cli/helper.rb#88
127
+ sig { params(string: ::String).returns(::String) }
128
+ def highlight(string); end
129
+
130
+ # source://spoom//lib/spoom/cli/helper.rb#139
131
+ sig { params(string: ::String).returns(::String) }
132
+ def red(string); end
133
+
134
+ # Print `message` on `$stdout`
135
+ #
136
+ # source://spoom//lib/spoom/cli/helper.rb#20
137
+ sig { params(message: ::String).void }
138
+ def say(message); end
139
+
140
+ # Print `message` on `$stderr`
141
+ #
142
+ # The message is prefixed by a status (default: `Error`).
143
+ #
144
+ # source://spoom//lib/spoom/cli/helper.rb#39
145
+ sig { params(message: ::String, status: T.nilable(::String), nl: T::Boolean).void }
146
+ def say_error(message, status: T.unsafe(nil), nl: T.unsafe(nil)); end
147
+
148
+ # source://spoom//lib/spoom/cli/helper.rb#144
149
+ sig { params(string: ::String).returns(::String) }
150
+ def yellow(string); end
151
+ end
152
+
153
+ # source://spoom//lib/spoom/cli/lsp.rb#10
154
+ class Spoom::Cli::LSP < ::Thor
155
+ include ::Spoom::Colorize
156
+ include ::Spoom::Cli::Helper
157
+
158
+ # TODO: options, filter, limit, kind etc.. filter rbi
159
+ #
160
+ # source://spoom//lib/spoom/cli/lsp.rb#55
161
+ def defs(file, line, col); end
162
+
163
+ # TODO: options, filter, limit, kind etc.. filter rbi
164
+ #
165
+ # source://spoom//lib/spoom/cli/lsp.rb#65
166
+ def find(query); end
167
+
168
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
169
+
170
+ # TODO: options, filter, limit, kind etc.. filter rbi
171
+ #
172
+ # source://spoom//lib/spoom/cli/lsp.rb#41
173
+ def hover(file, line, col); end
174
+
175
+ # TODO: options, filter, limit, kind etc.. filter rbi
176
+ #
177
+ # source://spoom//lib/spoom/cli/lsp.rb#26
178
+ def list; end
179
+
180
+ # source://spoom//lib/spoom/cli/lsp.rb#114
181
+ def lsp_client; end
182
+
183
+ # TODO: options, filter, limit, kind etc.. filter rbi
184
+ #
185
+ # source://spoom//lib/spoom/cli/lsp.rb#85
186
+ def refs(file, line, col); end
187
+
188
+ # source://spoom//lib/spoom/cli/lsp.rb#137
189
+ def run(&block); end
190
+
191
+ # source://spoom//lib/spoom/cli/lsp.rb#16
192
+ def show; end
193
+
194
+ # TODO: options, filter, limit, kind etc.. filter rbi
195
+ #
196
+ # source://spoom//lib/spoom/cli/lsp.rb#95
197
+ def sigs(file, line, col); end
198
+
199
+ # source://spoom//lib/spoom/cli/lsp.rb#129
200
+ def symbol_printer; end
201
+
202
+ # TODO: options, filter, limit, kind etc.. filter rbi
203
+ #
204
+ # source://spoom//lib/spoom/cli/lsp.rb#75
205
+ def symbols(file); end
206
+
207
+ # source://spoom//lib/spoom/cli/lsp.rb#162
208
+ def to_uri(path); end
209
+
210
+ # TODO: options, filter, limit, kind etc.. filter rbi
211
+ #
212
+ # source://spoom//lib/spoom/cli/lsp.rb#105
213
+ def types(file, line, col); end
214
+ end
215
+
216
+ # source://spoom//lib/spoom/cli.rb#16
217
+ class Spoom::Cli::Main < ::Thor
218
+ include ::Spoom::Colorize
219
+ include ::Spoom::Cli::Helper
220
+
221
+ # source://spoom//lib/spoom/cli.rb#61
222
+ def __print_version; end
223
+
224
+ # source://thor/1.2.2/lib/thor.rb#239
225
+ def bump(*args); end
226
+
227
+ # source://thor/1.2.2/lib/thor.rb#239
228
+ def config(*args); end
229
+
230
+ # source://thor/1.2.2/lib/thor.rb#239
231
+ def coverage(*args); end
232
+
233
+ # source://spoom//lib/spoom/cli.rb#43
234
+ def files; end
235
+
236
+ # source://thor/1.2.2/lib/thor.rb#239
237
+ def lsp(*args); end
238
+
239
+ # source://thor/1.2.2/lib/thor.rb#239
240
+ def tc(*args); end
241
+
242
+ class << self
243
+ # @return [Boolean]
244
+ #
245
+ # source://spoom//lib/spoom/cli.rb#68
246
+ def exit_on_failure?; end
247
+ end
248
+ end
249
+
250
+ # source://spoom//lib/spoom/cli/run.rb#6
251
+ class Spoom::Cli::Run < ::Thor
252
+ include ::Spoom::Colorize
253
+ include ::Spoom::Cli::Helper
254
+
255
+ # source://spoom//lib/spoom/cli/run.rb#131
256
+ def colorize_message(message); end
257
+
258
+ # source://spoom//lib/spoom/cli/run.rb#122
259
+ def format_error(error, format); end
260
+
261
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
262
+
263
+ # source://spoom//lib/spoom/cli/run.rb#26
264
+ def tc(*paths_to_select); end
265
+ end
266
+
267
+ # source://spoom//lib/spoom/cli/run.rb#15
268
+ Spoom::Cli::Run::DEFAULT_FORMAT = T.let(T.unsafe(nil), String)
269
+
270
+ # source://spoom//lib/spoom/cli/run.rb#11
271
+ Spoom::Cli::Run::SORT_CODE = T.let(T.unsafe(nil), String)
272
+
273
+ # source://spoom//lib/spoom/cli/run.rb#13
274
+ Spoom::Cli::Run::SORT_ENUM = T.let(T.unsafe(nil), Array)
275
+
276
+ # source://spoom//lib/spoom/cli/run.rb#12
277
+ Spoom::Cli::Run::SORT_LOC = T.let(T.unsafe(nil), String)
278
+
279
+ # source://spoom//lib/spoom/colors.rb#5
280
+ class Spoom::Color < ::T::Enum
281
+ enums do
282
+ CLEAR = new
283
+ BOLD = new
284
+ BLACK = new
285
+ RED = new
286
+ GREEN = new
287
+ YELLOW = new
288
+ BLUE = new
289
+ MAGENTA = new
290
+ CYAN = new
291
+ WHITE = new
292
+ LIGHT_BLACK = new
293
+ LIGHT_RED = new
294
+ LIGHT_GREEN = new
295
+ LIGHT_YELLOW = new
296
+ LIGHT_BLUE = new
297
+ LIGHT_MAGENTA = new
298
+ LIGHT_CYAN = new
299
+ LIGHT_WHITE = new
300
+ end
301
+
302
+ # source://spoom//lib/spoom/colors.rb#32
303
+ sig { returns(::String) }
304
+ def ansi_code; end
305
+ end
306
+
307
+ # source://spoom//lib/spoom/colors.rb#37
308
+ module Spoom::Colorize
309
+ # source://spoom//lib/spoom/colors.rb#41
310
+ sig { params(string: ::String, color: ::Spoom::Color).returns(::String) }
311
+ def set_color(string, *color); end
312
+ end
313
+
314
+ # An abstraction to a Ruby project context
315
+ #
316
+ # A context maps to a directory in the file system.
317
+ # It is used to manipulate files and run commands in the context of this directory.
318
+ #
319
+ # source://spoom//lib/spoom/context/bundle.rb#5
320
+ class Spoom::Context
321
+ include ::Spoom::Context::Bundle
322
+ include ::Spoom::Context::Exec
323
+ include ::Spoom::Context::FileSystem
324
+ include ::Spoom::Context::Git
325
+ include ::Spoom::Context::Sorbet
326
+
327
+ # Create a new context about `absolute_path`
328
+ #
329
+ # The directory will not be created if it doesn't exist.
330
+ # Call `#make!` to create it.
331
+ #
332
+ # source://spoom//lib/spoom/context.rb#51
333
+ sig { params(absolute_path: ::String).void }
334
+ def initialize(absolute_path); end
335
+
336
+ # The absolute path to the directory this context is about
337
+ #
338
+ # source://spoom//lib/spoom/context.rb#44
339
+ sig { returns(::String) }
340
+ def absolute_path; end
341
+
342
+ class << self
343
+ # Create a new context in the system's temporary directory
344
+ #
345
+ # `name` is used as prefix to the temporary directory name.
346
+ # The directory will be created if it doesn't exist.
347
+ #
348
+ # source://spoom//lib/spoom/context.rb#37
349
+ sig { params(name: T.nilable(::String)).returns(T.attached_class) }
350
+ def mktmp!(name = T.unsafe(nil)); end
351
+ end
352
+ end
353
+
354
+ # Bundle features for a context
355
+ #
356
+ # source://spoom//lib/spoom/context/bundle.rb#7
357
+ module Spoom::Context::Bundle
358
+ requires_ancestor { Spoom::Context }
359
+
360
+ # Run a command with `bundle` in this context directory
361
+ #
362
+ # source://spoom//lib/spoom/context/bundle.rb#33
363
+ sig { params(command: ::String, version: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) }
364
+ def bundle(command, version: T.unsafe(nil), capture_err: T.unsafe(nil)); end
365
+
366
+ # Run a command `bundle exec` in this context directory
367
+ #
368
+ # source://spoom//lib/spoom/context/bundle.rb#46
369
+ sig { params(command: ::String, version: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) }
370
+ def bundle_exec(command, version: T.unsafe(nil), capture_err: T.unsafe(nil)); end
371
+
372
+ # Run `bundle install` in this context directory
373
+ #
374
+ # source://spoom//lib/spoom/context/bundle.rb#40
375
+ sig { params(version: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) }
376
+ def bundle_install!(version: T.unsafe(nil), capture_err: T.unsafe(nil)); end
377
+
378
+ # Get `gem` version from the `Gemfile.lock` content
379
+ #
380
+ # Returns `nil` if `gem` cannot be found in the Gemfile.
381
+ #
382
+ # source://spoom//lib/spoom/context/bundle.rb#62
383
+ sig { params(gem: ::String).returns(T.nilable(::String)) }
384
+ def gem_version_from_gemfile_lock(gem); end
385
+
386
+ # source://spoom//lib/spoom/context/bundle.rb#51
387
+ sig { returns(T::Hash[::String, ::Bundler::LazySpecification]) }
388
+ def gemfile_lock_specs; end
389
+
390
+ # Read the contents of the Gemfile in this context directory
391
+ #
392
+ # source://spoom//lib/spoom/context/bundle.rb#15
393
+ sig { returns(T.nilable(::String)) }
394
+ def read_gemfile; end
395
+
396
+ # Read the contents of the Gemfile.lock in this context directory
397
+ #
398
+ # source://spoom//lib/spoom/context/bundle.rb#21
399
+ sig { returns(T.nilable(::String)) }
400
+ def read_gemfile_lock; end
401
+
402
+ # Set the `contents` of the Gemfile in this context directory
403
+ #
404
+ # source://spoom//lib/spoom/context/bundle.rb#27
405
+ sig { params(contents: ::String, append: T::Boolean).void }
406
+ def write_gemfile!(contents, append: T.unsafe(nil)); end
407
+ end
408
+
409
+ # Execution features for a context
410
+ #
411
+ # source://spoom//lib/spoom/context/exec.rb#27
412
+ module Spoom::Context::Exec
413
+ requires_ancestor { Spoom::Context }
414
+
415
+ # Run a command in this context directory
416
+ #
417
+ # source://spoom//lib/spoom/context/exec.rb#35
418
+ sig { params(command: ::String, capture_err: T::Boolean).returns(::Spoom::ExecResult) }
419
+ def exec(command, capture_err: T.unsafe(nil)); end
420
+ end
421
+
422
+ # File System features for a context
423
+ #
424
+ # source://spoom//lib/spoom/context/file_system.rb#7
425
+ module Spoom::Context::FileSystem
426
+ requires_ancestor { Spoom::Context }
427
+
428
+ # Returns the absolute path to `relative_path` in the context's directory
429
+ #
430
+ # source://spoom//lib/spoom/context/file_system.rb#15
431
+ sig { params(relative_path: ::String).returns(::String) }
432
+ def absolute_path_to(relative_path); end
433
+
434
+ # source://spoom//lib/spoom/context/file_system.rb#53
435
+ sig do
436
+ params(
437
+ allow_extensions: T::Array[::String],
438
+ allow_mime_types: T::Array[::String],
439
+ exclude_patterns: T::Array[::String]
440
+ ).returns(T::Array[::String])
441
+ end
442
+ def collect_files(allow_extensions: T.unsafe(nil), allow_mime_types: T.unsafe(nil), exclude_patterns: T.unsafe(nil)); end
443
+
444
+ # Delete this context and its content
445
+ #
446
+ # Warning: it will `rm -rf` the context directory on the file system.
447
+ #
448
+ # source://spoom//lib/spoom/context/file_system.rb#105
449
+ sig { void }
450
+ def destroy!; end
451
+
452
+ # Does the context directory at `absolute_path` exist and is a directory?
453
+ #
454
+ # source://spoom//lib/spoom/context/file_system.rb#21
455
+ sig { returns(T::Boolean) }
456
+ def exist?; end
457
+
458
+ # Does `relative_path` point to an existing file in this context directory?
459
+ #
460
+ # source://spoom//lib/spoom/context/file_system.rb#65
461
+ sig { params(relative_path: ::String).returns(T::Boolean) }
462
+ def file?(relative_path); end
463
+
464
+ # List all files in this context matching `pattern`
465
+ #
466
+ # source://spoom//lib/spoom/context/file_system.rb#34
467
+ sig { params(pattern: ::String).returns(T::Array[::String]) }
468
+ def glob(pattern = T.unsafe(nil)); end
469
+
470
+ # List all files at the top level of this context directory
471
+ #
472
+ # source://spoom//lib/spoom/context/file_system.rb#42
473
+ sig { returns(T::Array[::String]) }
474
+ def list; end
475
+
476
+ # Create the context directory at `absolute_path`
477
+ #
478
+ # source://spoom//lib/spoom/context/file_system.rb#27
479
+ sig { void }
480
+ def mkdir!; end
481
+
482
+ # Move the file or directory from `from_relative_path` to `to_relative_path`
483
+ #
484
+ # source://spoom//lib/spoom/context/file_system.rb#95
485
+ sig { params(from_relative_path: ::String, to_relative_path: ::String).void }
486
+ def move!(from_relative_path, to_relative_path); end
487
+
488
+ # Return the contents of the file at `relative_path` in this context directory
489
+ #
490
+ # Will raise if the file doesn't exist.
491
+ #
492
+ # source://spoom//lib/spoom/context/file_system.rb#73
493
+ sig { params(relative_path: ::String).returns(::String) }
494
+ def read(relative_path); end
495
+
496
+ # Remove the path at `relative_path` (recursive + force) in this context directory
497
+ #
498
+ # source://spoom//lib/spoom/context/file_system.rb#89
499
+ sig { params(relative_path: ::String).void }
500
+ def remove!(relative_path); end
501
+
502
+ # Write `contents` in the file at `relative_path` in this context directory
503
+ #
504
+ # Append to the file if `append` is true.
505
+ #
506
+ # source://spoom//lib/spoom/context/file_system.rb#81
507
+ sig { params(relative_path: ::String, contents: ::String, append: T::Boolean).void }
508
+ def write!(relative_path, contents = T.unsafe(nil), append: T.unsafe(nil)); end
509
+ end
510
+
511
+ # Git features for a context
512
+ #
513
+ # source://spoom//lib/spoom/context/git.rb#35
514
+ module Spoom::Context::Git
515
+ requires_ancestor { Spoom::Context }
516
+
517
+ # Run a command prefixed by `git` in this context directory
518
+ #
519
+ # source://spoom//lib/spoom/context/git.rb#43
520
+ sig { params(command: ::String).returns(::Spoom::ExecResult) }
521
+ def git(command); end
522
+
523
+ # Run `git checkout` in this context directory
524
+ #
525
+ # source://spoom//lib/spoom/context/git.rb#62
526
+ sig { params(ref: ::String).returns(::Spoom::ExecResult) }
527
+ def git_checkout!(ref: T.unsafe(nil)); end
528
+
529
+ # Run `git checkout -b <branch-name> <ref>` in this context directory
530
+ #
531
+ # source://spoom//lib/spoom/context/git.rb#68
532
+ sig { params(branch_name: ::String, ref: T.nilable(::String)).returns(::Spoom::ExecResult) }
533
+ def git_checkout_new_branch!(branch_name, ref: T.unsafe(nil)); end
534
+
535
+ # Run `git add . && git commit` in this context directory
536
+ #
537
+ # source://spoom//lib/spoom/context/git.rb#78
538
+ sig { params(message: ::String, time: ::Time, allow_empty: T::Boolean).returns(::Spoom::ExecResult) }
539
+ def git_commit!(message: T.unsafe(nil), time: T.unsafe(nil), allow_empty: T.unsafe(nil)); end
540
+
541
+ # Get the current git branch in this context directory
542
+ #
543
+ # source://spoom//lib/spoom/context/git.rb#89
544
+ sig { returns(T.nilable(::String)) }
545
+ def git_current_branch; end
546
+
547
+ # Run `git diff` in this context directory
548
+ #
549
+ # source://spoom//lib/spoom/context/git.rb#98
550
+ sig { params(arg: ::String).returns(::Spoom::ExecResult) }
551
+ def git_diff(*arg); end
552
+
553
+ # Run `git init` in this context directory
554
+ #
555
+ # Warning: passing a branch will run `git init -b <branch>` which is only available in git 2.28+.
556
+ # In older versions, use `git_init!` followed by `git("checkout -b <branch>")`.
557
+ #
558
+ # source://spoom//lib/spoom/context/git.rb#52
559
+ sig { params(branch: T.nilable(::String)).returns(::Spoom::ExecResult) }
560
+ def git_init!(branch: T.unsafe(nil)); end
561
+
562
+ # Get the last commit in the currently checked out branch
563
+ #
564
+ # source://spoom//lib/spoom/context/git.rb#104
565
+ sig { params(short_sha: T::Boolean).returns(T.nilable(::Spoom::Git::Commit)) }
566
+ def git_last_commit(short_sha: T.unsafe(nil)); end
567
+
568
+ # source://spoom//lib/spoom/context/git.rb#115
569
+ sig { params(arg: ::String).returns(::Spoom::ExecResult) }
570
+ def git_log(*arg); end
571
+
572
+ # Run `git push <remote> <ref>` in this context directory
573
+ #
574
+ # source://spoom//lib/spoom/context/git.rb#121
575
+ sig { params(remote: ::String, ref: ::String, force: T::Boolean).returns(::Spoom::ExecResult) }
576
+ def git_push!(remote, ref, force: T.unsafe(nil)); end
577
+
578
+ # source://spoom//lib/spoom/context/git.rb#126
579
+ sig { params(arg: ::String).returns(::Spoom::ExecResult) }
580
+ def git_show(*arg); end
581
+
582
+ # Is there uncommited changes in this context directory?
583
+ #
584
+ # source://spoom//lib/spoom/context/git.rb#132
585
+ sig { params(path: ::String).returns(T::Boolean) }
586
+ def git_workdir_clean?(path: T.unsafe(nil)); end
587
+ end
588
+
589
+ # Sorbet features for a context
590
+ #
591
+ # source://spoom//lib/spoom/context/sorbet.rb#7
592
+ module Spoom::Context::Sorbet
593
+ requires_ancestor { Spoom::Context }
594
+
595
+ # Does this context has a `sorbet/config` file?
596
+ #
597
+ # source://spoom//lib/spoom/context/sorbet.rb#119
598
+ sig { returns(T::Boolean) }
599
+ def has_sorbet_config?; end
600
+
601
+ # Read the strictness sigil from the file at `relative_path` (returns `nil` if no sigil)
602
+ #
603
+ # source://spoom//lib/spoom/context/sorbet.rb#142
604
+ sig { params(relative_path: ::String).returns(T.nilable(::String)) }
605
+ def read_file_strictness(relative_path); end
606
+
607
+ # Read the contents of `sorbet/config` in this context directory
608
+ #
609
+ # source://spoom//lib/spoom/context/sorbet.rb#130
610
+ sig { returns(::String) }
611
+ def read_sorbet_config; end
612
+
613
+ # source://spoom//lib/spoom/context/sorbet.rb#124
614
+ sig { returns(::Spoom::Sorbet::Config) }
615
+ def sorbet_config; end
616
+
617
+ # Get the commit introducing the `sorbet/config` file
618
+ #
619
+ # source://spoom//lib/spoom/context/sorbet.rb#148
620
+ sig { returns(T.nilable(::Spoom::Git::Commit)) }
621
+ def sorbet_intro_commit; end
622
+
623
+ # Get the commit removing the `sorbet/config` file
624
+ #
625
+ # source://spoom//lib/spoom/context/sorbet.rb#160
626
+ sig { returns(T.nilable(::Spoom::Git::Commit)) }
627
+ def sorbet_removal_commit; end
628
+
629
+ # Run `bundle exec srb` in this context directory
630
+ #
631
+ # source://spoom//lib/spoom/context/sorbet.rb#15
632
+ sig { params(arg: ::String, sorbet_bin: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) }
633
+ def srb(*arg, sorbet_bin: T.unsafe(nil), capture_err: T.unsafe(nil)); end
634
+
635
+ # List all files typechecked by Sorbet from its `config`
636
+ #
637
+ # source://spoom//lib/spoom/context/sorbet.rb#65
638
+ sig { params(with_config: T.nilable(::Spoom::Sorbet::Config), include_rbis: T::Boolean).returns(T::Array[::String]) }
639
+ def srb_files(with_config: T.unsafe(nil), include_rbis: T.unsafe(nil)); end
640
+
641
+ # List all files typechecked by Sorbet from its `config` that matches `strictness`
642
+ #
643
+ # source://spoom//lib/spoom/context/sorbet.rb#104
644
+ sig do
645
+ params(
646
+ strictness: ::String,
647
+ with_config: T.nilable(::Spoom::Sorbet::Config),
648
+ include_rbis: T::Boolean
649
+ ).returns(T::Array[::String])
650
+ end
651
+ def srb_files_with_strictness(strictness, with_config: T.unsafe(nil), include_rbis: T.unsafe(nil)); end
652
+
653
+ # source://spoom//lib/spoom/context/sorbet.rb#45
654
+ sig do
655
+ params(
656
+ arg: ::String,
657
+ sorbet_bin: T.nilable(::String),
658
+ capture_err: T::Boolean
659
+ ).returns(T.nilable(T::Hash[::String, ::Integer]))
660
+ end
661
+ def srb_metrics(*arg, sorbet_bin: T.unsafe(nil), capture_err: T.unsafe(nil)); end
662
+
663
+ # source://spoom//lib/spoom/context/sorbet.rb#33
664
+ sig { params(arg: ::String, sorbet_bin: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) }
665
+ def srb_tc(*arg, sorbet_bin: T.unsafe(nil), capture_err: T.unsafe(nil)); end
666
+
667
+ # source://spoom//lib/spoom/context/sorbet.rb#110
668
+ sig { params(arg: ::String, sorbet_bin: T.nilable(::String), capture_err: T::Boolean).returns(T.nilable(::String)) }
669
+ def srb_version(*arg, sorbet_bin: T.unsafe(nil), capture_err: T.unsafe(nil)); end
670
+
671
+ # Set the `contents` of `sorbet/config` in this context directory
672
+ #
673
+ # source://spoom//lib/spoom/context/sorbet.rb#136
674
+ sig { params(contents: ::String, append: T::Boolean).void }
675
+ def write_sorbet_config!(contents, append: T.unsafe(nil)); end
676
+ end
677
+
678
+ # source://spoom//lib/spoom/coverage/snapshot.rb#5
679
+ module Spoom::Coverage
680
+ class << self
681
+ # source://spoom//lib/spoom/coverage.rb#103
682
+ sig { params(context: ::Spoom::Context).returns(::Spoom::FileTree) }
683
+ def file_tree(context); end
684
+
685
+ # source://spoom//lib/spoom/coverage.rb#83
686
+ sig do
687
+ params(
688
+ context: ::Spoom::Context,
689
+ snapshots: T::Array[::Spoom::Coverage::Snapshot],
690
+ palette: ::Spoom::Coverage::D3::ColorPalette
691
+ ).returns(::Spoom::Coverage::Report)
692
+ end
693
+ def report(context, snapshots, palette:); end
694
+
695
+ # source://spoom//lib/spoom/coverage.rb#16
696
+ sig do
697
+ params(
698
+ context: ::Spoom::Context,
699
+ rbi: T::Boolean,
700
+ sorbet_bin: T.nilable(::String)
701
+ ).returns(::Spoom::Coverage::Snapshot)
702
+ end
703
+ def snapshot(context, rbi: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
704
+ end
705
+ end
706
+
707
+ # source://spoom//lib/spoom/coverage/report.rb#88
708
+ module Spoom::Coverage::Cards; end
709
+
710
+ # source://spoom//lib/spoom/coverage/report.rb#89
711
+ class Spoom::Coverage::Cards::Card < ::Spoom::Coverage::Template
712
+ # source://spoom//lib/spoom/coverage/report.rb#98
713
+ sig { params(template: ::String, title: T.nilable(::String), body: T.nilable(::String)).void }
714
+ def initialize(template: T.unsafe(nil), title: T.unsafe(nil), body: T.unsafe(nil)); end
715
+
716
+ # @return [String, nil]
717
+ #
718
+ # source://spoom//lib/spoom/coverage/report.rb#95
719
+ def body; end
720
+
721
+ # source://spoom//lib/spoom/coverage/report.rb#95
722
+ sig { returns(T.nilable(::String)) }
723
+ def title; end
724
+ end
725
+
726
+ # source://spoom//lib/spoom/coverage/report.rb#92
727
+ Spoom::Coverage::Cards::Card::TEMPLATE = T.let(T.unsafe(nil), String)
728
+
729
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
730
+ #
731
+ # source://spoom//lib/spoom/coverage/report.rb#105
732
+ class Spoom::Coverage::Cards::Erb < ::Spoom::Coverage::Cards::Card
733
+ abstract!
734
+
735
+ # source://spoom//lib/spoom/coverage/report.rb#112
736
+ sig { void }
737
+ def initialize; end
738
+
739
+ # @abstract
740
+ #
741
+ # source://spoom//lib/spoom/coverage/report.rb#120
742
+ sig { abstract.returns(::String) }
743
+ def erb; end
744
+
745
+ # source://spoom//lib/spoom/coverage/report.rb#115
746
+ sig { override.returns(::String) }
747
+ def html; end
748
+ end
749
+
750
+ # source://spoom//lib/spoom/coverage/report.rb#153
751
+ class Spoom::Coverage::Cards::Map < ::Spoom::Coverage::Cards::Card
752
+ # source://spoom//lib/spoom/coverage/report.rb#164
753
+ sig do
754
+ params(
755
+ file_tree: ::Spoom::FileTree,
756
+ nodes_strictnesses: T::Hash[::Spoom::FileTree::Node, T.nilable(::String)],
757
+ nodes_strictness_scores: T::Hash[::Spoom::FileTree::Node, ::Float],
758
+ title: ::String
759
+ ).void
760
+ end
761
+ def initialize(file_tree:, nodes_strictnesses:, nodes_strictness_scores:, title: T.unsafe(nil)); end
762
+ end
763
+
764
+ # source://spoom//lib/spoom/coverage/report.rb#123
765
+ class Spoom::Coverage::Cards::Snapshot < ::Spoom::Coverage::Cards::Card
766
+ # source://spoom//lib/spoom/coverage/report.rb#132
767
+ sig { params(snapshot: ::Spoom::Coverage::Snapshot, title: ::String).void }
768
+ def initialize(snapshot:, title: T.unsafe(nil)); end
769
+
770
+ # source://spoom//lib/spoom/coverage/report.rb#143
771
+ sig { returns(::Spoom::Coverage::D3::Pie::Calls) }
772
+ def pie_calls; end
773
+
774
+ # source://spoom//lib/spoom/coverage/report.rb#138
775
+ sig { returns(::Spoom::Coverage::D3::Pie::Sigils) }
776
+ def pie_sigils; end
777
+
778
+ # source://spoom//lib/spoom/coverage/report.rb#148
779
+ sig { returns(::Spoom::Coverage::D3::Pie::Sigs) }
780
+ def pie_sigs; end
781
+
782
+ # source://spoom//lib/spoom/coverage/report.rb#129
783
+ sig { returns(::Spoom::Coverage::Snapshot) }
784
+ def snapshot; end
785
+ end
786
+
787
+ # source://spoom//lib/spoom/coverage/report.rb#126
788
+ Spoom::Coverage::Cards::Snapshot::TEMPLATE = T.let(T.unsafe(nil), String)
789
+
790
+ # source://spoom//lib/spoom/coverage/report.rb#240
791
+ class Spoom::Coverage::Cards::SorbetIntro < ::Spoom::Coverage::Cards::Erb
792
+ # source://spoom//lib/spoom/coverage/report.rb#244
793
+ sig { params(sorbet_intro_commit: T.nilable(::String), sorbet_intro_date: T.nilable(::Time)).void }
794
+ def initialize(sorbet_intro_commit: T.unsafe(nil), sorbet_intro_date: T.unsafe(nil)); end
795
+
796
+ # source://spoom//lib/spoom/coverage/report.rb#250
797
+ sig { override.returns(::String) }
798
+ def erb; end
799
+ end
800
+
801
+ # source://spoom//lib/spoom/coverage/report.rb#177
802
+ class Spoom::Coverage::Cards::Timeline < ::Spoom::Coverage::Cards::Card
803
+ # source://spoom//lib/spoom/coverage/report.rb#181
804
+ sig { params(title: ::String, timeline: ::Spoom::Coverage::D3::Timeline).void }
805
+ def initialize(title:, timeline:); end
806
+ end
807
+
808
+ # source://spoom//lib/spoom/coverage/report.rb#194
809
+ class Spoom::Coverage::Cards::Timeline::Calls < ::Spoom::Coverage::Cards::Timeline
810
+ # source://spoom//lib/spoom/coverage/report.rb#198
811
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
812
+ def initialize(snapshots:, title: T.unsafe(nil)); end
813
+ end
814
+
815
+ # source://spoom//lib/spoom/coverage/report.rb#212
816
+ class Spoom::Coverage::Cards::Timeline::RBIs < ::Spoom::Coverage::Cards::Timeline
817
+ # source://spoom//lib/spoom/coverage/report.rb#216
818
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
819
+ def initialize(snapshots:, title: T.unsafe(nil)); end
820
+ end
821
+
822
+ # source://spoom//lib/spoom/coverage/report.rb#230
823
+ class Spoom::Coverage::Cards::Timeline::Runtimes < ::Spoom::Coverage::Cards::Timeline
824
+ # source://spoom//lib/spoom/coverage/report.rb#234
825
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
826
+ def initialize(snapshots:, title: T.unsafe(nil)); end
827
+ end
828
+
829
+ # source://spoom//lib/spoom/coverage/report.rb#185
830
+ class Spoom::Coverage::Cards::Timeline::Sigils < ::Spoom::Coverage::Cards::Timeline
831
+ # source://spoom//lib/spoom/coverage/report.rb#189
832
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
833
+ def initialize(snapshots:, title: T.unsafe(nil)); end
834
+ end
835
+
836
+ # source://spoom//lib/spoom/coverage/report.rb#203
837
+ class Spoom::Coverage::Cards::Timeline::Sigs < ::Spoom::Coverage::Cards::Timeline
838
+ # source://spoom//lib/spoom/coverage/report.rb#207
839
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
840
+ def initialize(snapshots:, title: T.unsafe(nil)); end
841
+ end
842
+
843
+ # source://spoom//lib/spoom/coverage/report.rb#221
844
+ class Spoom::Coverage::Cards::Timeline::Versions < ::Spoom::Coverage::Cards::Timeline
845
+ # source://spoom//lib/spoom/coverage/report.rb#225
846
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
847
+ def initialize(snapshots:, title: T.unsafe(nil)); end
848
+ end
849
+
850
+ # source://spoom//lib/spoom/coverage/d3/base.rb#6
851
+ module Spoom::Coverage::D3
852
+ class << self
853
+ # source://spoom//lib/spoom/coverage/d3.rb#61
854
+ sig { params(palette: ::Spoom::Coverage::D3::ColorPalette).returns(::String) }
855
+ def header_script(palette); end
856
+
857
+ # source://spoom//lib/spoom/coverage/d3.rb#21
858
+ sig { returns(::String) }
859
+ def header_style; end
860
+ end
861
+ end
862
+
863
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
864
+ #
865
+ # source://spoom//lib/spoom/coverage/d3/base.rb#7
866
+ class Spoom::Coverage::D3::Base
867
+ abstract!
868
+
869
+ # source://spoom//lib/spoom/coverage/d3/base.rb#17
870
+ sig { params(id: ::String, data: T.untyped).void }
871
+ def initialize(id, data); end
872
+
873
+ # source://spoom//lib/spoom/coverage/d3/base.rb#37
874
+ sig { returns(::String) }
875
+ def html; end
876
+
877
+ # source://spoom//lib/spoom/coverage/d3/base.rb#14
878
+ sig { returns(::String) }
879
+ def id; end
880
+
881
+ # @abstract
882
+ #
883
+ # source://spoom//lib/spoom/coverage/d3/base.rb#50
884
+ sig { abstract.returns(::String) }
885
+ def script; end
886
+
887
+ # source://spoom//lib/spoom/coverage/d3/base.rb#45
888
+ sig { returns(::String) }
889
+ def tooltip; end
890
+
891
+ class << self
892
+ # source://spoom//lib/spoom/coverage/d3/base.rb#31
893
+ sig { returns(::String) }
894
+ def header_script; end
895
+
896
+ # source://spoom//lib/spoom/coverage/d3/base.rb#26
897
+ sig { returns(::String) }
898
+ def header_style; end
899
+ end
900
+ end
901
+
902
+ # source://spoom//lib/spoom/coverage/d3.rb#12
903
+ Spoom::Coverage::D3::COLOR_FALSE = T.let(T.unsafe(nil), String)
904
+
905
+ # source://spoom//lib/spoom/coverage/d3.rb#11
906
+ Spoom::Coverage::D3::COLOR_IGNORE = T.let(T.unsafe(nil), String)
907
+
908
+ # source://spoom//lib/spoom/coverage/d3.rb#14
909
+ Spoom::Coverage::D3::COLOR_STRICT = T.let(T.unsafe(nil), String)
910
+
911
+ # source://spoom//lib/spoom/coverage/d3.rb#15
912
+ Spoom::Coverage::D3::COLOR_STRONG = T.let(T.unsafe(nil), String)
913
+
914
+ # source://spoom//lib/spoom/coverage/d3.rb#13
915
+ Spoom::Coverage::D3::COLOR_TRUE = T.let(T.unsafe(nil), String)
916
+
917
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#9
918
+ class Spoom::Coverage::D3::CircleMap < ::Spoom::Coverage::D3::Base
919
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#59
920
+ sig { override.returns(::String) }
921
+ def script; end
922
+
923
+ class << self
924
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#40
925
+ sig { returns(::String) }
926
+ def header_script; end
927
+
928
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#14
929
+ sig { returns(::String) }
930
+ def header_style; end
931
+ end
932
+ end
933
+
934
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#148
935
+ class Spoom::Coverage::D3::CircleMap::Sigils < ::Spoom::Coverage::D3::CircleMap
936
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#159
937
+ sig do
938
+ params(
939
+ id: ::String,
940
+ file_tree: ::Spoom::FileTree,
941
+ nodes_strictnesses: T::Hash[::Spoom::FileTree::Node, T.nilable(::String)],
942
+ nodes_scores: T::Hash[::Spoom::FileTree::Node, ::Float]
943
+ ).void
944
+ end
945
+ def initialize(id, file_tree, nodes_strictnesses, nodes_scores); end
946
+
947
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#166
948
+ sig { params(node: ::Spoom::FileTree::Node).returns(T::Hash[::Symbol, T.untyped]) }
949
+ def tree_node_to_json(node); end
950
+ end
951
+
952
+ # source://spoom//lib/spoom/coverage/d3.rb#103
953
+ class Spoom::Coverage::D3::ColorPalette < ::T::Struct
954
+ prop :ignore, ::String
955
+ prop :false, ::String
956
+ prop :true, ::String
957
+ prop :strict, ::String
958
+ prop :strong, ::String
959
+
960
+ class << self
961
+ # source://sorbet-runtime/0.5.10990/lib/types/struct.rb#13
962
+ def inherited(s); end
963
+ end
964
+ end
965
+
966
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
967
+ #
968
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#9
969
+ class Spoom::Coverage::D3::Pie < ::Spoom::Coverage::D3::Base
970
+ abstract!
971
+
972
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#16
973
+ sig { params(id: ::String, title: ::String, data: T.untyped).void }
974
+ def initialize(id, title, data); end
975
+
976
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#56
977
+ sig { override.returns(::String) }
978
+ def script; end
979
+
980
+ class << self
981
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#43
982
+ sig { returns(::String) }
983
+ def header_script; end
984
+
985
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#25
986
+ sig { returns(::String) }
987
+ def header_style; end
988
+ end
989
+ end
990
+
991
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#141
992
+ class Spoom::Coverage::D3::Pie::Calls < ::Spoom::Coverage::D3::Pie
993
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#145
994
+ sig { params(id: ::String, title: ::String, snapshot: ::Spoom::Coverage::Snapshot).void }
995
+ def initialize(id, title, snapshot); end
996
+
997
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#150
998
+ sig { override.returns(::String) }
999
+ def tooltip; end
1000
+ end
1001
+
1002
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#123
1003
+ class Spoom::Coverage::D3::Pie::Sigils < ::Spoom::Coverage::D3::Pie
1004
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#127
1005
+ sig { params(id: ::String, title: ::String, snapshot: ::Spoom::Coverage::Snapshot).void }
1006
+ def initialize(id, title, snapshot); end
1007
+
1008
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#132
1009
+ sig { override.returns(::String) }
1010
+ def tooltip; end
1011
+ end
1012
+
1013
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#159
1014
+ class Spoom::Coverage::D3::Pie::Sigs < ::Spoom::Coverage::D3::Pie
1015
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#163
1016
+ sig { params(id: ::String, title: ::String, snapshot: ::Spoom::Coverage::Snapshot).void }
1017
+ def initialize(id, title, snapshot); end
1018
+
1019
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#172
1020
+ sig { override.returns(::String) }
1021
+ def tooltip; end
1022
+ end
1023
+
1024
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1025
+ #
1026
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#9
1027
+ class Spoom::Coverage::D3::Timeline < ::Spoom::Coverage::D3::Base
1028
+ abstract!
1029
+
1030
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#16
1031
+ sig { params(id: ::String, data: T.untyped, keys: T::Array[::String]).void }
1032
+ def initialize(id, data, keys); end
1033
+
1034
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#187
1035
+ sig { params(y: ::String, color: ::String, curve: ::String).returns(::String) }
1036
+ def area(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
1037
+
1038
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#203
1039
+ sig { params(y: ::String, color: ::String, curve: ::String).returns(::String) }
1040
+ def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
1041
+
1042
+ # @abstract
1043
+ #
1044
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#126
1045
+ sig { abstract.returns(::String) }
1046
+ def plot; end
1047
+
1048
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#217
1049
+ sig { params(y: ::String).returns(::String) }
1050
+ def points(y:); end
1051
+
1052
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#101
1053
+ sig { override.returns(::String) }
1054
+ def script; end
1055
+
1056
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#129
1057
+ sig { returns(::String) }
1058
+ def x_scale; end
1059
+
1060
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#145
1061
+ sig { returns(::String) }
1062
+ def x_ticks; end
1063
+
1064
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#158
1065
+ sig { params(min: ::String, max: ::String, ticks: ::String).returns(::String) }
1066
+ def y_scale(min:, max:, ticks:); end
1067
+
1068
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#174
1069
+ sig { params(ticks: ::String, format: ::String, padding: ::Integer).returns(::String) }
1070
+ def y_ticks(ticks:, format:, padding:); end
1071
+
1072
+ class << self
1073
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#79
1074
+ sig { returns(::String) }
1075
+ def header_script; end
1076
+
1077
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#25
1078
+ sig { returns(::String) }
1079
+ def header_style; end
1080
+ end
1081
+ end
1082
+
1083
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#448
1084
+ class Spoom::Coverage::D3::Timeline::Calls < ::Spoom::Coverage::D3::Timeline::Stacked
1085
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#452
1086
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1087
+ def initialize(id, snapshots); end
1088
+
1089
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#466
1090
+ sig { override.returns(::String) }
1091
+ def tooltip; end
1092
+ end
1093
+
1094
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#505
1095
+ class Spoom::Coverage::D3::Timeline::RBIs < ::Spoom::Coverage::D3::Timeline::Stacked
1096
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#509
1097
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1098
+ def initialize(id, snapshots); end
1099
+
1100
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#577
1101
+ sig { override.params(y: ::String, color: ::String, curve: ::String).returns(::String) }
1102
+ def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
1103
+
1104
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#617
1105
+ sig { override.returns(::String) }
1106
+ def plot; end
1107
+
1108
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#537
1109
+ sig { override.returns(::String) }
1110
+ def script; end
1111
+
1112
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#523
1113
+ sig { override.returns(::String) }
1114
+ def tooltip; end
1115
+ end
1116
+
1117
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#282
1118
+ class Spoom::Coverage::D3::Timeline::Runtimes < ::Spoom::Coverage::D3::Timeline
1119
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#286
1120
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1121
+ def initialize(id, snapshots); end
1122
+
1123
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#311
1124
+ sig { override.returns(::String) }
1125
+ def plot; end
1126
+
1127
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#298
1128
+ sig { override.returns(::String) }
1129
+ def tooltip; end
1130
+ end
1131
+
1132
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#421
1133
+ class Spoom::Coverage::D3::Timeline::Sigils < ::Spoom::Coverage::D3::Timeline::Stacked
1134
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#425
1135
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1136
+ def initialize(id, snapshots); end
1137
+
1138
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#439
1139
+ sig { override.returns(::String) }
1140
+ def tooltip; end
1141
+ end
1142
+
1143
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#475
1144
+ class Spoom::Coverage::D3::Timeline::Sigs < ::Spoom::Coverage::D3::Timeline::Stacked
1145
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#479
1146
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1147
+ def initialize(id, snapshots); end
1148
+
1149
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#496
1150
+ sig { override.returns(::String) }
1151
+ def tooltip; end
1152
+ end
1153
+
1154
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1155
+ #
1156
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#329
1157
+ class Spoom::Coverage::D3::Timeline::Stacked < ::Spoom::Coverage::D3::Timeline
1158
+ abstract!
1159
+
1160
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#388
1161
+ sig { override.params(y: ::String, color: ::String, curve: ::String).returns(::String) }
1162
+ def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
1163
+
1164
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#377
1165
+ sig { override.returns(::String) }
1166
+ def plot; end
1167
+
1168
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#336
1169
+ sig { override.returns(::String) }
1170
+ def script; end
1171
+ end
1172
+
1173
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#232
1174
+ class Spoom::Coverage::D3::Timeline::Versions < ::Spoom::Coverage::D3::Timeline
1175
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#236
1176
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1177
+ def initialize(id, snapshots); end
1178
+
1179
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#263
1180
+ sig { override.returns(::String) }
1181
+ def plot; end
1182
+
1183
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#249
1184
+ sig { override.returns(::String) }
1185
+ def tooltip; end
1186
+ end
1187
+
1188
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1189
+ #
1190
+ # source://spoom//lib/spoom/coverage/report.rb#38
1191
+ class Spoom::Coverage::Page < ::Spoom::Coverage::Template
1192
+ abstract!
1193
+
1194
+ # source://spoom//lib/spoom/coverage/report.rb#53
1195
+ sig { params(title: ::String, palette: ::Spoom::Coverage::D3::ColorPalette, template: ::String).void }
1196
+ def initialize(title:, palette:, template: T.unsafe(nil)); end
1197
+
1198
+ # source://spoom//lib/spoom/coverage/report.rb#75
1199
+ sig { returns(::String) }
1200
+ def body_html; end
1201
+
1202
+ # @abstract
1203
+ #
1204
+ # source://spoom//lib/spoom/coverage/report.rb#80
1205
+ sig { abstract.returns(T::Array[::Spoom::Coverage::Cards::Card]) }
1206
+ def cards; end
1207
+
1208
+ # source://spoom//lib/spoom/coverage/report.rb#83
1209
+ sig { returns(::String) }
1210
+ def footer_html; end
1211
+
1212
+ # source://spoom//lib/spoom/coverage/report.rb#70
1213
+ sig { returns(::String) }
1214
+ def header_html; end
1215
+
1216
+ # source://spoom//lib/spoom/coverage/report.rb#65
1217
+ sig { returns(::String) }
1218
+ def header_script; end
1219
+
1220
+ # source://spoom//lib/spoom/coverage/report.rb#60
1221
+ sig { returns(::String) }
1222
+ def header_style; end
1223
+
1224
+ # source://spoom//lib/spoom/coverage/report.rb#50
1225
+ sig { returns(::Spoom::Coverage::D3::ColorPalette) }
1226
+ def palette; end
1227
+
1228
+ # source://spoom//lib/spoom/coverage/report.rb#47
1229
+ sig { returns(::String) }
1230
+ def title; end
1231
+ end
1232
+
1233
+ # source://spoom//lib/spoom/coverage/report.rb#44
1234
+ Spoom::Coverage::Page::TEMPLATE = T.let(T.unsafe(nil), String)
1235
+
1236
+ # source://spoom//lib/spoom/coverage/report.rb#261
1237
+ class Spoom::Coverage::Report < ::Spoom::Coverage::Page
1238
+ # source://spoom//lib/spoom/coverage/report.rb#276
1239
+ sig do
1240
+ params(
1241
+ project_name: ::String,
1242
+ palette: ::Spoom::Coverage::D3::ColorPalette,
1243
+ snapshots: T::Array[::Spoom::Coverage::Snapshot],
1244
+ file_tree: ::Spoom::FileTree,
1245
+ nodes_strictnesses: T::Hash[::Spoom::FileTree::Node, T.nilable(::String)],
1246
+ nodes_strictness_scores: T::Hash[::Spoom::FileTree::Node, ::Float],
1247
+ sorbet_intro_commit: T.nilable(::String),
1248
+ sorbet_intro_date: T.nilable(::Time)
1249
+ ).void
1250
+ end
1251
+ def initialize(project_name:, palette:, snapshots:, file_tree:, nodes_strictnesses:, nodes_strictness_scores:, sorbet_intro_commit: T.unsafe(nil), sorbet_intro_date: T.unsafe(nil)); end
1252
+
1253
+ # source://spoom//lib/spoom/coverage/report.rb#308
1254
+ sig { override.returns(T::Array[::Spoom::Coverage::Cards::Card]) }
1255
+ def cards; end
1256
+
1257
+ # source://spoom//lib/spoom/coverage/report.rb#297
1258
+ sig { override.returns(::String) }
1259
+ def header_html; end
1260
+ end
1261
+
1262
+ # source://spoom//lib/spoom/coverage/snapshot.rb#6
1263
+ class Spoom::Coverage::Snapshot < ::T::Struct
1264
+ prop :timestamp, ::Integer, default: T.unsafe(nil)
1265
+ prop :version_static, T.nilable(::String), default: T.unsafe(nil)
1266
+ prop :version_runtime, T.nilable(::String), default: T.unsafe(nil)
1267
+ prop :duration, ::Integer, default: T.unsafe(nil)
1268
+ prop :commit_sha, T.nilable(::String), default: T.unsafe(nil)
1269
+ prop :commit_timestamp, T.nilable(::Integer), default: T.unsafe(nil)
1270
+ prop :files, ::Integer, default: T.unsafe(nil)
1271
+ prop :rbi_files, ::Integer, default: T.unsafe(nil)
1272
+ prop :modules, ::Integer, default: T.unsafe(nil)
1273
+ prop :classes, ::Integer, default: T.unsafe(nil)
1274
+ prop :singleton_classes, ::Integer, default: T.unsafe(nil)
1275
+ prop :methods_without_sig, ::Integer, default: T.unsafe(nil)
1276
+ prop :methods_with_sig, ::Integer, default: T.unsafe(nil)
1277
+ prop :calls_untyped, ::Integer, default: T.unsafe(nil)
1278
+ prop :calls_typed, ::Integer, default: T.unsafe(nil)
1279
+ prop :sigils, T::Hash[::String, ::Integer], default: T.unsafe(nil)
1280
+ prop :methods_with_sig_excluding_rbis, ::Integer, default: T.unsafe(nil)
1281
+ prop :methods_without_sig_excluding_rbis, ::Integer, default: T.unsafe(nil)
1282
+ prop :sigils_excluding_rbis, T::Hash[::String, ::Integer], default: T.unsafe(nil)
1283
+
1284
+ # source://spoom//lib/spoom/coverage/snapshot.rb#33
1285
+ sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean, indent_level: ::Integer).void }
1286
+ def print(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
1287
+
1288
+ # source://spoom//lib/spoom/coverage/snapshot.rb#39
1289
+ sig { params(arg: T.untyped).returns(::String) }
1290
+ def to_json(*arg); end
1291
+
1292
+ class << self
1293
+ # source://spoom//lib/spoom/coverage/snapshot.rb#47
1294
+ sig { params(json: ::String).returns(::Spoom::Coverage::Snapshot) }
1295
+ def from_json(json); end
1296
+
1297
+ # source://spoom//lib/spoom/coverage/snapshot.rb#52
1298
+ sig { params(obj: T::Hash[::String, T.untyped]).returns(::Spoom::Coverage::Snapshot) }
1299
+ def from_obj(obj); end
1300
+
1301
+ # source://sorbet-runtime/0.5.10990/lib/types/struct.rb#13
1302
+ def inherited(s); end
1303
+ end
1304
+ end
1305
+
1306
+ # The strictness name as found in the Sorbet metrics file
1307
+ #
1308
+ # source://spoom//lib/spoom/coverage/snapshot.rb#30
1309
+ Spoom::Coverage::Snapshot::STRICTNESSES = T.let(T.unsafe(nil), Array)
1310
+
1311
+ # source://spoom//lib/spoom/coverage/snapshot.rb#95
1312
+ class Spoom::Coverage::SnapshotPrinter < ::Spoom::Printer
1313
+ # source://spoom//lib/spoom/coverage/snapshot.rb#99
1314
+ sig { params(snapshot: ::Spoom::Coverage::Snapshot).void }
1315
+ def print_snapshot(snapshot); end
1316
+
1317
+ private
1318
+
1319
+ # source://spoom//lib/spoom/coverage/snapshot.rb#158
1320
+ sig { params(value: T.nilable(::Integer), total: T.nilable(::Integer)).returns(::String) }
1321
+ def percent(value, total); end
1322
+
1323
+ # source://spoom//lib/spoom/coverage/snapshot.rb#147
1324
+ sig { params(hash: T::Hash[::String, ::Integer], total: ::Integer).void }
1325
+ def print_map(hash, total); end
1326
+ end
1327
+
1328
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1329
+ #
1330
+ # source://spoom//lib/spoom/coverage/report.rb#10
1331
+ class Spoom::Coverage::Template
1332
+ abstract!
1333
+
1334
+ # Create a new template from an Erb file path
1335
+ #
1336
+ # source://spoom//lib/spoom/coverage/report.rb#18
1337
+ sig { params(template: ::String).void }
1338
+ def initialize(template:); end
1339
+
1340
+ # source://spoom//lib/spoom/coverage/report.rb#23
1341
+ sig { returns(::String) }
1342
+ def erb; end
1343
+
1344
+ # source://spoom//lib/spoom/coverage/report.rb#33
1345
+ sig { returns(::Binding) }
1346
+ def get_binding; end
1347
+
1348
+ # source://spoom//lib/spoom/coverage/report.rb#28
1349
+ sig { returns(::String) }
1350
+ def html; end
1351
+ end
1352
+
1353
+ # source://spoom//lib/spoom/deadcode/erb.rb#27
1354
+ module Spoom::Deadcode
1355
+ class << self
1356
+ # source://spoom//lib/spoom/deadcode.rb#50
1357
+ sig do
1358
+ params(
1359
+ index: ::Spoom::Deadcode::Index,
1360
+ erb: ::String,
1361
+ file: ::String,
1362
+ plugins: T::Array[::Spoom::Deadcode::Plugins::Base]
1363
+ ).void
1364
+ end
1365
+ def index_erb(index, erb, file:, plugins: T.unsafe(nil)); end
1366
+
1367
+ # source://spoom//lib/spoom/deadcode.rb#39
1368
+ sig do
1369
+ params(
1370
+ index: ::Spoom::Deadcode::Index,
1371
+ ruby: ::String,
1372
+ file: ::String,
1373
+ plugins: T::Array[::Spoom::Deadcode::Plugins::Base]
1374
+ ).void
1375
+ end
1376
+ def index_ruby(index, ruby, file:, plugins: T.unsafe(nil)); end
1377
+ end
1378
+ end
1379
+
1380
+ # A definition is a class, module, method, constant, etc. being defined in the code
1381
+ #
1382
+ # source://spoom//lib/spoom/deadcode/definition.rb#7
1383
+ class Spoom::Deadcode::Definition < ::T::Struct
1384
+ const :kind, ::Spoom::Deadcode::Definition::Kind
1385
+ const :name, ::String
1386
+ const :full_name, ::String
1387
+ const :location, ::Spoom::Deadcode::Location
1388
+ const :status, ::Spoom::Deadcode::Definition::Status, default: T.unsafe(nil)
1389
+
1390
+ # source://spoom//lib/spoom/deadcode/definition.rb#78
1391
+ sig { void }
1392
+ def alive!; end
1393
+
1394
+ # Status
1395
+ #
1396
+ # source://spoom//lib/spoom/deadcode/definition.rb#73
1397
+ sig { returns(T::Boolean) }
1398
+ def alive?; end
1399
+
1400
+ # Kind
1401
+ #
1402
+ # source://spoom//lib/spoom/deadcode/definition.rb#41
1403
+ sig { returns(T::Boolean) }
1404
+ def attr_reader?; end
1405
+
1406
+ # source://spoom//lib/spoom/deadcode/definition.rb#46
1407
+ sig { returns(T::Boolean) }
1408
+ def attr_writer?; end
1409
+
1410
+ # source://spoom//lib/spoom/deadcode/definition.rb#51
1411
+ sig { returns(T::Boolean) }
1412
+ def class?; end
1413
+
1414
+ # source://spoom//lib/spoom/deadcode/definition.rb#56
1415
+ sig { returns(T::Boolean) }
1416
+ def constant?; end
1417
+
1418
+ # source://spoom//lib/spoom/deadcode/definition.rb#83
1419
+ sig { returns(T::Boolean) }
1420
+ def dead?; end
1421
+
1422
+ # source://spoom//lib/spoom/deadcode/definition.rb#93
1423
+ sig { void }
1424
+ def ignored!; end
1425
+
1426
+ # source://spoom//lib/spoom/deadcode/definition.rb#88
1427
+ sig { returns(T::Boolean) }
1428
+ def ignored?; end
1429
+
1430
+ # source://spoom//lib/spoom/deadcode/definition.rb#61
1431
+ sig { returns(T::Boolean) }
1432
+ def method?; end
1433
+
1434
+ # source://spoom//lib/spoom/deadcode/definition.rb#66
1435
+ sig { returns(T::Boolean) }
1436
+ def module?; end
1437
+
1438
+ class << self
1439
+ # source://sorbet-runtime/0.5.10990/lib/types/struct.rb#13
1440
+ def inherited(s); end
1441
+ end
1442
+ end
1443
+
1444
+ # source://spoom//lib/spoom/deadcode/definition.rb#10
1445
+ class Spoom::Deadcode::Definition::Kind < ::T::Enum
1446
+ enums do
1447
+ AttrReader = new
1448
+ AttrWriter = new
1449
+ Class = new
1450
+ Constant = new
1451
+ Method = new
1452
+ Module = new
1453
+ end
1454
+ end
1455
+
1456
+ # source://spoom//lib/spoom/deadcode/definition.rb#21
1457
+ class Spoom::Deadcode::Definition::Status < ::T::Enum
1458
+ enums do
1459
+ ALIVE = new
1460
+ DEAD = new
1461
+ IGNORED = new
1462
+ end
1463
+ end
1464
+
1465
+ # Custom engine to handle ERB templates as used by Rails
1466
+ #
1467
+ # source://spoom//lib/spoom/deadcode/erb.rb#29
1468
+ class Spoom::Deadcode::ERB < ::Erubi::Engine
1469
+ # source://spoom//lib/spoom/deadcode/erb.rb#33
1470
+ sig { params(input: T.untyped, properties: T.untyped).void }
1471
+ def initialize(input, properties = T.unsafe(nil)); end
1472
+
1473
+ private
1474
+
1475
+ # source://spoom//lib/spoom/deadcode/erb.rb#83
1476
+ sig { params(code: T.untyped).void }
1477
+ def add_code(code); end
1478
+
1479
+ # source://spoom//lib/spoom/deadcode/erb.rb#66
1480
+ sig { params(indicator: T.untyped, code: T.untyped).void }
1481
+ def add_expression(indicator, code); end
1482
+
1483
+ # source://spoom//lib/spoom/deadcode/erb.rb#89
1484
+ sig { params(_: T.untyped).void }
1485
+ def add_postamble(_); end
1486
+
1487
+ # source://spoom//lib/spoom/deadcode/erb.rb#48
1488
+ sig { params(text: T.untyped).void }
1489
+ def add_text(text); end
1490
+
1491
+ # source://spoom//lib/spoom/deadcode/erb.rb#95
1492
+ sig { params(src: T.untyped).void }
1493
+ def flush_newline_if_pending(src); end
1494
+ end
1495
+
1496
+ # source://spoom//lib/spoom/deadcode/erb.rb#63
1497
+ Spoom::Deadcode::ERB::BLOCK_EXPR = T.let(T.unsafe(nil), Regexp)
1498
+
1499
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1500
+ #
1501
+ # source://spoom//lib/spoom/deadcode.rb#19
1502
+ class Spoom::Deadcode::Error < ::Spoom::Error
1503
+ abstract!
1504
+
1505
+ # source://spoom//lib/spoom/deadcode.rb#26
1506
+ sig { params(message: ::String, parent: ::Exception).void }
1507
+ def initialize(message, parent:); end
1508
+ end
1509
+
1510
+ # source://spoom//lib/spoom/deadcode/index.rb#6
1511
+ class Spoom::Deadcode::Index
1512
+ # source://spoom//lib/spoom/deadcode/index.rb#16
1513
+ sig { void }
1514
+ def initialize; end
1515
+
1516
+ # source://spoom//lib/spoom/deadcode/index.rb#51
1517
+ sig { returns(T::Array[::Spoom::Deadcode::Definition]) }
1518
+ def all_definitions; end
1519
+
1520
+ # source://spoom//lib/spoom/deadcode/index.rb#56
1521
+ sig { returns(T::Array[::Spoom::Deadcode::Reference]) }
1522
+ def all_references; end
1523
+
1524
+ # Indexing
1525
+ #
1526
+ # source://spoom//lib/spoom/deadcode/index.rb#24
1527
+ sig { params(definition: ::Spoom::Deadcode::Definition).void }
1528
+ def define(definition); end
1529
+
1530
+ # source://spoom//lib/spoom/deadcode/index.rb#10
1531
+ sig { returns(T::Hash[::String, T::Array[::Spoom::Deadcode::Definition]]) }
1532
+ def definitions; end
1533
+
1534
+ # Utils
1535
+ #
1536
+ # source://spoom//lib/spoom/deadcode/index.rb#46
1537
+ sig { params(name: ::String).returns(T::Array[::Spoom::Deadcode::Definition]) }
1538
+ def definitions_for_name(name); end
1539
+
1540
+ # Mark all definitions having a reference of the same name as `alive`
1541
+ #
1542
+ # To be called once all the files have been indexed and all the definitions and references discovered.
1543
+ #
1544
+ # source://spoom//lib/spoom/deadcode/index.rb#37
1545
+ sig { void }
1546
+ def finalize!; end
1547
+
1548
+ # source://spoom//lib/spoom/deadcode/index.rb#29
1549
+ sig { params(reference: ::Spoom::Deadcode::Reference).void }
1550
+ def reference(reference); end
1551
+
1552
+ # source://spoom//lib/spoom/deadcode/index.rb#13
1553
+ sig { returns(T::Hash[::String, T::Array[::Spoom::Deadcode::Reference]]) }
1554
+ def references; end
1555
+ end
1556
+
1557
+ # source://spoom//lib/spoom/deadcode/indexer.rb#6
1558
+ class Spoom::Deadcode::Indexer < ::SyntaxTree::Visitor
1559
+ # source://spoom//lib/spoom/deadcode/indexer.rb#16
1560
+ sig do
1561
+ params(
1562
+ path: ::String,
1563
+ source: ::String,
1564
+ index: ::Spoom::Deadcode::Index,
1565
+ plugins: T::Array[::Spoom::Deadcode::Plugins::Base]
1566
+ ).void
1567
+ end
1568
+ def initialize(path, source, index, plugins: T.unsafe(nil)); end
1569
+
1570
+ # source://spoom//lib/spoom/deadcode/indexer.rb#391
1571
+ sig do
1572
+ params(
1573
+ node: T.nilable(T.any(::SyntaxTree::ArgParen, ::SyntaxTree::Args, ::SyntaxTree::ArgsForward))
1574
+ ).returns(T::Array[::SyntaxTree::Node])
1575
+ end
1576
+ def call_args(node); end
1577
+
1578
+ # Definition indexing
1579
+ #
1580
+ # source://spoom//lib/spoom/deadcode/indexer.rb#281
1581
+ sig { params(name: ::String, full_name: ::String, node: ::SyntaxTree::Node).void }
1582
+ def define_attr_reader(name, full_name, node); end
1583
+
1584
+ # source://spoom//lib/spoom/deadcode/indexer.rb#293
1585
+ sig { params(name: ::String, full_name: ::String, node: ::SyntaxTree::Node).void }
1586
+ def define_attr_writer(name, full_name, node); end
1587
+
1588
+ # source://spoom//lib/spoom/deadcode/indexer.rb#305
1589
+ sig { params(name: ::String, full_name: ::String, node: ::SyntaxTree::Node).void }
1590
+ def define_class(name, full_name, node); end
1591
+
1592
+ # source://spoom//lib/spoom/deadcode/indexer.rb#317
1593
+ sig { params(name: ::String, full_name: ::String, node: ::SyntaxTree::Node).void }
1594
+ def define_constant(name, full_name, node); end
1595
+
1596
+ # source://spoom//lib/spoom/deadcode/indexer.rb#329
1597
+ sig { params(name: ::String, full_name: ::String, node: ::SyntaxTree::Node).void }
1598
+ def define_method(name, full_name, node); end
1599
+
1600
+ # source://spoom//lib/spoom/deadcode/indexer.rb#341
1601
+ sig { params(name: ::String, full_name: ::String, node: ::SyntaxTree::Node).void }
1602
+ def define_module(name, full_name, node); end
1603
+
1604
+ # @return [String]
1605
+ #
1606
+ # source://spoom//lib/spoom/deadcode/indexer.rb#10
1607
+ def file_name; end
1608
+
1609
+ # source://spoom//lib/spoom/deadcode/indexer.rb#13
1610
+ sig { returns(::Spoom::Deadcode::Index) }
1611
+ def index; end
1612
+
1613
+ # source://spoom//lib/spoom/deadcode/indexer.rb#377
1614
+ sig { params(node: ::SyntaxTree::Node).returns(::Spoom::Deadcode::Location) }
1615
+ def node_location(node); end
1616
+
1617
+ # Node utils
1618
+ #
1619
+ # source://spoom//lib/spoom/deadcode/indexer.rb#367
1620
+ sig { params(node: T.any(::Symbol, ::SyntaxTree::Node)).returns(::String) }
1621
+ def node_string(node); end
1622
+
1623
+ # source://spoom//lib/spoom/deadcode/indexer.rb#10
1624
+ sig { returns(::String) }
1625
+ def path; end
1626
+
1627
+ # Reference indexing
1628
+ #
1629
+ # source://spoom//lib/spoom/deadcode/indexer.rb#355
1630
+ sig { params(name: ::String, node: ::SyntaxTree::Node).void }
1631
+ def reference_constant(name, node); end
1632
+
1633
+ # source://spoom//lib/spoom/deadcode/indexer.rb#360
1634
+ sig { params(name: ::String, node: ::SyntaxTree::Node).void }
1635
+ def reference_method(name, node); end
1636
+
1637
+ # source://spoom//lib/spoom/deadcode/indexer.rb#382
1638
+ sig { params(node: ::SyntaxTree::Node).returns(::String) }
1639
+ def symbol_string(node); end
1640
+
1641
+ # Visit
1642
+ #
1643
+ # source://spoom//lib/spoom/deadcode/indexer.rb#35
1644
+ sig { override.params(node: T.nilable(::SyntaxTree::Node)).void }
1645
+ def visit(node); end
1646
+
1647
+ # source://spoom//lib/spoom/deadcode/indexer.rb#45
1648
+ sig { override.params(node: ::SyntaxTree::AliasNode).void }
1649
+ def visit_alias(node); end
1650
+
1651
+ # source://spoom//lib/spoom/deadcode/indexer.rb#50
1652
+ sig { override.params(node: ::SyntaxTree::ARef).void }
1653
+ def visit_aref(node); end
1654
+
1655
+ # source://spoom//lib/spoom/deadcode/indexer.rb#57
1656
+ sig { override.params(node: ::SyntaxTree::ARefField).void }
1657
+ def visit_aref_field(node); end
1658
+
1659
+ # source://spoom//lib/spoom/deadcode/indexer.rb#64
1660
+ sig { override.params(node: ::SyntaxTree::ArgBlock).void }
1661
+ def visit_arg_block(node); end
1662
+
1663
+ # source://spoom//lib/spoom/deadcode/indexer.rb#78
1664
+ sig { override.params(node: ::SyntaxTree::Binary).void }
1665
+ def visit_binary(node); end
1666
+
1667
+ # source://spoom//lib/spoom/deadcode/indexer.rb#94
1668
+ sig { override.params(node: ::SyntaxTree::CallNode).void }
1669
+ def visit_call(node); end
1670
+
1671
+ # source://spoom//lib/spoom/deadcode/indexer.rb#106
1672
+ sig { override.params(node: ::SyntaxTree::ClassDeclaration).void }
1673
+ def visit_class(node); end
1674
+
1675
+ # source://spoom//lib/spoom/deadcode/indexer.rb#119
1676
+ sig { override.params(node: ::SyntaxTree::Command).void }
1677
+ def visit_command(node); end
1678
+
1679
+ # source://spoom//lib/spoom/deadcode/indexer.rb#131
1680
+ sig { override.params(node: ::SyntaxTree::CommandCall).void }
1681
+ def visit_command_call(node); end
1682
+
1683
+ # source://spoom//lib/spoom/deadcode/indexer.rb#144
1684
+ sig { override.params(node: ::SyntaxTree::Const).void }
1685
+ def visit_const(node); end
1686
+
1687
+ # source://spoom//lib/spoom/deadcode/indexer.rb#149
1688
+ sig { override.params(node: ::SyntaxTree::ConstPathField).void }
1689
+ def visit_const_path_field(node); end
1690
+
1691
+ # source://spoom//lib/spoom/deadcode/indexer.rb#159
1692
+ sig { override.params(node: ::SyntaxTree::DefNode).void }
1693
+ def visit_def(node); end
1694
+
1695
+ # source://spoom//lib/spoom/deadcode/indexer.rb#167
1696
+ sig { override.params(node: ::SyntaxTree::Field).void }
1697
+ def visit_field(node); end
1698
+
1699
+ # source://spoom//lib/spoom/deadcode/indexer.rb#183
1700
+ sig { override.params(node: ::SyntaxTree::ModuleDeclaration).void }
1701
+ def visit_module(node); end
1702
+
1703
+ # source://spoom//lib/spoom/deadcode/indexer.rb#195
1704
+ sig { override.params(node: ::SyntaxTree::OpAssign).void }
1705
+ def visit_opassign(node); end
1706
+
1707
+ # source://spoom//lib/spoom/deadcode/indexer.rb#204
1708
+ sig { params(send: ::Spoom::Deadcode::Send).void }
1709
+ def visit_send(send); end
1710
+
1711
+ # source://spoom//lib/spoom/deadcode/indexer.rb#243
1712
+ sig { override.params(node: ::SyntaxTree::SymbolLiteral).void }
1713
+ def visit_symbol_literal(node); end
1714
+
1715
+ # source://spoom//lib/spoom/deadcode/indexer.rb#252
1716
+ sig { override.params(node: ::SyntaxTree::TopConstField).void }
1717
+ def visit_top_const_field(node); end
1718
+
1719
+ # source://spoom//lib/spoom/deadcode/indexer.rb#257
1720
+ sig { override.params(node: ::SyntaxTree::VarField).void }
1721
+ def visit_var_field(node); end
1722
+
1723
+ # source://spoom//lib/spoom/deadcode/indexer.rb#274
1724
+ sig { override.params(node: ::SyntaxTree::VCall).void }
1725
+ def visit_vcall(node); end
1726
+ end
1727
+
1728
+ # source://spoom//lib/spoom/deadcode.rb#33
1729
+ class Spoom::Deadcode::IndexerError < ::Spoom::Deadcode::Error; end
1730
+
1731
+ # source://spoom//lib/spoom/deadcode/location.rb#6
1732
+ class Spoom::Deadcode::Location
1733
+ include ::Comparable
1734
+
1735
+ # source://spoom//lib/spoom/deadcode/location.rb#37
1736
+ sig do
1737
+ params(
1738
+ file: ::String,
1739
+ start_line: ::Integer,
1740
+ start_column: ::Integer,
1741
+ end_line: ::Integer,
1742
+ end_column: ::Integer
1743
+ ).void
1744
+ end
1745
+ def initialize(file, start_line, start_column, end_line, end_column); end
1746
+
1747
+ # source://spoom//lib/spoom/deadcode/location.rb#46
1748
+ sig { override.params(other: ::BasicObject).returns(T.nilable(::Integer)) }
1749
+ def <=>(other); end
1750
+
1751
+ # @return [Integer]
1752
+ #
1753
+ # source://spoom//lib/spoom/deadcode/location.rb#26
1754
+ def end_column; end
1755
+
1756
+ # @return [Integer]
1757
+ #
1758
+ # source://spoom//lib/spoom/deadcode/location.rb#26
1759
+ def end_line; end
1760
+
1761
+ # source://spoom//lib/spoom/deadcode/location.rb#23
1762
+ sig { returns(::String) }
1763
+ def file; end
1764
+
1765
+ # @return [Integer]
1766
+ #
1767
+ # source://spoom//lib/spoom/deadcode/location.rb#26
1768
+ def start_column; end
1769
+
1770
+ # source://spoom//lib/spoom/deadcode/location.rb#26
1771
+ sig { returns(::Integer) }
1772
+ def start_line; end
1773
+
1774
+ # source://spoom//lib/spoom/deadcode/location.rb#53
1775
+ sig { returns(::String) }
1776
+ def to_s; end
1777
+
1778
+ class << self
1779
+ # source://spoom//lib/spoom/deadcode/location.rb#17
1780
+ sig { params(file: ::String, location: ::SyntaxTree::Location).returns(::Spoom::Deadcode::Location) }
1781
+ def from_syntax_tree(file, location); end
1782
+ end
1783
+ end
1784
+
1785
+ # source://spoom//lib/spoom/deadcode/location.rb#11
1786
+ class Spoom::Deadcode::Location::LocationError < ::Spoom::Error; end
1787
+
1788
+ # source://spoom//lib/spoom/deadcode.rb#32
1789
+ class Spoom::Deadcode::ParserError < ::Spoom::Deadcode::Error; end
1790
+
1791
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#8
1792
+ module Spoom::Deadcode::Plugins; end
1793
+
1794
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1795
+ #
1796
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#9
1797
+ class Spoom::Deadcode::Plugins::Base
1798
+ abstract!
1799
+
1800
+ # Called when an accessor is defined.
1801
+ #
1802
+ # Will be called when the indexer processes a `attr_reader`, `attr_writer` or `attr_accessor` node.
1803
+ # Note that when this method is called, the definition for the node has already been added to the index.
1804
+ # It is still possible to ignore it from the plugin:
1805
+ #
1806
+ # ~~~rb
1807
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
1808
+ # def on_define_accessor(indexer, definition)
1809
+ # definition.ignored! if definition.name == "foo"
1810
+ # end
1811
+ # end
1812
+ # ~~~
1813
+ #
1814
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#72
1815
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
1816
+ def on_define_accessor(indexer, definition); end
1817
+
1818
+ # Called when a class is defined.
1819
+ #
1820
+ # Will be called when the indexer processes a `class` node.
1821
+ # Note that when this method is called, the definition for the node has already been added to the index.
1822
+ # It is still possible to ignore it from the plugin:
1823
+ #
1824
+ # ~~~rb
1825
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
1826
+ # def on_define_class(indexer, definition)
1827
+ # definition.ignored! if definition.name == "Foo"
1828
+ # end
1829
+ # end
1830
+ # ~~~
1831
+ #
1832
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#90
1833
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
1834
+ def on_define_class(indexer, definition); end
1835
+
1836
+ # Called when a constant is defined.
1837
+ #
1838
+ # Will be called when the indexer processes a `CONST =` node.
1839
+ # Note that when this method is called, the definition for the node has already been added to the index.
1840
+ # It is still possible to ignore it from the plugin:
1841
+ #
1842
+ # ~~~rb
1843
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
1844
+ # def on_define_constant(indexer, definition)
1845
+ # definition.ignored! if definition.name == "FOO"
1846
+ # end
1847
+ # end
1848
+ # ~~~
1849
+ #
1850
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#108
1851
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
1852
+ def on_define_constant(indexer, definition); end
1853
+
1854
+ # Called when a method is defined.
1855
+ #
1856
+ # Will be called when the indexer processes a `def` or `defs` node.
1857
+ # Note that when this method is called, the definition for the node has already been added to the index.
1858
+ # It is still possible to ignore it from the plugin:
1859
+ #
1860
+ # ~~~rb
1861
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
1862
+ # def on_define_method(indexer, definition)
1863
+ # super # So the `ignore_method_names` DSL is still applied
1864
+ #
1865
+ # definition.ignored! if definition.name == "foo"
1866
+ # end
1867
+ # end
1868
+ # ~~~
1869
+ #
1870
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#128
1871
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
1872
+ def on_define_method(indexer, definition); end
1873
+
1874
+ # Called when a module is defined.
1875
+ #
1876
+ # Will be called when the indexer processes a `module` node.
1877
+ # Note that when this method is called, the definition for the node has already been added to the index.
1878
+ # It is still possible to ignore it from the plugin:
1879
+ #
1880
+ # ~~~rb
1881
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
1882
+ # def on_define_module(indexer, definition)
1883
+ # definition.ignored! if definition.name == "Foo"
1884
+ # end
1885
+ # end
1886
+ # ~~~
1887
+ #
1888
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#146
1889
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
1890
+ def on_define_module(indexer, definition); end
1891
+
1892
+ # Called when a send is being processed
1893
+ #
1894
+ # ~~~rb
1895
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
1896
+ # def on_send(indexer, send)
1897
+ # return unless send.name == "dsl_method"
1898
+ # return if send.args.empty?
1899
+ #
1900
+ # method_name = indexer.node_string(send.args.first).delete_prefix(":")
1901
+ # indexer.reference_method(method_name, send.node)
1902
+ # end
1903
+ # end
1904
+ # ~~~
1905
+ #
1906
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#164
1907
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void }
1908
+ def on_send(indexer, send); end
1909
+
1910
+ private
1911
+
1912
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#171
1913
+ sig { params(name: ::String).returns(T::Boolean) }
1914
+ def ignored_method_name?(name); end
1915
+
1916
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#181
1917
+ sig { params(name: ::String, names_variable: ::Symbol, patterns_variable: ::Symbol).returns(T::Boolean) }
1918
+ def ignored_name?(name, names_variable, patterns_variable); end
1919
+
1920
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#176
1921
+ sig { params(const: ::Symbol).returns(T::Set[::String]) }
1922
+ def names(const); end
1923
+
1924
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#186
1925
+ sig { params(const: ::Symbol).returns(T::Array[::Regexp]) }
1926
+ def patterns(const); end
1927
+
1928
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#191
1929
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void }
1930
+ def reference_send_first_symbol_as_method(indexer, send); end
1931
+
1932
+ class << self
1933
+ # Mark methods matching `names` as ignored.
1934
+ #
1935
+ # Names can be either strings or regexps:
1936
+ #
1937
+ # ~~~rb
1938
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
1939
+ # ignore_method_names(
1940
+ # "foo",
1941
+ # "bar",
1942
+ # /baz.*/,
1943
+ # )
1944
+ # end
1945
+ # ~~~
1946
+ #
1947
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#34
1948
+ sig { params(names: T.any(::Regexp, ::String)).void }
1949
+ def ignore_method_names(*names); end
1950
+
1951
+ private
1952
+
1953
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#41
1954
+ sig do
1955
+ params(names: T::Array[T.any(::Regexp, ::String)], names_variable: ::Symbol, patterns_variable: ::Symbol).void
1956
+ end
1957
+ def save_names_and_patterns(names, names_variable, patterns_variable); end
1958
+ end
1959
+ end
1960
+
1961
+ # source://spoom//lib/spoom/deadcode/plugins/ruby.rb#7
1962
+ class Spoom::Deadcode::Plugins::Ruby < ::Spoom::Deadcode::Plugins::Base
1963
+ # source://spoom//lib/spoom/deadcode/plugins/ruby.rb#24
1964
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void }
1965
+ def on_send(indexer, send); end
1966
+
1967
+ private
1968
+
1969
+ # source://spoom//lib/spoom/deadcode/plugins/ruby.rb#49
1970
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send, node: ::SyntaxTree::Node).void }
1971
+ def reference_symbol_as_constant(indexer, send, node); end
1972
+ end
1973
+
1974
+ # A reference is a call to a method or a constant
1975
+ #
1976
+ # source://spoom//lib/spoom/deadcode/reference.rb#7
1977
+ class Spoom::Deadcode::Reference < ::T::Struct
1978
+ const :kind, ::Spoom::Deadcode::Reference::Kind
1979
+ const :name, ::String
1980
+ const :location, ::Spoom::Deadcode::Location
1981
+
1982
+ # Kind
1983
+ #
1984
+ # source://spoom//lib/spoom/deadcode/reference.rb#24
1985
+ sig { returns(T::Boolean) }
1986
+ def constant?; end
1987
+
1988
+ # source://spoom//lib/spoom/deadcode/reference.rb#29
1989
+ sig { returns(T::Boolean) }
1990
+ def method?; end
1991
+
1992
+ class << self
1993
+ # source://sorbet-runtime/0.5.10990/lib/types/struct.rb#13
1994
+ def inherited(s); end
1995
+ end
1996
+ end
1997
+
1998
+ # source://spoom//lib/spoom/deadcode/reference.rb#10
1999
+ class Spoom::Deadcode::Reference::Kind < ::T::Enum
2000
+ enums do
2001
+ Constant = new
2002
+ Method = new
2003
+ end
2004
+ end
2005
+
2006
+ # An abstraction to simplify handling of SyntaxTree::CallNode, SyntaxTree::Command, SyntaxTree::CommandCall and
2007
+ # SyntaxTree::VCall nodes.
2008
+ #
2009
+ # source://spoom//lib/spoom/deadcode/send.rb#8
2010
+ class Spoom::Deadcode::Send < ::T::Struct
2011
+ const :node, ::SyntaxTree::Node
2012
+ const :name, ::String
2013
+ const :recv, T.nilable(::SyntaxTree::Node), default: T.unsafe(nil)
2014
+ const :args, T::Array[::SyntaxTree::Node], default: T.unsafe(nil)
2015
+ const :block, T.nilable(::SyntaxTree::Node), default: T.unsafe(nil)
2016
+
2017
+ class << self
2018
+ # source://sorbet-runtime/0.5.10990/lib/types/struct.rb#13
2019
+ def inherited(s); end
2020
+ end
2021
+ end
2022
+
2023
+ # source://spoom//lib/spoom.rb#12
2024
+ class Spoom::Error < ::StandardError; end
2025
+
2026
+ # source://spoom//lib/spoom/context/exec.rb#5
2027
+ class Spoom::ExecResult < ::T::Struct
2028
+ const :out, ::String
2029
+ const :err, T.nilable(::String)
2030
+ const :status, T::Boolean
2031
+ const :exit_code, ::Integer
2032
+
2033
+ # source://spoom//lib/spoom/context/exec.rb#14
2034
+ sig { returns(::String) }
2035
+ def to_s; end
2036
+
2037
+ class << self
2038
+ # source://sorbet-runtime/0.5.10990/lib/types/struct.rb#13
2039
+ def inherited(s); end
2040
+ end
2041
+ end
2042
+
2043
+ # source://spoom//lib/spoom/file_collector.rb#5
2044
+ class Spoom::FileCollector
2045
+ # Initialize a new file collector
2046
+ #
2047
+ # If `allow_extensions` is empty, all files are collected.
2048
+ # If `allow_extensions` is an array of extensions, only files with one of these extensions are collected.
2049
+ #
2050
+ # If `allow_mime_types` is empty, all files are collected.
2051
+ # If `allow_mime_types` is an array of mimetypes, files without an extension are collected if their mimetype is in
2052
+ # the list.
2053
+ #
2054
+ # source://spoom//lib/spoom/file_collector.rb#26
2055
+ sig do
2056
+ params(
2057
+ allow_extensions: T::Array[::String],
2058
+ allow_mime_types: T::Array[::String],
2059
+ exclude_patterns: T::Array[::String]
2060
+ ).void
2061
+ end
2062
+ def initialize(allow_extensions: T.unsafe(nil), allow_mime_types: T.unsafe(nil), exclude_patterns: T.unsafe(nil)); end
2063
+
2064
+ # source://spoom//lib/spoom/file_collector.rb#9
2065
+ sig { returns(T::Array[::String]) }
2066
+ def files; end
2067
+
2068
+ # source://spoom//lib/spoom/file_collector.rb#39
2069
+ sig { params(path: ::String).void }
2070
+ def visit_path(path); end
2071
+
2072
+ # source://spoom//lib/spoom/file_collector.rb#34
2073
+ sig { params(paths: T::Array[::String]).void }
2074
+ def visit_paths(paths); end
2075
+
2076
+ private
2077
+
2078
+ # source://spoom//lib/spoom/file_collector.rb#56
2079
+ sig { params(path: ::String).returns(::String) }
2080
+ def clean_path(path); end
2081
+
2082
+ # source://spoom//lib/spoom/file_collector.rb#73
2083
+ sig { params(path: ::String).returns(T::Boolean) }
2084
+ def excluded_file?(path); end
2085
+
2086
+ # source://spoom//lib/spoom/file_collector.rb#88
2087
+ sig { params(path: ::String).returns(T::Boolean) }
2088
+ def excluded_path?(path); end
2089
+
2090
+ # source://spoom//lib/spoom/file_collector.rb#97
2091
+ sig { params(path: ::String).returns(T.nilable(::String)) }
2092
+ def mime_type_for(path); end
2093
+
2094
+ # source://spoom//lib/spoom/file_collector.rb#68
2095
+ sig { params(path: ::String).void }
2096
+ def visit_directory(path); end
2097
+
2098
+ # source://spoom//lib/spoom/file_collector.rb#61
2099
+ sig { params(path: ::String).void }
2100
+ def visit_file(path); end
2101
+ end
2102
+
2103
+ # Build a file hierarchy from a set of file paths.
2104
+ #
2105
+ # source://spoom//lib/spoom/file_tree.rb#6
2106
+ class Spoom::FileTree
2107
+ # source://spoom//lib/spoom/file_tree.rb#10
2108
+ sig { params(paths: T::Enumerable[::String]).void }
2109
+ def initialize(paths = T.unsafe(nil)); end
2110
+
2111
+ # Add a `path` to the tree
2112
+ #
2113
+ # This will create all nodes until the root of `path`.
2114
+ #
2115
+ # source://spoom//lib/spoom/file_tree.rb#25
2116
+ sig { params(path: ::String).returns(::Spoom::FileTree::Node) }
2117
+ def add_path(path); end
2118
+
2119
+ # Add all `paths` to the tree
2120
+ #
2121
+ # source://spoom//lib/spoom/file_tree.rb#17
2122
+ sig { params(paths: T::Enumerable[::String]).void }
2123
+ def add_paths(paths); end
2124
+
2125
+ # All the nodes in this tree
2126
+ #
2127
+ # source://spoom//lib/spoom/file_tree.rb#45
2128
+ sig { returns(T::Array[::Spoom::FileTree::Node]) }
2129
+ def nodes; end
2130
+
2131
+ # Return a map of typing scores for each node in the tree
2132
+ #
2133
+ # source://spoom//lib/spoom/file_tree.rb#67
2134
+ sig { params(context: ::Spoom::Context).returns(T::Hash[::Spoom::FileTree::Node, ::Float]) }
2135
+ def nodes_strictness_scores(context); end
2136
+
2137
+ # Return a map of strictnesses for each node in the tree
2138
+ #
2139
+ # source://spoom//lib/spoom/file_tree.rb#59
2140
+ sig { params(context: ::Spoom::Context).returns(T::Hash[::Spoom::FileTree::Node, T.nilable(::String)]) }
2141
+ def nodes_strictnesses(context); end
2142
+
2143
+ # All the paths in this tree
2144
+ #
2145
+ # source://spoom//lib/spoom/file_tree.rb#53
2146
+ sig { returns(T::Array[::String]) }
2147
+ def paths; end
2148
+
2149
+ # Return a map of typing scores for each path in the tree
2150
+ #
2151
+ # source://spoom//lib/spoom/file_tree.rb#75
2152
+ sig { params(context: ::Spoom::Context).returns(T::Hash[::String, ::Float]) }
2153
+ def paths_strictness_scores(context); end
2154
+
2155
+ # source://spoom//lib/spoom/file_tree.rb#80
2156
+ sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean).void }
2157
+ def print(out: T.unsafe(nil), colors: T.unsafe(nil)); end
2158
+
2159
+ # source://spoom//lib/spoom/file_tree.rb#86
2160
+ sig { params(context: ::Spoom::Context, out: T.any(::IO, ::StringIO), colors: T::Boolean).void }
2161
+ def print_with_strictnesses(context, out: T.unsafe(nil), colors: T.unsafe(nil)); end
2162
+
2163
+ # All root nodes
2164
+ #
2165
+ # source://spoom//lib/spoom/file_tree.rb#39
2166
+ sig { returns(T::Array[::Spoom::FileTree::Node]) }
2167
+ def roots; end
2168
+ end
2169
+
2170
+ # A visitor that collects all the nodes in a tree
2171
+ #
2172
+ # source://spoom//lib/spoom/file_tree.rb#140
2173
+ class Spoom::FileTree::CollectNodes < ::Spoom::FileTree::Visitor
2174
+ # source://spoom//lib/spoom/file_tree.rb#147
2175
+ sig { void }
2176
+ def initialize; end
2177
+
2178
+ # source://spoom//lib/spoom/file_tree.rb#144
2179
+ sig { returns(T::Array[::Spoom::FileTree::Node]) }
2180
+ def nodes; end
2181
+
2182
+ # source://spoom//lib/spoom/file_tree.rb#153
2183
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
2184
+ def visit_node(node); end
2185
+ end
2186
+
2187
+ # A visitor that collects the typing score of each node in a tree
2188
+ #
2189
+ # source://spoom//lib/spoom/file_tree.rb#183
2190
+ class Spoom::FileTree::CollectScores < ::Spoom::FileTree::CollectStrictnesses
2191
+ # source://spoom//lib/spoom/file_tree.rb#190
2192
+ sig { params(context: ::Spoom::Context).void }
2193
+ def initialize(context); end
2194
+
2195
+ # source://spoom//lib/spoom/file_tree.rb#187
2196
+ sig { returns(T::Hash[::Spoom::FileTree::Node, ::Float]) }
2197
+ def scores; end
2198
+
2199
+ # source://spoom//lib/spoom/file_tree.rb#197
2200
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
2201
+ def visit_node(node); end
2202
+
2203
+ private
2204
+
2205
+ # source://spoom//lib/spoom/file_tree.rb#206
2206
+ sig { params(node: ::Spoom::FileTree::Node).returns(::Float) }
2207
+ def node_score(node); end
2208
+
2209
+ # source://spoom//lib/spoom/file_tree.rb#215
2210
+ sig { params(strictness: T.nilable(::String)).returns(::Float) }
2211
+ def strictness_score(strictness); end
2212
+ end
2213
+
2214
+ # A visitor that collects the strictness of each node in a tree
2215
+ #
2216
+ # source://spoom//lib/spoom/file_tree.rb#160
2217
+ class Spoom::FileTree::CollectStrictnesses < ::Spoom::FileTree::Visitor
2218
+ # source://spoom//lib/spoom/file_tree.rb#167
2219
+ sig { params(context: ::Spoom::Context).void }
2220
+ def initialize(context); end
2221
+
2222
+ # source://spoom//lib/spoom/file_tree.rb#164
2223
+ sig { returns(T::Hash[::Spoom::FileTree::Node, T.nilable(::String)]) }
2224
+ def strictnesses; end
2225
+
2226
+ # source://spoom//lib/spoom/file_tree.rb#174
2227
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
2228
+ def visit_node(node); end
2229
+ end
2230
+
2231
+ # A node representing either a file or a directory inside a FileTree
2232
+ #
2233
+ # source://spoom//lib/spoom/file_tree.rb#94
2234
+ class Spoom::FileTree::Node < ::T::Struct
2235
+ const :parent, T.nilable(::Spoom::FileTree::Node)
2236
+ const :name, ::String
2237
+ const :children, T::Hash[::String, ::Spoom::FileTree::Node], default: T.unsafe(nil)
2238
+
2239
+ # Full path to this node from root
2240
+ #
2241
+ # source://spoom//lib/spoom/file_tree.rb#108
2242
+ sig { returns(::String) }
2243
+ def path; end
2244
+
2245
+ class << self
2246
+ # source://sorbet-runtime/0.5.10990/lib/types/struct.rb#13
2247
+ def inherited(s); end
2248
+ end
2249
+ end
2250
+
2251
+ # An internal class used to print a FileTree
2252
+ #
2253
+ # See `FileTree#print`
2254
+ #
2255
+ # source://spoom//lib/spoom/file_tree.rb#228
2256
+ class Spoom::FileTree::Printer < ::Spoom::FileTree::Visitor
2257
+ # source://spoom//lib/spoom/file_tree.rb#238
2258
+ sig do
2259
+ params(
2260
+ strictnesses: T::Hash[::Spoom::FileTree::Node, T.nilable(::String)],
2261
+ out: T.any(::IO, ::StringIO),
2262
+ colors: T::Boolean
2263
+ ).void
2264
+ end
2265
+ def initialize(strictnesses, out: T.unsafe(nil), colors: T.unsafe(nil)); end
2266
+
2267
+ # source://spoom//lib/spoom/file_tree.rb#246
2268
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
2269
+ def visit_node(node); end
2270
+
2271
+ private
2272
+
2273
+ # source://spoom//lib/spoom/file_tree.rb#271
2274
+ sig { params(strictness: T.nilable(::String)).returns(::Spoom::Color) }
2275
+ def strictness_color(strictness); end
2276
+ end
2277
+
2278
+ # An abstract visitor for FileTree
2279
+ #
2280
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
2281
+ #
2282
+ # source://spoom//lib/spoom/file_tree.rb#117
2283
+ class Spoom::FileTree::Visitor
2284
+ abstract!
2285
+
2286
+ # source://spoom//lib/spoom/file_tree.rb#129
2287
+ sig { params(node: ::Spoom::FileTree::Node).void }
2288
+ def visit_node(node); end
2289
+
2290
+ # source://spoom//lib/spoom/file_tree.rb#134
2291
+ sig { params(nodes: T::Array[::Spoom::FileTree::Node]).void }
2292
+ def visit_nodes(nodes); end
2293
+
2294
+ # source://spoom//lib/spoom/file_tree.rb#124
2295
+ sig { params(tree: ::Spoom::FileTree).void }
2296
+ def visit_tree(tree); end
2297
+ end
2298
+
2299
+ # source://spoom//lib/spoom/context/git.rb#5
2300
+ module Spoom::Git; end
2301
+
2302
+ # source://spoom//lib/spoom/context/git.rb#6
2303
+ class Spoom::Git::Commit < ::T::Struct
2304
+ const :sha, ::String
2305
+ const :time, ::Time
2306
+
2307
+ # source://spoom//lib/spoom/context/git.rb#27
2308
+ sig { returns(::Integer) }
2309
+ def timestamp; end
2310
+
2311
+ class << self
2312
+ # source://sorbet-runtime/0.5.10990/lib/types/struct.rb#13
2313
+ def inherited(s); end
2314
+
2315
+ # Parse a line formated as `%h %at` into a `Commit`
2316
+ #
2317
+ # source://spoom//lib/spoom/context/git.rb#14
2318
+ sig { params(string: ::String).returns(T.nilable(::Spoom::Git::Commit)) }
2319
+ def parse_line(string); end
2320
+ end
2321
+ end
2322
+
2323
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#5
2324
+ module Spoom::LSP; end
2325
+
2326
+ # source://spoom//lib/spoom/sorbet/lsp.rb#13
2327
+ class Spoom::LSP::Client
2328
+ # source://spoom//lib/spoom/sorbet/lsp.rb#17
2329
+ sig { params(sorbet_bin: ::String, sorbet_args: ::String, path: ::String).void }
2330
+ def initialize(sorbet_bin, *sorbet_args, path: T.unsafe(nil)); end
2331
+
2332
+ # source://spoom//lib/spoom/sorbet/lsp.rb#229
2333
+ sig { void }
2334
+ def close; end
2335
+
2336
+ # source://spoom//lib/spoom/sorbet/lsp.rb#131
2337
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::Location]) }
2338
+ def definitions(uri, line, column); end
2339
+
2340
+ # source://spoom//lib/spoom/sorbet/lsp.rb#212
2341
+ sig { params(uri: ::String).returns(T::Array[::Spoom::LSP::DocumentSymbol]) }
2342
+ def document_symbols(uri); end
2343
+
2344
+ # source://spoom//lib/spoom/sorbet/lsp.rb#89
2345
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T.nilable(::Spoom::LSP::Hover)) }
2346
+ def hover(uri, line, column); end
2347
+
2348
+ # source://spoom//lib/spoom/sorbet/lsp.rb#27
2349
+ sig { returns(::Integer) }
2350
+ def next_id; end
2351
+
2352
+ # LSP requests
2353
+ #
2354
+ # @raise [Error::AlreadyOpen]
2355
+ #
2356
+ # source://spoom//lib/spoom/sorbet/lsp.rb#72
2357
+ sig { params(workspace_path: ::String).void }
2358
+ def open(workspace_path); end
2359
+
2360
+ # source://spoom//lib/spoom/sorbet/lsp.rb#54
2361
+ sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
2362
+ def read; end
2363
+
2364
+ # @raise [Error::BadHeaders]
2365
+ #
2366
+ # source://spoom//lib/spoom/sorbet/lsp.rb#43
2367
+ sig { returns(T.nilable(::String)) }
2368
+ def read_raw; end
2369
+
2370
+ # source://spoom//lib/spoom/sorbet/lsp.rb#173
2371
+ sig do
2372
+ params(
2373
+ uri: ::String,
2374
+ line: ::Integer,
2375
+ column: ::Integer,
2376
+ include_decl: T::Boolean
2377
+ ).returns(T::Array[::Spoom::LSP::Location])
2378
+ end
2379
+ def references(uri, line, column, include_decl = T.unsafe(nil)); end
2380
+
2381
+ # source://spoom//lib/spoom/sorbet/lsp.rb#37
2382
+ sig { params(message: ::Spoom::LSP::Message).returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
2383
+ def send(message); end
2384
+
2385
+ # source://spoom//lib/spoom/sorbet/lsp.rb#32
2386
+ sig { params(json_string: ::String).void }
2387
+ def send_raw(json_string); end
2388
+
2389
+ # source://spoom//lib/spoom/sorbet/lsp.rb#110
2390
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::SignatureHelp]) }
2391
+ def signatures(uri, line, column); end
2392
+
2393
+ # source://spoom//lib/spoom/sorbet/lsp.rb#197
2394
+ sig { params(query: ::String).returns(T::Array[::Spoom::LSP::DocumentSymbol]) }
2395
+ def symbols(query); end
2396
+
2397
+ # source://spoom//lib/spoom/sorbet/lsp.rb#152
2398
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::Location]) }
2399
+ def type_definitions(uri, line, column); end
2400
+ end
2401
+
2402
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#178
2403
+ class Spoom::LSP::Diagnostic < ::T::Struct
2404
+ include ::Spoom::LSP::PrintableSymbol
2405
+
2406
+ const :range, ::Spoom::LSP::Range
2407
+ const :code, ::Integer
2408
+ const :message, ::String
2409
+ const :informations, ::Object
2410
+
2411
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#202
2412
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2413
+ def accept_printer(printer); end
2414
+
2415
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#207
2416
+ sig { returns(::String) }
2417
+ def to_s; end
2418
+
2419
+ class << self
2420
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#191
2421
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Diagnostic) }
2422
+ def from_json(json); end
2423
+
2424
+ # source://sorbet-runtime/0.5.10990/lib/types/struct.rb#13
2425
+ def inherited(s); end
2426
+ end
2427
+ end
2428
+
2429
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#212
2430
+ class Spoom::LSP::DocumentSymbol < ::T::Struct
2431
+ include ::Spoom::LSP::PrintableSymbol
2432
+
2433
+ const :name, ::String
2434
+ const :detail, T.nilable(::String)
2435
+ const :kind, ::Integer
2436
+ const :location, T.nilable(::Spoom::LSP::Location)
2437
+ const :range, T.nilable(::Spoom::LSP::Range)
2438
+ const :children, T::Array[::Spoom::LSP::DocumentSymbol]
2439
+
2440
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#240
2441
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2442
+ def accept_printer(printer); end
2443
+
2444
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#272
2445
+ sig { returns(::String) }
2446
+ def kind_string; end
2447
+
2448
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#267
2449
+ sig { returns(::String) }
2450
+ def to_s; end
2451
+
2452
+ class << self
2453
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#227
2454
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::DocumentSymbol) }
2455
+ def from_json(json); end
2456
+
2457
+ # source://sorbet-runtime/0.5.10990/lib/types/struct.rb#13
2458
+ def inherited(s); end
2459
+ end
2460
+ end
2461
+
2462
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#276
2463
+ Spoom::LSP::DocumentSymbol::SYMBOL_KINDS = T.let(T.unsafe(nil), Hash)
2464
+
2465
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#6
2466
+ class Spoom::LSP::Error < ::StandardError; end
2467
+
2468
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#7
2469
+ class Spoom::LSP::Error::AlreadyOpen < ::Spoom::LSP::Error; end
2470
+
2471
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#8
2472
+ class Spoom::LSP::Error::BadHeaders < ::Spoom::LSP::Error; end
2473
+
2474
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#10
2475
+ class Spoom::LSP::Error::Diagnostics < ::Spoom::LSP::Error
2476
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#32
2477
+ sig { params(uri: ::String, diagnostics: T::Array[::Spoom::LSP::Diagnostic]).void }
2478
+ def initialize(uri, diagnostics); end
2479
+
2480
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#17
2481
+ sig { returns(T::Array[::Spoom::LSP::Diagnostic]) }
2482
+ def diagnostics; end
2483
+
2484
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#14
2485
+ sig { returns(::String) }
2486
+ def uri; end
2487
+
2488
+ class << self
2489
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#23
2490
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Error::Diagnostics) }
2491
+ def from_json(json); end
2492
+ end
2493
+ end
2494
+
2495
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#19
2496
+ class Spoom::LSP::Hover < ::T::Struct
2497
+ include ::Spoom::LSP::PrintableSymbol
2498
+
2499
+ const :contents, ::String
2500
+ const :range, T.nilable(T::Range[T.untyped])
2501
+
2502
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#39
2503
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2504
+ def accept_printer(printer); end
2505
+
2506
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#45
2507
+ sig { returns(::String) }
2508
+ def to_s; end
2509
+
2510
+ class << self
2511
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#30
2512
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Hover) }
2513
+ def from_json(json); end
2514
+
2515
+ # source://sorbet-runtime/0.5.10990/lib/types/struct.rb#13
2516
+ def inherited(s); end
2517
+ end
2518
+ end
2519
+
2520
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#112
2521
+ class Spoom::LSP::Location < ::T::Struct
2522
+ include ::Spoom::LSP::PrintableSymbol
2523
+
2524
+ const :uri, ::String
2525
+ const :range, ::Spoom::LSP::Range
2526
+
2527
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#132
2528
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2529
+ def accept_printer(printer); end
2530
+
2531
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#138
2532
+ sig { returns(::String) }
2533
+ def to_s; end
2534
+
2535
+ class << self
2536
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#123
2537
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Location) }
2538
+ def from_json(json); end
2539
+
2540
+ # source://sorbet-runtime/0.5.10990/lib/types/struct.rb#13
2541
+ def inherited(s); end
2542
+ end
2543
+ end
2544
+
2545
+ # A general message as defined by JSON-RPC.
2546
+ #
2547
+ # The language server protocol always uses `"2.0"` as the `jsonrpc` version.
2548
+ #
2549
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#12
2550
+ class Spoom::LSP::Message
2551
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#16
2552
+ sig { void }
2553
+ def initialize; end
2554
+
2555
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#21
2556
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
2557
+ def as_json; end
2558
+
2559
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#29
2560
+ sig { params(args: T.untyped).returns(::String) }
2561
+ def to_json(*args); end
2562
+ end
2563
+
2564
+ # A notification message.
2565
+ #
2566
+ # A processed notification message must not send a response back. They work like events.
2567
+ #
2568
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#58
2569
+ class Spoom::LSP::Notification < ::Spoom::LSP::Message
2570
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#68
2571
+ sig { params(method: ::String, params: T::Hash[T.untyped, T.untyped]).void }
2572
+ def initialize(method, params); end
2573
+
2574
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#62
2575
+ sig { returns(::String) }
2576
+ def method; end
2577
+
2578
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#65
2579
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
2580
+ def params; end
2581
+ end
2582
+
2583
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#50
2584
+ class Spoom::LSP::Position < ::T::Struct
2585
+ include ::Spoom::LSP::PrintableSymbol
2586
+
2587
+ const :line, ::Integer
2588
+ const :char, ::Integer
2589
+
2590
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#70
2591
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2592
+ def accept_printer(printer); end
2593
+
2594
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#75
2595
+ sig { returns(::String) }
2596
+ def to_s; end
2597
+
2598
+ class << self
2599
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#61
2600
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Position) }
2601
+ def from_json(json); end
2602
+
2603
+ # source://sorbet-runtime/0.5.10990/lib/types/struct.rb#13
2604
+ def inherited(s); end
2605
+ end
2606
+ end
2607
+
2608
+ # @abstract Subclasses must implement the `abstract` methods below.
2609
+ #
2610
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#9
2611
+ module Spoom::LSP::PrintableSymbol
2612
+ interface!
2613
+
2614
+ # @abstract
2615
+ #
2616
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#16
2617
+ sig { abstract.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2618
+ def accept_printer(printer); end
2619
+ end
2620
+
2621
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#80
2622
+ class Spoom::LSP::Range < ::T::Struct
2623
+ include ::Spoom::LSP::PrintableSymbol
2624
+
2625
+ const :start, ::Spoom::LSP::Position
2626
+ const :end, ::Spoom::LSP::Position
2627
+
2628
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#100
2629
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2630
+ def accept_printer(printer); end
2631
+
2632
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#107
2633
+ sig { returns(::String) }
2634
+ def to_s; end
2635
+
2636
+ class << self
2637
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#91
2638
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Range) }
2639
+ def from_json(json); end
2640
+
2641
+ # source://sorbet-runtime/0.5.10990/lib/types/struct.rb#13
2642
+ def inherited(s); end
2643
+ end
2644
+ end
2645
+
2646
+ # A request message to describe a request between the client and the server.
2647
+ #
2648
+ # Every processed request must send a response back to the sender of the request.
2649
+ #
2650
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#37
2651
+ class Spoom::LSP::Request < ::Spoom::LSP::Message
2652
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#47
2653
+ sig { params(id: ::Integer, method: ::String, params: T::Hash[T.untyped, T.untyped]).void }
2654
+ def initialize(id, method, params); end
2655
+
2656
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#41
2657
+ sig { returns(::Integer) }
2658
+ def id; end
2659
+
2660
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#44
2661
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
2662
+ def params; end
2663
+ end
2664
+
2665
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#40
2666
+ class Spoom::LSP::ResponseError < ::Spoom::LSP::Error
2667
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#63
2668
+ sig { params(code: ::Integer, message: ::String, data: T::Hash[T.untyped, T.untyped]).void }
2669
+ def initialize(code, message, data); end
2670
+
2671
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#44
2672
+ sig { returns(::Integer) }
2673
+ def code; end
2674
+
2675
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#47
2676
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
2677
+ def data; end
2678
+
2679
+ class << self
2680
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#53
2681
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::ResponseError) }
2682
+ def from_json(json); end
2683
+ end
2684
+ end
2685
+
2686
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#143
2687
+ class Spoom::LSP::SignatureHelp < ::T::Struct
2688
+ include ::Spoom::LSP::PrintableSymbol
2689
+
2690
+ const :label, T.nilable(::String)
2691
+ const :doc, ::Object
2692
+ const :params, T::Array[T.untyped]
2693
+
2694
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#165
2695
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2696
+ def accept_printer(printer); end
2697
+
2698
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#173
2699
+ sig { returns(::String) }
2700
+ def to_s; end
2701
+
2702
+ class << self
2703
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#155
2704
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::SignatureHelp) }
2705
+ def from_json(json); end
2706
+
2707
+ # source://sorbet-runtime/0.5.10990/lib/types/struct.rb#13
2708
+ def inherited(s); end
2709
+ end
2710
+ end
2711
+
2712
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#309
2713
+ class Spoom::LSP::SymbolPrinter < ::Spoom::Printer
2714
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#326
2715
+ sig do
2716
+ params(
2717
+ out: T.any(::IO, ::StringIO),
2718
+ colors: T::Boolean,
2719
+ indent_level: ::Integer,
2720
+ prefix: T.nilable(::String)
2721
+ ).void
2722
+ end
2723
+ def initialize(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil), prefix: T.unsafe(nil)); end
2724
+
2725
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#348
2726
+ sig { params(uri: ::String).returns(::String) }
2727
+ def clean_uri(uri); end
2728
+
2729
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#316
2730
+ sig { returns(T.nilable(::String)) }
2731
+ def prefix; end
2732
+
2733
+ # @return [String, nil]
2734
+ #
2735
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#316
2736
+ def prefix=(_arg0); end
2737
+
2738
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#356
2739
+ sig { params(objects: T::Array[::Spoom::LSP::PrintableSymbol]).void }
2740
+ def print_list(objects); end
2741
+
2742
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#336
2743
+ sig { params(object: T.nilable(::Spoom::LSP::PrintableSymbol)).void }
2744
+ def print_object(object); end
2745
+
2746
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#343
2747
+ sig { params(objects: T::Array[::Spoom::LSP::PrintableSymbol]).void }
2748
+ def print_objects(objects); end
2749
+
2750
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#313
2751
+ sig { returns(T::Set[::Integer]) }
2752
+ def seen; end
2753
+ end
2754
+
2755
+ # source://spoom//lib/spoom/printer.rb#7
2756
+ class Spoom::Printer
2757
+ include ::Spoom::Colorize
2758
+
2759
+ # source://spoom//lib/spoom/printer.rb#17
2760
+ sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean, indent_level: ::Integer).void }
2761
+ def initialize(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
2762
+
2763
+ # Colorize `string` with color if `@colors`
2764
+ #
2765
+ # source://spoom//lib/spoom/printer.rb#78
2766
+ sig { params(string: ::String, color: ::Spoom::Color).returns(::String) }
2767
+ def colorize(string, *color); end
2768
+
2769
+ # Decrease indent level
2770
+ #
2771
+ # source://spoom//lib/spoom/printer.rb#31
2772
+ sig { void }
2773
+ def dedent; end
2774
+
2775
+ # Increase indent level
2776
+ #
2777
+ # source://spoom//lib/spoom/printer.rb#25
2778
+ sig { void }
2779
+ def indent; end
2780
+
2781
+ # source://spoom//lib/spoom/printer.rb#14
2782
+ sig { returns(T.any(::IO, ::StringIO)) }
2783
+ def out; end
2784
+
2785
+ # @return [IO, StringIO]
2786
+ #
2787
+ # source://spoom//lib/spoom/printer.rb#14
2788
+ def out=(_arg0); end
2789
+
2790
+ # Print `string` into `out`
2791
+ #
2792
+ # source://spoom//lib/spoom/printer.rb#37
2793
+ sig { params(string: T.nilable(::String)).void }
2794
+ def print(string); end
2795
+
2796
+ # Print `string` colored with `color` into `out`
2797
+ #
2798
+ # Does not use colors unless `@colors`.
2799
+ #
2800
+ # source://spoom//lib/spoom/printer.rb#47
2801
+ sig { params(string: T.nilable(::String), color: ::Spoom::Color).void }
2802
+ def print_colored(string, *color); end
2803
+
2804
+ # Print `string` with indent and newline
2805
+ #
2806
+ # source://spoom//lib/spoom/printer.rb#62
2807
+ sig { params(string: T.nilable(::String)).void }
2808
+ def printl(string); end
2809
+
2810
+ # Print a new line into `out`
2811
+ #
2812
+ # source://spoom//lib/spoom/printer.rb#56
2813
+ sig { void }
2814
+ def printn; end
2815
+
2816
+ # Print an indent space into `out`
2817
+ #
2818
+ # source://spoom//lib/spoom/printer.rb#72
2819
+ sig { void }
2820
+ def printt; end
2821
+ end
2822
+
2823
+ # source://spoom//lib/spoom.rb#10
2824
+ Spoom::SPOOM_PATH = T.let(T.unsafe(nil), String)
2825
+
2826
+ # source://spoom//lib/spoom/sorbet/config.rb#5
2827
+ module Spoom::Sorbet; end
2828
+
2829
+ # source://spoom//lib/spoom/sorbet.rb#39
2830
+ Spoom::Sorbet::BIN_PATH = T.let(T.unsafe(nil), String)
2831
+
2832
+ # source://spoom//lib/spoom/sorbet.rb#36
2833
+ Spoom::Sorbet::CONFIG_PATH = T.let(T.unsafe(nil), String)
2834
+
2835
+ # Parse Sorbet config files
2836
+ #
2837
+ # Parses a Sorbet config file:
2838
+ #
2839
+ # ```ruby
2840
+ # config = Spoom::Sorbet::Config.parse_file("sorbet/config")
2841
+ # puts config.paths # "."
2842
+ # ```
2843
+ #
2844
+ # Parses a Sorbet config string:
2845
+ #
2846
+ # ```ruby
2847
+ # config = Spoom::Sorbet::Config.parse_string(<<~CONFIG)
2848
+ # a
2849
+ # --file=b
2850
+ # --ignore=c
2851
+ # CONFIG
2852
+ # puts config.paths # "a", "b"
2853
+ # puts config.ignore # "c"
2854
+ # ```
2855
+ #
2856
+ # source://spoom//lib/spoom/sorbet/config.rb#26
2857
+ class Spoom::Sorbet::Config
2858
+ # source://spoom//lib/spoom/sorbet/config.rb#38
2859
+ sig { void }
2860
+ def initialize; end
2861
+
2862
+ # @return [Array<String>]
2863
+ #
2864
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2865
+ def allowed_extensions; end
2866
+
2867
+ # @return [Array<String>]
2868
+ #
2869
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2870
+ def allowed_extensions=(_arg0); end
2871
+
2872
+ # source://spoom//lib/spoom/sorbet/config.rb#46
2873
+ sig { returns(::Spoom::Sorbet::Config) }
2874
+ def copy; end
2875
+
2876
+ # @return [Array<String>]
2877
+ #
2878
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2879
+ def ignore; end
2880
+
2881
+ # @return [Array<String>]
2882
+ #
2883
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2884
+ def ignore=(_arg0); end
2885
+
2886
+ # source://spoom//lib/spoom/sorbet/config.rb#35
2887
+ sig { returns(T::Boolean) }
2888
+ def no_stdlib; end
2889
+
2890
+ # @return [Boolean]
2891
+ #
2892
+ # source://spoom//lib/spoom/sorbet/config.rb#35
2893
+ def no_stdlib=(_arg0); end
2894
+
2895
+ # Returns self as a string of options that can be passed to Sorbet
2896
+ #
2897
+ # Example:
2898
+ # ~~~rb
2899
+ # config = Sorbet::Config.new
2900
+ # config.paths << "/foo"
2901
+ # config.paths << "/bar"
2902
+ # config.ignore << "/baz"
2903
+ # config.allowed_extensions << ".rb"
2904
+ #
2905
+ # puts config.options_string # "/foo /bar --ignore /baz --allowed-extension .rb"
2906
+ # ~~~
2907
+ #
2908
+ # source://spoom//lib/spoom/sorbet/config.rb#68
2909
+ sig { returns(::String) }
2910
+ def options_string; end
2911
+
2912
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2913
+ sig { returns(T::Array[::String]) }
2914
+ def paths; end
2915
+
2916
+ # @return [Array<String>]
2917
+ #
2918
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2919
+ def paths=(_arg0); end
2920
+
2921
+ class << self
2922
+ # source://spoom//lib/spoom/sorbet/config.rb#81
2923
+ sig { params(sorbet_config_path: ::String).returns(::Spoom::Sorbet::Config) }
2924
+ def parse_file(sorbet_config_path); end
2925
+
2926
+ # source://spoom//lib/spoom/sorbet/config.rb#86
2927
+ sig { params(sorbet_config: ::String).returns(::Spoom::Sorbet::Config) }
2928
+ def parse_string(sorbet_config); end
2929
+
2930
+ private
2931
+
2932
+ # source://spoom//lib/spoom/sorbet/config.rb#150
2933
+ sig { params(line: ::String).returns(::String) }
2934
+ def parse_option(line); end
2935
+ end
2936
+ end
2937
+
2938
+ # source://spoom//lib/spoom/sorbet/config.rb#29
2939
+ Spoom::Sorbet::Config::DEFAULT_ALLOWED_EXTENSIONS = T.let(T.unsafe(nil), Array)
2940
+
2941
+ # source://spoom//lib/spoom/sorbet.rb#14
2942
+ class Spoom::Sorbet::Error < ::StandardError
2943
+ # source://spoom//lib/spoom/sorbet.rb#29
2944
+ sig { params(message: ::String, result: ::Spoom::ExecResult).void }
2945
+ def initialize(message, result); end
2946
+
2947
+ # source://spoom//lib/spoom/sorbet.rb#21
2948
+ sig { returns(::Spoom::ExecResult) }
2949
+ def result; end
2950
+ end
2951
+
2952
+ # source://spoom//lib/spoom/sorbet.rb#17
2953
+ class Spoom::Sorbet::Error::Killed < ::Spoom::Sorbet::Error; end
2954
+
2955
+ # source://spoom//lib/spoom/sorbet.rb#18
2956
+ class Spoom::Sorbet::Error::Segfault < ::Spoom::Sorbet::Error; end
2957
+
2958
+ # source://spoom//lib/spoom/sorbet/errors.rb#6
2959
+ module Spoom::Sorbet::Errors
2960
+ class << self
2961
+ # source://spoom//lib/spoom/sorbet/errors.rb#13
2962
+ sig { params(errors: T::Array[::Spoom::Sorbet::Errors::Error]).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
2963
+ def sort_errors_by_code(errors); end
2964
+ end
2965
+ end
2966
+
2967
+ # source://spoom//lib/spoom/sorbet/errors.rb#7
2968
+ Spoom::Sorbet::Errors::DEFAULT_ERROR_URL_BASE = T.let(T.unsafe(nil), String)
2969
+
2970
+ # source://spoom//lib/spoom/sorbet/errors.rb#125
2971
+ class Spoom::Sorbet::Errors::Error
2972
+ include ::Comparable
2973
+
2974
+ # source://spoom//lib/spoom/sorbet/errors.rb#151
2975
+ sig do
2976
+ params(
2977
+ file: T.nilable(::String),
2978
+ line: T.nilable(::Integer),
2979
+ message: T.nilable(::String),
2980
+ code: T.nilable(::Integer),
2981
+ more: T::Array[::String]
2982
+ ).void
2983
+ end
2984
+ def initialize(file, line, message, code, more = T.unsafe(nil)); end
2985
+
2986
+ # By default errors are sorted by location
2987
+ #
2988
+ # source://spoom//lib/spoom/sorbet/errors.rb#162
2989
+ sig { params(other: T.untyped).returns(::Integer) }
2990
+ def <=>(other); end
2991
+
2992
+ # @return [Integer, nil]
2993
+ #
2994
+ # source://spoom//lib/spoom/sorbet/errors.rb#133
2995
+ def code; end
2996
+
2997
+ # source://spoom//lib/spoom/sorbet/errors.rb#130
2998
+ sig { returns(T.nilable(::String)) }
2999
+ def file; end
3000
+
3001
+ # Other files associated with the error
3002
+ #
3003
+ # source://spoom//lib/spoom/sorbet/errors.rb#140
3004
+ sig { returns(T::Set[::String]) }
3005
+ def files_from_error_sections; end
3006
+
3007
+ # source://spoom//lib/spoom/sorbet/errors.rb#133
3008
+ sig { returns(T.nilable(::Integer)) }
3009
+ def line; end
3010
+
3011
+ # @return [String, nil]
3012
+ #
3013
+ # source://spoom//lib/spoom/sorbet/errors.rb#130
3014
+ def message; end
3015
+
3016
+ # source://spoom//lib/spoom/sorbet/errors.rb#136
3017
+ sig { returns(T::Array[::String]) }
3018
+ def more; end
3019
+
3020
+ # source://spoom//lib/spoom/sorbet/errors.rb#169
3021
+ sig { returns(::String) }
3022
+ def to_s; end
3023
+ end
3024
+
3025
+ # Parse errors from Sorbet output
3026
+ #
3027
+ # source://spoom//lib/spoom/sorbet/errors.rb#18
3028
+ class Spoom::Sorbet::Errors::Parser
3029
+ # source://spoom//lib/spoom/sorbet/errors.rb#43
3030
+ sig { params(error_url_base: ::String).void }
3031
+ def initialize(error_url_base: T.unsafe(nil)); end
3032
+
3033
+ # source://spoom//lib/spoom/sorbet/errors.rb#50
3034
+ sig { params(output: ::String).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
3035
+ def parse(output); end
3036
+
3037
+ private
3038
+
3039
+ # source://spoom//lib/spoom/sorbet/errors.rb#114
3040
+ sig { params(line: ::String).void }
3041
+ def append_error(line); end
3042
+
3043
+ # source://spoom//lib/spoom/sorbet/errors.rb#106
3044
+ sig { void }
3045
+ def close_error; end
3046
+
3047
+ # source://spoom//lib/spoom/sorbet/errors.rb#73
3048
+ sig { params(error_url_base: ::String).returns(::Regexp) }
3049
+ def error_line_match_regexp(error_url_base); end
3050
+
3051
+ # source://spoom//lib/spoom/sorbet/errors.rb#90
3052
+ sig { params(line: ::String).returns(T.nilable(::Spoom::Sorbet::Errors::Error)) }
3053
+ def match_error_line(line); end
3054
+
3055
+ # source://spoom//lib/spoom/sorbet/errors.rb#99
3056
+ sig { params(error: ::Spoom::Sorbet::Errors::Error).void }
3057
+ def open_error(error); end
3058
+
3059
+ class << self
3060
+ # source://spoom//lib/spoom/sorbet/errors.rb#36
3061
+ sig { params(output: ::String, error_url_base: ::String).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
3062
+ def parse_string(output, error_url_base: T.unsafe(nil)); end
3063
+ end
3064
+ end
3065
+
3066
+ # source://spoom//lib/spoom/sorbet/errors.rb#21
3067
+ Spoom::Sorbet::Errors::Parser::HEADER = T.let(T.unsafe(nil), Array)
3068
+
3069
+ # source://spoom//lib/spoom/sorbet.rb#37
3070
+ Spoom::Sorbet::GEM_PATH = T.let(T.unsafe(nil), String)
3071
+
3072
+ # source://spoom//lib/spoom/sorbet.rb#38
3073
+ Spoom::Sorbet::GEM_VERSION = T.let(T.unsafe(nil), String)
3074
+
3075
+ # source://spoom//lib/spoom/sorbet.rb#41
3076
+ Spoom::Sorbet::KILLED_CODE = T.let(T.unsafe(nil), Integer)
3077
+
3078
+ # source://spoom//lib/spoom/sorbet/metrics.rb#8
3079
+ module Spoom::Sorbet::MetricsParser
3080
+ class << self
3081
+ # source://spoom//lib/spoom/sorbet/metrics.rb#15
3082
+ sig { params(path: ::String, prefix: ::String).returns(T::Hash[::String, ::Integer]) }
3083
+ def parse_file(path, prefix = T.unsafe(nil)); end
3084
+
3085
+ # source://spoom//lib/spoom/sorbet/metrics.rb#25
3086
+ sig { params(obj: T::Hash[::String, T.untyped], prefix: ::String).returns(T::Hash[::String, ::Integer]) }
3087
+ def parse_hash(obj, prefix = T.unsafe(nil)); end
3088
+
3089
+ # source://spoom//lib/spoom/sorbet/metrics.rb#20
3090
+ sig { params(string: ::String, prefix: ::String).returns(T::Hash[::String, ::Integer]) }
3091
+ def parse_string(string, prefix = T.unsafe(nil)); end
3092
+ end
3093
+ end
3094
+
3095
+ # source://spoom//lib/spoom/sorbet/metrics.rb#9
3096
+ Spoom::Sorbet::MetricsParser::DEFAULT_PREFIX = T.let(T.unsafe(nil), String)
3097
+
3098
+ # source://spoom//lib/spoom/sorbet.rb#42
3099
+ Spoom::Sorbet::SEGFAULT_CODE = T.let(T.unsafe(nil), Integer)
3100
+
3101
+ # source://spoom//lib/spoom/sorbet/sigils.rb#9
3102
+ module Spoom::Sorbet::Sigils
3103
+ class << self
3104
+ # changes the sigil in the file at the passed path to the specified new strictness
3105
+ #
3106
+ # source://spoom//lib/spoom/sorbet/sigils.rb#72
3107
+ sig { params(path: T.any(::Pathname, ::String), new_strictness: ::String).returns(T::Boolean) }
3108
+ def change_sigil_in_file(path, new_strictness); end
3109
+
3110
+ # changes the sigil to have a new strictness in a list of files
3111
+ #
3112
+ # source://spoom//lib/spoom/sorbet/sigils.rb#83
3113
+ sig { params(path_list: T::Array[::String], new_strictness: ::String).returns(T::Array[::String]) }
3114
+ def change_sigil_in_files(path_list, new_strictness); end
3115
+
3116
+ # returns a string containing the strictness of a sigil in a file at the passed path
3117
+ # * returns nil if no sigil
3118
+ #
3119
+ # source://spoom//lib/spoom/sorbet/sigils.rb#63
3120
+ sig { params(path: T.any(::Pathname, ::String)).returns(T.nilable(::String)) }
3121
+ def file_strictness(path); end
3122
+
3123
+ # returns the full sigil comment string for the passed strictness
3124
+ #
3125
+ # source://spoom//lib/spoom/sorbet/sigils.rb#38
3126
+ sig { params(strictness: ::String).returns(::String) }
3127
+ def sigil_string(strictness); end
3128
+
3129
+ # returns the strictness of a sigil in the passed file content string (nil if no sigil)
3130
+ #
3131
+ # source://spoom//lib/spoom/sorbet/sigils.rb#50
3132
+ sig { params(content: ::String).returns(T.nilable(::String)) }
3133
+ def strictness_in_content(content); end
3134
+
3135
+ # returns a string which is the passed content but with the sigil updated to a new strictness
3136
+ #
3137
+ # source://spoom//lib/spoom/sorbet/sigils.rb#56
3138
+ sig { params(content: ::String, new_strictness: ::String).returns(::String) }
3139
+ def update_sigil(content, new_strictness); end
3140
+
3141
+ # returns true if the passed string is a valid strictness (else false)
3142
+ #
3143
+ # source://spoom//lib/spoom/sorbet/sigils.rb#44
3144
+ sig { params(strictness: ::String).returns(T::Boolean) }
3145
+ def valid_strictness?(strictness); end
3146
+ end
3147
+ end
3148
+
3149
+ # source://spoom//lib/spoom/sorbet/sigils.rb#31
3150
+ Spoom::Sorbet::Sigils::SIGIL_REGEXP = T.let(T.unsafe(nil), Regexp)
3151
+
3152
+ # source://spoom//lib/spoom/sorbet/sigils.rb#13
3153
+ Spoom::Sorbet::Sigils::STRICTNESS_FALSE = T.let(T.unsafe(nil), String)
3154
+
3155
+ # source://spoom//lib/spoom/sorbet/sigils.rb#12
3156
+ Spoom::Sorbet::Sigils::STRICTNESS_IGNORE = T.let(T.unsafe(nil), String)
3157
+
3158
+ # source://spoom//lib/spoom/sorbet/sigils.rb#17
3159
+ Spoom::Sorbet::Sigils::STRICTNESS_INTERNAL = T.let(T.unsafe(nil), String)
3160
+
3161
+ # source://spoom//lib/spoom/sorbet/sigils.rb#15
3162
+ Spoom::Sorbet::Sigils::STRICTNESS_STRICT = T.let(T.unsafe(nil), String)
3163
+
3164
+ # source://spoom//lib/spoom/sorbet/sigils.rb#16
3165
+ Spoom::Sorbet::Sigils::STRICTNESS_STRONG = T.let(T.unsafe(nil), String)
3166
+
3167
+ # source://spoom//lib/spoom/sorbet/sigils.rb#14
3168
+ Spoom::Sorbet::Sigils::STRICTNESS_TRUE = T.let(T.unsafe(nil), String)
3169
+
3170
+ # source://spoom//lib/spoom/sorbet/sigils.rb#19
3171
+ Spoom::Sorbet::Sigils::VALID_STRICTNESS = T.let(T.unsafe(nil), Array)
3172
+
3173
+ # source://spoom//lib/spoom/timeline.rb#5
3174
+ class Spoom::Timeline
3175
+ # source://spoom//lib/spoom/timeline.rb#9
3176
+ sig { params(context: ::Spoom::Context, from: ::Time, to: ::Time).void }
3177
+ def initialize(context, from, to); end
3178
+
3179
+ # Return one commit for each date in `dates`
3180
+ #
3181
+ # source://spoom//lib/spoom/timeline.rb#36
3182
+ sig { params(dates: T::Array[::Time]).returns(T::Array[::Spoom::Git::Commit]) }
3183
+ def commits_for_dates(dates); end
3184
+
3185
+ # Return all months between `from` and `to`
3186
+ #
3187
+ # source://spoom//lib/spoom/timeline.rb#23
3188
+ sig { returns(T::Array[::Time]) }
3189
+ def months; end
3190
+
3191
+ # Return one commit for each month between `from` and `to`
3192
+ #
3193
+ # source://spoom//lib/spoom/timeline.rb#17
3194
+ sig { returns(T::Array[::Spoom::Git::Commit]) }
3195
+ def ticks; end
3196
+ end
3197
+
3198
+ # source://spoom//lib/spoom/version.rb#5
3199
+ Spoom::VERSION = T.let(T.unsafe(nil), String)