sorbet-result 1.0.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/.standard.yml +6 -0
  4. data/.tool-versions +1 -1
  5. data/CHANGELOG.md +21 -0
  6. data/Gemfile +3 -5
  7. data/Gemfile.lock +79 -64
  8. data/README.md +25 -2
  9. data/Rakefile +3 -5
  10. data/lib/minitest/result_assertions.rb +48 -0
  11. data/lib/sorbet-result.rb +1 -5
  12. data/lib/typed/result.rb +199 -7
  13. data/sorbet/rbi/gems/.gitattributes +1 -0
  14. data/sorbet/rbi/gems/ast@2.4.2.rbi +1 -0
  15. data/sorbet/rbi/gems/erubi@1.13.0.rbi +150 -0
  16. data/sorbet/rbi/gems/{io-console@0.6.0.rbi → io-console@0.7.2.rbi} +1 -0
  17. data/sorbet/rbi/gems/{json@2.6.3.rbi → json@2.7.5.rbi} +168 -72
  18. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14238 -0
  19. data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +240 -0
  20. data/sorbet/rbi/gems/{minitest@5.18.1.rbi → minitest@5.25.1.rbi} +337 -282
  21. data/sorbet/rbi/gems/netrc@0.11.0.rbi +1 -0
  22. data/sorbet/rbi/gems/{parallel@1.23.0.rbi → parallel@1.26.3.rbi} +38 -20
  23. data/sorbet/rbi/gems/{parser@3.2.2.3.rbi → parser@3.3.5.1.rbi} +663 -2397
  24. data/sorbet/rbi/gems/prism@1.2.0.rbi +39085 -0
  25. data/sorbet/rbi/gems/psych@5.1.2.rbi +1732 -0
  26. data/sorbet/rbi/gems/{racc@1.7.1.rbi → racc@1.8.1.rbi} +37 -36
  27. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +1 -0
  28. data/sorbet/rbi/gems/{rake@13.0.6.rbi → rake@13.2.1.rbi} +79 -75
  29. data/sorbet/rbi/gems/rbi@0.2.1.rbi +4535 -0
  30. data/sorbet/rbi/gems/{regexp_parser@2.8.1.rbi → regexp_parser@2.9.2.rbi} +190 -167
  31. data/sorbet/rbi/gems/{reline@0.3.5.rbi → reline@0.5.10.rbi} +1 -0
  32. data/sorbet/rbi/gems/{rubocop-ast@1.29.0.rbi → rubocop-ast@1.33.1.rbi} +1220 -748
  33. data/sorbet/rbi/gems/rubocop-performance@1.22.1.rbi +9 -0
  34. data/sorbet/rbi/gems/rubocop-sorbet@0.7.8.rbi +9 -0
  35. data/sorbet/rbi/gems/{rubocop@1.52.1.rbi → rubocop@1.66.1.rbi} +6236 -3446
  36. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1 -0
  37. data/sorbet/rbi/gems/spoom@1.5.0.rbi +4932 -0
  38. data/sorbet/rbi/gems/standard-custom@1.0.2.rbi +9 -0
  39. data/sorbet/rbi/gems/standard-performance@1.5.0.rbi +9 -0
  40. data/sorbet/rbi/gems/standard-sorbet@0.0.2.rbi +53 -0
  41. data/sorbet/rbi/gems/standard@1.41.1.rbi +926 -0
  42. data/sorbet/rbi/gems/stringio@3.1.1.rbi +9 -0
  43. data/sorbet/rbi/gems/{tapioca@0.11.6.rbi → tapioca@0.16.3.rbi} +937 -635
  44. data/sorbet/rbi/gems/{thor@1.2.2.rbi → thor@1.3.2.rbi} +832 -419
  45. data/sorbet/rbi/gems/{unicode-display_width@2.4.2.rbi → unicode-display_width@2.6.0.rbi} +1 -0
  46. data/sorbet/rbi/gems/{yard-sorbet@0.8.1.rbi → yard-sorbet@0.9.0.rbi} +36 -29
  47. data/sorbet/rbi/gems/{yard@0.9.34.rbi → yard@0.9.37.rbi} +431 -271
  48. data/sorbet/tapioca/config.yml +3 -12
  49. data/sorbet/tapioca/require.rb +0 -1
  50. metadata +37 -47
  51. data/.rubocop.yml +0 -33
  52. data/lib/typed/failure.rb +0 -81
  53. data/lib/typed/success.rb +0 -80
  54. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +0 -1083
  55. data/sorbet/rbi/gems/irb@1.7.0.rbi +0 -342
  56. data/sorbet/rbi/gems/rbi@0.0.16.rbi +0 -3008
  57. data/sorbet/rbi/gems/rexml@3.2.5.rbi +0 -4717
  58. data/sorbet/rbi/gems/rubocop-minitest@0.31.0.rbi +0 -2528
  59. data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +0 -328
  60. data/sorbet/rbi/gems/rubocop-sorbet@0.7.0.rbi +0 -1043
  61. data/sorbet/rbi/gems/spoom@1.2.1.rbi +0 -2503
  62. data/sorbet/rbi/gems/unparser@0.6.8.rbi +0 -4525
  63. data/sorbet/rbi/gems/zeitwerk@2.6.8.rbi +0 -986
@@ -0,0 +1,4932 @@
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
+
8
+ # source://spoom//lib/spoom.rb#7
9
+ module Spoom
10
+ class << self
11
+ # source://spoom//lib/spoom/parse.rb#13
12
+ sig { params(ruby: ::String, file: ::String).returns(::Prism::Node) }
13
+ def parse_ruby(ruby, file:); end
14
+ end
15
+ end
16
+
17
+ # source://spoom//lib/spoom/cli/helper.rb#9
18
+ module Spoom::Cli; end
19
+
20
+ # source://spoom//lib/spoom/cli/deadcode.rb#8
21
+ class Spoom::Cli::Deadcode < ::Thor
22
+ include ::Spoom::Colorize
23
+ include ::Spoom::Cli::Helper
24
+
25
+ # source://spoom//lib/spoom/cli/deadcode.rb#52
26
+ sig { params(paths: ::String).void }
27
+ def deadcode(*paths); end
28
+
29
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
30
+
31
+ # source://spoom//lib/spoom/cli/deadcode.rb#154
32
+ def remove(location_string); end
33
+ end
34
+
35
+ # source://spoom//lib/spoom/cli/helper.rb#10
36
+ module Spoom::Cli::Helper
37
+ include ::Spoom::Colorize
38
+
39
+ requires_ancestor { Thor }
40
+
41
+ # source://spoom//lib/spoom/cli/helper.rb#139
42
+ sig { params(string: ::String).returns(::String) }
43
+ def blue(string); end
44
+
45
+ # Is the `--color` option true?
46
+ #
47
+ # source://spoom//lib/spoom/cli/helper.rb#103
48
+ sig { returns(T::Boolean) }
49
+ def color?; end
50
+
51
+ # Colorize a string if `color?`
52
+ #
53
+ # source://spoom//lib/spoom/cli/helper.rb#132
54
+ sig { params(string: ::String, color: ::Spoom::Color).returns(::String) }
55
+ def colorize(string, *color); end
56
+
57
+ # Returns the context at `--path` (by default the current working directory)
58
+ #
59
+ # source://spoom//lib/spoom/cli/helper.rb#71
60
+ sig { returns(::Spoom::Context) }
61
+ def context; end
62
+
63
+ # Raise if `spoom` is not ran inside a context with a `sorbet/config` file
64
+ #
65
+ # source://spoom//lib/spoom/cli/helper.rb#77
66
+ sig { returns(::Spoom::Context) }
67
+ def context_requiring_sorbet!; end
68
+
69
+ # source://spoom//lib/spoom/cli/helper.rb#144
70
+ sig { params(string: ::String).returns(::String) }
71
+ def cyan(string); end
72
+
73
+ # Return the path specified through `--path`
74
+ #
75
+ # source://spoom//lib/spoom/cli/helper.rb#92
76
+ sig { returns(::String) }
77
+ def exec_path; end
78
+
79
+ # source://spoom//lib/spoom/cli/helper.rb#149
80
+ sig { params(string: ::String).returns(::String) }
81
+ def gray(string); end
82
+
83
+ # source://spoom//lib/spoom/cli/helper.rb#154
84
+ sig { params(string: ::String).returns(::String) }
85
+ def green(string); end
86
+
87
+ # source://spoom//lib/spoom/cli/helper.rb#108
88
+ sig { params(string: ::String).returns(::String) }
89
+ def highlight(string); end
90
+
91
+ # source://spoom//lib/spoom/cli/helper.rb#159
92
+ sig { params(string: ::String).returns(::String) }
93
+ def red(string); end
94
+
95
+ # Print `message` on `$stdout`
96
+ #
97
+ # source://spoom//lib/spoom/cli/helper.rb#20
98
+ sig { params(message: ::String).void }
99
+ def say(message); end
100
+
101
+ # Print `message` on `$stderr`
102
+ #
103
+ # The message is prefixed by a status (default: `Error`).
104
+ #
105
+ # source://spoom//lib/spoom/cli/helper.rb#39
106
+ sig { params(message: ::String, status: T.nilable(::String), nl: T::Boolean).void }
107
+ def say_error(message, status: T.unsafe(nil), nl: T.unsafe(nil)); end
108
+
109
+ # Print `message` on `$stderr`
110
+ #
111
+ # The message is prefixed by a status (default: `Warning`).
112
+ #
113
+ # source://spoom//lib/spoom/cli/helper.rb#59
114
+ sig { params(message: ::String, status: T.nilable(::String), nl: T::Boolean).void }
115
+ def say_warning(message, status: T.unsafe(nil), nl: T.unsafe(nil)); end
116
+
117
+ # source://spoom//lib/spoom/cli/helper.rb#164
118
+ sig { params(string: ::String).returns(::String) }
119
+ def yellow(string); end
120
+ end
121
+
122
+ # source://spoom//lib/spoom/cli.rb#12
123
+ class Spoom::Cli::Main < ::Thor
124
+ include ::Spoom::Colorize
125
+ include ::Spoom::Cli::Helper
126
+
127
+ # source://spoom//lib/spoom/cli.rb#101
128
+ def __print_version; end
129
+
130
+ # source://spoom//lib/spoom/cli.rb#58
131
+ sig { params(directory: ::String).void }
132
+ def bump(directory = T.unsafe(nil)); end
133
+
134
+ # source://spoom//lib/spoom/cli.rb#65
135
+ def coverage(*args); end
136
+
137
+ # source://thor/1.3.2/lib/thor.rb#334
138
+ def deadcode(*args); end
139
+
140
+ # source://spoom//lib/spoom/cli.rb#75
141
+ def lsp(*args); end
142
+
143
+ # source://thor/1.3.2/lib/thor.rb#334
144
+ def srb(*args); end
145
+
146
+ # source://spoom//lib/spoom/cli.rb#94
147
+ def tc(*paths_to_select); end
148
+
149
+ class << self
150
+ # @return [Boolean]
151
+ #
152
+ # source://spoom//lib/spoom/cli.rb#108
153
+ def exit_on_failure?; end
154
+ end
155
+ end
156
+
157
+ # source://spoom//lib/spoom/cli.rb#81
158
+ Spoom::Cli::Main::SORT_CODE = T.let(T.unsafe(nil), String)
159
+
160
+ # source://spoom//lib/spoom/cli.rb#83
161
+ Spoom::Cli::Main::SORT_ENUM = T.let(T.unsafe(nil), Array)
162
+
163
+ # source://spoom//lib/spoom/cli.rb#82
164
+ Spoom::Cli::Main::SORT_LOC = T.let(T.unsafe(nil), String)
165
+
166
+ # source://spoom//lib/spoom/cli/srb/bump.rb#9
167
+ module Spoom::Cli::Srb; end
168
+
169
+ # source://spoom//lib/spoom/cli/srb/bump.rb#10
170
+ class Spoom::Cli::Srb::Bump < ::Thor
171
+ include ::Spoom::Colorize
172
+ include ::Spoom::Cli::Helper
173
+
174
+ # source://spoom//lib/spoom/cli/srb/bump.rb#50
175
+ sig { params(directory: ::String).void }
176
+ def bump(directory = T.unsafe(nil)); end
177
+
178
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
179
+
180
+ # source://spoom//lib/spoom/cli/srb/bump.rb#171
181
+ def print_changes(files, command:, from: T.unsafe(nil), to: T.unsafe(nil), dry: T.unsafe(nil), path: T.unsafe(nil)); end
182
+
183
+ # source://spoom//lib/spoom/cli/srb/bump.rb#193
184
+ def undo_changes(files, from_strictness); end
185
+ end
186
+
187
+ # source://spoom//lib/spoom/cli/srb/coverage.rb#10
188
+ class Spoom::Cli::Srb::Coverage < ::Thor
189
+ include ::Spoom::Colorize
190
+ include ::Spoom::Cli::Helper
191
+
192
+ # source://spoom//lib/spoom/cli/srb/coverage.rb#199
193
+ def bundle_install(path, sha); end
194
+
195
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
196
+
197
+ # source://spoom//lib/spoom/cli/srb/coverage.rb#211
198
+ def message_no_data(file); end
199
+
200
+ # source://spoom//lib/spoom/cli/srb/coverage.rb#174
201
+ def open(file = T.unsafe(nil)); end
202
+
203
+ # source://spoom//lib/spoom/cli/srb/coverage.rb#190
204
+ def parse_time(string, option); end
205
+
206
+ # source://spoom//lib/spoom/cli/srb/coverage.rb#143
207
+ def report; end
208
+
209
+ # source://spoom//lib/spoom/cli/srb/coverage.rb#21
210
+ def snapshot; end
211
+
212
+ # source://spoom//lib/spoom/cli/srb/coverage.rb#43
213
+ def timeline; end
214
+ end
215
+
216
+ # source://spoom//lib/spoom/cli/srb/coverage.rb#13
217
+ Spoom::Cli::Srb::Coverage::DATA_DIR = T.let(T.unsafe(nil), String)
218
+
219
+ # source://spoom//lib/spoom/cli/srb/lsp.rb#11
220
+ class Spoom::Cli::Srb::LSP < ::Thor
221
+ include ::Spoom::Colorize
222
+ include ::Spoom::Cli::Helper
223
+
224
+ # TODO: options, filter, limit, kind etc.. filter rbi
225
+ #
226
+ # source://spoom//lib/spoom/cli/srb/lsp.rb#45
227
+ def defs(file, line, col); end
228
+
229
+ # TODO: options, filter, limit, kind etc.. filter rbi
230
+ #
231
+ # source://spoom//lib/spoom/cli/srb/lsp.rb#55
232
+ def find(query); end
233
+
234
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
235
+
236
+ # TODO: options, filter, limit, kind etc.. filter rbi
237
+ #
238
+ # source://spoom//lib/spoom/cli/srb/lsp.rb#31
239
+ def hover(file, line, col); end
240
+
241
+ # TODO: options, filter, limit, kind etc.. filter rbi
242
+ #
243
+ # source://spoom//lib/spoom/cli/srb/lsp.rb#16
244
+ def list; end
245
+
246
+ # source://spoom//lib/spoom/cli/srb/lsp.rb#104
247
+ def lsp_client; end
248
+
249
+ # TODO: options, filter, limit, kind etc.. filter rbi
250
+ #
251
+ # source://spoom//lib/spoom/cli/srb/lsp.rb#75
252
+ def refs(file, line, col); end
253
+
254
+ # source://spoom//lib/spoom/cli/srb/lsp.rb#127
255
+ def run(&block); end
256
+
257
+ # TODO: options, filter, limit, kind etc.. filter rbi
258
+ #
259
+ # source://spoom//lib/spoom/cli/srb/lsp.rb#85
260
+ def sigs(file, line, col); end
261
+
262
+ # source://spoom//lib/spoom/cli/srb/lsp.rb#119
263
+ def symbol_printer; end
264
+
265
+ # TODO: options, filter, limit, kind etc.. filter rbi
266
+ #
267
+ # source://spoom//lib/spoom/cli/srb/lsp.rb#65
268
+ def symbols(file); end
269
+
270
+ # source://spoom//lib/spoom/cli/srb/lsp.rb#152
271
+ def to_uri(path); end
272
+
273
+ # TODO: options, filter, limit, kind etc.. filter rbi
274
+ #
275
+ # source://spoom//lib/spoom/cli/srb/lsp.rb#95
276
+ def types(file, line, col); end
277
+ end
278
+
279
+ # source://spoom//lib/spoom/cli/srb.rb#12
280
+ class Spoom::Cli::Srb::Main < ::Thor
281
+ # source://thor/1.3.2/lib/thor.rb#334
282
+ def bump(*args); end
283
+
284
+ # source://thor/1.3.2/lib/thor.rb#334
285
+ def coverage(*args); end
286
+
287
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
288
+
289
+ # source://thor/1.3.2/lib/thor.rb#334
290
+ def lsp(*args); end
291
+
292
+ # source://thor/1.3.2/lib/thor.rb#334
293
+ def tc(*args); end
294
+ end
295
+
296
+ # source://spoom//lib/spoom/cli/srb/tc.rb#7
297
+ class Spoom::Cli::Srb::Tc < ::Thor
298
+ include ::Spoom::Colorize
299
+ include ::Spoom::Cli::Helper
300
+
301
+ # source://spoom//lib/spoom/cli/srb/tc.rb#132
302
+ def colorize_message(message); end
303
+
304
+ # source://spoom//lib/spoom/cli/srb/tc.rb#123
305
+ def format_error(error, format); end
306
+
307
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
308
+
309
+ # source://spoom//lib/spoom/cli/srb/tc.rb#27
310
+ def tc(*paths_to_select); end
311
+ end
312
+
313
+ # source://spoom//lib/spoom/cli/srb/tc.rb#16
314
+ Spoom::Cli::Srb::Tc::DEFAULT_FORMAT = T.let(T.unsafe(nil), String)
315
+
316
+ # source://spoom//lib/spoom/cli/srb/tc.rb#12
317
+ Spoom::Cli::Srb::Tc::SORT_CODE = T.let(T.unsafe(nil), String)
318
+
319
+ # source://spoom//lib/spoom/cli/srb/tc.rb#14
320
+ Spoom::Cli::Srb::Tc::SORT_ENUM = T.let(T.unsafe(nil), Array)
321
+
322
+ # source://spoom//lib/spoom/cli/srb/tc.rb#13
323
+ Spoom::Cli::Srb::Tc::SORT_LOC = T.let(T.unsafe(nil), String)
324
+
325
+ # source://spoom//lib/spoom/colors.rb#5
326
+ class Spoom::Color < ::T::Enum
327
+ enums do
328
+ BLACK = new
329
+ BLUE = new
330
+ BOLD = new
331
+ CLEAR = new
332
+ CYAN = new
333
+ GREEN = new
334
+ LIGHT_BLACK = new
335
+ LIGHT_BLUE = new
336
+ LIGHT_CYAN = new
337
+ LIGHT_GREEN = new
338
+ LIGHT_MAGENTA = new
339
+ LIGHT_RED = new
340
+ LIGHT_WHITE = new
341
+ LIGHT_YELLOW = new
342
+ MAGENTA = new
343
+ RED = new
344
+ WHITE = new
345
+ YELLOW = new
346
+ end
347
+
348
+ # source://spoom//lib/spoom/colors.rb#32
349
+ sig { returns(::String) }
350
+ def ansi_code; end
351
+ end
352
+
353
+ # source://spoom//lib/spoom/colors.rb#37
354
+ module Spoom::Colorize
355
+ # source://spoom//lib/spoom/colors.rb#41
356
+ sig { params(string: ::String, color: ::Spoom::Color).returns(::String) }
357
+ def set_color(string, *color); end
358
+ end
359
+
360
+ # An abstraction to a Ruby project context
361
+ #
362
+ # A context maps to a directory in the file system.
363
+ # It is used to manipulate files and run commands in the context of this directory.
364
+ #
365
+ # source://spoom//lib/spoom/context/bundle.rb#5
366
+ class Spoom::Context
367
+ include ::Spoom::Context::Bundle
368
+ include ::Spoom::Context::Exec
369
+ include ::Spoom::Context::FileSystem
370
+ include ::Spoom::Context::Git
371
+ include ::Spoom::Context::Sorbet
372
+
373
+ # Create a new context about `absolute_path`
374
+ #
375
+ # The directory will not be created if it doesn't exist.
376
+ # Call `#make!` to create it.
377
+ #
378
+ # source://spoom//lib/spoom/context.rb#51
379
+ sig { params(absolute_path: ::String).void }
380
+ def initialize(absolute_path); end
381
+
382
+ # The absolute path to the directory this context is about
383
+ #
384
+ # source://spoom//lib/spoom/context.rb#44
385
+ sig { returns(::String) }
386
+ def absolute_path; end
387
+
388
+ class << self
389
+ # Create a new context in the system's temporary directory
390
+ #
391
+ # `name` is used as prefix to the temporary directory name.
392
+ # The directory will be created if it doesn't exist.
393
+ #
394
+ # source://spoom//lib/spoom/context.rb#37
395
+ sig { params(name: T.nilable(::String)).returns(T.attached_class) }
396
+ def mktmp!(name = T.unsafe(nil)); end
397
+ end
398
+ end
399
+
400
+ # Bundle features for a context
401
+ #
402
+ # source://spoom//lib/spoom/context/bundle.rb#7
403
+ module Spoom::Context::Bundle
404
+ requires_ancestor { Spoom::Context }
405
+
406
+ # Run a command with `bundle` in this context directory
407
+ #
408
+ # source://spoom//lib/spoom/context/bundle.rb#33
409
+ sig { params(command: ::String, version: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) }
410
+ def bundle(command, version: T.unsafe(nil), capture_err: T.unsafe(nil)); end
411
+
412
+ # Run a command `bundle exec` in this context directory
413
+ #
414
+ # source://spoom//lib/spoom/context/bundle.rb#46
415
+ sig { params(command: ::String, version: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) }
416
+ def bundle_exec(command, version: T.unsafe(nil), capture_err: T.unsafe(nil)); end
417
+
418
+ # Run `bundle install` in this context directory
419
+ #
420
+ # source://spoom//lib/spoom/context/bundle.rb#40
421
+ sig { params(version: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) }
422
+ def bundle_install!(version: T.unsafe(nil), capture_err: T.unsafe(nil)); end
423
+
424
+ # Get `gem` version from the `Gemfile.lock` content
425
+ #
426
+ # Returns `nil` if `gem` cannot be found in the Gemfile.
427
+ #
428
+ # source://spoom//lib/spoom/context/bundle.rb#62
429
+ sig { params(gem: ::String).returns(T.nilable(::Gem::Version)) }
430
+ def gem_version_from_gemfile_lock(gem); end
431
+
432
+ # source://spoom//lib/spoom/context/bundle.rb#51
433
+ sig { returns(T::Hash[::String, ::Bundler::LazySpecification]) }
434
+ def gemfile_lock_specs; end
435
+
436
+ # Read the contents of the Gemfile in this context directory
437
+ #
438
+ # source://spoom//lib/spoom/context/bundle.rb#15
439
+ sig { returns(T.nilable(::String)) }
440
+ def read_gemfile; end
441
+
442
+ # Read the contents of the Gemfile.lock in this context directory
443
+ #
444
+ # source://spoom//lib/spoom/context/bundle.rb#21
445
+ sig { returns(T.nilable(::String)) }
446
+ def read_gemfile_lock; end
447
+
448
+ # Set the `contents` of the Gemfile in this context directory
449
+ #
450
+ # source://spoom//lib/spoom/context/bundle.rb#27
451
+ sig { params(contents: ::String, append: T::Boolean).void }
452
+ def write_gemfile!(contents, append: T.unsafe(nil)); end
453
+ end
454
+
455
+ # Execution features for a context
456
+ #
457
+ # source://spoom//lib/spoom/context/exec.rb#27
458
+ module Spoom::Context::Exec
459
+ requires_ancestor { Spoom::Context }
460
+
461
+ # Run a command in this context directory
462
+ #
463
+ # source://spoom//lib/spoom/context/exec.rb#35
464
+ sig { params(command: ::String, capture_err: T::Boolean).returns(::Spoom::ExecResult) }
465
+ def exec(command, capture_err: T.unsafe(nil)); end
466
+ end
467
+
468
+ # File System features for a context
469
+ #
470
+ # source://spoom//lib/spoom/context/file_system.rb#7
471
+ module Spoom::Context::FileSystem
472
+ requires_ancestor { Spoom::Context }
473
+
474
+ # Returns the absolute path to `relative_path` in the context's directory
475
+ #
476
+ # source://spoom//lib/spoom/context/file_system.rb#15
477
+ sig { params(relative_path: ::String).returns(::String) }
478
+ def absolute_path_to(relative_path); end
479
+
480
+ # source://spoom//lib/spoom/context/file_system.rb#53
481
+ sig do
482
+ params(
483
+ allow_extensions: T::Array[::String],
484
+ allow_mime_types: T::Array[::String],
485
+ exclude_patterns: T::Array[::String]
486
+ ).returns(T::Array[::String])
487
+ end
488
+ def collect_files(allow_extensions: T.unsafe(nil), allow_mime_types: T.unsafe(nil), exclude_patterns: T.unsafe(nil)); end
489
+
490
+ # Delete this context and its content
491
+ #
492
+ # Warning: it will `rm -rf` the context directory on the file system.
493
+ #
494
+ # source://spoom//lib/spoom/context/file_system.rb#105
495
+ sig { void }
496
+ def destroy!; end
497
+
498
+ # Does the context directory at `absolute_path` exist and is a directory?
499
+ #
500
+ # source://spoom//lib/spoom/context/file_system.rb#21
501
+ sig { returns(T::Boolean) }
502
+ def exist?; end
503
+
504
+ # Does `relative_path` point to an existing file in this context directory?
505
+ #
506
+ # source://spoom//lib/spoom/context/file_system.rb#65
507
+ sig { params(relative_path: ::String).returns(T::Boolean) }
508
+ def file?(relative_path); end
509
+
510
+ # List all files in this context matching `pattern`
511
+ #
512
+ # source://spoom//lib/spoom/context/file_system.rb#34
513
+ sig { params(pattern: ::String).returns(T::Array[::String]) }
514
+ def glob(pattern = T.unsafe(nil)); end
515
+
516
+ # List all files at the top level of this context directory
517
+ #
518
+ # source://spoom//lib/spoom/context/file_system.rb#42
519
+ sig { returns(T::Array[::String]) }
520
+ def list; end
521
+
522
+ # Create the context directory at `absolute_path`
523
+ #
524
+ # source://spoom//lib/spoom/context/file_system.rb#27
525
+ sig { void }
526
+ def mkdir!; end
527
+
528
+ # Move the file or directory from `from_relative_path` to `to_relative_path`
529
+ #
530
+ # source://spoom//lib/spoom/context/file_system.rb#95
531
+ sig { params(from_relative_path: ::String, to_relative_path: ::String).void }
532
+ def move!(from_relative_path, to_relative_path); end
533
+
534
+ # Return the contents of the file at `relative_path` in this context directory
535
+ #
536
+ # Will raise if the file doesn't exist.
537
+ #
538
+ # source://spoom//lib/spoom/context/file_system.rb#73
539
+ sig { params(relative_path: ::String).returns(::String) }
540
+ def read(relative_path); end
541
+
542
+ # Remove the path at `relative_path` (recursive + force) in this context directory
543
+ #
544
+ # source://spoom//lib/spoom/context/file_system.rb#89
545
+ sig { params(relative_path: ::String).void }
546
+ def remove!(relative_path); end
547
+
548
+ # Write `contents` in the file at `relative_path` in this context directory
549
+ #
550
+ # Append to the file if `append` is true.
551
+ #
552
+ # source://spoom//lib/spoom/context/file_system.rb#81
553
+ sig { params(relative_path: ::String, contents: ::String, append: T::Boolean).void }
554
+ def write!(relative_path, contents = T.unsafe(nil), append: T.unsafe(nil)); end
555
+ end
556
+
557
+ # Git features for a context
558
+ #
559
+ # source://spoom//lib/spoom/context/git.rb#35
560
+ module Spoom::Context::Git
561
+ requires_ancestor { Spoom::Context }
562
+
563
+ # Run a command prefixed by `git` in this context directory
564
+ #
565
+ # source://spoom//lib/spoom/context/git.rb#43
566
+ sig { params(command: ::String).returns(::Spoom::ExecResult) }
567
+ def git(command); end
568
+
569
+ # Run `git checkout` in this context directory
570
+ #
571
+ # source://spoom//lib/spoom/context/git.rb#62
572
+ sig { params(ref: ::String).returns(::Spoom::ExecResult) }
573
+ def git_checkout!(ref: T.unsafe(nil)); end
574
+
575
+ # Run `git checkout -b <branch-name> <ref>` in this context directory
576
+ #
577
+ # source://spoom//lib/spoom/context/git.rb#68
578
+ sig { params(branch_name: ::String, ref: T.nilable(::String)).returns(::Spoom::ExecResult) }
579
+ def git_checkout_new_branch!(branch_name, ref: T.unsafe(nil)); end
580
+
581
+ # Run `git add . && git commit` in this context directory
582
+ #
583
+ # source://spoom//lib/spoom/context/git.rb#78
584
+ sig { params(message: ::String, time: ::Time, allow_empty: T::Boolean).returns(::Spoom::ExecResult) }
585
+ def git_commit!(message: T.unsafe(nil), time: T.unsafe(nil), allow_empty: T.unsafe(nil)); end
586
+
587
+ # Get the current git branch in this context directory
588
+ #
589
+ # source://spoom//lib/spoom/context/git.rb#89
590
+ sig { returns(T.nilable(::String)) }
591
+ def git_current_branch; end
592
+
593
+ # Run `git diff` in this context directory
594
+ #
595
+ # source://spoom//lib/spoom/context/git.rb#98
596
+ sig { params(arg: ::String).returns(::Spoom::ExecResult) }
597
+ def git_diff(*arg); end
598
+
599
+ # Run `git init` in this context directory
600
+ #
601
+ # Warning: passing a branch will run `git init -b <branch>` which is only available in git 2.28+.
602
+ # In older versions, use `git_init!` followed by `git("checkout -b <branch>")`.
603
+ #
604
+ # source://spoom//lib/spoom/context/git.rb#52
605
+ sig { params(branch: T.nilable(::String)).returns(::Spoom::ExecResult) }
606
+ def git_init!(branch: T.unsafe(nil)); end
607
+
608
+ # Get the last commit in the currently checked out branch
609
+ #
610
+ # source://spoom//lib/spoom/context/git.rb#104
611
+ sig { params(short_sha: T::Boolean).returns(T.nilable(::Spoom::Git::Commit)) }
612
+ def git_last_commit(short_sha: T.unsafe(nil)); end
613
+
614
+ # source://spoom//lib/spoom/context/git.rb#115
615
+ sig { params(arg: ::String).returns(::Spoom::ExecResult) }
616
+ def git_log(*arg); end
617
+
618
+ # Run `git push <remote> <ref>` in this context directory
619
+ #
620
+ # source://spoom//lib/spoom/context/git.rb#121
621
+ sig { params(remote: ::String, ref: ::String, force: T::Boolean).returns(::Spoom::ExecResult) }
622
+ def git_push!(remote, ref, force: T.unsafe(nil)); end
623
+
624
+ # source://spoom//lib/spoom/context/git.rb#126
625
+ sig { params(arg: ::String).returns(::Spoom::ExecResult) }
626
+ def git_show(*arg); end
627
+
628
+ # Is there uncommitted changes in this context directory?
629
+ #
630
+ # source://spoom//lib/spoom/context/git.rb#132
631
+ sig { params(path: ::String).returns(T::Boolean) }
632
+ def git_workdir_clean?(path: T.unsafe(nil)); end
633
+ end
634
+
635
+ # Sorbet features for a context
636
+ #
637
+ # source://spoom//lib/spoom/context/sorbet.rb#7
638
+ module Spoom::Context::Sorbet
639
+ requires_ancestor { Spoom::Context }
640
+
641
+ # Does this context has a `sorbet/config` file?
642
+ #
643
+ # source://spoom//lib/spoom/context/sorbet.rb#119
644
+ sig { returns(T::Boolean) }
645
+ def has_sorbet_config?; end
646
+
647
+ # Read the strictness sigil from the file at `relative_path` (returns `nil` if no sigil)
648
+ #
649
+ # source://spoom//lib/spoom/context/sorbet.rb#142
650
+ sig { params(relative_path: ::String).returns(T.nilable(::String)) }
651
+ def read_file_strictness(relative_path); end
652
+
653
+ # Read the contents of `sorbet/config` in this context directory
654
+ #
655
+ # source://spoom//lib/spoom/context/sorbet.rb#130
656
+ sig { returns(::String) }
657
+ def read_sorbet_config; end
658
+
659
+ # source://spoom//lib/spoom/context/sorbet.rb#124
660
+ sig { returns(::Spoom::Sorbet::Config) }
661
+ def sorbet_config; end
662
+
663
+ # Get the commit introducing the `sorbet/config` file
664
+ #
665
+ # source://spoom//lib/spoom/context/sorbet.rb#148
666
+ sig { returns(T.nilable(::Spoom::Git::Commit)) }
667
+ def sorbet_intro_commit; end
668
+
669
+ # Get the commit removing the `sorbet/config` file
670
+ #
671
+ # source://spoom//lib/spoom/context/sorbet.rb#160
672
+ sig { returns(T.nilable(::Spoom::Git::Commit)) }
673
+ def sorbet_removal_commit; end
674
+
675
+ # Run `bundle exec srb` in this context directory
676
+ #
677
+ # source://spoom//lib/spoom/context/sorbet.rb#15
678
+ sig { params(arg: ::String, sorbet_bin: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) }
679
+ def srb(*arg, sorbet_bin: T.unsafe(nil), capture_err: T.unsafe(nil)); end
680
+
681
+ # List all files typechecked by Sorbet from its `config`
682
+ #
683
+ # source://spoom//lib/spoom/context/sorbet.rb#65
684
+ sig { params(with_config: T.nilable(::Spoom::Sorbet::Config), include_rbis: T::Boolean).returns(T::Array[::String]) }
685
+ def srb_files(with_config: T.unsafe(nil), include_rbis: T.unsafe(nil)); end
686
+
687
+ # List all files typechecked by Sorbet from its `config` that matches `strictness`
688
+ #
689
+ # source://spoom//lib/spoom/context/sorbet.rb#104
690
+ sig do
691
+ params(
692
+ strictness: ::String,
693
+ with_config: T.nilable(::Spoom::Sorbet::Config),
694
+ include_rbis: T::Boolean
695
+ ).returns(T::Array[::String])
696
+ end
697
+ def srb_files_with_strictness(strictness, with_config: T.unsafe(nil), include_rbis: T.unsafe(nil)); end
698
+
699
+ # source://spoom//lib/spoom/context/sorbet.rb#45
700
+ sig do
701
+ params(
702
+ arg: ::String,
703
+ sorbet_bin: T.nilable(::String),
704
+ capture_err: T::Boolean
705
+ ).returns(T.nilable(T::Hash[::String, ::Integer]))
706
+ end
707
+ def srb_metrics(*arg, sorbet_bin: T.unsafe(nil), capture_err: T.unsafe(nil)); end
708
+
709
+ # source://spoom//lib/spoom/context/sorbet.rb#33
710
+ sig { params(arg: ::String, sorbet_bin: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) }
711
+ def srb_tc(*arg, sorbet_bin: T.unsafe(nil), capture_err: T.unsafe(nil)); end
712
+
713
+ # source://spoom//lib/spoom/context/sorbet.rb#110
714
+ sig { params(arg: ::String, sorbet_bin: T.nilable(::String), capture_err: T::Boolean).returns(T.nilable(::String)) }
715
+ def srb_version(*arg, sorbet_bin: T.unsafe(nil), capture_err: T.unsafe(nil)); end
716
+
717
+ # Set the `contents` of `sorbet/config` in this context directory
718
+ #
719
+ # source://spoom//lib/spoom/context/sorbet.rb#136
720
+ sig { params(contents: ::String, append: T::Boolean).void }
721
+ def write_sorbet_config!(contents, append: T.unsafe(nil)); end
722
+ end
723
+
724
+ # source://spoom//lib/spoom/coverage/snapshot.rb#5
725
+ module Spoom::Coverage
726
+ class << self
727
+ # source://spoom//lib/spoom/coverage.rb#103
728
+ sig { params(context: ::Spoom::Context).returns(::Spoom::FileTree) }
729
+ def file_tree(context); end
730
+
731
+ # source://spoom//lib/spoom/coverage.rb#83
732
+ sig do
733
+ params(
734
+ context: ::Spoom::Context,
735
+ snapshots: T::Array[::Spoom::Coverage::Snapshot],
736
+ palette: ::Spoom::Coverage::D3::ColorPalette
737
+ ).returns(::Spoom::Coverage::Report)
738
+ end
739
+ def report(context, snapshots, palette:); end
740
+
741
+ # source://spoom//lib/spoom/coverage.rb#16
742
+ sig do
743
+ params(
744
+ context: ::Spoom::Context,
745
+ rbi: T::Boolean,
746
+ sorbet_bin: T.nilable(::String)
747
+ ).returns(::Spoom::Coverage::Snapshot)
748
+ end
749
+ def snapshot(context, rbi: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
750
+ end
751
+ end
752
+
753
+ # source://spoom//lib/spoom/coverage/report.rb#88
754
+ module Spoom::Coverage::Cards; end
755
+
756
+ # source://spoom//lib/spoom/coverage/report.rb#89
757
+ class Spoom::Coverage::Cards::Card < ::Spoom::Coverage::Template
758
+ # source://spoom//lib/spoom/coverage/report.rb#98
759
+ sig { params(template: ::String, title: T.nilable(::String), body: T.nilable(::String)).void }
760
+ def initialize(template: T.unsafe(nil), title: T.unsafe(nil), body: T.unsafe(nil)); end
761
+
762
+ # @return [String, nil]
763
+ #
764
+ # source://spoom//lib/spoom/coverage/report.rb#95
765
+ def body; end
766
+
767
+ # source://spoom//lib/spoom/coverage/report.rb#95
768
+ sig { returns(T.nilable(::String)) }
769
+ def title; end
770
+ end
771
+
772
+ # source://spoom//lib/spoom/coverage/report.rb#92
773
+ Spoom::Coverage::Cards::Card::TEMPLATE = T.let(T.unsafe(nil), String)
774
+
775
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
776
+ #
777
+ # source://spoom//lib/spoom/coverage/report.rb#105
778
+ class Spoom::Coverage::Cards::Erb < ::Spoom::Coverage::Cards::Card
779
+ abstract!
780
+
781
+ # source://spoom//lib/spoom/coverage/report.rb#112
782
+ sig { void }
783
+ def initialize; end
784
+
785
+ # @abstract
786
+ #
787
+ # source://spoom//lib/spoom/coverage/report.rb#120
788
+ sig { abstract.returns(::String) }
789
+ def erb; end
790
+
791
+ # source://spoom//lib/spoom/coverage/report.rb#115
792
+ sig { override.returns(::String) }
793
+ def html; end
794
+ end
795
+
796
+ # source://spoom//lib/spoom/coverage/report.rb#153
797
+ class Spoom::Coverage::Cards::Map < ::Spoom::Coverage::Cards::Card
798
+ # source://spoom//lib/spoom/coverage/report.rb#164
799
+ sig do
800
+ params(
801
+ file_tree: ::Spoom::FileTree,
802
+ nodes_strictnesses: T::Hash[::Spoom::FileTree::Node, T.nilable(::String)],
803
+ nodes_strictness_scores: T::Hash[::Spoom::FileTree::Node, ::Float],
804
+ title: ::String
805
+ ).void
806
+ end
807
+ def initialize(file_tree:, nodes_strictnesses:, nodes_strictness_scores:, title: T.unsafe(nil)); end
808
+ end
809
+
810
+ # source://spoom//lib/spoom/coverage/report.rb#123
811
+ class Spoom::Coverage::Cards::Snapshot < ::Spoom::Coverage::Cards::Card
812
+ # source://spoom//lib/spoom/coverage/report.rb#132
813
+ sig { params(snapshot: ::Spoom::Coverage::Snapshot, title: ::String).void }
814
+ def initialize(snapshot:, title: T.unsafe(nil)); end
815
+
816
+ # source://spoom//lib/spoom/coverage/report.rb#143
817
+ sig { returns(::Spoom::Coverage::D3::Pie::Calls) }
818
+ def pie_calls; end
819
+
820
+ # source://spoom//lib/spoom/coverage/report.rb#138
821
+ sig { returns(::Spoom::Coverage::D3::Pie::Sigils) }
822
+ def pie_sigils; end
823
+
824
+ # source://spoom//lib/spoom/coverage/report.rb#148
825
+ sig { returns(::Spoom::Coverage::D3::Pie::Sigs) }
826
+ def pie_sigs; end
827
+
828
+ # source://spoom//lib/spoom/coverage/report.rb#129
829
+ sig { returns(::Spoom::Coverage::Snapshot) }
830
+ def snapshot; end
831
+ end
832
+
833
+ # source://spoom//lib/spoom/coverage/report.rb#126
834
+ Spoom::Coverage::Cards::Snapshot::TEMPLATE = T.let(T.unsafe(nil), String)
835
+
836
+ # source://spoom//lib/spoom/coverage/report.rb#240
837
+ class Spoom::Coverage::Cards::SorbetIntro < ::Spoom::Coverage::Cards::Erb
838
+ # source://spoom//lib/spoom/coverage/report.rb#244
839
+ sig { params(sorbet_intro_commit: T.nilable(::String), sorbet_intro_date: T.nilable(::Time)).void }
840
+ def initialize(sorbet_intro_commit: T.unsafe(nil), sorbet_intro_date: T.unsafe(nil)); end
841
+
842
+ # source://spoom//lib/spoom/coverage/report.rb#250
843
+ sig { override.returns(::String) }
844
+ def erb; end
845
+ end
846
+
847
+ # source://spoom//lib/spoom/coverage/report.rb#177
848
+ class Spoom::Coverage::Cards::Timeline < ::Spoom::Coverage::Cards::Card
849
+ # source://spoom//lib/spoom/coverage/report.rb#181
850
+ sig { params(title: ::String, timeline: ::Spoom::Coverage::D3::Timeline).void }
851
+ def initialize(title:, timeline:); end
852
+ end
853
+
854
+ # source://spoom//lib/spoom/coverage/report.rb#194
855
+ class Spoom::Coverage::Cards::Timeline::Calls < ::Spoom::Coverage::Cards::Timeline
856
+ # source://spoom//lib/spoom/coverage/report.rb#198
857
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
858
+ def initialize(snapshots:, title: T.unsafe(nil)); end
859
+ end
860
+
861
+ # source://spoom//lib/spoom/coverage/report.rb#212
862
+ class Spoom::Coverage::Cards::Timeline::RBIs < ::Spoom::Coverage::Cards::Timeline
863
+ # source://spoom//lib/spoom/coverage/report.rb#216
864
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
865
+ def initialize(snapshots:, title: T.unsafe(nil)); end
866
+ end
867
+
868
+ # source://spoom//lib/spoom/coverage/report.rb#230
869
+ class Spoom::Coverage::Cards::Timeline::Runtimes < ::Spoom::Coverage::Cards::Timeline
870
+ # source://spoom//lib/spoom/coverage/report.rb#234
871
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
872
+ def initialize(snapshots:, title: T.unsafe(nil)); end
873
+ end
874
+
875
+ # source://spoom//lib/spoom/coverage/report.rb#185
876
+ class Spoom::Coverage::Cards::Timeline::Sigils < ::Spoom::Coverage::Cards::Timeline
877
+ # source://spoom//lib/spoom/coverage/report.rb#189
878
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
879
+ def initialize(snapshots:, title: T.unsafe(nil)); end
880
+ end
881
+
882
+ # source://spoom//lib/spoom/coverage/report.rb#203
883
+ class Spoom::Coverage::Cards::Timeline::Sigs < ::Spoom::Coverage::Cards::Timeline
884
+ # source://spoom//lib/spoom/coverage/report.rb#207
885
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
886
+ def initialize(snapshots:, title: T.unsafe(nil)); end
887
+ end
888
+
889
+ # source://spoom//lib/spoom/coverage/report.rb#221
890
+ class Spoom::Coverage::Cards::Timeline::Versions < ::Spoom::Coverage::Cards::Timeline
891
+ # source://spoom//lib/spoom/coverage/report.rb#225
892
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
893
+ def initialize(snapshots:, title: T.unsafe(nil)); end
894
+ end
895
+
896
+ # source://spoom//lib/spoom/coverage/d3/base.rb#6
897
+ module Spoom::Coverage::D3
898
+ class << self
899
+ # source://spoom//lib/spoom/coverage/d3.rb#61
900
+ sig { params(palette: ::Spoom::Coverage::D3::ColorPalette).returns(::String) }
901
+ def header_script(palette); end
902
+
903
+ # source://spoom//lib/spoom/coverage/d3.rb#21
904
+ sig { returns(::String) }
905
+ def header_style; end
906
+ end
907
+ end
908
+
909
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
910
+ #
911
+ # source://spoom//lib/spoom/coverage/d3/base.rb#7
912
+ class Spoom::Coverage::D3::Base
913
+ abstract!
914
+
915
+ # source://spoom//lib/spoom/coverage/d3/base.rb#17
916
+ sig { params(id: ::String, data: T.untyped).void }
917
+ def initialize(id, data); end
918
+
919
+ # source://spoom//lib/spoom/coverage/d3/base.rb#37
920
+ sig { returns(::String) }
921
+ def html; end
922
+
923
+ # source://spoom//lib/spoom/coverage/d3/base.rb#14
924
+ sig { returns(::String) }
925
+ def id; end
926
+
927
+ # @abstract
928
+ #
929
+ # source://spoom//lib/spoom/coverage/d3/base.rb#50
930
+ sig { abstract.returns(::String) }
931
+ def script; end
932
+
933
+ # source://spoom//lib/spoom/coverage/d3/base.rb#45
934
+ sig { returns(::String) }
935
+ def tooltip; end
936
+
937
+ class << self
938
+ # source://spoom//lib/spoom/coverage/d3/base.rb#31
939
+ sig { returns(::String) }
940
+ def header_script; end
941
+
942
+ # source://spoom//lib/spoom/coverage/d3/base.rb#26
943
+ sig { returns(::String) }
944
+ def header_style; end
945
+ end
946
+ end
947
+
948
+ # source://spoom//lib/spoom/coverage/d3.rb#12
949
+ Spoom::Coverage::D3::COLOR_FALSE = T.let(T.unsafe(nil), String)
950
+
951
+ # source://spoom//lib/spoom/coverage/d3.rb#11
952
+ Spoom::Coverage::D3::COLOR_IGNORE = T.let(T.unsafe(nil), String)
953
+
954
+ # source://spoom//lib/spoom/coverage/d3.rb#14
955
+ Spoom::Coverage::D3::COLOR_STRICT = T.let(T.unsafe(nil), String)
956
+
957
+ # source://spoom//lib/spoom/coverage/d3.rb#15
958
+ Spoom::Coverage::D3::COLOR_STRONG = T.let(T.unsafe(nil), String)
959
+
960
+ # source://spoom//lib/spoom/coverage/d3.rb#13
961
+ Spoom::Coverage::D3::COLOR_TRUE = T.let(T.unsafe(nil), String)
962
+
963
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#9
964
+ class Spoom::Coverage::D3::CircleMap < ::Spoom::Coverage::D3::Base
965
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#59
966
+ sig { override.returns(::String) }
967
+ def script; end
968
+
969
+ class << self
970
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#40
971
+ sig { returns(::String) }
972
+ def header_script; end
973
+
974
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#14
975
+ sig { returns(::String) }
976
+ def header_style; end
977
+ end
978
+ end
979
+
980
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#148
981
+ class Spoom::Coverage::D3::CircleMap::Sigils < ::Spoom::Coverage::D3::CircleMap
982
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#159
983
+ sig do
984
+ params(
985
+ id: ::String,
986
+ file_tree: ::Spoom::FileTree,
987
+ nodes_strictnesses: T::Hash[::Spoom::FileTree::Node, T.nilable(::String)],
988
+ nodes_scores: T::Hash[::Spoom::FileTree::Node, ::Float]
989
+ ).void
990
+ end
991
+ def initialize(id, file_tree, nodes_strictnesses, nodes_scores); end
992
+
993
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#166
994
+ sig { params(node: ::Spoom::FileTree::Node).returns(T::Hash[::Symbol, T.untyped]) }
995
+ def tree_node_to_json(node); end
996
+ end
997
+
998
+ # source://spoom//lib/spoom/coverage/d3.rb#103
999
+ class Spoom::Coverage::D3::ColorPalette < ::T::Struct
1000
+ prop :ignore, ::String
1001
+ prop :false, ::String
1002
+ prop :true, ::String
1003
+ prop :strict, ::String
1004
+ prop :strong, ::String
1005
+
1006
+ class << self
1007
+ # source://sorbet-runtime/0.5.11633/lib/types/struct.rb#13
1008
+ def inherited(s); end
1009
+ end
1010
+ end
1011
+
1012
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1013
+ #
1014
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#9
1015
+ class Spoom::Coverage::D3::Pie < ::Spoom::Coverage::D3::Base
1016
+ abstract!
1017
+
1018
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#16
1019
+ sig { params(id: ::String, title: ::String, data: T.untyped).void }
1020
+ def initialize(id, title, data); end
1021
+
1022
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#56
1023
+ sig { override.returns(::String) }
1024
+ def script; end
1025
+
1026
+ class << self
1027
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#43
1028
+ sig { returns(::String) }
1029
+ def header_script; end
1030
+
1031
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#25
1032
+ sig { returns(::String) }
1033
+ def header_style; end
1034
+ end
1035
+ end
1036
+
1037
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#141
1038
+ class Spoom::Coverage::D3::Pie::Calls < ::Spoom::Coverage::D3::Pie
1039
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#145
1040
+ sig { params(id: ::String, title: ::String, snapshot: ::Spoom::Coverage::Snapshot).void }
1041
+ def initialize(id, title, snapshot); end
1042
+
1043
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#150
1044
+ sig { override.returns(::String) }
1045
+ def tooltip; end
1046
+ end
1047
+
1048
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#123
1049
+ class Spoom::Coverage::D3::Pie::Sigils < ::Spoom::Coverage::D3::Pie
1050
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#127
1051
+ sig { params(id: ::String, title: ::String, snapshot: ::Spoom::Coverage::Snapshot).void }
1052
+ def initialize(id, title, snapshot); end
1053
+
1054
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#132
1055
+ sig { override.returns(::String) }
1056
+ def tooltip; end
1057
+ end
1058
+
1059
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#159
1060
+ class Spoom::Coverage::D3::Pie::Sigs < ::Spoom::Coverage::D3::Pie
1061
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#163
1062
+ sig { params(id: ::String, title: ::String, snapshot: ::Spoom::Coverage::Snapshot).void }
1063
+ def initialize(id, title, snapshot); end
1064
+
1065
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#172
1066
+ sig { override.returns(::String) }
1067
+ def tooltip; end
1068
+ end
1069
+
1070
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1071
+ #
1072
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#9
1073
+ class Spoom::Coverage::D3::Timeline < ::Spoom::Coverage::D3::Base
1074
+ abstract!
1075
+
1076
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#16
1077
+ sig { params(id: ::String, data: T.untyped, keys: T::Array[::String]).void }
1078
+ def initialize(id, data, keys); end
1079
+
1080
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#187
1081
+ sig { params(y: ::String, color: ::String, curve: ::String).returns(::String) }
1082
+ def area(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
1083
+
1084
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#203
1085
+ sig { params(y: ::String, color: ::String, curve: ::String).returns(::String) }
1086
+ def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
1087
+
1088
+ # @abstract
1089
+ #
1090
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#126
1091
+ sig { abstract.returns(::String) }
1092
+ def plot; end
1093
+
1094
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#217
1095
+ sig { params(y: ::String).returns(::String) }
1096
+ def points(y:); end
1097
+
1098
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#101
1099
+ sig { override.returns(::String) }
1100
+ def script; end
1101
+
1102
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#129
1103
+ sig { returns(::String) }
1104
+ def x_scale; end
1105
+
1106
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#145
1107
+ sig { returns(::String) }
1108
+ def x_ticks; end
1109
+
1110
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#158
1111
+ sig { params(min: ::String, max: ::String, ticks: ::String).returns(::String) }
1112
+ def y_scale(min:, max:, ticks:); end
1113
+
1114
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#174
1115
+ sig { params(ticks: ::String, format: ::String, padding: ::Integer).returns(::String) }
1116
+ def y_ticks(ticks:, format:, padding:); end
1117
+
1118
+ class << self
1119
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#79
1120
+ sig { returns(::String) }
1121
+ def header_script; end
1122
+
1123
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#25
1124
+ sig { returns(::String) }
1125
+ def header_style; end
1126
+ end
1127
+ end
1128
+
1129
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#448
1130
+ class Spoom::Coverage::D3::Timeline::Calls < ::Spoom::Coverage::D3::Timeline::Stacked
1131
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#452
1132
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1133
+ def initialize(id, snapshots); end
1134
+
1135
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#466
1136
+ sig { override.returns(::String) }
1137
+ def tooltip; end
1138
+ end
1139
+
1140
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#505
1141
+ class Spoom::Coverage::D3::Timeline::RBIs < ::Spoom::Coverage::D3::Timeline::Stacked
1142
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#509
1143
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1144
+ def initialize(id, snapshots); end
1145
+
1146
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#577
1147
+ sig { override.params(y: ::String, color: ::String, curve: ::String).returns(::String) }
1148
+ def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
1149
+
1150
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#617
1151
+ sig { override.returns(::String) }
1152
+ def plot; end
1153
+
1154
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#537
1155
+ sig { override.returns(::String) }
1156
+ def script; end
1157
+
1158
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#523
1159
+ sig { override.returns(::String) }
1160
+ def tooltip; end
1161
+ end
1162
+
1163
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#282
1164
+ class Spoom::Coverage::D3::Timeline::Runtimes < ::Spoom::Coverage::D3::Timeline
1165
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#286
1166
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1167
+ def initialize(id, snapshots); end
1168
+
1169
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#311
1170
+ sig { override.returns(::String) }
1171
+ def plot; end
1172
+
1173
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#298
1174
+ sig { override.returns(::String) }
1175
+ def tooltip; end
1176
+ end
1177
+
1178
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#421
1179
+ class Spoom::Coverage::D3::Timeline::Sigils < ::Spoom::Coverage::D3::Timeline::Stacked
1180
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#425
1181
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1182
+ def initialize(id, snapshots); end
1183
+
1184
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#439
1185
+ sig { override.returns(::String) }
1186
+ def tooltip; end
1187
+ end
1188
+
1189
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#475
1190
+ class Spoom::Coverage::D3::Timeline::Sigs < ::Spoom::Coverage::D3::Timeline::Stacked
1191
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#479
1192
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1193
+ def initialize(id, snapshots); end
1194
+
1195
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#496
1196
+ sig { override.returns(::String) }
1197
+ def tooltip; end
1198
+ end
1199
+
1200
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1201
+ #
1202
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#329
1203
+ class Spoom::Coverage::D3::Timeline::Stacked < ::Spoom::Coverage::D3::Timeline
1204
+ abstract!
1205
+
1206
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#388
1207
+ sig { override.params(y: ::String, color: ::String, curve: ::String).returns(::String) }
1208
+ def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
1209
+
1210
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#377
1211
+ sig { override.returns(::String) }
1212
+ def plot; end
1213
+
1214
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#336
1215
+ sig { override.returns(::String) }
1216
+ def script; end
1217
+ end
1218
+
1219
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#232
1220
+ class Spoom::Coverage::D3::Timeline::Versions < ::Spoom::Coverage::D3::Timeline
1221
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#236
1222
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1223
+ def initialize(id, snapshots); end
1224
+
1225
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#263
1226
+ sig { override.returns(::String) }
1227
+ def plot; end
1228
+
1229
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#249
1230
+ sig { override.returns(::String) }
1231
+ def tooltip; end
1232
+ end
1233
+
1234
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1235
+ #
1236
+ # source://spoom//lib/spoom/coverage/report.rb#38
1237
+ class Spoom::Coverage::Page < ::Spoom::Coverage::Template
1238
+ abstract!
1239
+
1240
+ # source://spoom//lib/spoom/coverage/report.rb#53
1241
+ sig { params(title: ::String, palette: ::Spoom::Coverage::D3::ColorPalette, template: ::String).void }
1242
+ def initialize(title:, palette:, template: T.unsafe(nil)); end
1243
+
1244
+ # source://spoom//lib/spoom/coverage/report.rb#75
1245
+ sig { returns(::String) }
1246
+ def body_html; end
1247
+
1248
+ # @abstract
1249
+ #
1250
+ # source://spoom//lib/spoom/coverage/report.rb#80
1251
+ sig { abstract.returns(T::Array[::Spoom::Coverage::Cards::Card]) }
1252
+ def cards; end
1253
+
1254
+ # source://spoom//lib/spoom/coverage/report.rb#83
1255
+ sig { returns(::String) }
1256
+ def footer_html; end
1257
+
1258
+ # source://spoom//lib/spoom/coverage/report.rb#70
1259
+ sig { returns(::String) }
1260
+ def header_html; end
1261
+
1262
+ # source://spoom//lib/spoom/coverage/report.rb#65
1263
+ sig { returns(::String) }
1264
+ def header_script; end
1265
+
1266
+ # source://spoom//lib/spoom/coverage/report.rb#60
1267
+ sig { returns(::String) }
1268
+ def header_style; end
1269
+
1270
+ # source://spoom//lib/spoom/coverage/report.rb#50
1271
+ sig { returns(::Spoom::Coverage::D3::ColorPalette) }
1272
+ def palette; end
1273
+
1274
+ # source://spoom//lib/spoom/coverage/report.rb#47
1275
+ sig { returns(::String) }
1276
+ def title; end
1277
+ end
1278
+
1279
+ # source://spoom//lib/spoom/coverage/report.rb#44
1280
+ Spoom::Coverage::Page::TEMPLATE = T.let(T.unsafe(nil), String)
1281
+
1282
+ # source://spoom//lib/spoom/coverage/report.rb#261
1283
+ class Spoom::Coverage::Report < ::Spoom::Coverage::Page
1284
+ # source://spoom//lib/spoom/coverage/report.rb#276
1285
+ sig do
1286
+ params(
1287
+ project_name: ::String,
1288
+ palette: ::Spoom::Coverage::D3::ColorPalette,
1289
+ snapshots: T::Array[::Spoom::Coverage::Snapshot],
1290
+ file_tree: ::Spoom::FileTree,
1291
+ nodes_strictnesses: T::Hash[::Spoom::FileTree::Node, T.nilable(::String)],
1292
+ nodes_strictness_scores: T::Hash[::Spoom::FileTree::Node, ::Float],
1293
+ sorbet_intro_commit: T.nilable(::String),
1294
+ sorbet_intro_date: T.nilable(::Time)
1295
+ ).void
1296
+ end
1297
+ 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
1298
+
1299
+ # source://spoom//lib/spoom/coverage/report.rb#308
1300
+ sig { override.returns(T::Array[::Spoom::Coverage::Cards::Card]) }
1301
+ def cards; end
1302
+
1303
+ # source://spoom//lib/spoom/coverage/report.rb#297
1304
+ sig { override.returns(::String) }
1305
+ def header_html; end
1306
+ end
1307
+
1308
+ # source://spoom//lib/spoom/coverage/snapshot.rb#6
1309
+ class Spoom::Coverage::Snapshot < ::T::Struct
1310
+ prop :timestamp, ::Integer, default: T.unsafe(nil)
1311
+ prop :version_static, T.nilable(::String), default: T.unsafe(nil)
1312
+ prop :version_runtime, T.nilable(::String), default: T.unsafe(nil)
1313
+ prop :duration, ::Integer, default: T.unsafe(nil)
1314
+ prop :commit_sha, T.nilable(::String), default: T.unsafe(nil)
1315
+ prop :commit_timestamp, T.nilable(::Integer), default: T.unsafe(nil)
1316
+ prop :files, ::Integer, default: T.unsafe(nil)
1317
+ prop :rbi_files, ::Integer, default: T.unsafe(nil)
1318
+ prop :modules, ::Integer, default: T.unsafe(nil)
1319
+ prop :classes, ::Integer, default: T.unsafe(nil)
1320
+ prop :singleton_classes, ::Integer, default: T.unsafe(nil)
1321
+ prop :methods_without_sig, ::Integer, default: T.unsafe(nil)
1322
+ prop :methods_with_sig, ::Integer, default: T.unsafe(nil)
1323
+ prop :calls_untyped, ::Integer, default: T.unsafe(nil)
1324
+ prop :calls_typed, ::Integer, default: T.unsafe(nil)
1325
+ prop :sigils, T::Hash[::String, ::Integer], default: T.unsafe(nil)
1326
+ prop :methods_with_sig_excluding_rbis, ::Integer, default: T.unsafe(nil)
1327
+ prop :methods_without_sig_excluding_rbis, ::Integer, default: T.unsafe(nil)
1328
+ prop :sigils_excluding_rbis, T::Hash[::String, ::Integer], default: T.unsafe(nil)
1329
+
1330
+ # source://spoom//lib/spoom/coverage/snapshot.rb#33
1331
+ sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean, indent_level: ::Integer).void }
1332
+ def print(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
1333
+
1334
+ # source://spoom//lib/spoom/coverage/snapshot.rb#39
1335
+ sig { params(arg: T.untyped).returns(::String) }
1336
+ def to_json(*arg); end
1337
+
1338
+ class << self
1339
+ # source://spoom//lib/spoom/coverage/snapshot.rb#47
1340
+ sig { params(json: ::String).returns(::Spoom::Coverage::Snapshot) }
1341
+ def from_json(json); end
1342
+
1343
+ # source://spoom//lib/spoom/coverage/snapshot.rb#52
1344
+ sig { params(obj: T::Hash[::String, T.untyped]).returns(::Spoom::Coverage::Snapshot) }
1345
+ def from_obj(obj); end
1346
+
1347
+ # source://sorbet-runtime/0.5.11633/lib/types/struct.rb#13
1348
+ def inherited(s); end
1349
+ end
1350
+ end
1351
+
1352
+ # The strictness name as found in the Sorbet metrics file
1353
+ #
1354
+ # source://spoom//lib/spoom/coverage/snapshot.rb#30
1355
+ Spoom::Coverage::Snapshot::STRICTNESSES = T.let(T.unsafe(nil), Array)
1356
+
1357
+ # source://spoom//lib/spoom/coverage/snapshot.rb#95
1358
+ class Spoom::Coverage::SnapshotPrinter < ::Spoom::Printer
1359
+ # source://spoom//lib/spoom/coverage/snapshot.rb#99
1360
+ sig { params(snapshot: ::Spoom::Coverage::Snapshot).void }
1361
+ def print_snapshot(snapshot); end
1362
+
1363
+ private
1364
+
1365
+ # source://spoom//lib/spoom/coverage/snapshot.rb#158
1366
+ sig { params(value: T.nilable(::Integer), total: T.nilable(::Integer)).returns(::String) }
1367
+ def percent(value, total); end
1368
+
1369
+ # source://spoom//lib/spoom/coverage/snapshot.rb#147
1370
+ sig { params(hash: T::Hash[::String, ::Integer], total: ::Integer).void }
1371
+ def print_map(hash, total); end
1372
+ end
1373
+
1374
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1375
+ #
1376
+ # source://spoom//lib/spoom/coverage/report.rb#10
1377
+ class Spoom::Coverage::Template
1378
+ abstract!
1379
+
1380
+ # Create a new template from an Erb file path
1381
+ #
1382
+ # source://spoom//lib/spoom/coverage/report.rb#18
1383
+ sig { params(template: ::String).void }
1384
+ def initialize(template:); end
1385
+
1386
+ # source://spoom//lib/spoom/coverage/report.rb#23
1387
+ sig { returns(::String) }
1388
+ def erb; end
1389
+
1390
+ # source://spoom//lib/spoom/coverage/report.rb#33
1391
+ sig { returns(::Binding) }
1392
+ def get_binding; end
1393
+
1394
+ # source://spoom//lib/spoom/coverage/report.rb#28
1395
+ sig { returns(::String) }
1396
+ def html; end
1397
+ end
1398
+
1399
+ # source://spoom//lib/spoom/deadcode/erb.rb#27
1400
+ module Spoom::Deadcode
1401
+ class << self
1402
+ # source://spoom//lib/spoom/deadcode/plugins.rb#75
1403
+ sig { params(context: ::Spoom::Context).returns(T::Array[T.class_of(Spoom::Deadcode::Plugins::Base)]) }
1404
+ def load_custom_plugins(context); end
1405
+
1406
+ # source://spoom//lib/spoom/deadcode/plugins.rb#61
1407
+ sig { params(context: ::Spoom::Context).returns(T::Set[T.class_of(Spoom::Deadcode::Plugins::Base)]) }
1408
+ def plugins_from_gemfile_lock(context); end
1409
+ end
1410
+ end
1411
+
1412
+ # source://spoom//lib/spoom/deadcode/plugins.rb#26
1413
+ Spoom::Deadcode::DEFAULT_CUSTOM_PLUGINS_PATH = T.let(T.unsafe(nil), String)
1414
+
1415
+ # source://spoom//lib/spoom/deadcode/plugins.rb#28
1416
+ Spoom::Deadcode::DEFAULT_PLUGINS = T.let(T.unsafe(nil), Set)
1417
+
1418
+ # A definition is a class, module, method, constant, etc. being defined in the code
1419
+ #
1420
+ # source://spoom//lib/spoom/deadcode/definition.rb#7
1421
+ class Spoom::Deadcode::Definition < ::T::Struct
1422
+ const :kind, ::Spoom::Deadcode::Definition::Kind
1423
+ const :name, ::String
1424
+ const :full_name, ::String
1425
+ const :location, ::Spoom::Location
1426
+ const :status, ::Spoom::Deadcode::Definition::Status, default: T.unsafe(nil)
1427
+
1428
+ # source://spoom//lib/spoom/deadcode/definition.rb#78
1429
+ sig { void }
1430
+ def alive!; end
1431
+
1432
+ # Status
1433
+ #
1434
+ # source://spoom//lib/spoom/deadcode/definition.rb#73
1435
+ sig { returns(T::Boolean) }
1436
+ def alive?; end
1437
+
1438
+ # Kind
1439
+ #
1440
+ # source://spoom//lib/spoom/deadcode/definition.rb#41
1441
+ sig { returns(T::Boolean) }
1442
+ def attr_reader?; end
1443
+
1444
+ # source://spoom//lib/spoom/deadcode/definition.rb#46
1445
+ sig { returns(T::Boolean) }
1446
+ def attr_writer?; end
1447
+
1448
+ # source://spoom//lib/spoom/deadcode/definition.rb#51
1449
+ sig { returns(T::Boolean) }
1450
+ def class?; end
1451
+
1452
+ # source://spoom//lib/spoom/deadcode/definition.rb#56
1453
+ sig { returns(T::Boolean) }
1454
+ def constant?; end
1455
+
1456
+ # source://spoom//lib/spoom/deadcode/definition.rb#83
1457
+ sig { returns(T::Boolean) }
1458
+ def dead?; end
1459
+
1460
+ # source://spoom//lib/spoom/deadcode/definition.rb#93
1461
+ sig { void }
1462
+ def ignored!; end
1463
+
1464
+ # source://spoom//lib/spoom/deadcode/definition.rb#88
1465
+ sig { returns(T::Boolean) }
1466
+ def ignored?; end
1467
+
1468
+ # source://spoom//lib/spoom/deadcode/definition.rb#61
1469
+ sig { returns(T::Boolean) }
1470
+ def method?; end
1471
+
1472
+ # source://spoom//lib/spoom/deadcode/definition.rb#66
1473
+ sig { returns(T::Boolean) }
1474
+ def module?; end
1475
+
1476
+ # Utils
1477
+ #
1478
+ # source://spoom//lib/spoom/deadcode/definition.rb#100
1479
+ sig { params(args: T.untyped).returns(::String) }
1480
+ def to_json(*args); end
1481
+
1482
+ class << self
1483
+ # source://sorbet-runtime/0.5.11633/lib/types/struct.rb#13
1484
+ def inherited(s); end
1485
+ end
1486
+ end
1487
+
1488
+ # source://spoom//lib/spoom/deadcode/definition.rb#10
1489
+ class Spoom::Deadcode::Definition::Kind < ::T::Enum
1490
+ enums do
1491
+ AttrReader = new
1492
+ AttrWriter = new
1493
+ Class = new
1494
+ Constant = new
1495
+ Method = new
1496
+ Module = new
1497
+ end
1498
+ end
1499
+
1500
+ # source://spoom//lib/spoom/deadcode/definition.rb#21
1501
+ class Spoom::Deadcode::Definition::Status < ::T::Enum
1502
+ enums do
1503
+ ALIVE = new
1504
+ DEAD = new
1505
+ IGNORED = new
1506
+ end
1507
+ end
1508
+
1509
+ # Custom engine to handle ERB templates as used by Rails
1510
+ #
1511
+ # source://spoom//lib/spoom/deadcode/erb.rb#29
1512
+ class Spoom::Deadcode::ERB < ::Erubi::Engine
1513
+ # source://spoom//lib/spoom/deadcode/erb.rb#33
1514
+ sig { params(input: T.untyped, properties: T.untyped).void }
1515
+ def initialize(input, properties = T.unsafe(nil)); end
1516
+
1517
+ private
1518
+
1519
+ # source://spoom//lib/spoom/deadcode/erb.rb#83
1520
+ sig { override.params(code: T.untyped).void }
1521
+ def add_code(code); end
1522
+
1523
+ # source://spoom//lib/spoom/deadcode/erb.rb#66
1524
+ sig { override.params(indicator: T.untyped, code: T.untyped).void }
1525
+ def add_expression(indicator, code); end
1526
+
1527
+ # source://spoom//lib/spoom/deadcode/erb.rb#89
1528
+ sig { override.params(_: T.untyped).void }
1529
+ def add_postamble(_); end
1530
+
1531
+ # source://spoom//lib/spoom/deadcode/erb.rb#48
1532
+ sig { override.params(text: T.untyped).void }
1533
+ def add_text(text); end
1534
+
1535
+ # source://spoom//lib/spoom/deadcode/erb.rb#95
1536
+ sig { params(src: T.untyped).void }
1537
+ def flush_newline_if_pending(src); end
1538
+ end
1539
+
1540
+ # source://spoom//lib/spoom/deadcode/erb.rb#63
1541
+ Spoom::Deadcode::ERB::BLOCK_EXPR = T.let(T.unsafe(nil), Regexp)
1542
+
1543
+ # source://spoom//lib/spoom/deadcode/index.rb#6
1544
+ class Spoom::Deadcode::Index
1545
+ # source://spoom//lib/spoom/deadcode/index.rb#29
1546
+ sig { params(model: ::Spoom::Model).void }
1547
+ def initialize(model); end
1548
+
1549
+ # source://spoom//lib/spoom/deadcode/index.rb#219
1550
+ sig { returns(T::Array[::Spoom::Deadcode::Definition]) }
1551
+ def all_definitions; end
1552
+
1553
+ # source://spoom//lib/spoom/deadcode/index.rb#224
1554
+ sig { returns(T::Array[::Spoom::Model::Reference]) }
1555
+ def all_references; end
1556
+
1557
+ # source://spoom//lib/spoom/deadcode/index.rb#99
1558
+ sig { params(plugins: T::Array[::Spoom::Deadcode::Plugins::Base]).void }
1559
+ def apply_plugins!(plugins); end
1560
+
1561
+ # source://spoom//lib/spoom/deadcode/index.rb#79
1562
+ sig { params(definition: ::Spoom::Deadcode::Definition).void }
1563
+ def define(definition); end
1564
+
1565
+ # source://spoom//lib/spoom/deadcode/index.rb#23
1566
+ sig { returns(T::Hash[::String, T::Array[::Spoom::Deadcode::Definition]]) }
1567
+ def definitions; end
1568
+
1569
+ # Utils
1570
+ #
1571
+ # source://spoom//lib/spoom/deadcode/index.rb#214
1572
+ sig { params(name: ::String).returns(T::Array[::Spoom::Deadcode::Definition]) }
1573
+ def definitions_for_name(name); end
1574
+
1575
+ # Mark all definitions having a reference of the same name as `alive`
1576
+ #
1577
+ # To be called once all the files have been indexed and all the definitions and references discovered.
1578
+ #
1579
+ # source://spoom//lib/spoom/deadcode/index.rb#122
1580
+ sig { void }
1581
+ def finalize!; end
1582
+
1583
+ # source://spoom//lib/spoom/deadcode/index.rb#94
1584
+ sig { params(symbol_def: ::Spoom::Model::SymbolDef).void }
1585
+ def ignore(symbol_def); end
1586
+
1587
+ # source://spoom//lib/spoom/deadcode/index.rb#50
1588
+ sig { params(erb: ::String, file: ::String, plugins: T::Array[::Spoom::Deadcode::Plugins::Base]).void }
1589
+ def index_erb(erb, file:, plugins: T.unsafe(nil)); end
1590
+
1591
+ # Indexing
1592
+ #
1593
+ # source://spoom//lib/spoom/deadcode/index.rb#39
1594
+ sig { params(file: ::String, plugins: T::Array[::Spoom::Deadcode::Plugins::Base]).void }
1595
+ def index_file(file, plugins: T.unsafe(nil)); end
1596
+
1597
+ # source://spoom//lib/spoom/deadcode/index.rb#55
1598
+ sig { params(rb: ::String, file: ::String, plugins: T::Array[::Spoom::Deadcode::Plugins::Base]).void }
1599
+ def index_ruby(rb, file:, plugins: T.unsafe(nil)); end
1600
+
1601
+ # source://spoom//lib/spoom/deadcode/index.rb#20
1602
+ sig { returns(::Spoom::Model) }
1603
+ def model; end
1604
+
1605
+ # source://spoom//lib/spoom/deadcode/index.rb#84
1606
+ sig { params(name: ::String, location: ::Spoom::Location).void }
1607
+ def reference_constant(name, location); end
1608
+
1609
+ # source://spoom//lib/spoom/deadcode/index.rb#89
1610
+ sig { params(name: ::String, location: ::Spoom::Location).void }
1611
+ def reference_method(name, location); end
1612
+
1613
+ # source://spoom//lib/spoom/deadcode/index.rb#26
1614
+ sig { returns(T::Hash[::String, T::Array[::Spoom::Model::Reference]]) }
1615
+ def references; end
1616
+ end
1617
+
1618
+ # source://spoom//lib/spoom/deadcode/index.rb#9
1619
+ class Spoom::Deadcode::Index::Error < ::Spoom::Error
1620
+ # source://spoom//lib/spoom/deadcode/index.rb#13
1621
+ sig { params(message: ::String, parent: ::Exception).void }
1622
+ def initialize(message, parent:); end
1623
+ end
1624
+
1625
+ # source://spoom//lib/spoom/deadcode/indexer.rb#6
1626
+ class Spoom::Deadcode::Indexer < ::Spoom::Visitor
1627
+ # source://spoom//lib/spoom/deadcode/indexer.rb#16
1628
+ sig do
1629
+ params(
1630
+ path: ::String,
1631
+ index: ::Spoom::Deadcode::Index,
1632
+ plugins: T::Array[::Spoom::Deadcode::Plugins::Base]
1633
+ ).void
1634
+ end
1635
+ def initialize(path, index, plugins: T.unsafe(nil)); end
1636
+
1637
+ # source://spoom//lib/spoom/deadcode/indexer.rb#13
1638
+ sig { returns(::Spoom::Deadcode::Index) }
1639
+ def index; end
1640
+
1641
+ # source://spoom//lib/spoom/deadcode/indexer.rb#10
1642
+ sig { returns(::String) }
1643
+ def path; end
1644
+
1645
+ # Visit
1646
+ #
1647
+ # source://spoom//lib/spoom/deadcode/indexer.rb#27
1648
+ sig { override.params(node: ::Prism::CallNode).void }
1649
+ def visit_call_node(node); end
1650
+ end
1651
+
1652
+ # source://spoom//lib/spoom/deadcode/plugins.rb#36
1653
+ Spoom::Deadcode::PLUGINS_FOR_GEM = T.let(T.unsafe(nil), Hash)
1654
+
1655
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#8
1656
+ module Spoom::Deadcode::Plugins; end
1657
+
1658
+ # source://spoom//lib/spoom/deadcode/plugins/action_mailer.rb#7
1659
+ class Spoom::Deadcode::Plugins::ActionMailer < ::Spoom::Deadcode::Plugins::Base
1660
+ # source://spoom//lib/spoom/deadcode/plugins/action_mailer.rb#11
1661
+ sig { override.params(send: ::Spoom::Deadcode::Send).void }
1662
+ def on_send(send); end
1663
+ end
1664
+
1665
+ # source://spoom//lib/spoom/deadcode/plugins/action_mailer_preview.rb#7
1666
+ class Spoom::Deadcode::Plugins::ActionMailerPreview < ::Spoom::Deadcode::Plugins::Base
1667
+ # source://spoom//lib/spoom/deadcode/plugins/action_mailer_preview.rb#13
1668
+ sig { override.params(definition: ::Spoom::Model::Method).void }
1669
+ def on_define_method(definition); end
1670
+ end
1671
+
1672
+ # source://spoom//lib/spoom/deadcode/plugins/actionpack.rb#7
1673
+ class Spoom::Deadcode::Plugins::ActionPack < ::Spoom::Deadcode::Plugins::Base
1674
+ # source://spoom//lib/spoom/deadcode/plugins/actionpack.rb#31
1675
+ sig { override.params(definition: ::Spoom::Model::Method).void }
1676
+ def on_define_method(definition); end
1677
+
1678
+ # source://spoom//lib/spoom/deadcode/plugins/actionpack.rb#39
1679
+ sig { override.params(send: ::Spoom::Deadcode::Send).void }
1680
+ def on_send(send); end
1681
+ end
1682
+
1683
+ # source://spoom//lib/spoom/deadcode/plugins/actionpack.rb#12
1684
+ Spoom::Deadcode::Plugins::ActionPack::CALLBACKS = T.let(T.unsafe(nil), Array)
1685
+
1686
+ # source://spoom//lib/spoom/deadcode/plugins/active_job.rb#7
1687
+ class Spoom::Deadcode::Plugins::ActiveJob < ::Spoom::Deadcode::Plugins::Base; end
1688
+
1689
+ # source://spoom//lib/spoom/deadcode/plugins/active_model.rb#7
1690
+ class Spoom::Deadcode::Plugins::ActiveModel < ::Spoom::Deadcode::Plugins::Base
1691
+ # source://spoom//lib/spoom/deadcode/plugins/active_model.rb#14
1692
+ sig { override.params(send: ::Spoom::Deadcode::Send).void }
1693
+ def on_send(send); end
1694
+ end
1695
+
1696
+ # source://spoom//lib/spoom/deadcode/plugins/active_record.rb#7
1697
+ class Spoom::Deadcode::Plugins::ActiveRecord < ::Spoom::Deadcode::Plugins::Base
1698
+ # source://spoom//lib/spoom/deadcode/plugins/active_record.rb#74
1699
+ sig { override.params(send: ::Spoom::Deadcode::Send).void }
1700
+ def on_send(send); end
1701
+ end
1702
+
1703
+ # source://spoom//lib/spoom/deadcode/plugins/active_record.rb#64
1704
+ Spoom::Deadcode::Plugins::ActiveRecord::ARRAY_METHODS = T.let(T.unsafe(nil), Array)
1705
+
1706
+ # source://spoom//lib/spoom/deadcode/plugins/active_record.rb#20
1707
+ Spoom::Deadcode::Plugins::ActiveRecord::CALLBACKS = T.let(T.unsafe(nil), Array)
1708
+
1709
+ # source://spoom//lib/spoom/deadcode/plugins/active_record.rb#49
1710
+ Spoom::Deadcode::Plugins::ActiveRecord::CRUD_METHODS = T.let(T.unsafe(nil), Array)
1711
+
1712
+ # source://spoom//lib/spoom/deadcode/plugins/active_support.rb#7
1713
+ class Spoom::Deadcode::Plugins::ActiveSupport < ::Spoom::Deadcode::Plugins::Base
1714
+ # source://spoom//lib/spoom/deadcode/plugins/active_support.rb#22
1715
+ sig { override.params(send: ::Spoom::Deadcode::Send).void }
1716
+ def on_send(send); end
1717
+ end
1718
+
1719
+ # source://spoom//lib/spoom/deadcode/plugins/active_support.rb#19
1720
+ Spoom::Deadcode::Plugins::ActiveSupport::SETUP_AND_TEARDOWN_METHODS = T.let(T.unsafe(nil), Array)
1721
+
1722
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1723
+ #
1724
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#9
1725
+ class Spoom::Deadcode::Plugins::Base
1726
+ abstract!
1727
+
1728
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#132
1729
+ sig { params(index: ::Spoom::Deadcode::Index).void }
1730
+ def initialize(index); end
1731
+
1732
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#129
1733
+ sig { returns(::Spoom::Deadcode::Index) }
1734
+ def index; end
1735
+
1736
+ # Do not override this method, use `on_define_accessor` instead.
1737
+ #
1738
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#158
1739
+ sig { params(definition: ::Spoom::Model::Attr).void }
1740
+ def internal_on_define_accessor(definition); end
1741
+
1742
+ # Do not override this method, use `on_define_class` instead.
1743
+ #
1744
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#182
1745
+ sig { params(definition: ::Spoom::Model::Class).void }
1746
+ def internal_on_define_class(definition); end
1747
+
1748
+ # Do not override this method, use `on_define_constant` instead.
1749
+ #
1750
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#212
1751
+ sig { params(definition: ::Spoom::Model::Constant).void }
1752
+ def internal_on_define_constant(definition); end
1753
+
1754
+ # Do not override this method, use `on_define_method` instead.
1755
+ #
1756
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#238
1757
+ sig { params(definition: ::Spoom::Model::Method).void }
1758
+ def internal_on_define_method(definition); end
1759
+
1760
+ # Do not override this method, use `on_define_module` instead.
1761
+ #
1762
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#264
1763
+ sig { params(definition: ::Spoom::Model::Module).void }
1764
+ def internal_on_define_module(definition); end
1765
+
1766
+ # Called when an accessor is defined.
1767
+ #
1768
+ # Will be called when the indexer processes a `attr_reader`, `attr_writer` or `attr_accessor` node.
1769
+ # Note that when this method is called, the definition for the node has already been added to the index.
1770
+ # It is still possible to ignore it from the plugin:
1771
+ #
1772
+ # ~~~rb
1773
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
1774
+ # def on_define_accessor(definition)
1775
+ # @index.ignore(definition) if symbol_def.name == "foo"
1776
+ # end
1777
+ # end
1778
+ # ~~~
1779
+ #
1780
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#152
1781
+ sig { params(definition: ::Spoom::Model::Attr).void }
1782
+ def on_define_accessor(definition); end
1783
+
1784
+ # Called when a class is defined.
1785
+ #
1786
+ # Will be called when the indexer processes a `class` node.
1787
+ # Note that when this method is called, the definition for the node has already been added to the index.
1788
+ # It is still possible to ignore it from the plugin:
1789
+ #
1790
+ # ~~~rb
1791
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
1792
+ # def on_define_class(definition)
1793
+ # @index.ignore(definition) if definition.name == "Foo"
1794
+ # end
1795
+ # end
1796
+ # ~~~
1797
+ #
1798
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#176
1799
+ sig { params(definition: ::Spoom::Model::Class).void }
1800
+ def on_define_class(definition); end
1801
+
1802
+ # Called when a constant is defined.
1803
+ #
1804
+ # Will be called when the indexer processes a `CONST =` node.
1805
+ # Note that when this method is called, the definition for the node has already been added to the index.
1806
+ # It is still possible to ignore it from the plugin:
1807
+ #
1808
+ # ~~~rb
1809
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
1810
+ # def on_define_constant(definition)
1811
+ # @index.ignore(definition) if definition.name == "FOO"
1812
+ # end
1813
+ # end
1814
+ # ~~~
1815
+ #
1816
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#206
1817
+ sig { params(definition: ::Spoom::Model::Constant).void }
1818
+ def on_define_constant(definition); end
1819
+
1820
+ # Called when a method is defined.
1821
+ #
1822
+ # Will be called when the indexer processes a `def` or `defs` node.
1823
+ # Note that when this method is called, the definition for the node has already been added to the index.
1824
+ # It is still possible to ignore it from the plugin:
1825
+ #
1826
+ # ~~~rb
1827
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
1828
+ # def on_define_method(definition)
1829
+ # @index.ignore(definition) if definition.name == "foo"
1830
+ # end
1831
+ # end
1832
+ # ~~~
1833
+ #
1834
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#232
1835
+ sig { params(definition: ::Spoom::Model::Method).void }
1836
+ def on_define_method(definition); end
1837
+
1838
+ # Called when a module is defined.
1839
+ #
1840
+ # Will be called when the indexer processes a `module` node.
1841
+ # Note that when this method is called, the definition for the node has already been added to the index.
1842
+ # It is still possible to ignore it from the plugin:
1843
+ #
1844
+ # ~~~rb
1845
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
1846
+ # def on_define_module(definition)
1847
+ # @index.ignore(definition) if definition.name == "Foo"
1848
+ # end
1849
+ # end
1850
+ # ~~~
1851
+ #
1852
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#258
1853
+ sig { params(definition: ::Spoom::Model::Module).void }
1854
+ def on_define_module(definition); end
1855
+
1856
+ # Called when a send is being processed
1857
+ #
1858
+ # ~~~rb
1859
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
1860
+ # def on_send(send)
1861
+ # return unless send.name == "dsl_method"
1862
+ # return if send.args.empty?
1863
+ #
1864
+ # method_name = send.args.first.slice.delete_prefix(":")
1865
+ # @index.reference_method(method_name, send.node, send.loc)
1866
+ # end
1867
+ # end
1868
+ # ~~~
1869
+ #
1870
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#284
1871
+ sig { params(send: ::Spoom::Deadcode::Send).void }
1872
+ def on_send(send); end
1873
+
1874
+ private
1875
+
1876
+ # Plugin utils
1877
+ #
1878
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#352
1879
+ sig { params(name: ::String).returns(::String) }
1880
+ def camelize(name); end
1881
+
1882
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#301
1883
+ sig { params(name: T.nilable(::String)).returns(T::Boolean) }
1884
+ def ignored_class_name?(name); end
1885
+
1886
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#320
1887
+ sig { params(name: ::String).returns(T::Boolean) }
1888
+ def ignored_constant_name?(name); end
1889
+
1890
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#325
1891
+ sig { params(name: ::String).returns(T::Boolean) }
1892
+ def ignored_method_name?(name); end
1893
+
1894
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#330
1895
+ sig { params(name: ::String).returns(T::Boolean) }
1896
+ def ignored_module_name?(name); end
1897
+
1898
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#335
1899
+ sig { params(name: ::String, names_variable: ::Symbol, patterns_variable: ::Symbol).returns(T::Boolean) }
1900
+ def ignored_name?(name, names_variable, patterns_variable); end
1901
+
1902
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#308
1903
+ sig { params(definition: ::Spoom::Model::Class).returns(T::Boolean) }
1904
+ def ignored_subclass?(definition); end
1905
+
1906
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#340
1907
+ sig { params(const: ::Symbol).returns(T::Set[::String]) }
1908
+ def names(const); end
1909
+
1910
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#345
1911
+ sig { params(const: ::Symbol).returns(T::Array[::Regexp]) }
1912
+ def patterns(const); end
1913
+
1914
+ # DSL support
1915
+ #
1916
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#293
1917
+ sig { params(definition: ::Spoom::Model::Namespace, superclass_name: ::String).returns(T::Boolean) }
1918
+ def subclass_of?(definition, superclass_name); end
1919
+
1920
+ class << self
1921
+ # Mark classes directly subclassing a class matching `names` as ignored.
1922
+ #
1923
+ # Names can be either strings or regexps:
1924
+ #
1925
+ # ~~~rb
1926
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
1927
+ # ignore_classes_inheriting_from(
1928
+ # "Foo",
1929
+ # "Bar",
1930
+ # /Baz.*/,
1931
+ # )
1932
+ # end
1933
+ # ~~~
1934
+ #
1935
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#52
1936
+ sig { params(names: T.any(::Regexp, ::String)).void }
1937
+ def ignore_classes_inheriting_from(*names); end
1938
+
1939
+ # Mark classes matching `names` as ignored.
1940
+ #
1941
+ # Names can be either strings or regexps:
1942
+ #
1943
+ # ~~~rb
1944
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
1945
+ # ignore_class_names(
1946
+ # "Foo",
1947
+ # "Bar",
1948
+ # /Baz.*/,
1949
+ # )
1950
+ # end
1951
+ # ~~~
1952
+ #
1953
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#34
1954
+ sig { params(names: T.any(::Regexp, ::String)).void }
1955
+ def ignore_classes_named(*names); end
1956
+
1957
+ # Mark constants matching `names` as ignored.
1958
+ #
1959
+ # Names can be either strings or regexps:
1960
+ #
1961
+ # ~~~rb
1962
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
1963
+ # ignore_class_names(
1964
+ # "FOO",
1965
+ # "BAR",
1966
+ # /BAZ.*/,
1967
+ # )
1968
+ # end
1969
+ # ~~~
1970
+ #
1971
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#70
1972
+ sig { params(names: T.any(::Regexp, ::String)).void }
1973
+ def ignore_constants_named(*names); end
1974
+
1975
+ # Mark methods matching `names` as ignored.
1976
+ #
1977
+ # Names can be either strings or regexps:
1978
+ #
1979
+ # ~~~rb
1980
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
1981
+ # ignore_method_names(
1982
+ # "foo",
1983
+ # "bar",
1984
+ # /baz.*/,
1985
+ # )
1986
+ # end
1987
+ # ~~~
1988
+ #
1989
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#88
1990
+ sig { params(names: T.any(::Regexp, ::String)).void }
1991
+ def ignore_methods_named(*names); end
1992
+
1993
+ # Mark modules matching `names` as ignored.
1994
+ #
1995
+ # Names can be either strings or regexps:
1996
+ #
1997
+ # ~~~rb
1998
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
1999
+ # ignore_class_names(
2000
+ # "Foo",
2001
+ # "Bar",
2002
+ # /Baz.*/,
2003
+ # )
2004
+ # end
2005
+ # ~~~
2006
+ #
2007
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#106
2008
+ sig { params(names: T.any(::Regexp, ::String)).void }
2009
+ def ignore_modules_named(*names); end
2010
+
2011
+ private
2012
+
2013
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#113
2014
+ sig do
2015
+ params(
2016
+ names: T::Array[T.any(::Regexp, ::String)],
2017
+ names_variable: ::Symbol,
2018
+ patterns_variable: ::Symbol
2019
+ ).void
2020
+ end
2021
+ def save_names_and_patterns(names, names_variable, patterns_variable); end
2022
+ end
2023
+ end
2024
+
2025
+ # source://spoom//lib/spoom/deadcode/plugins/graphql.rb#7
2026
+ class Spoom::Deadcode::Plugins::GraphQL < ::Spoom::Deadcode::Plugins::Base
2027
+ # source://spoom//lib/spoom/deadcode/plugins/graphql.rb#28
2028
+ sig { override.params(send: ::Spoom::Deadcode::Send).void }
2029
+ def on_send(send); end
2030
+ end
2031
+
2032
+ # source://spoom//lib/spoom/deadcode/plugins/minitest.rb#7
2033
+ class Spoom::Deadcode::Plugins::Minitest < ::Spoom::Deadcode::Plugins::Base
2034
+ # source://spoom//lib/spoom/deadcode/plugins/minitest.rb#22
2035
+ sig { override.params(definition: ::Spoom::Model::Method).void }
2036
+ def on_define_method(definition); end
2037
+
2038
+ # source://spoom//lib/spoom/deadcode/plugins/minitest.rb#28
2039
+ sig { override.params(send: ::Spoom::Deadcode::Send).void }
2040
+ def on_send(send); end
2041
+ end
2042
+
2043
+ # source://spoom//lib/spoom/deadcode/plugins/namespaces.rb#7
2044
+ class Spoom::Deadcode::Plugins::Namespaces < ::Spoom::Deadcode::Plugins::Base
2045
+ # source://spoom//lib/spoom/deadcode/plugins/namespaces.rb#11
2046
+ sig { override.params(definition: ::Spoom::Model::Class).void }
2047
+ def on_define_class(definition); end
2048
+
2049
+ # source://spoom//lib/spoom/deadcode/plugins/namespaces.rb#16
2050
+ sig { override.params(definition: ::Spoom::Model::Module).void }
2051
+ def on_define_module(definition); end
2052
+
2053
+ private
2054
+
2055
+ # source://spoom//lib/spoom/deadcode/plugins/namespaces.rb#23
2056
+ sig { params(symbol_def: ::Spoom::Model::Namespace).returns(T::Boolean) }
2057
+ def used_as_namespace?(symbol_def); end
2058
+ end
2059
+
2060
+ # source://spoom//lib/spoom/deadcode/plugins/rspec.rb#7
2061
+ class Spoom::Deadcode::Plugins::RSpec < ::Spoom::Deadcode::Plugins::Base; end
2062
+
2063
+ # source://spoom//lib/spoom/deadcode/plugins/rails.rb#7
2064
+ class Spoom::Deadcode::Plugins::Rails < ::Spoom::Deadcode::Plugins::Base
2065
+ # source://spoom//lib/spoom/deadcode/plugins/rails.rb#13
2066
+ sig { override.params(definition: ::Spoom::Model::Class).void }
2067
+ def on_define_class(definition); end
2068
+
2069
+ # source://spoom//lib/spoom/deadcode/plugins/rails.rb#18
2070
+ sig { override.params(definition: ::Spoom::Model::Module).void }
2071
+ def on_define_module(definition); end
2072
+
2073
+ private
2074
+
2075
+ # source://spoom//lib/spoom/deadcode/plugins/rails.rb#25
2076
+ sig { params(symbol_def: ::Spoom::Model::Namespace).returns(T::Boolean) }
2077
+ def file_is_helper?(symbol_def); end
2078
+ end
2079
+
2080
+ # source://spoom//lib/spoom/deadcode/plugins/rake.rb#7
2081
+ class Spoom::Deadcode::Plugins::Rake < ::Spoom::Deadcode::Plugins::Base; end
2082
+
2083
+ # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#7
2084
+ class Spoom::Deadcode::Plugins::Rubocop < ::Spoom::Deadcode::Plugins::Base
2085
+ # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#18
2086
+ sig { override.params(definition: ::Spoom::Model::Constant).void }
2087
+ def on_define_constant(definition); end
2088
+
2089
+ # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#26
2090
+ sig { override.params(definition: ::Spoom::Model::Method).void }
2091
+ def on_define_method(definition); end
2092
+ end
2093
+
2094
+ # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#10
2095
+ Spoom::Deadcode::Plugins::Rubocop::RUBOCOP_CONSTANTS = T.let(T.unsafe(nil), Set)
2096
+
2097
+ # source://spoom//lib/spoom/deadcode/plugins/ruby.rb#7
2098
+ class Spoom::Deadcode::Plugins::Ruby < ::Spoom::Deadcode::Plugins::Base
2099
+ # source://spoom//lib/spoom/deadcode/plugins/ruby.rb#24
2100
+ sig { override.params(send: ::Spoom::Deadcode::Send).void }
2101
+ def on_send(send); end
2102
+
2103
+ private
2104
+
2105
+ # source://spoom//lib/spoom/deadcode/plugins/ruby.rb#46
2106
+ sig { params(send: ::Spoom::Deadcode::Send, node: ::Prism::Node).void }
2107
+ def reference_symbol_as_constant(send, node); end
2108
+ end
2109
+
2110
+ # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#7
2111
+ class Spoom::Deadcode::Plugins::Sorbet < ::Spoom::Deadcode::Plugins::Base
2112
+ # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#11
2113
+ sig { override.params(definition: ::Spoom::Model::Constant).void }
2114
+ def on_define_constant(definition); end
2115
+
2116
+ # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#16
2117
+ sig { override.params(definition: ::Spoom::Model::Method).void }
2118
+ def on_define_method(definition); end
2119
+
2120
+ private
2121
+
2122
+ # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#28
2123
+ sig { params(definition: ::Spoom::Model::Constant).returns(T::Boolean) }
2124
+ def sorbet_enum_constant?(definition); end
2125
+
2126
+ # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#23
2127
+ sig { params(definition: ::Spoom::Model::Constant).returns(T::Boolean) }
2128
+ def sorbet_type_member?(definition); end
2129
+ end
2130
+
2131
+ # source://spoom//lib/spoom/deadcode/plugins/thor.rb#7
2132
+ class Spoom::Deadcode::Plugins::Thor < ::Spoom::Deadcode::Plugins::Base
2133
+ # source://spoom//lib/spoom/deadcode/plugins/thor.rb#13
2134
+ sig { override.params(definition: ::Spoom::Model::Method).void }
2135
+ def on_define_method(definition); end
2136
+ end
2137
+
2138
+ # source://spoom//lib/spoom/deadcode/remover.rb#6
2139
+ class Spoom::Deadcode::Remover
2140
+ # source://spoom//lib/spoom/deadcode/remover.rb#12
2141
+ sig { params(context: ::Spoom::Context).void }
2142
+ def initialize(context); end
2143
+
2144
+ # source://spoom//lib/spoom/deadcode/remover.rb#17
2145
+ sig { params(kind: T.nilable(::Spoom::Deadcode::Definition::Kind), location: ::Spoom::Location).returns(::String) }
2146
+ def remove_location(kind, location); end
2147
+ end
2148
+
2149
+ # source://spoom//lib/spoom/deadcode/remover.rb#9
2150
+ class Spoom::Deadcode::Remover::Error < ::Spoom::Error; end
2151
+
2152
+ # source://spoom//lib/spoom/deadcode/remover.rb#372
2153
+ class Spoom::Deadcode::Remover::NodeContext
2154
+ # source://spoom//lib/spoom/deadcode/remover.rb#392
2155
+ sig do
2156
+ params(
2157
+ source: ::String,
2158
+ comments: T::Hash[::Integer, ::Prism::Comment],
2159
+ node: ::Prism::Node,
2160
+ nesting: T::Array[::Prism::Node]
2161
+ ).void
2162
+ end
2163
+ def initialize(source, comments, node, nesting); end
2164
+
2165
+ # source://spoom//lib/spoom/deadcode/remover.rb#506
2166
+ sig { params(node: ::Prism::Node).returns(T::Array[::Prism::Comment]) }
2167
+ def attached_comments(node); end
2168
+
2169
+ # source://spoom//lib/spoom/deadcode/remover.rb#534
2170
+ sig { returns(T.nilable(::Prism::CallNode)) }
2171
+ def attached_sig; end
2172
+
2173
+ # source://spoom//lib/spoom/deadcode/remover.rb#521
2174
+ sig { returns(T::Array[::Prism::Node]) }
2175
+ def attached_sigs; end
2176
+
2177
+ # source://spoom//lib/spoom/deadcode/remover.rb#376
2178
+ sig { returns(T::Hash[::Integer, ::Prism::Comment]) }
2179
+ def comments; end
2180
+
2181
+ # source://spoom//lib/spoom/deadcode/remover.rb#494
2182
+ sig { params(start_line: ::Integer, end_line: ::Integer).returns(T::Array[::Prism::Comment]) }
2183
+ def comments_between_lines(start_line, end_line); end
2184
+
2185
+ # source://spoom//lib/spoom/deadcode/remover.rb#382
2186
+ sig { returns(T::Array[::Prism::Node]) }
2187
+ def nesting; end
2188
+
2189
+ # @return [Array<Prism::Node>]
2190
+ #
2191
+ # source://spoom//lib/spoom/deadcode/remover.rb#382
2192
+ def nesting=(_arg0); end
2193
+
2194
+ # source://spoom//lib/spoom/deadcode/remover.rb#444
2195
+ sig { returns(T.nilable(::Prism::Node)) }
2196
+ def next_node; end
2197
+
2198
+ # @raise [Error]
2199
+ #
2200
+ # source://spoom//lib/spoom/deadcode/remover.rb#433
2201
+ sig { returns(T::Array[::Prism::Node]) }
2202
+ def next_nodes; end
2203
+
2204
+ # source://spoom//lib/spoom/deadcode/remover.rb#379
2205
+ sig { returns(::Prism::Node) }
2206
+ def node; end
2207
+
2208
+ # @raise [Error]
2209
+ #
2210
+ # source://spoom//lib/spoom/deadcode/remover.rb#408
2211
+ sig { returns(::Spoom::Deadcode::Remover::NodeContext) }
2212
+ def parent_context; end
2213
+
2214
+ # @raise [Error]
2215
+ #
2216
+ # source://spoom//lib/spoom/deadcode/remover.rb#400
2217
+ sig { returns(::Prism::Node) }
2218
+ def parent_node; end
2219
+
2220
+ # source://spoom//lib/spoom/deadcode/remover.rb#428
2221
+ sig { returns(T.nilable(::Prism::Node)) }
2222
+ def previous_node; end
2223
+
2224
+ # @raise [Error]
2225
+ #
2226
+ # source://spoom//lib/spoom/deadcode/remover.rb#417
2227
+ sig { returns(T::Array[::Prism::Node]) }
2228
+ def previous_nodes; end
2229
+
2230
+ # source://spoom//lib/spoom/deadcode/remover.rb#449
2231
+ sig { returns(T.nilable(::Spoom::Deadcode::Remover::NodeContext)) }
2232
+ def sclass_context; end
2233
+
2234
+ # source://spoom//lib/spoom/deadcode/remover.rb#482
2235
+ sig { params(node: T.nilable(::Prism::Node)).returns(T::Boolean) }
2236
+ def sorbet_extend_sig?(node); end
2237
+
2238
+ # source://spoom//lib/spoom/deadcode/remover.rb#477
2239
+ sig { params(node: T.nilable(::Prism::Node)).returns(T::Boolean) }
2240
+ def sorbet_signature?(node); end
2241
+ end
2242
+
2243
+ # source://spoom//lib/spoom/deadcode/remover.rb#549
2244
+ class Spoom::Deadcode::Remover::NodeFinder < ::Spoom::Visitor
2245
+ # source://spoom//lib/spoom/deadcode/remover.rb#621
2246
+ sig { params(location: ::Spoom::Location, kind: T.nilable(::Spoom::Deadcode::Definition::Kind)).void }
2247
+ def initialize(location, kind); end
2248
+
2249
+ # source://spoom//lib/spoom/deadcode/remover.rb#615
2250
+ sig { returns(T.nilable(::Prism::Node)) }
2251
+ def node; end
2252
+
2253
+ # source://spoom//lib/spoom/deadcode/remover.rb#618
2254
+ sig { returns(T::Array[::Prism::Node]) }
2255
+ def nodes_nesting; end
2256
+
2257
+ # source://spoom//lib/spoom/deadcode/remover.rb#630
2258
+ sig { override.params(node: T.nilable(::Prism::Node)).void }
2259
+ def visit(node); end
2260
+
2261
+ class << self
2262
+ # source://spoom//lib/spoom/deadcode/remover.rb#556
2263
+ sig do
2264
+ params(
2265
+ source: ::String,
2266
+ location: ::Spoom::Location,
2267
+ kind: T.nilable(::Spoom::Deadcode::Definition::Kind)
2268
+ ).returns(::Spoom::Deadcode::Remover::NodeContext)
2269
+ end
2270
+ def find(source, location, kind); end
2271
+
2272
+ # source://spoom//lib/spoom/deadcode/remover.rb#590
2273
+ sig { params(node: ::Prism::Node, kind: ::Spoom::Deadcode::Definition::Kind).returns(T::Boolean) }
2274
+ def node_match_kind?(node, kind); end
2275
+ end
2276
+ end
2277
+
2278
+ # source://spoom//lib/spoom/deadcode/remover.rb#29
2279
+ class Spoom::Deadcode::Remover::NodeRemover
2280
+ # source://spoom//lib/spoom/deadcode/remover.rb#36
2281
+ sig do
2282
+ params(
2283
+ source: ::String,
2284
+ kind: T.nilable(::Spoom::Deadcode::Definition::Kind),
2285
+ location: ::Spoom::Location
2286
+ ).void
2287
+ end
2288
+ def initialize(source, kind, location); end
2289
+
2290
+ # source://spoom//lib/spoom/deadcode/remover.rb#46
2291
+ sig { void }
2292
+ def apply_edit; end
2293
+
2294
+ # source://spoom//lib/spoom/deadcode/remover.rb#33
2295
+ sig { returns(::String) }
2296
+ def new_source; end
2297
+
2298
+ private
2299
+
2300
+ # source://spoom//lib/spoom/deadcode/remover.rb#153
2301
+ sig { params(context: ::Spoom::Deadcode::Remover::NodeContext).void }
2302
+ def delete_attr_accessor(context); end
2303
+
2304
+ # source://spoom//lib/spoom/deadcode/remover.rb#331
2305
+ sig { params(start_char: ::Integer, end_char: ::Integer).void }
2306
+ def delete_chars(start_char, end_char); end
2307
+
2308
+ # source://spoom//lib/spoom/deadcode/remover.rb#73
2309
+ sig { params(context: ::Spoom::Deadcode::Remover::NodeContext).void }
2310
+ def delete_constant_assignment(context); end
2311
+
2312
+ # source://spoom//lib/spoom/deadcode/remover.rb#324
2313
+ sig { params(start_line: ::Integer, end_line: ::Integer).void }
2314
+ def delete_lines(start_line, end_line); end
2315
+
2316
+ # source://spoom//lib/spoom/deadcode/remover.rb#261
2317
+ sig { params(context: ::Spoom::Deadcode::Remover::NodeContext).void }
2318
+ def delete_node_and_comments_and_sigs(context); end
2319
+
2320
+ # source://spoom//lib/spoom/deadcode/remover.rb#218
2321
+ sig do
2322
+ params(
2323
+ node: ::Prism::Node,
2324
+ send_context: ::Spoom::Deadcode::Remover::NodeContext,
2325
+ was_removed: T::Boolean
2326
+ ).void
2327
+ end
2328
+ def insert_accessor(node, send_context, was_removed:); end
2329
+
2330
+ # source://spoom//lib/spoom/deadcode/remover.rb#336
2331
+ sig { params(start_char: ::Integer, end_char: ::Integer, replacement: ::String).void }
2332
+ def replace_chars(start_char, end_char, replacement); end
2333
+
2334
+ # source://spoom//lib/spoom/deadcode/remover.rb#341
2335
+ sig do
2336
+ params(
2337
+ node: ::Prism::CallNode,
2338
+ name: ::String,
2339
+ kind: T.nilable(::Spoom::Deadcode::Definition::Kind)
2340
+ ).returns(::String)
2341
+ end
2342
+ def transform_sig(node, name:, kind:); end
2343
+ end
2344
+
2345
+ # An abstraction to simplify handling of Prism::CallNode nodes.
2346
+ #
2347
+ # source://spoom//lib/spoom/deadcode/send.rb#7
2348
+ class Spoom::Deadcode::Send < ::T::Struct
2349
+ const :node, ::Prism::CallNode
2350
+ const :name, ::String
2351
+ const :recv, T.nilable(::Prism::Node), default: T.unsafe(nil)
2352
+ const :args, T::Array[::Prism::Node], default: T.unsafe(nil)
2353
+ const :block, T.nilable(::Prism::Node), default: T.unsafe(nil)
2354
+ const :location, ::Spoom::Location
2355
+
2356
+ # source://spoom//lib/spoom/deadcode/send.rb#22
2357
+ sig do
2358
+ type_parameters(:T)
2359
+ .params(
2360
+ arg_type: T::Class[T.type_parameter(:T)],
2361
+ block: T.proc.params(arg: T.type_parameter(:T)).void
2362
+ ).void
2363
+ end
2364
+ def each_arg(arg_type, &block); end
2365
+
2366
+ # source://spoom//lib/spoom/deadcode/send.rb#29
2367
+ sig { params(block: T.proc.params(key: ::Prism::Node, value: T.nilable(::Prism::Node)).void).void }
2368
+ def each_arg_assoc(&block); end
2369
+
2370
+ class << self
2371
+ # source://sorbet-runtime/0.5.11633/lib/types/struct.rb#13
2372
+ def inherited(s); end
2373
+ end
2374
+ end
2375
+
2376
+ # source://spoom//lib/spoom.rb#12
2377
+ class Spoom::Error < ::StandardError; end
2378
+
2379
+ # source://spoom//lib/spoom/context/exec.rb#5
2380
+ class Spoom::ExecResult < ::T::Struct
2381
+ const :out, ::String
2382
+ const :err, T.nilable(::String)
2383
+ const :status, T::Boolean
2384
+ const :exit_code, ::Integer
2385
+
2386
+ # source://spoom//lib/spoom/context/exec.rb#14
2387
+ sig { returns(::String) }
2388
+ def to_s; end
2389
+
2390
+ class << self
2391
+ # source://sorbet-runtime/0.5.11633/lib/types/struct.rb#13
2392
+ def inherited(s); end
2393
+ end
2394
+ end
2395
+
2396
+ # source://spoom//lib/spoom/file_collector.rb#5
2397
+ class Spoom::FileCollector
2398
+ # Initialize a new file collector
2399
+ #
2400
+ # If `allow_extensions` is empty, all files are collected.
2401
+ # If `allow_extensions` is an array of extensions, only files with one of these extensions are collected.
2402
+ #
2403
+ # If `allow_mime_types` is empty, all files are collected.
2404
+ # If `allow_mime_types` is an array of mimetypes, files without an extension are collected if their mimetype is in
2405
+ # the list.
2406
+ #
2407
+ # source://spoom//lib/spoom/file_collector.rb#26
2408
+ sig do
2409
+ params(
2410
+ allow_extensions: T::Array[::String],
2411
+ allow_mime_types: T::Array[::String],
2412
+ exclude_patterns: T::Array[::String]
2413
+ ).void
2414
+ end
2415
+ def initialize(allow_extensions: T.unsafe(nil), allow_mime_types: T.unsafe(nil), exclude_patterns: T.unsafe(nil)); end
2416
+
2417
+ # source://spoom//lib/spoom/file_collector.rb#9
2418
+ sig { returns(T::Array[::String]) }
2419
+ def files; end
2420
+
2421
+ # source://spoom//lib/spoom/file_collector.rb#39
2422
+ sig { params(path: ::String).void }
2423
+ def visit_path(path); end
2424
+
2425
+ # source://spoom//lib/spoom/file_collector.rb#34
2426
+ sig { params(paths: T::Array[::String]).void }
2427
+ def visit_paths(paths); end
2428
+
2429
+ private
2430
+
2431
+ # source://spoom//lib/spoom/file_collector.rb#56
2432
+ sig { params(path: ::String).returns(::String) }
2433
+ def clean_path(path); end
2434
+
2435
+ # source://spoom//lib/spoom/file_collector.rb#73
2436
+ sig { params(path: ::String).returns(T::Boolean) }
2437
+ def excluded_file?(path); end
2438
+
2439
+ # source://spoom//lib/spoom/file_collector.rb#88
2440
+ sig { params(path: ::String).returns(T::Boolean) }
2441
+ def excluded_path?(path); end
2442
+
2443
+ # source://spoom//lib/spoom/file_collector.rb#97
2444
+ sig { params(path: ::String).returns(T.nilable(::String)) }
2445
+ def mime_type_for(path); end
2446
+
2447
+ # source://spoom//lib/spoom/file_collector.rb#68
2448
+ sig { params(path: ::String).void }
2449
+ def visit_directory(path); end
2450
+
2451
+ # source://spoom//lib/spoom/file_collector.rb#61
2452
+ sig { params(path: ::String).void }
2453
+ def visit_file(path); end
2454
+ end
2455
+
2456
+ # Build a file hierarchy from a set of file paths.
2457
+ #
2458
+ # source://spoom//lib/spoom/file_tree.rb#6
2459
+ class Spoom::FileTree
2460
+ # source://spoom//lib/spoom/file_tree.rb#10
2461
+ sig { params(paths: T::Enumerable[::String]).void }
2462
+ def initialize(paths = T.unsafe(nil)); end
2463
+
2464
+ # Add a `path` to the tree
2465
+ #
2466
+ # This will create all nodes until the root of `path`.
2467
+ #
2468
+ # source://spoom//lib/spoom/file_tree.rb#25
2469
+ sig { params(path: ::String).returns(::Spoom::FileTree::Node) }
2470
+ def add_path(path); end
2471
+
2472
+ # Add all `paths` to the tree
2473
+ #
2474
+ # source://spoom//lib/spoom/file_tree.rb#17
2475
+ sig { params(paths: T::Enumerable[::String]).void }
2476
+ def add_paths(paths); end
2477
+
2478
+ # All the nodes in this tree
2479
+ #
2480
+ # source://spoom//lib/spoom/file_tree.rb#45
2481
+ sig { returns(T::Array[::Spoom::FileTree::Node]) }
2482
+ def nodes; end
2483
+
2484
+ # Return a map of typing scores for each node in the tree
2485
+ #
2486
+ # source://spoom//lib/spoom/file_tree.rb#59
2487
+ sig { params(context: ::Spoom::Context).returns(T::Hash[::Spoom::FileTree::Node, ::Float]) }
2488
+ def nodes_strictness_scores(context); end
2489
+
2490
+ # All the paths in this tree
2491
+ #
2492
+ # source://spoom//lib/spoom/file_tree.rb#53
2493
+ sig { returns(T::Array[::String]) }
2494
+ def paths; end
2495
+
2496
+ # Return a map of typing scores for each path in the tree
2497
+ #
2498
+ # source://spoom//lib/spoom/file_tree.rb#67
2499
+ sig { params(context: ::Spoom::Context).returns(T::Hash[::String, ::Float]) }
2500
+ def paths_strictness_scores(context); end
2501
+
2502
+ # source://spoom//lib/spoom/file_tree.rb#72
2503
+ sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean).void }
2504
+ def print(out: T.unsafe(nil), colors: T.unsafe(nil)); end
2505
+
2506
+ # All root nodes
2507
+ #
2508
+ # source://spoom//lib/spoom/file_tree.rb#39
2509
+ sig { returns(T::Array[::Spoom::FileTree::Node]) }
2510
+ def roots; end
2511
+ end
2512
+
2513
+ # A visitor that collects all the nodes in a tree
2514
+ #
2515
+ # source://spoom//lib/spoom/file_tree.rb#124
2516
+ class Spoom::FileTree::CollectNodes < ::Spoom::FileTree::Visitor
2517
+ # source://spoom//lib/spoom/file_tree.rb#131
2518
+ sig { void }
2519
+ def initialize; end
2520
+
2521
+ # source://spoom//lib/spoom/file_tree.rb#128
2522
+ sig { returns(T::Array[::Spoom::FileTree::Node]) }
2523
+ def nodes; end
2524
+
2525
+ # source://spoom//lib/spoom/file_tree.rb#137
2526
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
2527
+ def visit_node(node); end
2528
+ end
2529
+
2530
+ # A visitor that collects the typing score of each node in a tree
2531
+ #
2532
+ # source://spoom//lib/spoom/file_tree.rb#167
2533
+ class Spoom::FileTree::CollectScores < ::Spoom::FileTree::CollectStrictnesses
2534
+ # source://spoom//lib/spoom/file_tree.rb#174
2535
+ sig { params(context: ::Spoom::Context).void }
2536
+ def initialize(context); end
2537
+
2538
+ # source://spoom//lib/spoom/file_tree.rb#171
2539
+ sig { returns(T::Hash[::Spoom::FileTree::Node, ::Float]) }
2540
+ def scores; end
2541
+
2542
+ # source://spoom//lib/spoom/file_tree.rb#181
2543
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
2544
+ def visit_node(node); end
2545
+
2546
+ private
2547
+
2548
+ # source://spoom//lib/spoom/file_tree.rb#190
2549
+ sig { params(node: ::Spoom::FileTree::Node).returns(::Float) }
2550
+ def node_score(node); end
2551
+
2552
+ # source://spoom//lib/spoom/file_tree.rb#199
2553
+ sig { params(strictness: T.nilable(::String)).returns(::Float) }
2554
+ def strictness_score(strictness); end
2555
+ end
2556
+
2557
+ # A visitor that collects the strictness of each node in a tree
2558
+ #
2559
+ # source://spoom//lib/spoom/file_tree.rb#144
2560
+ class Spoom::FileTree::CollectStrictnesses < ::Spoom::FileTree::Visitor
2561
+ # source://spoom//lib/spoom/file_tree.rb#151
2562
+ sig { params(context: ::Spoom::Context).void }
2563
+ def initialize(context); end
2564
+
2565
+ # source://spoom//lib/spoom/file_tree.rb#148
2566
+ sig { returns(T::Hash[::Spoom::FileTree::Node, T.nilable(::String)]) }
2567
+ def strictnesses; end
2568
+
2569
+ # source://spoom//lib/spoom/file_tree.rb#158
2570
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
2571
+ def visit_node(node); end
2572
+ end
2573
+
2574
+ # A node representing either a file or a directory inside a FileTree
2575
+ #
2576
+ # source://spoom//lib/spoom/file_tree.rb#78
2577
+ class Spoom::FileTree::Node < ::T::Struct
2578
+ const :parent, T.nilable(::Spoom::FileTree::Node)
2579
+ const :name, ::String
2580
+ const :children, T::Hash[::String, ::Spoom::FileTree::Node], default: T.unsafe(nil)
2581
+
2582
+ # Full path to this node from root
2583
+ #
2584
+ # source://spoom//lib/spoom/file_tree.rb#92
2585
+ sig { returns(::String) }
2586
+ def path; end
2587
+
2588
+ class << self
2589
+ # source://sorbet-runtime/0.5.11633/lib/types/struct.rb#13
2590
+ def inherited(s); end
2591
+ end
2592
+ end
2593
+
2594
+ # An internal class used to print a FileTree
2595
+ #
2596
+ # See `FileTree#print`
2597
+ #
2598
+ # source://spoom//lib/spoom/file_tree.rb#212
2599
+ class Spoom::FileTree::Printer < ::Spoom::FileTree::Visitor
2600
+ # source://spoom//lib/spoom/file_tree.rb#222
2601
+ sig do
2602
+ params(
2603
+ strictnesses: T::Hash[::Spoom::FileTree::Node, T.nilable(::String)],
2604
+ out: T.any(::IO, ::StringIO),
2605
+ colors: T::Boolean
2606
+ ).void
2607
+ end
2608
+ def initialize(strictnesses, out: T.unsafe(nil), colors: T.unsafe(nil)); end
2609
+
2610
+ # source://spoom//lib/spoom/file_tree.rb#230
2611
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
2612
+ def visit_node(node); end
2613
+
2614
+ private
2615
+
2616
+ # source://spoom//lib/spoom/file_tree.rb#255
2617
+ sig { params(strictness: T.nilable(::String)).returns(::Spoom::Color) }
2618
+ def strictness_color(strictness); end
2619
+ end
2620
+
2621
+ # An abstract visitor for FileTree
2622
+ #
2623
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
2624
+ #
2625
+ # source://spoom//lib/spoom/file_tree.rb#101
2626
+ class Spoom::FileTree::Visitor
2627
+ abstract!
2628
+
2629
+ # source://spoom//lib/spoom/file_tree.rb#113
2630
+ sig { params(node: ::Spoom::FileTree::Node).void }
2631
+ def visit_node(node); end
2632
+
2633
+ # source://spoom//lib/spoom/file_tree.rb#118
2634
+ sig { params(nodes: T::Array[::Spoom::FileTree::Node]).void }
2635
+ def visit_nodes(nodes); end
2636
+
2637
+ # source://spoom//lib/spoom/file_tree.rb#108
2638
+ sig { params(tree: ::Spoom::FileTree).void }
2639
+ def visit_tree(tree); end
2640
+ end
2641
+
2642
+ # source://spoom//lib/spoom/context/git.rb#5
2643
+ module Spoom::Git; end
2644
+
2645
+ # source://spoom//lib/spoom/context/git.rb#6
2646
+ class Spoom::Git::Commit < ::T::Struct
2647
+ const :sha, ::String
2648
+ const :time, ::Time
2649
+
2650
+ # source://spoom//lib/spoom/context/git.rb#27
2651
+ sig { returns(::Integer) }
2652
+ def timestamp; end
2653
+
2654
+ class << self
2655
+ # source://sorbet-runtime/0.5.11633/lib/types/struct.rb#13
2656
+ def inherited(s); end
2657
+
2658
+ # Parse a line formatted as `%h %at` into a `Commit`
2659
+ #
2660
+ # source://spoom//lib/spoom/context/git.rb#14
2661
+ sig { params(string: ::String).returns(T.nilable(::Spoom::Git::Commit)) }
2662
+ def parse_line(string); end
2663
+ end
2664
+ end
2665
+
2666
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#5
2667
+ module Spoom::LSP; end
2668
+
2669
+ # source://spoom//lib/spoom/sorbet/lsp.rb#13
2670
+ class Spoom::LSP::Client
2671
+ # source://spoom//lib/spoom/sorbet/lsp.rb#17
2672
+ sig { params(sorbet_bin: ::String, sorbet_args: ::String, path: ::String).void }
2673
+ def initialize(sorbet_bin, *sorbet_args, path: T.unsafe(nil)); end
2674
+
2675
+ # source://spoom//lib/spoom/sorbet/lsp.rb#229
2676
+ sig { void }
2677
+ def close; end
2678
+
2679
+ # source://spoom//lib/spoom/sorbet/lsp.rb#131
2680
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::Location]) }
2681
+ def definitions(uri, line, column); end
2682
+
2683
+ # source://spoom//lib/spoom/sorbet/lsp.rb#212
2684
+ sig { params(uri: ::String).returns(T::Array[::Spoom::LSP::DocumentSymbol]) }
2685
+ def document_symbols(uri); end
2686
+
2687
+ # source://spoom//lib/spoom/sorbet/lsp.rb#89
2688
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T.nilable(::Spoom::LSP::Hover)) }
2689
+ def hover(uri, line, column); end
2690
+
2691
+ # source://spoom//lib/spoom/sorbet/lsp.rb#27
2692
+ sig { returns(::Integer) }
2693
+ def next_id; end
2694
+
2695
+ # LSP requests
2696
+ #
2697
+ # @raise [Error::AlreadyOpen]
2698
+ #
2699
+ # source://spoom//lib/spoom/sorbet/lsp.rb#72
2700
+ sig { params(workspace_path: ::String).void }
2701
+ def open(workspace_path); end
2702
+
2703
+ # source://spoom//lib/spoom/sorbet/lsp.rb#54
2704
+ sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
2705
+ def read; end
2706
+
2707
+ # @raise [Error::BadHeaders]
2708
+ #
2709
+ # source://spoom//lib/spoom/sorbet/lsp.rb#43
2710
+ sig { returns(T.nilable(::String)) }
2711
+ def read_raw; end
2712
+
2713
+ # source://spoom//lib/spoom/sorbet/lsp.rb#173
2714
+ sig do
2715
+ params(
2716
+ uri: ::String,
2717
+ line: ::Integer,
2718
+ column: ::Integer,
2719
+ include_decl: T::Boolean
2720
+ ).returns(T::Array[::Spoom::LSP::Location])
2721
+ end
2722
+ def references(uri, line, column, include_decl = T.unsafe(nil)); end
2723
+
2724
+ # source://spoom//lib/spoom/sorbet/lsp.rb#37
2725
+ sig { params(message: ::Spoom::LSP::Message).returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
2726
+ def send(message); end
2727
+
2728
+ # source://spoom//lib/spoom/sorbet/lsp.rb#32
2729
+ sig { params(json_string: ::String).void }
2730
+ def send_raw(json_string); end
2731
+
2732
+ # source://spoom//lib/spoom/sorbet/lsp.rb#110
2733
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::SignatureHelp]) }
2734
+ def signatures(uri, line, column); end
2735
+
2736
+ # source://spoom//lib/spoom/sorbet/lsp.rb#197
2737
+ sig { params(query: ::String).returns(T::Array[::Spoom::LSP::DocumentSymbol]) }
2738
+ def symbols(query); end
2739
+
2740
+ # source://spoom//lib/spoom/sorbet/lsp.rb#152
2741
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::Location]) }
2742
+ def type_definitions(uri, line, column); end
2743
+ end
2744
+
2745
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#178
2746
+ class Spoom::LSP::Diagnostic < ::T::Struct
2747
+ include ::Spoom::LSP::PrintableSymbol
2748
+
2749
+ const :range, ::Spoom::LSP::Range
2750
+ const :code, ::Integer
2751
+ const :message, ::String
2752
+ const :information, ::Object
2753
+
2754
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#202
2755
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2756
+ def accept_printer(printer); end
2757
+
2758
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#207
2759
+ sig { returns(::String) }
2760
+ def to_s; end
2761
+
2762
+ class << self
2763
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#191
2764
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Diagnostic) }
2765
+ def from_json(json); end
2766
+
2767
+ # source://sorbet-runtime/0.5.11633/lib/types/struct.rb#13
2768
+ def inherited(s); end
2769
+ end
2770
+ end
2771
+
2772
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#212
2773
+ class Spoom::LSP::DocumentSymbol < ::T::Struct
2774
+ include ::Spoom::LSP::PrintableSymbol
2775
+
2776
+ const :name, ::String
2777
+ const :detail, T.nilable(::String)
2778
+ const :kind, ::Integer
2779
+ const :location, T.nilable(::Spoom::LSP::Location)
2780
+ const :range, T.nilable(::Spoom::LSP::Range)
2781
+ const :children, T::Array[::Spoom::LSP::DocumentSymbol]
2782
+
2783
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#240
2784
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2785
+ def accept_printer(printer); end
2786
+
2787
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#272
2788
+ sig { returns(::String) }
2789
+ def kind_string; end
2790
+
2791
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#267
2792
+ sig { returns(::String) }
2793
+ def to_s; end
2794
+
2795
+ class << self
2796
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#227
2797
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::DocumentSymbol) }
2798
+ def from_json(json); end
2799
+
2800
+ # source://sorbet-runtime/0.5.11633/lib/types/struct.rb#13
2801
+ def inherited(s); end
2802
+ end
2803
+ end
2804
+
2805
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#276
2806
+ Spoom::LSP::DocumentSymbol::SYMBOL_KINDS = T.let(T.unsafe(nil), Hash)
2807
+
2808
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#6
2809
+ class Spoom::LSP::Error < ::Spoom::Error; end
2810
+
2811
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#7
2812
+ class Spoom::LSP::Error::AlreadyOpen < ::Spoom::LSP::Error; end
2813
+
2814
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#8
2815
+ class Spoom::LSP::Error::BadHeaders < ::Spoom::LSP::Error; end
2816
+
2817
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#10
2818
+ class Spoom::LSP::Error::Diagnostics < ::Spoom::LSP::Error
2819
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#32
2820
+ sig { params(uri: ::String, diagnostics: T::Array[::Spoom::LSP::Diagnostic]).void }
2821
+ def initialize(uri, diagnostics); end
2822
+
2823
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#17
2824
+ sig { returns(T::Array[::Spoom::LSP::Diagnostic]) }
2825
+ def diagnostics; end
2826
+
2827
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#14
2828
+ sig { returns(::String) }
2829
+ def uri; end
2830
+
2831
+ class << self
2832
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#23
2833
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Error::Diagnostics) }
2834
+ def from_json(json); end
2835
+ end
2836
+ end
2837
+
2838
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#19
2839
+ class Spoom::LSP::Hover < ::T::Struct
2840
+ include ::Spoom::LSP::PrintableSymbol
2841
+
2842
+ const :contents, ::String
2843
+ const :range, T.nilable(T::Range[T.untyped])
2844
+
2845
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#39
2846
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2847
+ def accept_printer(printer); end
2848
+
2849
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#45
2850
+ sig { returns(::String) }
2851
+ def to_s; end
2852
+
2853
+ class << self
2854
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#30
2855
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Hover) }
2856
+ def from_json(json); end
2857
+
2858
+ # source://sorbet-runtime/0.5.11633/lib/types/struct.rb#13
2859
+ def inherited(s); end
2860
+ end
2861
+ end
2862
+
2863
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#112
2864
+ class Spoom::LSP::Location < ::T::Struct
2865
+ include ::Spoom::LSP::PrintableSymbol
2866
+
2867
+ const :uri, ::String
2868
+ const :range, ::Spoom::LSP::Range
2869
+
2870
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#132
2871
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2872
+ def accept_printer(printer); end
2873
+
2874
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#138
2875
+ sig { returns(::String) }
2876
+ def to_s; end
2877
+
2878
+ class << self
2879
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#123
2880
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Location) }
2881
+ def from_json(json); end
2882
+
2883
+ # source://sorbet-runtime/0.5.11633/lib/types/struct.rb#13
2884
+ def inherited(s); end
2885
+ end
2886
+ end
2887
+
2888
+ # A general message as defined by JSON-RPC.
2889
+ #
2890
+ # The language server protocol always uses `"2.0"` as the `jsonrpc` version.
2891
+ #
2892
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#12
2893
+ class Spoom::LSP::Message
2894
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#16
2895
+ sig { void }
2896
+ def initialize; end
2897
+
2898
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#21
2899
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
2900
+ def as_json; end
2901
+
2902
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#29
2903
+ sig { params(args: T.untyped).returns(::String) }
2904
+ def to_json(*args); end
2905
+ end
2906
+
2907
+ # A notification message.
2908
+ #
2909
+ # A processed notification message must not send a response back. They work like events.
2910
+ #
2911
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#58
2912
+ class Spoom::LSP::Notification < ::Spoom::LSP::Message
2913
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#68
2914
+ sig { params(method: ::String, params: T::Hash[T.untyped, T.untyped]).void }
2915
+ def initialize(method, params); end
2916
+
2917
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#62
2918
+ sig { returns(::String) }
2919
+ def method; end
2920
+
2921
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#65
2922
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
2923
+ def params; end
2924
+ end
2925
+
2926
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#50
2927
+ class Spoom::LSP::Position < ::T::Struct
2928
+ include ::Spoom::LSP::PrintableSymbol
2929
+
2930
+ const :line, ::Integer
2931
+ const :char, ::Integer
2932
+
2933
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#70
2934
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2935
+ def accept_printer(printer); end
2936
+
2937
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#75
2938
+ sig { returns(::String) }
2939
+ def to_s; end
2940
+
2941
+ class << self
2942
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#61
2943
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Position) }
2944
+ def from_json(json); end
2945
+
2946
+ # source://sorbet-runtime/0.5.11633/lib/types/struct.rb#13
2947
+ def inherited(s); end
2948
+ end
2949
+ end
2950
+
2951
+ # @abstract Subclasses must implement the `abstract` methods below.
2952
+ #
2953
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#9
2954
+ module Spoom::LSP::PrintableSymbol
2955
+ interface!
2956
+
2957
+ # @abstract
2958
+ #
2959
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#16
2960
+ sig { abstract.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2961
+ def accept_printer(printer); end
2962
+ end
2963
+
2964
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#80
2965
+ class Spoom::LSP::Range < ::T::Struct
2966
+ include ::Spoom::LSP::PrintableSymbol
2967
+
2968
+ const :start, ::Spoom::LSP::Position
2969
+ const :end, ::Spoom::LSP::Position
2970
+
2971
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#100
2972
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2973
+ def accept_printer(printer); end
2974
+
2975
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#107
2976
+ sig { returns(::String) }
2977
+ def to_s; end
2978
+
2979
+ class << self
2980
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#91
2981
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Range) }
2982
+ def from_json(json); end
2983
+
2984
+ # source://sorbet-runtime/0.5.11633/lib/types/struct.rb#13
2985
+ def inherited(s); end
2986
+ end
2987
+ end
2988
+
2989
+ # A request message to describe a request between the client and the server.
2990
+ #
2991
+ # Every processed request must send a response back to the sender of the request.
2992
+ #
2993
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#37
2994
+ class Spoom::LSP::Request < ::Spoom::LSP::Message
2995
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#47
2996
+ sig { params(id: ::Integer, method: ::String, params: T::Hash[T.untyped, T.untyped]).void }
2997
+ def initialize(id, method, params); end
2998
+
2999
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#41
3000
+ sig { returns(::Integer) }
3001
+ def id; end
3002
+
3003
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#44
3004
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
3005
+ def params; end
3006
+ end
3007
+
3008
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#40
3009
+ class Spoom::LSP::ResponseError < ::Spoom::LSP::Error
3010
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#63
3011
+ sig { params(code: ::Integer, message: ::String, data: T::Hash[T.untyped, T.untyped]).void }
3012
+ def initialize(code, message, data); end
3013
+
3014
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#44
3015
+ sig { returns(::Integer) }
3016
+ def code; end
3017
+
3018
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#47
3019
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
3020
+ def data; end
3021
+
3022
+ class << self
3023
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#53
3024
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::ResponseError) }
3025
+ def from_json(json); end
3026
+ end
3027
+ end
3028
+
3029
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#143
3030
+ class Spoom::LSP::SignatureHelp < ::T::Struct
3031
+ include ::Spoom::LSP::PrintableSymbol
3032
+
3033
+ const :label, T.nilable(::String)
3034
+ const :doc, ::Object
3035
+ const :params, T::Array[T.untyped]
3036
+
3037
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#165
3038
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
3039
+ def accept_printer(printer); end
3040
+
3041
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#173
3042
+ sig { returns(::String) }
3043
+ def to_s; end
3044
+
3045
+ class << self
3046
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#155
3047
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::SignatureHelp) }
3048
+ def from_json(json); end
3049
+
3050
+ # source://sorbet-runtime/0.5.11633/lib/types/struct.rb#13
3051
+ def inherited(s); end
3052
+ end
3053
+ end
3054
+
3055
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#309
3056
+ class Spoom::LSP::SymbolPrinter < ::Spoom::Printer
3057
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#326
3058
+ sig do
3059
+ params(
3060
+ out: T.any(::IO, ::StringIO),
3061
+ colors: T::Boolean,
3062
+ indent_level: ::Integer,
3063
+ prefix: T.nilable(::String)
3064
+ ).void
3065
+ end
3066
+ def initialize(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil), prefix: T.unsafe(nil)); end
3067
+
3068
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#348
3069
+ sig { params(uri: ::String).returns(::String) }
3070
+ def clean_uri(uri); end
3071
+
3072
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#316
3073
+ sig { returns(T.nilable(::String)) }
3074
+ def prefix; end
3075
+
3076
+ # @return [String, nil]
3077
+ #
3078
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#316
3079
+ def prefix=(_arg0); end
3080
+
3081
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#356
3082
+ sig { params(objects: T::Array[::Spoom::LSP::PrintableSymbol]).void }
3083
+ def print_list(objects); end
3084
+
3085
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#336
3086
+ sig { params(object: T.nilable(::Spoom::LSP::PrintableSymbol)).void }
3087
+ def print_object(object); end
3088
+
3089
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#343
3090
+ sig { params(objects: T::Array[::Spoom::LSP::PrintableSymbol]).void }
3091
+ def print_objects(objects); end
3092
+
3093
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#313
3094
+ sig { returns(T::Set[::Integer]) }
3095
+ def seen; end
3096
+ end
3097
+
3098
+ # source://spoom//lib/spoom/location.rb#5
3099
+ class Spoom::Location
3100
+ include ::Comparable
3101
+
3102
+ # @raise [LocationError]
3103
+ #
3104
+ # source://spoom//lib/spoom/location.rb#73
3105
+ sig do
3106
+ params(
3107
+ file: ::String,
3108
+ start_line: T.nilable(::Integer),
3109
+ start_column: T.nilable(::Integer),
3110
+ end_line: T.nilable(::Integer),
3111
+ end_column: T.nilable(::Integer)
3112
+ ).void
3113
+ end
3114
+ def initialize(file, start_line: T.unsafe(nil), start_column: T.unsafe(nil), end_line: T.unsafe(nil), end_column: T.unsafe(nil)); end
3115
+
3116
+ # source://spoom//lib/spoom/location.rb#106
3117
+ sig { override.params(other: ::BasicObject).returns(T.nilable(::Integer)) }
3118
+ def <=>(other); end
3119
+
3120
+ # @return [Integer, nil]
3121
+ #
3122
+ # source://spoom//lib/spoom/location.rb#62
3123
+ def end_column; end
3124
+
3125
+ # @return [Integer, nil]
3126
+ #
3127
+ # source://spoom//lib/spoom/location.rb#62
3128
+ def end_line; end
3129
+
3130
+ # source://spoom//lib/spoom/location.rb#59
3131
+ sig { returns(::String) }
3132
+ def file; end
3133
+
3134
+ # source://spoom//lib/spoom/location.rb#93
3135
+ sig { params(other: ::Spoom::Location).returns(T::Boolean) }
3136
+ def include?(other); end
3137
+
3138
+ # @return [Integer, nil]
3139
+ #
3140
+ # source://spoom//lib/spoom/location.rb#62
3141
+ def start_column; end
3142
+
3143
+ # source://spoom//lib/spoom/location.rb#62
3144
+ sig { returns(T.nilable(::Integer)) }
3145
+ def start_line; end
3146
+
3147
+ # source://spoom//lib/spoom/location.rb#129
3148
+ sig { returns(::String) }
3149
+ def to_s; end
3150
+
3151
+ class << self
3152
+ # source://spoom//lib/spoom/location.rb#47
3153
+ sig { params(file: ::String, location: ::Prism::Location).returns(::Spoom::Location) }
3154
+ def from_prism(file, location); end
3155
+
3156
+ # @raise [LocationError]
3157
+ #
3158
+ # source://spoom//lib/spoom/location.rb#16
3159
+ sig { params(location_string: ::String).returns(::Spoom::Location) }
3160
+ def from_string(location_string); end
3161
+ end
3162
+ end
3163
+
3164
+ # source://spoom//lib/spoom/location.rb#10
3165
+ class Spoom::Location::LocationError < ::Spoom::Error; end
3166
+
3167
+ # source://spoom//lib/spoom/model/model.rb#5
3168
+ class Spoom::Model
3169
+ # source://spoom//lib/spoom/model/model.rb#238
3170
+ sig { void }
3171
+ def initialize; end
3172
+
3173
+ # Get a symbol by it's full name
3174
+ #
3175
+ # Raises an error if the symbol is not found
3176
+ #
3177
+ # @raise [Error]
3178
+ #
3179
+ # source://spoom//lib/spoom/model/model.rb#247
3180
+ sig { params(full_name: ::String).returns(::Spoom::Model::Symbol) }
3181
+ def [](full_name); end
3182
+
3183
+ # source://spoom//lib/spoom/model/model.rb#296
3184
+ sig { void }
3185
+ def finalize!; end
3186
+
3187
+ # Register a new symbol by it's full name
3188
+ #
3189
+ # If the symbol already exists, it will be returned.
3190
+ #
3191
+ # source://spoom//lib/spoom/model/model.rb#258
3192
+ sig { params(full_name: ::String).returns(::Spoom::Model::Symbol) }
3193
+ def register_symbol(full_name); end
3194
+
3195
+ # source://spoom//lib/spoom/model/model.rb#263
3196
+ sig { params(full_name: ::String, context: ::Spoom::Model::Symbol).returns(::Spoom::Model::Symbol) }
3197
+ def resolve_symbol(full_name, context:); end
3198
+
3199
+ # source://spoom//lib/spoom/model/model.rb#290
3200
+ sig { params(symbol: ::Spoom::Model::Symbol).returns(T::Array[::Spoom::Model::Symbol]) }
3201
+ def subtypes(symbol); end
3202
+
3203
+ # source://spoom//lib/spoom/model/model.rb#284
3204
+ sig { params(symbol: ::Spoom::Model::Symbol).returns(T::Array[::Spoom::Model::Symbol]) }
3205
+ def supertypes(symbol); end
3206
+
3207
+ # All the symbols registered in this model
3208
+ #
3209
+ # source://spoom//lib/spoom/model/model.rb#232
3210
+ sig { returns(T::Hash[::String, ::Spoom::Model::Symbol]) }
3211
+ def symbols; end
3212
+
3213
+ # source://spoom//lib/spoom/model/model.rb#235
3214
+ sig { returns(Spoom::Poset[::Spoom::Model::Symbol]) }
3215
+ def symbols_hierarchy; end
3216
+
3217
+ private
3218
+
3219
+ # source://spoom//lib/spoom/model/model.rb#303
3220
+ sig { void }
3221
+ def compute_symbols_hierarchy!; end
3222
+ end
3223
+
3224
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
3225
+ #
3226
+ # source://spoom//lib/spoom/model/model.rb#179
3227
+ class Spoom::Model::Attr < ::Spoom::Model::Property
3228
+ abstract!
3229
+ end
3230
+
3231
+ # source://spoom//lib/spoom/model/model.rb#185
3232
+ class Spoom::Model::AttrAccessor < ::Spoom::Model::Attr; end
3233
+
3234
+ # source://spoom//lib/spoom/model/model.rb#183
3235
+ class Spoom::Model::AttrReader < ::Spoom::Model::Attr; end
3236
+
3237
+ # source://spoom//lib/spoom/model/model.rb#184
3238
+ class Spoom::Model::AttrWriter < ::Spoom::Model::Attr; end
3239
+
3240
+ # Populate a Model by visiting the nodes from a Ruby file
3241
+ #
3242
+ # source://spoom//lib/spoom/model/builder.rb#7
3243
+ class Spoom::Model::Builder < ::Spoom::Model::NamespaceVisitor
3244
+ # source://spoom//lib/spoom/model/builder.rb#11
3245
+ sig { params(model: ::Spoom::Model, file: ::String).void }
3246
+ def initialize(model, file); end
3247
+
3248
+ # Accessors
3249
+ #
3250
+ # source://spoom//lib/spoom/model/builder.rb#146
3251
+ sig { override.params(node: ::Prism::CallNode).void }
3252
+ def visit_call_node(node); end
3253
+
3254
+ # Classes
3255
+ #
3256
+ # source://spoom//lib/spoom/model/builder.rb#24
3257
+ sig { override.params(node: ::Prism::ClassNode).void }
3258
+ def visit_class_node(node); end
3259
+
3260
+ # Constants
3261
+ #
3262
+ # source://spoom//lib/spoom/model/builder.rb#71
3263
+ sig { override.params(node: ::Prism::ConstantPathWriteNode).void }
3264
+ def visit_constant_path_write_node(node); end
3265
+
3266
+ # source://spoom//lib/spoom/model/builder.rb#92
3267
+ sig { override.params(node: ::Prism::ConstantWriteNode).void }
3268
+ def visit_constant_write_node(node); end
3269
+
3270
+ # Methods
3271
+ #
3272
+ # source://spoom//lib/spoom/model/builder.rb#127
3273
+ sig { override.params(node: ::Prism::DefNode).void }
3274
+ def visit_def_node(node); end
3275
+
3276
+ # Modules
3277
+ #
3278
+ # source://spoom//lib/spoom/model/builder.rb#55
3279
+ sig { override.params(node: ::Prism::ModuleNode).void }
3280
+ def visit_module_node(node); end
3281
+
3282
+ # source://spoom//lib/spoom/model/builder.rb#106
3283
+ sig { override.params(node: ::Prism::MultiWriteNode).void }
3284
+ def visit_multi_write_node(node); end
3285
+
3286
+ # source://spoom//lib/spoom/model/builder.rb#39
3287
+ sig { override.params(node: ::Prism::SingletonClassNode).void }
3288
+ def visit_singleton_class_node(node); end
3289
+
3290
+ private
3291
+
3292
+ # source://spoom//lib/spoom/model/builder.rb#234
3293
+ sig { returns(T::Array[::Spoom::Model::Sig]) }
3294
+ def collect_sigs; end
3295
+
3296
+ # source://spoom//lib/spoom/model/builder.rb#229
3297
+ sig { returns(::Spoom::Model::Visibility) }
3298
+ def current_visibility; end
3299
+
3300
+ # source://spoom//lib/spoom/model/builder.rb#241
3301
+ sig { params(node: ::Prism::Node).returns(::Spoom::Location) }
3302
+ def node_location(node); end
3303
+ end
3304
+
3305
+ # source://spoom//lib/spoom/model/model.rb#117
3306
+ class Spoom::Model::Class < ::Spoom::Model::Namespace
3307
+ # source://spoom//lib/spoom/model/model.rb#129
3308
+ sig do
3309
+ params(
3310
+ symbol: ::Spoom::Model::Symbol,
3311
+ owner: T.nilable(::Spoom::Model::Namespace),
3312
+ location: ::Spoom::Location,
3313
+ superclass_name: T.nilable(::String)
3314
+ ).void
3315
+ end
3316
+ def initialize(symbol, owner:, location:, superclass_name: T.unsafe(nil)); end
3317
+
3318
+ # source://spoom//lib/spoom/model/model.rb#119
3319
+ sig { returns(T.nilable(::String)) }
3320
+ def superclass_name; end
3321
+
3322
+ # @return [String, nil]
3323
+ #
3324
+ # source://spoom//lib/spoom/model/model.rb#119
3325
+ def superclass_name=(_arg0); end
3326
+ end
3327
+
3328
+ # source://spoom//lib/spoom/model/model.rb#138
3329
+ class Spoom::Model::Constant < ::Spoom::Model::SymbolDef
3330
+ # source://spoom//lib/spoom/model/model.rb#143
3331
+ sig do
3332
+ params(
3333
+ symbol: ::Spoom::Model::Symbol,
3334
+ owner: T.nilable(::Spoom::Model::Namespace),
3335
+ location: ::Spoom::Location,
3336
+ value: ::String
3337
+ ).void
3338
+ end
3339
+ def initialize(symbol, owner:, location:, value:); end
3340
+
3341
+ # source://spoom//lib/spoom/model/model.rb#140
3342
+ sig { returns(::String) }
3343
+ def value; end
3344
+ end
3345
+
3346
+ # source://spoom//lib/spoom/model/model.rb#8
3347
+ class Spoom::Model::Error < ::Spoom::Error; end
3348
+
3349
+ # source://spoom//lib/spoom/model/model.rb#213
3350
+ class Spoom::Model::Extend < ::Spoom::Model::Mixin; end
3351
+
3352
+ # source://spoom//lib/spoom/model/model.rb#211
3353
+ class Spoom::Model::Include < ::Spoom::Model::Mixin; end
3354
+
3355
+ # source://spoom//lib/spoom/model/model.rb#177
3356
+ class Spoom::Model::Method < ::Spoom::Model::Property; end
3357
+
3358
+ # A mixin (include, prepend, extend) to a namespace
3359
+ #
3360
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
3361
+ #
3362
+ # source://spoom//lib/spoom/model/model.rb#196
3363
+ class Spoom::Model::Mixin
3364
+ abstract!
3365
+
3366
+ # source://spoom//lib/spoom/model/model.rb#206
3367
+ sig { params(name: ::String).void }
3368
+ def initialize(name); end
3369
+
3370
+ # source://spoom//lib/spoom/model/model.rb#203
3371
+ sig { returns(::String) }
3372
+ def name; end
3373
+ end
3374
+
3375
+ # source://spoom//lib/spoom/model/model.rb#136
3376
+ class Spoom::Model::Module < ::Spoom::Model::Namespace; end
3377
+
3378
+ # A class or module
3379
+ #
3380
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
3381
+ #
3382
+ # source://spoom//lib/spoom/model/model.rb#97
3383
+ class Spoom::Model::Namespace < ::Spoom::Model::SymbolDef
3384
+ abstract!
3385
+
3386
+ # source://spoom//lib/spoom/model/model.rb#107
3387
+ sig do
3388
+ params(
3389
+ symbol: ::Spoom::Model::Symbol,
3390
+ owner: T.nilable(::Spoom::Model::Namespace),
3391
+ location: ::Spoom::Location
3392
+ ).void
3393
+ end
3394
+ def initialize(symbol, owner:, location:); end
3395
+
3396
+ # source://spoom//lib/spoom/model/model.rb#101
3397
+ sig { returns(T::Array[::Spoom::Model::SymbolDef]) }
3398
+ def children; end
3399
+
3400
+ # source://spoom//lib/spoom/model/model.rb#104
3401
+ sig { returns(T::Array[::Spoom::Model::Mixin]) }
3402
+ def mixins; end
3403
+ end
3404
+
3405
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
3406
+ #
3407
+ # source://spoom//lib/spoom/model/namespace_visitor.rb#6
3408
+ class Spoom::Model::NamespaceVisitor < ::Spoom::Visitor
3409
+ abstract!
3410
+
3411
+ # source://spoom//lib/spoom/model/namespace_visitor.rb#12
3412
+ sig { void }
3413
+ def initialize; end
3414
+
3415
+ # source://spoom//lib/spoom/model/namespace_visitor.rb#19
3416
+ sig { override.params(node: T.nilable(::Prism::Node)).void }
3417
+ def visit(node); end
3418
+ end
3419
+
3420
+ # source://spoom//lib/spoom/model/model.rb#212
3421
+ class Spoom::Model::Prepend < ::Spoom::Model::Mixin; end
3422
+
3423
+ # A method or an attribute accessor
3424
+ #
3425
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
3426
+ #
3427
+ # source://spoom//lib/spoom/model/model.rb#151
3428
+ class Spoom::Model::Property < ::Spoom::Model::SymbolDef
3429
+ abstract!
3430
+
3431
+ # source://spoom//lib/spoom/model/model.rb#169
3432
+ sig do
3433
+ params(
3434
+ symbol: ::Spoom::Model::Symbol,
3435
+ owner: T.nilable(::Spoom::Model::Namespace),
3436
+ location: ::Spoom::Location,
3437
+ visibility: ::Spoom::Model::Visibility,
3438
+ sigs: T::Array[::Spoom::Model::Sig]
3439
+ ).void
3440
+ end
3441
+ def initialize(symbol, owner:, location:, visibility:, sigs: T.unsafe(nil)); end
3442
+
3443
+ # source://spoom//lib/spoom/model/model.rb#158
3444
+ sig { returns(T::Array[::Spoom::Model::Sig]) }
3445
+ def sigs; end
3446
+
3447
+ # source://spoom//lib/spoom/model/model.rb#155
3448
+ sig { returns(::Spoom::Model::Visibility) }
3449
+ def visibility; end
3450
+ end
3451
+
3452
+ # A reference to something that looks like a constant or a method
3453
+ #
3454
+ # Constants could be classes, modules, or actual constants.
3455
+ # Methods could be accessors, instance or class methods, aliases, etc.
3456
+ #
3457
+ # source://spoom//lib/spoom/model/reference.rb#10
3458
+ class Spoom::Model::Reference < ::T::Struct
3459
+ const :kind, ::Spoom::Model::Reference::Kind
3460
+ const :name, ::String
3461
+ const :location, ::Spoom::Location
3462
+
3463
+ # source://spoom//lib/spoom/model/reference.rb#39
3464
+ sig { returns(T::Boolean) }
3465
+ def constant?; end
3466
+
3467
+ # source://spoom//lib/spoom/model/reference.rb#44
3468
+ sig { returns(T::Boolean) }
3469
+ def method?; end
3470
+
3471
+ class << self
3472
+ # source://spoom//lib/spoom/model/reference.rb#24
3473
+ sig { params(name: ::String, location: ::Spoom::Location).returns(::Spoom::Model::Reference) }
3474
+ def constant(name, location); end
3475
+
3476
+ # source://sorbet-runtime/0.5.11633/lib/types/struct.rb#13
3477
+ def inherited(s); end
3478
+
3479
+ # source://spoom//lib/spoom/model/reference.rb#29
3480
+ sig { params(name: ::String, location: ::Spoom::Location).returns(::Spoom::Model::Reference) }
3481
+ def method(name, location); end
3482
+ end
3483
+ end
3484
+
3485
+ # source://spoom//lib/spoom/model/reference.rb#13
3486
+ class Spoom::Model::Reference::Kind < ::T::Enum
3487
+ enums do
3488
+ Constant = new
3489
+ Method = new
3490
+ end
3491
+ end
3492
+
3493
+ # Visit a file to collect all the references to constants and methods
3494
+ #
3495
+ # source://spoom//lib/spoom/model/references_visitor.rb#7
3496
+ class Spoom::Model::ReferencesVisitor < ::Spoom::Visitor
3497
+ # source://spoom//lib/spoom/model/references_visitor.rb#14
3498
+ sig { params(file: ::String).void }
3499
+ def initialize(file); end
3500
+
3501
+ # source://spoom//lib/spoom/model/references_visitor.rb#11
3502
+ sig { returns(T::Array[::Spoom::Model::Reference]) }
3503
+ def references; end
3504
+
3505
+ # source://spoom//lib/spoom/model/references_visitor.rb#22
3506
+ sig { override.params(node: ::Prism::AliasMethodNode).void }
3507
+ def visit_alias_method_node(node); end
3508
+
3509
+ # source://spoom//lib/spoom/model/references_visitor.rb#27
3510
+ sig { override.params(node: ::Prism::AndNode).void }
3511
+ def visit_and_node(node); end
3512
+
3513
+ # source://spoom//lib/spoom/model/references_visitor.rb#33
3514
+ sig { override.params(node: ::Prism::BlockArgumentNode).void }
3515
+ def visit_block_argument_node(node); end
3516
+
3517
+ # source://spoom//lib/spoom/model/references_visitor.rb#44
3518
+ sig { override.params(node: ::Prism::CallAndWriteNode).void }
3519
+ def visit_call_and_write_node(node); end
3520
+
3521
+ # source://spoom//lib/spoom/model/references_visitor.rb#68
3522
+ sig { override.params(node: ::Prism::CallNode).void }
3523
+ def visit_call_node(node); end
3524
+
3525
+ # source://spoom//lib/spoom/model/references_visitor.rb#52
3526
+ sig { override.params(node: ::Prism::CallOperatorWriteNode).void }
3527
+ def visit_call_operator_write_node(node); end
3528
+
3529
+ # source://spoom//lib/spoom/model/references_visitor.rb#60
3530
+ sig { override.params(node: ::Prism::CallOrWriteNode).void }
3531
+ def visit_call_or_write_node(node); end
3532
+
3533
+ # source://spoom//lib/spoom/model/references_visitor.rb#85
3534
+ sig { override.params(node: ::Prism::ClassNode).void }
3535
+ def visit_class_node(node); end
3536
+
3537
+ # source://spoom//lib/spoom/model/references_visitor.rb#91
3538
+ sig { override.params(node: ::Prism::ConstantAndWriteNode).void }
3539
+ def visit_constant_and_write_node(node); end
3540
+
3541
+ # source://spoom//lib/spoom/model/references_visitor.rb#97
3542
+ sig { override.params(node: ::Prism::ConstantOperatorWriteNode).void }
3543
+ def visit_constant_operator_write_node(node); end
3544
+
3545
+ # source://spoom//lib/spoom/model/references_visitor.rb#103
3546
+ sig { override.params(node: ::Prism::ConstantOrWriteNode).void }
3547
+ def visit_constant_or_write_node(node); end
3548
+
3549
+ # source://spoom//lib/spoom/model/references_visitor.rb#109
3550
+ sig { override.params(node: ::Prism::ConstantPathNode).void }
3551
+ def visit_constant_path_node(node); end
3552
+
3553
+ # source://spoom//lib/spoom/model/references_visitor.rb#115
3554
+ sig { override.params(node: ::Prism::ConstantPathWriteNode).void }
3555
+ def visit_constant_path_write_node(node); end
3556
+
3557
+ # source://spoom//lib/spoom/model/references_visitor.rb#121
3558
+ sig { override.params(node: ::Prism::ConstantReadNode).void }
3559
+ def visit_constant_read_node(node); end
3560
+
3561
+ # source://spoom//lib/spoom/model/references_visitor.rb#126
3562
+ sig { override.params(node: ::Prism::ConstantWriteNode).void }
3563
+ def visit_constant_write_node(node); end
3564
+
3565
+ # source://spoom//lib/spoom/model/references_visitor.rb#131
3566
+ sig { override.params(node: ::Prism::LocalVariableAndWriteNode).void }
3567
+ def visit_local_variable_and_write_node(node); end
3568
+
3569
+ # source://spoom//lib/spoom/model/references_visitor.rb#139
3570
+ sig { override.params(node: ::Prism::LocalVariableOperatorWriteNode).void }
3571
+ def visit_local_variable_operator_write_node(node); end
3572
+
3573
+ # source://spoom//lib/spoom/model/references_visitor.rb#147
3574
+ sig { override.params(node: ::Prism::LocalVariableOrWriteNode).void }
3575
+ def visit_local_variable_or_write_node(node); end
3576
+
3577
+ # source://spoom//lib/spoom/model/references_visitor.rb#155
3578
+ sig { override.params(node: ::Prism::LocalVariableWriteNode).void }
3579
+ def visit_local_variable_write_node(node); end
3580
+
3581
+ # source://spoom//lib/spoom/model/references_visitor.rb#161
3582
+ sig { override.params(node: ::Prism::ModuleNode).void }
3583
+ def visit_module_node(node); end
3584
+
3585
+ # source://spoom//lib/spoom/model/references_visitor.rb#166
3586
+ sig { override.params(node: ::Prism::MultiWriteNode).void }
3587
+ def visit_multi_write_node(node); end
3588
+
3589
+ # source://spoom//lib/spoom/model/references_visitor.rb#177
3590
+ sig { override.params(node: ::Prism::OrNode).void }
3591
+ def visit_or_node(node); end
3592
+
3593
+ private
3594
+
3595
+ # source://spoom//lib/spoom/model/references_visitor.rb#195
3596
+ sig { params(node: ::Prism::Node).returns(::Spoom::Location) }
3597
+ def node_location(node); end
3598
+
3599
+ # source://spoom//lib/spoom/model/references_visitor.rb#185
3600
+ sig { params(name: ::String, node: ::Prism::Node).void }
3601
+ def reference_constant(name, node); end
3602
+
3603
+ # source://spoom//lib/spoom/model/references_visitor.rb#190
3604
+ sig { params(name: ::String, node: ::Prism::Node).void }
3605
+ def reference_method(name, node); end
3606
+ end
3607
+
3608
+ # A Sorbet signature (sig block)
3609
+ #
3610
+ # source://spoom//lib/spoom/model/model.rb#216
3611
+ class Spoom::Model::Sig
3612
+ # source://spoom//lib/spoom/model/model.rb#223
3613
+ sig { params(string: ::String).void }
3614
+ def initialize(string); end
3615
+
3616
+ # source://spoom//lib/spoom/model/model.rb#220
3617
+ sig { returns(::String) }
3618
+ def string; end
3619
+ end
3620
+
3621
+ # source://spoom//lib/spoom/model/model.rb#115
3622
+ class Spoom::Model::SingletonClass < ::Spoom::Model::Namespace; end
3623
+
3624
+ # A Symbol is a uniquely named entity in the Ruby codebase
3625
+ #
3626
+ # A symbol can have multiple definitions, e.g. a class can be reopened.
3627
+ # Sometimes a symbol can have multiple definitions of different types,
3628
+ # e.g. `foo` method can be defined both as a method and as an attribute accessor.
3629
+ #
3630
+ # source://spoom//lib/spoom/model/model.rb#15
3631
+ class Spoom::Model::Symbol
3632
+ # source://spoom//lib/spoom/model/model.rb#27
3633
+ sig { params(full_name: ::String).void }
3634
+ def initialize(full_name); end
3635
+
3636
+ # The definitions of this symbol (where it exists in the code)
3637
+ #
3638
+ # source://spoom//lib/spoom/model/model.rb#24
3639
+ sig { returns(T::Array[::Spoom::Model::SymbolDef]) }
3640
+ def definitions; end
3641
+
3642
+ # The full, unique name of this symbol
3643
+ #
3644
+ # source://spoom//lib/spoom/model/model.rb#20
3645
+ sig { returns(::String) }
3646
+ def full_name; end
3647
+
3648
+ # The short name of this symbol
3649
+ #
3650
+ # source://spoom//lib/spoom/model/model.rb#34
3651
+ sig { returns(::String) }
3652
+ def name; end
3653
+
3654
+ # source://spoom//lib/spoom/model/model.rb#39
3655
+ sig { returns(::String) }
3656
+ def to_s; end
3657
+ end
3658
+
3659
+ # A SymbolDef is a definition of a Symbol
3660
+ #
3661
+ # It can be a class, module, constant, method, etc.
3662
+ # A SymbolDef has a location pointing to the actual code that defines the symbol.
3663
+ #
3664
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
3665
+ #
3666
+ # source://spoom//lib/spoom/model/model.rb#55
3667
+ class Spoom::Model::SymbolDef
3668
+ abstract!
3669
+
3670
+ # source://spoom//lib/spoom/model/model.rb#74
3671
+ sig do
3672
+ params(
3673
+ symbol: ::Spoom::Model::Symbol,
3674
+ owner: T.nilable(::Spoom::Model::Namespace),
3675
+ location: ::Spoom::Location
3676
+ ).void
3677
+ end
3678
+ def initialize(symbol, owner:, location:); end
3679
+
3680
+ # The full name of the symbol this definition belongs to
3681
+ #
3682
+ # source://spoom//lib/spoom/model/model.rb#85
3683
+ sig { returns(::String) }
3684
+ def full_name; end
3685
+
3686
+ # The actual code location of this definition
3687
+ #
3688
+ # source://spoom//lib/spoom/model/model.rb#71
3689
+ sig { returns(::Spoom::Location) }
3690
+ def location; end
3691
+
3692
+ # The short name of the symbol this definition belongs to
3693
+ #
3694
+ # source://spoom//lib/spoom/model/model.rb#91
3695
+ sig { returns(::String) }
3696
+ def name; end
3697
+
3698
+ # The enclosing namespace this definition belongs to
3699
+ #
3700
+ # source://spoom//lib/spoom/model/model.rb#67
3701
+ sig { returns(T.nilable(::Spoom::Model::Namespace)) }
3702
+ def owner; end
3703
+
3704
+ # The symbol this definition belongs to
3705
+ #
3706
+ # source://spoom//lib/spoom/model/model.rb#63
3707
+ sig { returns(::Spoom::Model::Symbol) }
3708
+ def symbol; end
3709
+ end
3710
+
3711
+ # source://spoom//lib/spoom/model/model.rb#44
3712
+ class Spoom::Model::UnresolvedSymbol < ::Spoom::Model::Symbol
3713
+ # source://spoom//lib/spoom/model/model.rb#46
3714
+ sig { override.returns(::String) }
3715
+ def to_s; end
3716
+ end
3717
+
3718
+ # source://spoom//lib/spoom/model/model.rb#187
3719
+ class Spoom::Model::Visibility < ::T::Enum
3720
+ enums do
3721
+ Private = new
3722
+ Protected = new
3723
+ Public = new
3724
+ end
3725
+ end
3726
+
3727
+ # source://spoom//lib/spoom/parse.rb#7
3728
+ class Spoom::ParseError < ::Spoom::Error; end
3729
+
3730
+ # A Poset is a set of elements with a partial order relation.
3731
+ #
3732
+ # The partial order relation is a binary relation that is reflexive, antisymmetric, and transitive.
3733
+ # It can be used to represent a hierarchy of classes or modules, the dependencies between gems, etc.
3734
+ #
3735
+ # source://spoom//lib/spoom/poset.rb#9
3736
+ class Spoom::Poset
3737
+ extend T::Generic
3738
+
3739
+ E = type_member { { upper: Object } }
3740
+
3741
+ # source://spoom//lib/spoom/poset.rb#18
3742
+ sig { void }
3743
+ def initialize; end
3744
+
3745
+ # Get the POSet element for a given value
3746
+ #
3747
+ # Raises if the element is not found
3748
+ #
3749
+ # @raise [Error]
3750
+ #
3751
+ # source://spoom//lib/spoom/poset.rb#26
3752
+ sig { params(value: E).returns(Spoom::Poset::Element[E]) }
3753
+ def [](value); end
3754
+
3755
+ # Add a direct edge from one element to another
3756
+ #
3757
+ # Transitive edges (transitive closure) are automatically computed.
3758
+ # Adds the elements if they don't exist.
3759
+ # If the direct edge already exists, nothing is done.
3760
+ #
3761
+ # source://spoom//lib/spoom/poset.rb#54
3762
+ sig { params(from: E, to: E).void }
3763
+ def add_direct_edge(from, to); end
3764
+
3765
+ # Add an element to the POSet
3766
+ #
3767
+ # source://spoom//lib/spoom/poset.rb#35
3768
+ sig { params(value: E).returns(Spoom::Poset::Element[E]) }
3769
+ def add_element(value); end
3770
+
3771
+ # Is there a direct edge from `from` to `to`?
3772
+ #
3773
+ # source://spoom//lib/spoom/poset.rb#101
3774
+ sig { params(from: E, to: E).returns(T::Boolean) }
3775
+ def direct_edge?(from, to); end
3776
+
3777
+ # Is there an edge (direct or indirect) from `from` to `to`?
3778
+ #
3779
+ # source://spoom//lib/spoom/poset.rb#92
3780
+ sig { params(from: E, to: E).returns(T::Boolean) }
3781
+ def edge?(from, to); end
3782
+
3783
+ # Is the given value a element in the POSet?
3784
+ #
3785
+ # source://spoom//lib/spoom/poset.rb#44
3786
+ sig { params(value: E).returns(T::Boolean) }
3787
+ def element?(value); end
3788
+
3789
+ # Show the POSet as a DOT graph using xdot (used for debugging)
3790
+ #
3791
+ # source://spoom//lib/spoom/poset.rb#107
3792
+ sig { params(direct: T::Boolean, transitive: T::Boolean).void }
3793
+ def show_dot(direct: T.unsafe(nil), transitive: T.unsafe(nil)); end
3794
+
3795
+ # Return the POSet as a DOT graph
3796
+ #
3797
+ # source://spoom//lib/spoom/poset.rb#116
3798
+ sig { params(direct: T::Boolean, transitive: T::Boolean).returns(::String) }
3799
+ def to_dot(direct: T.unsafe(nil), transitive: T.unsafe(nil)); end
3800
+ end
3801
+
3802
+ # An element in a POSet
3803
+ #
3804
+ # source://spoom//lib/spoom/poset.rb#136
3805
+ class Spoom::Poset::Element
3806
+ extend T::Generic
3807
+ include ::Comparable
3808
+
3809
+ E = type_member { { upper: Object } }
3810
+
3811
+ # source://spoom//lib/spoom/poset.rb#152
3812
+ sig { params(value: E).void }
3813
+ def initialize(value); end
3814
+
3815
+ # source://spoom//lib/spoom/poset.rb#161
3816
+ sig { params(other: T.untyped).returns(T.nilable(::Integer)) }
3817
+ def <=>(other); end
3818
+
3819
+ # Direct and indirect ancestors of this element
3820
+ #
3821
+ # source://spoom//lib/spoom/poset.rb#180
3822
+ sig { returns(T::Array[E]) }
3823
+ def ancestors; end
3824
+
3825
+ # Direct children of this element
3826
+ #
3827
+ # source://spoom//lib/spoom/poset.rb#186
3828
+ sig { returns(T::Array[E]) }
3829
+ def children; end
3830
+
3831
+ # Direct and indirect descendants of this element
3832
+ #
3833
+ # source://spoom//lib/spoom/poset.rb#192
3834
+ sig { returns(T::Array[E]) }
3835
+ def descendants; end
3836
+
3837
+ # Edges (direct and indirect) from this element to other elements in the same POSet
3838
+ #
3839
+ # @return [Set<Element[E]>]
3840
+ #
3841
+ # source://spoom//lib/spoom/poset.rb#149
3842
+ def dfroms; end
3843
+
3844
+ # Edges (direct and indirect) from this element to other elements in the same POSet
3845
+ #
3846
+ # source://spoom//lib/spoom/poset.rb#149
3847
+ sig { returns(T::Set[Spoom::Poset::Element[E]]) }
3848
+ def dtos; end
3849
+
3850
+ # Edges (direct and indirect) from this element to other elements in the same POSet
3851
+ #
3852
+ # @return [Set<Element[E]>]
3853
+ #
3854
+ # source://spoom//lib/spoom/poset.rb#149
3855
+ def froms; end
3856
+
3857
+ # Direct parents of this element
3858
+ #
3859
+ # source://spoom//lib/spoom/poset.rb#174
3860
+ sig { returns(T::Array[E]) }
3861
+ def parents; end
3862
+
3863
+ # Edges (direct and indirect) from this element to other elements in the same POSet
3864
+ #
3865
+ # @return [Set<Element[E]>]
3866
+ #
3867
+ # source://spoom//lib/spoom/poset.rb#149
3868
+ def tos; end
3869
+
3870
+ # The value held by this element
3871
+ #
3872
+ # source://spoom//lib/spoom/poset.rb#145
3873
+ sig { returns(E) }
3874
+ def value; end
3875
+ end
3876
+
3877
+ # source://spoom//lib/spoom/poset.rb#13
3878
+ class Spoom::Poset::Error < ::Spoom::Error; end
3879
+
3880
+ # source://spoom//lib/spoom/printer.rb#7
3881
+ class Spoom::Printer
3882
+ include ::Spoom::Colorize
3883
+
3884
+ # source://spoom//lib/spoom/printer.rb#17
3885
+ sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean, indent_level: ::Integer).void }
3886
+ def initialize(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
3887
+
3888
+ # Colorize `string` with color if `@colors`
3889
+ #
3890
+ # source://spoom//lib/spoom/printer.rb#78
3891
+ sig { params(string: ::String, color: ::Spoom::Color).returns(::String) }
3892
+ def colorize(string, *color); end
3893
+
3894
+ # Decrease indent level
3895
+ #
3896
+ # source://spoom//lib/spoom/printer.rb#31
3897
+ sig { void }
3898
+ def dedent; end
3899
+
3900
+ # Increase indent level
3901
+ #
3902
+ # source://spoom//lib/spoom/printer.rb#25
3903
+ sig { void }
3904
+ def indent; end
3905
+
3906
+ # source://spoom//lib/spoom/printer.rb#14
3907
+ sig { returns(T.any(::IO, ::StringIO)) }
3908
+ def out; end
3909
+
3910
+ # @return [IO, StringIO]
3911
+ #
3912
+ # source://spoom//lib/spoom/printer.rb#14
3913
+ def out=(_arg0); end
3914
+
3915
+ # Print `string` into `out`
3916
+ #
3917
+ # source://spoom//lib/spoom/printer.rb#37
3918
+ sig { params(string: T.nilable(::String)).void }
3919
+ def print(string); end
3920
+
3921
+ # Print `string` colored with `color` into `out`
3922
+ #
3923
+ # Does not use colors unless `@colors`.
3924
+ #
3925
+ # source://spoom//lib/spoom/printer.rb#47
3926
+ sig { params(string: T.nilable(::String), color: ::Spoom::Color).void }
3927
+ def print_colored(string, *color); end
3928
+
3929
+ # Print `string` with indent and newline
3930
+ #
3931
+ # source://spoom//lib/spoom/printer.rb#62
3932
+ sig { params(string: T.nilable(::String)).void }
3933
+ def printl(string); end
3934
+
3935
+ # Print a new line into `out`
3936
+ #
3937
+ # source://spoom//lib/spoom/printer.rb#56
3938
+ sig { void }
3939
+ def printn; end
3940
+
3941
+ # Print an indent space into `out`
3942
+ #
3943
+ # source://spoom//lib/spoom/printer.rb#72
3944
+ sig { void }
3945
+ def printt; end
3946
+ end
3947
+
3948
+ # source://spoom//lib/spoom.rb#10
3949
+ Spoom::SPOOM_PATH = T.let(T.unsafe(nil), String)
3950
+
3951
+ # source://spoom//lib/spoom/sorbet/config.rb#5
3952
+ module Spoom::Sorbet; end
3953
+
3954
+ # source://spoom//lib/spoom/sorbet.rb#39
3955
+ Spoom::Sorbet::BIN_PATH = T.let(T.unsafe(nil), String)
3956
+
3957
+ # source://spoom//lib/spoom/sorbet.rb#36
3958
+ Spoom::Sorbet::CONFIG_PATH = T.let(T.unsafe(nil), String)
3959
+
3960
+ # Parse Sorbet config files
3961
+ #
3962
+ # Parses a Sorbet config file:
3963
+ #
3964
+ # ```ruby
3965
+ # config = Spoom::Sorbet::Config.parse_file("sorbet/config")
3966
+ # puts config.paths # "."
3967
+ # ```
3968
+ #
3969
+ # Parses a Sorbet config string:
3970
+ #
3971
+ # ```ruby
3972
+ # config = Spoom::Sorbet::Config.parse_string(<<~CONFIG)
3973
+ # a
3974
+ # --file=b
3975
+ # --ignore=c
3976
+ # CONFIG
3977
+ # puts config.paths # "a", "b"
3978
+ # puts config.ignore # "c"
3979
+ # ```
3980
+ #
3981
+ # source://spoom//lib/spoom/sorbet/config.rb#26
3982
+ class Spoom::Sorbet::Config
3983
+ # source://spoom//lib/spoom/sorbet/config.rb#38
3984
+ sig { void }
3985
+ def initialize; end
3986
+
3987
+ # @return [Array<String>]
3988
+ #
3989
+ # source://spoom//lib/spoom/sorbet/config.rb#32
3990
+ def allowed_extensions; end
3991
+
3992
+ # @return [Array<String>]
3993
+ #
3994
+ # source://spoom//lib/spoom/sorbet/config.rb#32
3995
+ def allowed_extensions=(_arg0); end
3996
+
3997
+ # source://spoom//lib/spoom/sorbet/config.rb#46
3998
+ sig { returns(::Spoom::Sorbet::Config) }
3999
+ def copy; end
4000
+
4001
+ # @return [Array<String>]
4002
+ #
4003
+ # source://spoom//lib/spoom/sorbet/config.rb#32
4004
+ def ignore; end
4005
+
4006
+ # @return [Array<String>]
4007
+ #
4008
+ # source://spoom//lib/spoom/sorbet/config.rb#32
4009
+ def ignore=(_arg0); end
4010
+
4011
+ # source://spoom//lib/spoom/sorbet/config.rb#35
4012
+ sig { returns(T::Boolean) }
4013
+ def no_stdlib; end
4014
+
4015
+ # @return [Boolean]
4016
+ #
4017
+ # source://spoom//lib/spoom/sorbet/config.rb#35
4018
+ def no_stdlib=(_arg0); end
4019
+
4020
+ # Returns self as a string of options that can be passed to Sorbet
4021
+ #
4022
+ # Example:
4023
+ # ~~~rb
4024
+ # config = Sorbet::Config.new
4025
+ # config.paths << "/foo"
4026
+ # config.paths << "/bar"
4027
+ # config.ignore << "/baz"
4028
+ # config.allowed_extensions << ".rb"
4029
+ #
4030
+ # puts config.options_string # "/foo /bar --ignore /baz --allowed-extension .rb"
4031
+ # ~~~
4032
+ #
4033
+ # source://spoom//lib/spoom/sorbet/config.rb#68
4034
+ sig { returns(::String) }
4035
+ def options_string; end
4036
+
4037
+ # source://spoom//lib/spoom/sorbet/config.rb#32
4038
+ sig { returns(T::Array[::String]) }
4039
+ def paths; end
4040
+
4041
+ # @return [Array<String>]
4042
+ #
4043
+ # source://spoom//lib/spoom/sorbet/config.rb#32
4044
+ def paths=(_arg0); end
4045
+
4046
+ class << self
4047
+ # source://spoom//lib/spoom/sorbet/config.rb#81
4048
+ sig { params(sorbet_config_path: ::String).returns(::Spoom::Sorbet::Config) }
4049
+ def parse_file(sorbet_config_path); end
4050
+
4051
+ # source://spoom//lib/spoom/sorbet/config.rb#86
4052
+ sig { params(sorbet_config: ::String).returns(::Spoom::Sorbet::Config) }
4053
+ def parse_string(sorbet_config); end
4054
+
4055
+ private
4056
+
4057
+ # source://spoom//lib/spoom/sorbet/config.rb#150
4058
+ sig { params(line: ::String).returns(::String) }
4059
+ def parse_option(line); end
4060
+ end
4061
+ end
4062
+
4063
+ # source://spoom//lib/spoom/sorbet/config.rb#29
4064
+ Spoom::Sorbet::Config::DEFAULT_ALLOWED_EXTENSIONS = T.let(T.unsafe(nil), Array)
4065
+
4066
+ # source://spoom//lib/spoom/sorbet.rb#14
4067
+ class Spoom::Sorbet::Error < ::Spoom::Error
4068
+ # source://spoom//lib/spoom/sorbet.rb#29
4069
+ sig { params(message: ::String, result: ::Spoom::ExecResult).void }
4070
+ def initialize(message, result); end
4071
+
4072
+ # source://spoom//lib/spoom/sorbet.rb#21
4073
+ sig { returns(::Spoom::ExecResult) }
4074
+ def result; end
4075
+ end
4076
+
4077
+ # source://spoom//lib/spoom/sorbet.rb#17
4078
+ class Spoom::Sorbet::Error::Killed < ::Spoom::Sorbet::Error; end
4079
+
4080
+ # source://spoom//lib/spoom/sorbet.rb#18
4081
+ class Spoom::Sorbet::Error::Segfault < ::Spoom::Sorbet::Error; end
4082
+
4083
+ # source://spoom//lib/spoom/sorbet/errors.rb#6
4084
+ module Spoom::Sorbet::Errors
4085
+ class << self
4086
+ # source://spoom//lib/spoom/sorbet/errors.rb#13
4087
+ sig { params(errors: T::Array[::Spoom::Sorbet::Errors::Error]).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
4088
+ def sort_errors_by_code(errors); end
4089
+ end
4090
+ end
4091
+
4092
+ # source://spoom//lib/spoom/sorbet/errors.rb#7
4093
+ Spoom::Sorbet::Errors::DEFAULT_ERROR_URL_BASE = T.let(T.unsafe(nil), String)
4094
+
4095
+ # source://spoom//lib/spoom/sorbet/errors.rb#127
4096
+ class Spoom::Sorbet::Errors::Error
4097
+ include ::Comparable
4098
+
4099
+ # source://spoom//lib/spoom/sorbet/errors.rb#153
4100
+ sig do
4101
+ params(
4102
+ file: T.nilable(::String),
4103
+ line: T.nilable(::Integer),
4104
+ message: T.nilable(::String),
4105
+ code: T.nilable(::Integer),
4106
+ more: T::Array[::String]
4107
+ ).void
4108
+ end
4109
+ def initialize(file, line, message, code, more = T.unsafe(nil)); end
4110
+
4111
+ # By default errors are sorted by location
4112
+ #
4113
+ # source://spoom//lib/spoom/sorbet/errors.rb#164
4114
+ sig { params(other: T.untyped).returns(::Integer) }
4115
+ def <=>(other); end
4116
+
4117
+ # @return [Integer, nil]
4118
+ #
4119
+ # source://spoom//lib/spoom/sorbet/errors.rb#135
4120
+ def code; end
4121
+
4122
+ # source://spoom//lib/spoom/sorbet/errors.rb#132
4123
+ sig { returns(T.nilable(::String)) }
4124
+ def file; end
4125
+
4126
+ # Other files associated with the error
4127
+ #
4128
+ # source://spoom//lib/spoom/sorbet/errors.rb#142
4129
+ sig { returns(T::Set[::String]) }
4130
+ def files_from_error_sections; end
4131
+
4132
+ # source://spoom//lib/spoom/sorbet/errors.rb#135
4133
+ sig { returns(T.nilable(::Integer)) }
4134
+ def line; end
4135
+
4136
+ # @return [String, nil]
4137
+ #
4138
+ # source://spoom//lib/spoom/sorbet/errors.rb#132
4139
+ def message; end
4140
+
4141
+ # source://spoom//lib/spoom/sorbet/errors.rb#138
4142
+ sig { returns(T::Array[::String]) }
4143
+ def more; end
4144
+
4145
+ # source://spoom//lib/spoom/sorbet/errors.rb#171
4146
+ sig { returns(::String) }
4147
+ def to_s; end
4148
+ end
4149
+
4150
+ # Parse errors from Sorbet output
4151
+ #
4152
+ # source://spoom//lib/spoom/sorbet/errors.rb#18
4153
+ class Spoom::Sorbet::Errors::Parser
4154
+ # source://spoom//lib/spoom/sorbet/errors.rb#45
4155
+ sig { params(error_url_base: ::String).void }
4156
+ def initialize(error_url_base: T.unsafe(nil)); end
4157
+
4158
+ # source://spoom//lib/spoom/sorbet/errors.rb#52
4159
+ sig { params(output: ::String).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
4160
+ def parse(output); end
4161
+
4162
+ private
4163
+
4164
+ # @raise [ParseError]
4165
+ #
4166
+ # source://spoom//lib/spoom/sorbet/errors.rb#116
4167
+ sig { params(line: ::String).void }
4168
+ def append_error(line); end
4169
+
4170
+ # @raise [ParseError]
4171
+ #
4172
+ # source://spoom//lib/spoom/sorbet/errors.rb#108
4173
+ sig { void }
4174
+ def close_error; end
4175
+
4176
+ # source://spoom//lib/spoom/sorbet/errors.rb#75
4177
+ sig { params(error_url_base: ::String).returns(::Regexp) }
4178
+ def error_line_match_regexp(error_url_base); end
4179
+
4180
+ # source://spoom//lib/spoom/sorbet/errors.rb#92
4181
+ sig { params(line: ::String).returns(T.nilable(::Spoom::Sorbet::Errors::Error)) }
4182
+ def match_error_line(line); end
4183
+
4184
+ # @raise [ParseError]
4185
+ #
4186
+ # source://spoom//lib/spoom/sorbet/errors.rb#101
4187
+ sig { params(error: ::Spoom::Sorbet::Errors::Error).void }
4188
+ def open_error(error); end
4189
+
4190
+ class << self
4191
+ # source://spoom//lib/spoom/sorbet/errors.rb#38
4192
+ sig { params(output: ::String, error_url_base: ::String).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
4193
+ def parse_string(output, error_url_base: T.unsafe(nil)); end
4194
+ end
4195
+ end
4196
+
4197
+ # source://spoom//lib/spoom/sorbet/errors.rb#23
4198
+ Spoom::Sorbet::Errors::Parser::HEADER = T.let(T.unsafe(nil), Array)
4199
+
4200
+ # source://spoom//lib/spoom/sorbet/errors.rb#21
4201
+ class Spoom::Sorbet::Errors::Parser::ParseError < ::Spoom::Error; end
4202
+
4203
+ # source://spoom//lib/spoom/sorbet.rb#37
4204
+ Spoom::Sorbet::GEM_PATH = T.let(T.unsafe(nil), String)
4205
+
4206
+ # source://spoom//lib/spoom/sorbet.rb#38
4207
+ Spoom::Sorbet::GEM_VERSION = T.let(T.unsafe(nil), String)
4208
+
4209
+ # source://spoom//lib/spoom/sorbet.rb#41
4210
+ Spoom::Sorbet::KILLED_CODE = T.let(T.unsafe(nil), Integer)
4211
+
4212
+ # source://spoom//lib/spoom/sorbet/metrics.rb#8
4213
+ module Spoom::Sorbet::MetricsParser
4214
+ class << self
4215
+ # source://spoom//lib/spoom/sorbet/metrics.rb#15
4216
+ sig { params(path: ::String, prefix: ::String).returns(T::Hash[::String, ::Integer]) }
4217
+ def parse_file(path, prefix = T.unsafe(nil)); end
4218
+
4219
+ # source://spoom//lib/spoom/sorbet/metrics.rb#25
4220
+ sig { params(obj: T::Hash[::String, T.untyped], prefix: ::String).returns(T::Hash[::String, ::Integer]) }
4221
+ def parse_hash(obj, prefix = T.unsafe(nil)); end
4222
+
4223
+ # source://spoom//lib/spoom/sorbet/metrics.rb#20
4224
+ sig { params(string: ::String, prefix: ::String).returns(T::Hash[::String, ::Integer]) }
4225
+ def parse_string(string, prefix = T.unsafe(nil)); end
4226
+ end
4227
+ end
4228
+
4229
+ # source://spoom//lib/spoom/sorbet/metrics.rb#9
4230
+ Spoom::Sorbet::MetricsParser::DEFAULT_PREFIX = T.let(T.unsafe(nil), String)
4231
+
4232
+ # source://spoom//lib/spoom/sorbet.rb#42
4233
+ Spoom::Sorbet::SEGFAULT_CODE = T.let(T.unsafe(nil), Integer)
4234
+
4235
+ # source://spoom//lib/spoom/sorbet/sigils.rb#9
4236
+ module Spoom::Sorbet::Sigils
4237
+ class << self
4238
+ # changes the sigil in the file at the passed path to the specified new strictness
4239
+ #
4240
+ # source://spoom//lib/spoom/sorbet/sigils.rb#72
4241
+ sig { params(path: T.any(::Pathname, ::String), new_strictness: ::String).returns(T::Boolean) }
4242
+ def change_sigil_in_file(path, new_strictness); end
4243
+
4244
+ # changes the sigil to have a new strictness in a list of files
4245
+ #
4246
+ # source://spoom//lib/spoom/sorbet/sigils.rb#83
4247
+ sig { params(path_list: T::Array[::String], new_strictness: ::String).returns(T::Array[::String]) }
4248
+ def change_sigil_in_files(path_list, new_strictness); end
4249
+
4250
+ # returns a string containing the strictness of a sigil in a file at the passed path
4251
+ # * returns nil if no sigil
4252
+ #
4253
+ # source://spoom//lib/spoom/sorbet/sigils.rb#63
4254
+ sig { params(path: T.any(::Pathname, ::String)).returns(T.nilable(::String)) }
4255
+ def file_strictness(path); end
4256
+
4257
+ # returns the full sigil comment string for the passed strictness
4258
+ #
4259
+ # source://spoom//lib/spoom/sorbet/sigils.rb#38
4260
+ sig { params(strictness: ::String).returns(::String) }
4261
+ def sigil_string(strictness); end
4262
+
4263
+ # returns the strictness of a sigil in the passed file content string (nil if no sigil)
4264
+ #
4265
+ # source://spoom//lib/spoom/sorbet/sigils.rb#50
4266
+ sig { params(content: ::String).returns(T.nilable(::String)) }
4267
+ def strictness_in_content(content); end
4268
+
4269
+ # returns a string which is the passed content but with the sigil updated to a new strictness
4270
+ #
4271
+ # source://spoom//lib/spoom/sorbet/sigils.rb#56
4272
+ sig { params(content: ::String, new_strictness: ::String).returns(::String) }
4273
+ def update_sigil(content, new_strictness); end
4274
+
4275
+ # returns true if the passed string is a valid strictness (else false)
4276
+ #
4277
+ # source://spoom//lib/spoom/sorbet/sigils.rb#44
4278
+ sig { params(strictness: ::String).returns(T::Boolean) }
4279
+ def valid_strictness?(strictness); end
4280
+ end
4281
+ end
4282
+
4283
+ # source://spoom//lib/spoom/sorbet/sigils.rb#31
4284
+ Spoom::Sorbet::Sigils::SIGIL_REGEXP = T.let(T.unsafe(nil), Regexp)
4285
+
4286
+ # source://spoom//lib/spoom/sorbet/sigils.rb#13
4287
+ Spoom::Sorbet::Sigils::STRICTNESS_FALSE = T.let(T.unsafe(nil), String)
4288
+
4289
+ # source://spoom//lib/spoom/sorbet/sigils.rb#12
4290
+ Spoom::Sorbet::Sigils::STRICTNESS_IGNORE = T.let(T.unsafe(nil), String)
4291
+
4292
+ # source://spoom//lib/spoom/sorbet/sigils.rb#17
4293
+ Spoom::Sorbet::Sigils::STRICTNESS_INTERNAL = T.let(T.unsafe(nil), String)
4294
+
4295
+ # source://spoom//lib/spoom/sorbet/sigils.rb#15
4296
+ Spoom::Sorbet::Sigils::STRICTNESS_STRICT = T.let(T.unsafe(nil), String)
4297
+
4298
+ # source://spoom//lib/spoom/sorbet/sigils.rb#16
4299
+ Spoom::Sorbet::Sigils::STRICTNESS_STRONG = T.let(T.unsafe(nil), String)
4300
+
4301
+ # source://spoom//lib/spoom/sorbet/sigils.rb#14
4302
+ Spoom::Sorbet::Sigils::STRICTNESS_TRUE = T.let(T.unsafe(nil), String)
4303
+
4304
+ # source://spoom//lib/spoom/sorbet/sigils.rb#19
4305
+ Spoom::Sorbet::Sigils::VALID_STRICTNESS = T.let(T.unsafe(nil), Array)
4306
+
4307
+ # source://spoom//lib/spoom/timeline.rb#5
4308
+ class Spoom::Timeline
4309
+ # source://spoom//lib/spoom/timeline.rb#9
4310
+ sig { params(context: ::Spoom::Context, from: ::Time, to: ::Time).void }
4311
+ def initialize(context, from, to); end
4312
+
4313
+ # Return one commit for each date in `dates`
4314
+ #
4315
+ # source://spoom//lib/spoom/timeline.rb#36
4316
+ sig { params(dates: T::Array[::Time]).returns(T::Array[::Spoom::Git::Commit]) }
4317
+ def commits_for_dates(dates); end
4318
+
4319
+ # Return all months between `from` and `to`
4320
+ #
4321
+ # source://spoom//lib/spoom/timeline.rb#23
4322
+ sig { returns(T::Array[::Time]) }
4323
+ def months; end
4324
+
4325
+ # Return one commit for each month between `from` and `to`
4326
+ #
4327
+ # source://spoom//lib/spoom/timeline.rb#17
4328
+ sig { returns(T::Array[::Spoom::Git::Commit]) }
4329
+ def ticks; end
4330
+ end
4331
+
4332
+ # source://spoom//lib/spoom/version.rb#5
4333
+ Spoom::VERSION = T.let(T.unsafe(nil), String)
4334
+
4335
+ # source://spoom//lib/spoom/visitor.rb#7
4336
+ class Spoom::Visitor < ::Prism::Visitor
4337
+ # source://spoom//lib/spoom/visitor.rb#16
4338
+ sig { override.params(node: ::Prism::AliasGlobalVariableNode).void }
4339
+ def visit_alias_global_variable_node(node); end
4340
+
4341
+ # source://spoom//lib/spoom/visitor.rb#21
4342
+ sig { override.params(node: ::Prism::AliasMethodNode).void }
4343
+ def visit_alias_method_node(node); end
4344
+
4345
+ # source://spoom//lib/spoom/visitor.rb#26
4346
+ sig { override.params(node: ::Prism::AlternationPatternNode).void }
4347
+ def visit_alternation_pattern_node(node); end
4348
+
4349
+ # source://spoom//lib/spoom/visitor.rb#31
4350
+ sig { override.params(node: ::Prism::AndNode).void }
4351
+ def visit_and_node(node); end
4352
+
4353
+ # source://spoom//lib/spoom/visitor.rb#36
4354
+ sig { override.params(node: ::Prism::ArgumentsNode).void }
4355
+ def visit_arguments_node(node); end
4356
+
4357
+ # source://spoom//lib/spoom/visitor.rb#41
4358
+ sig { override.params(node: ::Prism::ArrayNode).void }
4359
+ def visit_array_node(node); end
4360
+
4361
+ # source://spoom//lib/spoom/visitor.rb#46
4362
+ sig { override.params(node: ::Prism::ArrayPatternNode).void }
4363
+ def visit_array_pattern_node(node); end
4364
+
4365
+ # source://spoom//lib/spoom/visitor.rb#51
4366
+ sig { override.params(node: ::Prism::AssocNode).void }
4367
+ def visit_assoc_node(node); end
4368
+
4369
+ # source://spoom//lib/spoom/visitor.rb#56
4370
+ sig { override.params(node: ::Prism::AssocSplatNode).void }
4371
+ def visit_assoc_splat_node(node); end
4372
+
4373
+ # source://spoom//lib/spoom/visitor.rb#61
4374
+ sig { override.params(node: ::Prism::BackReferenceReadNode).void }
4375
+ def visit_back_reference_read_node(node); end
4376
+
4377
+ # source://spoom//lib/spoom/visitor.rb#66
4378
+ sig { override.params(node: ::Prism::BeginNode).void }
4379
+ def visit_begin_node(node); end
4380
+
4381
+ # source://spoom//lib/spoom/visitor.rb#71
4382
+ sig { override.params(node: ::Prism::BlockArgumentNode).void }
4383
+ def visit_block_argument_node(node); end
4384
+
4385
+ # source://spoom//lib/spoom/visitor.rb#76
4386
+ sig { override.params(node: ::Prism::BlockLocalVariableNode).void }
4387
+ def visit_block_local_variable_node(node); end
4388
+
4389
+ # source://spoom//lib/spoom/visitor.rb#81
4390
+ sig { override.params(node: ::Prism::BlockNode).void }
4391
+ def visit_block_node(node); end
4392
+
4393
+ # source://spoom//lib/spoom/visitor.rb#86
4394
+ sig { override.params(node: ::Prism::BlockParameterNode).void }
4395
+ def visit_block_parameter_node(node); end
4396
+
4397
+ # source://spoom//lib/spoom/visitor.rb#91
4398
+ sig { override.params(node: ::Prism::BlockParametersNode).void }
4399
+ def visit_block_parameters_node(node); end
4400
+
4401
+ # source://spoom//lib/spoom/visitor.rb#96
4402
+ sig { override.params(node: ::Prism::BreakNode).void }
4403
+ def visit_break_node(node); end
4404
+
4405
+ # source://spoom//lib/spoom/visitor.rb#101
4406
+ sig { override.params(node: ::Prism::CallAndWriteNode).void }
4407
+ def visit_call_and_write_node(node); end
4408
+
4409
+ # source://spoom//lib/spoom/visitor.rb#106
4410
+ sig { override.params(node: ::Prism::CallNode).void }
4411
+ def visit_call_node(node); end
4412
+
4413
+ # source://spoom//lib/spoom/visitor.rb#111
4414
+ sig { override.params(node: ::Prism::CallOperatorWriteNode).void }
4415
+ def visit_call_operator_write_node(node); end
4416
+
4417
+ # source://spoom//lib/spoom/visitor.rb#116
4418
+ sig { override.params(node: ::Prism::CallOrWriteNode).void }
4419
+ def visit_call_or_write_node(node); end
4420
+
4421
+ # source://spoom//lib/spoom/visitor.rb#121
4422
+ sig { override.params(node: ::Prism::CallTargetNode).void }
4423
+ def visit_call_target_node(node); end
4424
+
4425
+ # source://spoom//lib/spoom/visitor.rb#126
4426
+ sig { override.params(node: ::Prism::CapturePatternNode).void }
4427
+ def visit_capture_pattern_node(node); end
4428
+
4429
+ # source://spoom//lib/spoom/visitor.rb#131
4430
+ sig { override.params(node: ::Prism::CaseMatchNode).void }
4431
+ def visit_case_match_node(node); end
4432
+
4433
+ # source://spoom//lib/spoom/visitor.rb#136
4434
+ sig { override.params(node: ::Prism::CaseNode).void }
4435
+ def visit_case_node(node); end
4436
+
4437
+ # source://spoom//lib/spoom/visitor.rb#11
4438
+ sig { override.params(node: ::Prism::Node).void }
4439
+ def visit_child_nodes(node); end
4440
+
4441
+ # source://spoom//lib/spoom/visitor.rb#141
4442
+ sig { override.params(node: ::Prism::ClassNode).void }
4443
+ def visit_class_node(node); end
4444
+
4445
+ # source://spoom//lib/spoom/visitor.rb#146
4446
+ sig { override.params(node: ::Prism::ClassVariableAndWriteNode).void }
4447
+ def visit_class_variable_and_write_node(node); end
4448
+
4449
+ # source://spoom//lib/spoom/visitor.rb#151
4450
+ sig { override.params(node: ::Prism::ClassVariableOperatorWriteNode).void }
4451
+ def visit_class_variable_operator_write_node(node); end
4452
+
4453
+ # source://spoom//lib/spoom/visitor.rb#156
4454
+ sig { override.params(node: ::Prism::ClassVariableOrWriteNode).void }
4455
+ def visit_class_variable_or_write_node(node); end
4456
+
4457
+ # source://spoom//lib/spoom/visitor.rb#161
4458
+ sig { override.params(node: ::Prism::ClassVariableReadNode).void }
4459
+ def visit_class_variable_read_node(node); end
4460
+
4461
+ # source://spoom//lib/spoom/visitor.rb#166
4462
+ sig { override.params(node: ::Prism::ClassVariableTargetNode).void }
4463
+ def visit_class_variable_target_node(node); end
4464
+
4465
+ # source://spoom//lib/spoom/visitor.rb#171
4466
+ sig { override.params(node: ::Prism::ClassVariableWriteNode).void }
4467
+ def visit_class_variable_write_node(node); end
4468
+
4469
+ # source://spoom//lib/spoom/visitor.rb#176
4470
+ sig { override.params(node: ::Prism::ConstantAndWriteNode).void }
4471
+ def visit_constant_and_write_node(node); end
4472
+
4473
+ # source://spoom//lib/spoom/visitor.rb#181
4474
+ sig { override.params(node: ::Prism::ConstantOperatorWriteNode).void }
4475
+ def visit_constant_operator_write_node(node); end
4476
+
4477
+ # source://spoom//lib/spoom/visitor.rb#186
4478
+ sig { override.params(node: ::Prism::ConstantOrWriteNode).void }
4479
+ def visit_constant_or_write_node(node); end
4480
+
4481
+ # source://spoom//lib/spoom/visitor.rb#191
4482
+ sig { override.params(node: ::Prism::ConstantPathAndWriteNode).void }
4483
+ def visit_constant_path_and_write_node(node); end
4484
+
4485
+ # source://spoom//lib/spoom/visitor.rb#196
4486
+ sig { override.params(node: ::Prism::ConstantPathNode).void }
4487
+ def visit_constant_path_node(node); end
4488
+
4489
+ # source://spoom//lib/spoom/visitor.rb#201
4490
+ sig { override.params(node: ::Prism::ConstantPathOperatorWriteNode).void }
4491
+ def visit_constant_path_operator_write_node(node); end
4492
+
4493
+ # source://spoom//lib/spoom/visitor.rb#206
4494
+ sig { override.params(node: ::Prism::ConstantPathOrWriteNode).void }
4495
+ def visit_constant_path_or_write_node(node); end
4496
+
4497
+ # source://spoom//lib/spoom/visitor.rb#211
4498
+ sig { override.params(node: ::Prism::ConstantPathTargetNode).void }
4499
+ def visit_constant_path_target_node(node); end
4500
+
4501
+ # source://spoom//lib/spoom/visitor.rb#216
4502
+ sig { override.params(node: ::Prism::ConstantPathWriteNode).void }
4503
+ def visit_constant_path_write_node(node); end
4504
+
4505
+ # source://spoom//lib/spoom/visitor.rb#221
4506
+ sig { override.params(node: ::Prism::ConstantReadNode).void }
4507
+ def visit_constant_read_node(node); end
4508
+
4509
+ # source://spoom//lib/spoom/visitor.rb#226
4510
+ sig { override.params(node: ::Prism::ConstantTargetNode).void }
4511
+ def visit_constant_target_node(node); end
4512
+
4513
+ # source://spoom//lib/spoom/visitor.rb#231
4514
+ sig { override.params(node: ::Prism::ConstantWriteNode).void }
4515
+ def visit_constant_write_node(node); end
4516
+
4517
+ # source://spoom//lib/spoom/visitor.rb#236
4518
+ sig { override.params(node: ::Prism::DefNode).void }
4519
+ def visit_def_node(node); end
4520
+
4521
+ # source://spoom//lib/spoom/visitor.rb#241
4522
+ sig { override.params(node: ::Prism::DefinedNode).void }
4523
+ def visit_defined_node(node); end
4524
+
4525
+ # source://spoom//lib/spoom/visitor.rb#246
4526
+ sig { override.params(node: ::Prism::ElseNode).void }
4527
+ def visit_else_node(node); end
4528
+
4529
+ # source://spoom//lib/spoom/visitor.rb#251
4530
+ sig { override.params(node: ::Prism::EmbeddedStatementsNode).void }
4531
+ def visit_embedded_statements_node(node); end
4532
+
4533
+ # source://spoom//lib/spoom/visitor.rb#256
4534
+ sig { override.params(node: ::Prism::EmbeddedVariableNode).void }
4535
+ def visit_embedded_variable_node(node); end
4536
+
4537
+ # source://spoom//lib/spoom/visitor.rb#261
4538
+ sig { override.params(node: ::Prism::EnsureNode).void }
4539
+ def visit_ensure_node(node); end
4540
+
4541
+ # source://spoom//lib/spoom/visitor.rb#266
4542
+ sig { override.params(node: ::Prism::FalseNode).void }
4543
+ def visit_false_node(node); end
4544
+
4545
+ # source://spoom//lib/spoom/visitor.rb#271
4546
+ sig { override.params(node: ::Prism::FindPatternNode).void }
4547
+ def visit_find_pattern_node(node); end
4548
+
4549
+ # source://spoom//lib/spoom/visitor.rb#276
4550
+ sig { override.params(node: ::Prism::FlipFlopNode).void }
4551
+ def visit_flip_flop_node(node); end
4552
+
4553
+ # source://spoom//lib/spoom/visitor.rb#281
4554
+ sig { override.params(node: ::Prism::FloatNode).void }
4555
+ def visit_float_node(node); end
4556
+
4557
+ # source://spoom//lib/spoom/visitor.rb#286
4558
+ sig { override.params(node: ::Prism::ForNode).void }
4559
+ def visit_for_node(node); end
4560
+
4561
+ # source://spoom//lib/spoom/visitor.rb#291
4562
+ sig { override.params(node: ::Prism::ForwardingArgumentsNode).void }
4563
+ def visit_forwarding_arguments_node(node); end
4564
+
4565
+ # source://spoom//lib/spoom/visitor.rb#296
4566
+ sig { override.params(node: ::Prism::ForwardingParameterNode).void }
4567
+ def visit_forwarding_parameter_node(node); end
4568
+
4569
+ # source://spoom//lib/spoom/visitor.rb#301
4570
+ sig { override.params(node: ::Prism::ForwardingSuperNode).void }
4571
+ def visit_forwarding_super_node(node); end
4572
+
4573
+ # source://spoom//lib/spoom/visitor.rb#306
4574
+ sig { override.params(node: ::Prism::GlobalVariableAndWriteNode).void }
4575
+ def visit_global_variable_and_write_node(node); end
4576
+
4577
+ # source://spoom//lib/spoom/visitor.rb#311
4578
+ sig { override.params(node: ::Prism::GlobalVariableOperatorWriteNode).void }
4579
+ def visit_global_variable_operator_write_node(node); end
4580
+
4581
+ # source://spoom//lib/spoom/visitor.rb#316
4582
+ sig { override.params(node: ::Prism::GlobalVariableOrWriteNode).void }
4583
+ def visit_global_variable_or_write_node(node); end
4584
+
4585
+ # source://spoom//lib/spoom/visitor.rb#321
4586
+ sig { override.params(node: ::Prism::GlobalVariableReadNode).void }
4587
+ def visit_global_variable_read_node(node); end
4588
+
4589
+ # source://spoom//lib/spoom/visitor.rb#326
4590
+ sig { override.params(node: ::Prism::GlobalVariableTargetNode).void }
4591
+ def visit_global_variable_target_node(node); end
4592
+
4593
+ # source://spoom//lib/spoom/visitor.rb#331
4594
+ sig { override.params(node: ::Prism::GlobalVariableWriteNode).void }
4595
+ def visit_global_variable_write_node(node); end
4596
+
4597
+ # source://spoom//lib/spoom/visitor.rb#336
4598
+ sig { override.params(node: ::Prism::HashNode).void }
4599
+ def visit_hash_node(node); end
4600
+
4601
+ # source://spoom//lib/spoom/visitor.rb#341
4602
+ sig { override.params(node: ::Prism::HashPatternNode).void }
4603
+ def visit_hash_pattern_node(node); end
4604
+
4605
+ # source://spoom//lib/spoom/visitor.rb#346
4606
+ sig { override.params(node: ::Prism::IfNode).void }
4607
+ def visit_if_node(node); end
4608
+
4609
+ # source://spoom//lib/spoom/visitor.rb#351
4610
+ sig { override.params(node: ::Prism::ImaginaryNode).void }
4611
+ def visit_imaginary_node(node); end
4612
+
4613
+ # source://spoom//lib/spoom/visitor.rb#356
4614
+ sig { override.params(node: ::Prism::ImplicitNode).void }
4615
+ def visit_implicit_node(node); end
4616
+
4617
+ # source://spoom//lib/spoom/visitor.rb#361
4618
+ sig { override.params(node: ::Prism::ImplicitRestNode).void }
4619
+ def visit_implicit_rest_node(node); end
4620
+
4621
+ # source://spoom//lib/spoom/visitor.rb#366
4622
+ sig { override.params(node: ::Prism::InNode).void }
4623
+ def visit_in_node(node); end
4624
+
4625
+ # source://spoom//lib/spoom/visitor.rb#371
4626
+ sig { override.params(node: ::Prism::IndexAndWriteNode).void }
4627
+ def visit_index_and_write_node(node); end
4628
+
4629
+ # source://spoom//lib/spoom/visitor.rb#376
4630
+ sig { override.params(node: ::Prism::IndexOperatorWriteNode).void }
4631
+ def visit_index_operator_write_node(node); end
4632
+
4633
+ # source://spoom//lib/spoom/visitor.rb#381
4634
+ sig { override.params(node: ::Prism::IndexOrWriteNode).void }
4635
+ def visit_index_or_write_node(node); end
4636
+
4637
+ # source://spoom//lib/spoom/visitor.rb#386
4638
+ sig { override.params(node: ::Prism::IndexTargetNode).void }
4639
+ def visit_index_target_node(node); end
4640
+
4641
+ # source://spoom//lib/spoom/visitor.rb#391
4642
+ sig { override.params(node: ::Prism::InstanceVariableAndWriteNode).void }
4643
+ def visit_instance_variable_and_write_node(node); end
4644
+
4645
+ # source://spoom//lib/spoom/visitor.rb#396
4646
+ sig { override.params(node: ::Prism::InstanceVariableOperatorWriteNode).void }
4647
+ def visit_instance_variable_operator_write_node(node); end
4648
+
4649
+ # source://spoom//lib/spoom/visitor.rb#401
4650
+ sig { override.params(node: ::Prism::InstanceVariableOrWriteNode).void }
4651
+ def visit_instance_variable_or_write_node(node); end
4652
+
4653
+ # source://spoom//lib/spoom/visitor.rb#406
4654
+ sig { override.params(node: ::Prism::InstanceVariableReadNode).void }
4655
+ def visit_instance_variable_read_node(node); end
4656
+
4657
+ # source://spoom//lib/spoom/visitor.rb#411
4658
+ sig { override.params(node: ::Prism::InstanceVariableTargetNode).void }
4659
+ def visit_instance_variable_target_node(node); end
4660
+
4661
+ # source://spoom//lib/spoom/visitor.rb#416
4662
+ sig { override.params(node: ::Prism::InstanceVariableWriteNode).void }
4663
+ def visit_instance_variable_write_node(node); end
4664
+
4665
+ # source://spoom//lib/spoom/visitor.rb#421
4666
+ sig { override.params(node: ::Prism::IntegerNode).void }
4667
+ def visit_integer_node(node); end
4668
+
4669
+ # source://spoom//lib/spoom/visitor.rb#426
4670
+ sig { override.params(node: ::Prism::InterpolatedMatchLastLineNode).void }
4671
+ def visit_interpolated_match_last_line_node(node); end
4672
+
4673
+ # source://spoom//lib/spoom/visitor.rb#431
4674
+ sig { override.params(node: ::Prism::InterpolatedRegularExpressionNode).void }
4675
+ def visit_interpolated_regular_expression_node(node); end
4676
+
4677
+ # source://spoom//lib/spoom/visitor.rb#436
4678
+ sig { override.params(node: ::Prism::InterpolatedStringNode).void }
4679
+ def visit_interpolated_string_node(node); end
4680
+
4681
+ # source://spoom//lib/spoom/visitor.rb#441
4682
+ sig { override.params(node: ::Prism::InterpolatedSymbolNode).void }
4683
+ def visit_interpolated_symbol_node(node); end
4684
+
4685
+ # source://spoom//lib/spoom/visitor.rb#446
4686
+ sig { override.params(node: ::Prism::InterpolatedXStringNode).void }
4687
+ def visit_interpolated_x_string_node(node); end
4688
+
4689
+ # source://spoom//lib/spoom/visitor.rb#451
4690
+ sig { override.params(node: ::Prism::KeywordHashNode).void }
4691
+ def visit_keyword_hash_node(node); end
4692
+
4693
+ # source://spoom//lib/spoom/visitor.rb#456
4694
+ sig { override.params(node: ::Prism::KeywordRestParameterNode).void }
4695
+ def visit_keyword_rest_parameter_node(node); end
4696
+
4697
+ # source://spoom//lib/spoom/visitor.rb#461
4698
+ sig { override.params(node: ::Prism::LambdaNode).void }
4699
+ def visit_lambda_node(node); end
4700
+
4701
+ # source://spoom//lib/spoom/visitor.rb#466
4702
+ sig { override.params(node: ::Prism::LocalVariableAndWriteNode).void }
4703
+ def visit_local_variable_and_write_node(node); end
4704
+
4705
+ # source://spoom//lib/spoom/visitor.rb#471
4706
+ sig { override.params(node: ::Prism::LocalVariableOperatorWriteNode).void }
4707
+ def visit_local_variable_operator_write_node(node); end
4708
+
4709
+ # source://spoom//lib/spoom/visitor.rb#476
4710
+ sig { override.params(node: ::Prism::LocalVariableOrWriteNode).void }
4711
+ def visit_local_variable_or_write_node(node); end
4712
+
4713
+ # source://spoom//lib/spoom/visitor.rb#481
4714
+ sig { override.params(node: ::Prism::LocalVariableReadNode).void }
4715
+ def visit_local_variable_read_node(node); end
4716
+
4717
+ # source://spoom//lib/spoom/visitor.rb#486
4718
+ sig { override.params(node: ::Prism::LocalVariableTargetNode).void }
4719
+ def visit_local_variable_target_node(node); end
4720
+
4721
+ # source://spoom//lib/spoom/visitor.rb#491
4722
+ sig { override.params(node: ::Prism::LocalVariableWriteNode).void }
4723
+ def visit_local_variable_write_node(node); end
4724
+
4725
+ # source://spoom//lib/spoom/visitor.rb#496
4726
+ sig { override.params(node: ::Prism::MatchLastLineNode).void }
4727
+ def visit_match_last_line_node(node); end
4728
+
4729
+ # source://spoom//lib/spoom/visitor.rb#501
4730
+ sig { override.params(node: ::Prism::MatchPredicateNode).void }
4731
+ def visit_match_predicate_node(node); end
4732
+
4733
+ # source://spoom//lib/spoom/visitor.rb#506
4734
+ sig { override.params(node: ::Prism::MatchRequiredNode).void }
4735
+ def visit_match_required_node(node); end
4736
+
4737
+ # source://spoom//lib/spoom/visitor.rb#511
4738
+ sig { override.params(node: ::Prism::MatchWriteNode).void }
4739
+ def visit_match_write_node(node); end
4740
+
4741
+ # source://spoom//lib/spoom/visitor.rb#516
4742
+ sig { override.params(node: ::Prism::MissingNode).void }
4743
+ def visit_missing_node(node); end
4744
+
4745
+ # source://spoom//lib/spoom/visitor.rb#521
4746
+ sig { override.params(node: ::Prism::ModuleNode).void }
4747
+ def visit_module_node(node); end
4748
+
4749
+ # source://spoom//lib/spoom/visitor.rb#526
4750
+ sig { override.params(node: ::Prism::MultiTargetNode).void }
4751
+ def visit_multi_target_node(node); end
4752
+
4753
+ # source://spoom//lib/spoom/visitor.rb#531
4754
+ sig { override.params(node: ::Prism::MultiWriteNode).void }
4755
+ def visit_multi_write_node(node); end
4756
+
4757
+ # source://spoom//lib/spoom/visitor.rb#536
4758
+ sig { override.params(node: ::Prism::NextNode).void }
4759
+ def visit_next_node(node); end
4760
+
4761
+ # source://spoom//lib/spoom/visitor.rb#541
4762
+ sig { override.params(node: ::Prism::NilNode).void }
4763
+ def visit_nil_node(node); end
4764
+
4765
+ # source://spoom//lib/spoom/visitor.rb#546
4766
+ sig { override.params(node: ::Prism::NoKeywordsParameterNode).void }
4767
+ def visit_no_keywords_parameter_node(node); end
4768
+
4769
+ # source://spoom//lib/spoom/visitor.rb#551
4770
+ sig { override.params(node: ::Prism::NumberedParametersNode).void }
4771
+ def visit_numbered_parameters_node(node); end
4772
+
4773
+ # source://spoom//lib/spoom/visitor.rb#556
4774
+ sig { override.params(node: ::Prism::NumberedReferenceReadNode).void }
4775
+ def visit_numbered_reference_read_node(node); end
4776
+
4777
+ # source://spoom//lib/spoom/visitor.rb#561
4778
+ sig { override.params(node: ::Prism::OptionalKeywordParameterNode).void }
4779
+ def visit_optional_keyword_parameter_node(node); end
4780
+
4781
+ # source://spoom//lib/spoom/visitor.rb#566
4782
+ sig { override.params(node: ::Prism::OptionalParameterNode).void }
4783
+ def visit_optional_parameter_node(node); end
4784
+
4785
+ # source://spoom//lib/spoom/visitor.rb#571
4786
+ sig { override.params(node: ::Prism::OrNode).void }
4787
+ def visit_or_node(node); end
4788
+
4789
+ # source://spoom//lib/spoom/visitor.rb#576
4790
+ sig { override.params(node: ::Prism::ParametersNode).void }
4791
+ def visit_parameters_node(node); end
4792
+
4793
+ # source://spoom//lib/spoom/visitor.rb#581
4794
+ sig { override.params(node: ::Prism::ParenthesesNode).void }
4795
+ def visit_parentheses_node(node); end
4796
+
4797
+ # source://spoom//lib/spoom/visitor.rb#586
4798
+ sig { override.params(node: ::Prism::PinnedExpressionNode).void }
4799
+ def visit_pinned_expression_node(node); end
4800
+
4801
+ # source://spoom//lib/spoom/visitor.rb#591
4802
+ sig { override.params(node: ::Prism::PinnedVariableNode).void }
4803
+ def visit_pinned_variable_node(node); end
4804
+
4805
+ # source://spoom//lib/spoom/visitor.rb#596
4806
+ sig { override.params(node: ::Prism::PostExecutionNode).void }
4807
+ def visit_post_execution_node(node); end
4808
+
4809
+ # source://spoom//lib/spoom/visitor.rb#601
4810
+ sig { override.params(node: ::Prism::PreExecutionNode).void }
4811
+ def visit_pre_execution_node(node); end
4812
+
4813
+ # source://spoom//lib/spoom/visitor.rb#606
4814
+ sig { override.params(node: ::Prism::ProgramNode).void }
4815
+ def visit_program_node(node); end
4816
+
4817
+ # source://spoom//lib/spoom/visitor.rb#611
4818
+ sig { override.params(node: ::Prism::RangeNode).void }
4819
+ def visit_range_node(node); end
4820
+
4821
+ # source://spoom//lib/spoom/visitor.rb#616
4822
+ sig { override.params(node: ::Prism::RationalNode).void }
4823
+ def visit_rational_node(node); end
4824
+
4825
+ # source://spoom//lib/spoom/visitor.rb#621
4826
+ sig { override.params(node: ::Prism::RedoNode).void }
4827
+ def visit_redo_node(node); end
4828
+
4829
+ # source://spoom//lib/spoom/visitor.rb#626
4830
+ sig { override.params(node: ::Prism::RegularExpressionNode).void }
4831
+ def visit_regular_expression_node(node); end
4832
+
4833
+ # source://spoom//lib/spoom/visitor.rb#631
4834
+ sig { override.params(node: ::Prism::RequiredKeywordParameterNode).void }
4835
+ def visit_required_keyword_parameter_node(node); end
4836
+
4837
+ # source://spoom//lib/spoom/visitor.rb#636
4838
+ sig { override.params(node: ::Prism::RequiredParameterNode).void }
4839
+ def visit_required_parameter_node(node); end
4840
+
4841
+ # source://spoom//lib/spoom/visitor.rb#641
4842
+ sig { override.params(node: ::Prism::RescueModifierNode).void }
4843
+ def visit_rescue_modifier_node(node); end
4844
+
4845
+ # source://spoom//lib/spoom/visitor.rb#646
4846
+ sig { override.params(node: ::Prism::RescueNode).void }
4847
+ def visit_rescue_node(node); end
4848
+
4849
+ # source://spoom//lib/spoom/visitor.rb#651
4850
+ sig { override.params(node: ::Prism::RestParameterNode).void }
4851
+ def visit_rest_parameter_node(node); end
4852
+
4853
+ # source://spoom//lib/spoom/visitor.rb#656
4854
+ sig { override.params(node: ::Prism::RetryNode).void }
4855
+ def visit_retry_node(node); end
4856
+
4857
+ # source://spoom//lib/spoom/visitor.rb#661
4858
+ sig { override.params(node: ::Prism::ReturnNode).void }
4859
+ def visit_return_node(node); end
4860
+
4861
+ # source://spoom//lib/spoom/visitor.rb#666
4862
+ sig { override.params(node: ::Prism::SelfNode).void }
4863
+ def visit_self_node(node); end
4864
+
4865
+ # source://spoom//lib/spoom/visitor.rb#671
4866
+ sig { override.params(node: ::Prism::SingletonClassNode).void }
4867
+ def visit_singleton_class_node(node); end
4868
+
4869
+ # source://spoom//lib/spoom/visitor.rb#676
4870
+ sig { override.params(node: ::Prism::SourceEncodingNode).void }
4871
+ def visit_source_encoding_node(node); end
4872
+
4873
+ # source://spoom//lib/spoom/visitor.rb#681
4874
+ sig { override.params(node: ::Prism::SourceFileNode).void }
4875
+ def visit_source_file_node(node); end
4876
+
4877
+ # source://spoom//lib/spoom/visitor.rb#686
4878
+ sig { override.params(node: ::Prism::SourceLineNode).void }
4879
+ def visit_source_line_node(node); end
4880
+
4881
+ # source://spoom//lib/spoom/visitor.rb#691
4882
+ sig { override.params(node: ::Prism::SplatNode).void }
4883
+ def visit_splat_node(node); end
4884
+
4885
+ # source://spoom//lib/spoom/visitor.rb#696
4886
+ sig { override.params(node: ::Prism::StatementsNode).void }
4887
+ def visit_statements_node(node); end
4888
+
4889
+ # source://spoom//lib/spoom/visitor.rb#701
4890
+ sig { override.params(node: ::Prism::StringNode).void }
4891
+ def visit_string_node(node); end
4892
+
4893
+ # source://spoom//lib/spoom/visitor.rb#706
4894
+ sig { override.params(node: ::Prism::SuperNode).void }
4895
+ def visit_super_node(node); end
4896
+
4897
+ # source://spoom//lib/spoom/visitor.rb#711
4898
+ sig { override.params(node: ::Prism::SymbolNode).void }
4899
+ def visit_symbol_node(node); end
4900
+
4901
+ # source://spoom//lib/spoom/visitor.rb#716
4902
+ sig { override.params(node: ::Prism::TrueNode).void }
4903
+ def visit_true_node(node); end
4904
+
4905
+ # source://spoom//lib/spoom/visitor.rb#721
4906
+ sig { override.params(node: ::Prism::UndefNode).void }
4907
+ def visit_undef_node(node); end
4908
+
4909
+ # source://spoom//lib/spoom/visitor.rb#726
4910
+ sig { override.params(node: ::Prism::UnlessNode).void }
4911
+ def visit_unless_node(node); end
4912
+
4913
+ # source://spoom//lib/spoom/visitor.rb#731
4914
+ sig { override.params(node: ::Prism::UntilNode).void }
4915
+ def visit_until_node(node); end
4916
+
4917
+ # source://spoom//lib/spoom/visitor.rb#736
4918
+ sig { override.params(node: ::Prism::WhenNode).void }
4919
+ def visit_when_node(node); end
4920
+
4921
+ # source://spoom//lib/spoom/visitor.rb#741
4922
+ sig { override.params(node: ::Prism::WhileNode).void }
4923
+ def visit_while_node(node); end
4924
+
4925
+ # source://spoom//lib/spoom/visitor.rb#746
4926
+ sig { override.params(node: ::Prism::XStringNode).void }
4927
+ def visit_x_string_node(node); end
4928
+
4929
+ # source://spoom//lib/spoom/visitor.rb#751
4930
+ sig { override.params(node: ::Prism::YieldNode).void }
4931
+ def visit_yield_node(node); end
4932
+ end