ruby_json_parser 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. checksums.yaml +7 -0
  2. data/.rubocop.yml +35 -0
  3. data/CHANGELOG.md +5 -0
  4. data/LICENSE +21 -0
  5. data/README.md +143 -0
  6. data/Rakefile +12 -0
  7. data/lib/ruby_json_parser/ast.rb +312 -0
  8. data/lib/ruby_json_parser/evaluator.rb +81 -0
  9. data/lib/ruby_json_parser/lexer.rb +358 -0
  10. data/lib/ruby_json_parser/parser.rb +205 -0
  11. data/lib/ruby_json_parser/result.rb +43 -0
  12. data/lib/ruby_json_parser/token.rb +171 -0
  13. data/lib/ruby_json_parser/version.rb +6 -0
  14. data/lib/ruby_json_parser.rb +77 -0
  15. data/sorbet/config +4 -0
  16. data/sorbet/rbi/annotations/.gitattributes +1 -0
  17. data/sorbet/rbi/annotations/minitest.rbi +119 -0
  18. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  19. data/sorbet/rbi/gems/.gitattributes +1 -0
  20. data/sorbet/rbi/gems/ast@2.4.2.rbi +585 -0
  21. data/sorbet/rbi/gems/erubi@1.13.0.rbi +150 -0
  22. data/sorbet/rbi/gems/json@2.7.2.rbi +1562 -0
  23. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14238 -0
  24. data/sorbet/rbi/gems/minitest@5.24.1.rbi +1563 -0
  25. data/sorbet/rbi/gems/netrc@0.11.0.rbi +159 -0
  26. data/sorbet/rbi/gems/parallel@1.25.1.rbi +287 -0
  27. data/sorbet/rbi/gems/parser@3.3.4.0.rbi +5519 -0
  28. data/sorbet/rbi/gems/prism@0.30.0.rbi +39212 -0
  29. data/sorbet/rbi/gems/racc@1.8.0.rbi +162 -0
  30. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +403 -0
  31. data/sorbet/rbi/gems/rake@13.2.1.rbi +3028 -0
  32. data/sorbet/rbi/gems/rbi@0.1.13.rbi +3078 -0
  33. data/sorbet/rbi/gems/regexp_parser@2.9.2.rbi +3772 -0
  34. data/sorbet/rbi/gems/rexml@3.3.1.rbi +4813 -0
  35. data/sorbet/rbi/gems/rubocop-ast@1.31.3.rbi +7015 -0
  36. data/sorbet/rbi/gems/rubocop@1.65.0.rbi +58191 -0
  37. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1318 -0
  38. data/sorbet/rbi/gems/spoom@1.3.3.rbi +4926 -0
  39. data/sorbet/rbi/gems/strscan@3.1.0.rbi +9 -0
  40. data/sorbet/rbi/gems/tapioca@0.15.1.rbi +3566 -0
  41. data/sorbet/rbi/gems/thor@1.3.1.rbi +4352 -0
  42. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +66 -0
  43. data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +435 -0
  44. data/sorbet/rbi/gems/yard@0.9.36.rbi +18221 -0
  45. data/sorbet/tapioca/config.yml +13 -0
  46. data/sorbet/tapioca/require.rb +4 -0
  47. metadata +105 -0
@@ -0,0 +1,4926 @@
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.1/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.1/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.1/lib/thor.rb#334
282
+ def bump(*args); end
283
+
284
+ # source://thor/1.3.1/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.1/lib/thor.rb#334
290
+ def lsp(*args); end
291
+
292
+ # source://thor/1.3.1/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
+ CLEAR = new
329
+ BOLD = new
330
+ BLACK = new
331
+ RED = new
332
+ GREEN = new
333
+ YELLOW = new
334
+ BLUE = new
335
+ MAGENTA = new
336
+ CYAN = new
337
+ WHITE = new
338
+ LIGHT_BLACK = new
339
+ LIGHT_RED = new
340
+ LIGHT_GREEN = new
341
+ LIGHT_YELLOW = new
342
+ LIGHT_BLUE = new
343
+ LIGHT_MAGENTA = new
344
+ LIGHT_CYAN = new
345
+ LIGHT_WHITE = 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(::String)) }
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.11481/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.11481/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.11481/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
+ end
2038
+
2039
+ # source://spoom//lib/spoom/deadcode/plugins/namespaces.rb#7
2040
+ class Spoom::Deadcode::Plugins::Namespaces < ::Spoom::Deadcode::Plugins::Base
2041
+ # source://spoom//lib/spoom/deadcode/plugins/namespaces.rb#11
2042
+ sig { override.params(definition: ::Spoom::Model::Class).void }
2043
+ def on_define_class(definition); end
2044
+
2045
+ # source://spoom//lib/spoom/deadcode/plugins/namespaces.rb#16
2046
+ sig { override.params(definition: ::Spoom::Model::Module).void }
2047
+ def on_define_module(definition); end
2048
+
2049
+ private
2050
+
2051
+ # source://spoom//lib/spoom/deadcode/plugins/namespaces.rb#23
2052
+ sig { params(symbol_def: ::Spoom::Model::Namespace).returns(T::Boolean) }
2053
+ def used_as_namespace?(symbol_def); end
2054
+ end
2055
+
2056
+ # source://spoom//lib/spoom/deadcode/plugins/rspec.rb#7
2057
+ class Spoom::Deadcode::Plugins::RSpec < ::Spoom::Deadcode::Plugins::Base; end
2058
+
2059
+ # source://spoom//lib/spoom/deadcode/plugins/rails.rb#7
2060
+ class Spoom::Deadcode::Plugins::Rails < ::Spoom::Deadcode::Plugins::Base
2061
+ # source://spoom//lib/spoom/deadcode/plugins/rails.rb#13
2062
+ sig { override.params(definition: ::Spoom::Model::Class).void }
2063
+ def on_define_class(definition); end
2064
+
2065
+ # source://spoom//lib/spoom/deadcode/plugins/rails.rb#18
2066
+ sig { override.params(definition: ::Spoom::Model::Module).void }
2067
+ def on_define_module(definition); end
2068
+
2069
+ private
2070
+
2071
+ # source://spoom//lib/spoom/deadcode/plugins/rails.rb#25
2072
+ sig { params(symbol_def: ::Spoom::Model::Namespace).returns(T::Boolean) }
2073
+ def file_is_helper?(symbol_def); end
2074
+ end
2075
+
2076
+ # source://spoom//lib/spoom/deadcode/plugins/rake.rb#7
2077
+ class Spoom::Deadcode::Plugins::Rake < ::Spoom::Deadcode::Plugins::Base; end
2078
+
2079
+ # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#7
2080
+ class Spoom::Deadcode::Plugins::Rubocop < ::Spoom::Deadcode::Plugins::Base
2081
+ # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#18
2082
+ sig { override.params(definition: ::Spoom::Model::Constant).void }
2083
+ def on_define_constant(definition); end
2084
+
2085
+ # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#26
2086
+ sig { override.params(definition: ::Spoom::Model::Method).void }
2087
+ def on_define_method(definition); end
2088
+ end
2089
+
2090
+ # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#10
2091
+ Spoom::Deadcode::Plugins::Rubocop::RUBOCOP_CONSTANTS = T.let(T.unsafe(nil), Set)
2092
+
2093
+ # source://spoom//lib/spoom/deadcode/plugins/ruby.rb#7
2094
+ class Spoom::Deadcode::Plugins::Ruby < ::Spoom::Deadcode::Plugins::Base
2095
+ # source://spoom//lib/spoom/deadcode/plugins/ruby.rb#24
2096
+ sig { override.params(send: ::Spoom::Deadcode::Send).void }
2097
+ def on_send(send); end
2098
+
2099
+ private
2100
+
2101
+ # source://spoom//lib/spoom/deadcode/plugins/ruby.rb#43
2102
+ sig { params(send: ::Spoom::Deadcode::Send, node: ::Prism::Node).void }
2103
+ def reference_symbol_as_constant(send, node); end
2104
+ end
2105
+
2106
+ # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#7
2107
+ class Spoom::Deadcode::Plugins::Sorbet < ::Spoom::Deadcode::Plugins::Base
2108
+ # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#11
2109
+ sig { override.params(definition: ::Spoom::Model::Constant).void }
2110
+ def on_define_constant(definition); end
2111
+
2112
+ # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#16
2113
+ sig { override.params(definition: ::Spoom::Model::Method).void }
2114
+ def on_define_method(definition); end
2115
+
2116
+ private
2117
+
2118
+ # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#28
2119
+ sig { params(definition: ::Spoom::Model::Constant).returns(T::Boolean) }
2120
+ def sorbet_enum_constant?(definition); end
2121
+
2122
+ # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#23
2123
+ sig { params(definition: ::Spoom::Model::Constant).returns(T::Boolean) }
2124
+ def sorbet_type_member?(definition); end
2125
+ end
2126
+
2127
+ # source://spoom//lib/spoom/deadcode/plugins/thor.rb#7
2128
+ class Spoom::Deadcode::Plugins::Thor < ::Spoom::Deadcode::Plugins::Base
2129
+ # source://spoom//lib/spoom/deadcode/plugins/thor.rb#13
2130
+ sig { override.params(definition: ::Spoom::Model::Method).void }
2131
+ def on_define_method(definition); end
2132
+ end
2133
+
2134
+ # source://spoom//lib/spoom/deadcode/remover.rb#6
2135
+ class Spoom::Deadcode::Remover
2136
+ # source://spoom//lib/spoom/deadcode/remover.rb#12
2137
+ sig { params(context: ::Spoom::Context).void }
2138
+ def initialize(context); end
2139
+
2140
+ # source://spoom//lib/spoom/deadcode/remover.rb#17
2141
+ sig { params(kind: T.nilable(::Spoom::Deadcode::Definition::Kind), location: ::Spoom::Location).returns(::String) }
2142
+ def remove_location(kind, location); end
2143
+ end
2144
+
2145
+ # source://spoom//lib/spoom/deadcode/remover.rb#9
2146
+ class Spoom::Deadcode::Remover::Error < ::Spoom::Error; end
2147
+
2148
+ # source://spoom//lib/spoom/deadcode/remover.rb#372
2149
+ class Spoom::Deadcode::Remover::NodeContext
2150
+ # source://spoom//lib/spoom/deadcode/remover.rb#392
2151
+ sig do
2152
+ params(
2153
+ source: ::String,
2154
+ comments: T::Hash[::Integer, ::Prism::Comment],
2155
+ node: ::Prism::Node,
2156
+ nesting: T::Array[::Prism::Node]
2157
+ ).void
2158
+ end
2159
+ def initialize(source, comments, node, nesting); end
2160
+
2161
+ # source://spoom//lib/spoom/deadcode/remover.rb#506
2162
+ sig { params(node: ::Prism::Node).returns(T::Array[::Prism::Comment]) }
2163
+ def attached_comments(node); end
2164
+
2165
+ # source://spoom//lib/spoom/deadcode/remover.rb#534
2166
+ sig { returns(T.nilable(::Prism::CallNode)) }
2167
+ def attached_sig; end
2168
+
2169
+ # source://spoom//lib/spoom/deadcode/remover.rb#521
2170
+ sig { returns(T::Array[::Prism::Node]) }
2171
+ def attached_sigs; end
2172
+
2173
+ # source://spoom//lib/spoom/deadcode/remover.rb#376
2174
+ sig { returns(T::Hash[::Integer, ::Prism::Comment]) }
2175
+ def comments; end
2176
+
2177
+ # source://spoom//lib/spoom/deadcode/remover.rb#494
2178
+ sig { params(start_line: ::Integer, end_line: ::Integer).returns(T::Array[::Prism::Comment]) }
2179
+ def comments_between_lines(start_line, end_line); end
2180
+
2181
+ # source://spoom//lib/spoom/deadcode/remover.rb#382
2182
+ sig { returns(T::Array[::Prism::Node]) }
2183
+ def nesting; end
2184
+
2185
+ # @return [Array<Prism::Node>]
2186
+ #
2187
+ # source://spoom//lib/spoom/deadcode/remover.rb#382
2188
+ def nesting=(_arg0); end
2189
+
2190
+ # source://spoom//lib/spoom/deadcode/remover.rb#444
2191
+ sig { returns(T.nilable(::Prism::Node)) }
2192
+ def next_node; end
2193
+
2194
+ # @raise [Error]
2195
+ #
2196
+ # source://spoom//lib/spoom/deadcode/remover.rb#433
2197
+ sig { returns(T::Array[::Prism::Node]) }
2198
+ def next_nodes; end
2199
+
2200
+ # source://spoom//lib/spoom/deadcode/remover.rb#379
2201
+ sig { returns(::Prism::Node) }
2202
+ def node; end
2203
+
2204
+ # @raise [Error]
2205
+ #
2206
+ # source://spoom//lib/spoom/deadcode/remover.rb#408
2207
+ sig { returns(::Spoom::Deadcode::Remover::NodeContext) }
2208
+ def parent_context; end
2209
+
2210
+ # @raise [Error]
2211
+ #
2212
+ # source://spoom//lib/spoom/deadcode/remover.rb#400
2213
+ sig { returns(::Prism::Node) }
2214
+ def parent_node; end
2215
+
2216
+ # source://spoom//lib/spoom/deadcode/remover.rb#428
2217
+ sig { returns(T.nilable(::Prism::Node)) }
2218
+ def previous_node; end
2219
+
2220
+ # @raise [Error]
2221
+ #
2222
+ # source://spoom//lib/spoom/deadcode/remover.rb#417
2223
+ sig { returns(T::Array[::Prism::Node]) }
2224
+ def previous_nodes; end
2225
+
2226
+ # source://spoom//lib/spoom/deadcode/remover.rb#449
2227
+ sig { returns(T.nilable(::Spoom::Deadcode::Remover::NodeContext)) }
2228
+ def sclass_context; end
2229
+
2230
+ # source://spoom//lib/spoom/deadcode/remover.rb#482
2231
+ sig { params(node: T.nilable(::Prism::Node)).returns(T::Boolean) }
2232
+ def sorbet_extend_sig?(node); end
2233
+
2234
+ # source://spoom//lib/spoom/deadcode/remover.rb#477
2235
+ sig { params(node: T.nilable(::Prism::Node)).returns(T::Boolean) }
2236
+ def sorbet_signature?(node); end
2237
+ end
2238
+
2239
+ # source://spoom//lib/spoom/deadcode/remover.rb#549
2240
+ class Spoom::Deadcode::Remover::NodeFinder < ::Spoom::Visitor
2241
+ # source://spoom//lib/spoom/deadcode/remover.rb#621
2242
+ sig { params(location: ::Spoom::Location, kind: T.nilable(::Spoom::Deadcode::Definition::Kind)).void }
2243
+ def initialize(location, kind); end
2244
+
2245
+ # source://spoom//lib/spoom/deadcode/remover.rb#615
2246
+ sig { returns(T.nilable(::Prism::Node)) }
2247
+ def node; end
2248
+
2249
+ # source://spoom//lib/spoom/deadcode/remover.rb#618
2250
+ sig { returns(T::Array[::Prism::Node]) }
2251
+ def nodes_nesting; end
2252
+
2253
+ # source://spoom//lib/spoom/deadcode/remover.rb#630
2254
+ sig { override.params(node: T.nilable(::Prism::Node)).void }
2255
+ def visit(node); end
2256
+
2257
+ class << self
2258
+ # source://spoom//lib/spoom/deadcode/remover.rb#556
2259
+ sig do
2260
+ params(
2261
+ source: ::String,
2262
+ location: ::Spoom::Location,
2263
+ kind: T.nilable(::Spoom::Deadcode::Definition::Kind)
2264
+ ).returns(::Spoom::Deadcode::Remover::NodeContext)
2265
+ end
2266
+ def find(source, location, kind); end
2267
+
2268
+ # source://spoom//lib/spoom/deadcode/remover.rb#590
2269
+ sig { params(node: ::Prism::Node, kind: ::Spoom::Deadcode::Definition::Kind).returns(T::Boolean) }
2270
+ def node_match_kind?(node, kind); end
2271
+ end
2272
+ end
2273
+
2274
+ # source://spoom//lib/spoom/deadcode/remover.rb#29
2275
+ class Spoom::Deadcode::Remover::NodeRemover
2276
+ # source://spoom//lib/spoom/deadcode/remover.rb#36
2277
+ sig do
2278
+ params(
2279
+ source: ::String,
2280
+ kind: T.nilable(::Spoom::Deadcode::Definition::Kind),
2281
+ location: ::Spoom::Location
2282
+ ).void
2283
+ end
2284
+ def initialize(source, kind, location); end
2285
+
2286
+ # source://spoom//lib/spoom/deadcode/remover.rb#46
2287
+ sig { void }
2288
+ def apply_edit; end
2289
+
2290
+ # source://spoom//lib/spoom/deadcode/remover.rb#33
2291
+ sig { returns(::String) }
2292
+ def new_source; end
2293
+
2294
+ private
2295
+
2296
+ # source://spoom//lib/spoom/deadcode/remover.rb#153
2297
+ sig { params(context: ::Spoom::Deadcode::Remover::NodeContext).void }
2298
+ def delete_attr_accessor(context); end
2299
+
2300
+ # source://spoom//lib/spoom/deadcode/remover.rb#331
2301
+ sig { params(start_char: ::Integer, end_char: ::Integer).void }
2302
+ def delete_chars(start_char, end_char); end
2303
+
2304
+ # source://spoom//lib/spoom/deadcode/remover.rb#73
2305
+ sig { params(context: ::Spoom::Deadcode::Remover::NodeContext).void }
2306
+ def delete_constant_assignment(context); end
2307
+
2308
+ # source://spoom//lib/spoom/deadcode/remover.rb#324
2309
+ sig { params(start_line: ::Integer, end_line: ::Integer).void }
2310
+ def delete_lines(start_line, end_line); end
2311
+
2312
+ # source://spoom//lib/spoom/deadcode/remover.rb#261
2313
+ sig { params(context: ::Spoom::Deadcode::Remover::NodeContext).void }
2314
+ def delete_node_and_comments_and_sigs(context); end
2315
+
2316
+ # source://spoom//lib/spoom/deadcode/remover.rb#218
2317
+ sig do
2318
+ params(
2319
+ node: ::Prism::Node,
2320
+ send_context: ::Spoom::Deadcode::Remover::NodeContext,
2321
+ was_removed: T::Boolean
2322
+ ).void
2323
+ end
2324
+ def insert_accessor(node, send_context, was_removed:); end
2325
+
2326
+ # source://spoom//lib/spoom/deadcode/remover.rb#336
2327
+ sig { params(start_char: ::Integer, end_char: ::Integer, replacement: ::String).void }
2328
+ def replace_chars(start_char, end_char, replacement); end
2329
+
2330
+ # source://spoom//lib/spoom/deadcode/remover.rb#341
2331
+ sig do
2332
+ params(
2333
+ node: ::Prism::CallNode,
2334
+ name: ::String,
2335
+ kind: T.nilable(::Spoom::Deadcode::Definition::Kind)
2336
+ ).returns(::String)
2337
+ end
2338
+ def transform_sig(node, name:, kind:); end
2339
+ end
2340
+
2341
+ # An abstraction to simplify handling of Prism::CallNode nodes.
2342
+ #
2343
+ # source://spoom//lib/spoom/deadcode/send.rb#7
2344
+ class Spoom::Deadcode::Send < ::T::Struct
2345
+ const :node, ::Prism::CallNode
2346
+ const :name, ::String
2347
+ const :recv, T.nilable(::Prism::Node), default: T.unsafe(nil)
2348
+ const :args, T::Array[::Prism::Node], default: T.unsafe(nil)
2349
+ const :block, T.nilable(::Prism::Node), default: T.unsafe(nil)
2350
+ const :location, ::Spoom::Location
2351
+
2352
+ # source://spoom//lib/spoom/deadcode/send.rb#22
2353
+ sig do
2354
+ type_parameters(:T)
2355
+ .params(
2356
+ arg_type: T::Class[T.type_parameter(:T)],
2357
+ block: T.proc.params(arg: T.type_parameter(:T)).void
2358
+ ).void
2359
+ end
2360
+ def each_arg(arg_type, &block); end
2361
+
2362
+ # source://spoom//lib/spoom/deadcode/send.rb#29
2363
+ sig { params(block: T.proc.params(key: ::Prism::Node, value: T.nilable(::Prism::Node)).void).void }
2364
+ def each_arg_assoc(&block); end
2365
+
2366
+ class << self
2367
+ # source://sorbet-runtime/0.5.11481/lib/types/struct.rb#13
2368
+ def inherited(s); end
2369
+ end
2370
+ end
2371
+
2372
+ # source://spoom//lib/spoom.rb#12
2373
+ class Spoom::Error < ::StandardError; end
2374
+
2375
+ # source://spoom//lib/spoom/context/exec.rb#5
2376
+ class Spoom::ExecResult < ::T::Struct
2377
+ const :out, ::String
2378
+ const :err, T.nilable(::String)
2379
+ const :status, T::Boolean
2380
+ const :exit_code, ::Integer
2381
+
2382
+ # source://spoom//lib/spoom/context/exec.rb#14
2383
+ sig { returns(::String) }
2384
+ def to_s; end
2385
+
2386
+ class << self
2387
+ # source://sorbet-runtime/0.5.11481/lib/types/struct.rb#13
2388
+ def inherited(s); end
2389
+ end
2390
+ end
2391
+
2392
+ # source://spoom//lib/spoom/file_collector.rb#5
2393
+ class Spoom::FileCollector
2394
+ # Initialize a new file collector
2395
+ #
2396
+ # If `allow_extensions` is empty, all files are collected.
2397
+ # If `allow_extensions` is an array of extensions, only files with one of these extensions are collected.
2398
+ #
2399
+ # If `allow_mime_types` is empty, all files are collected.
2400
+ # If `allow_mime_types` is an array of mimetypes, files without an extension are collected if their mimetype is in
2401
+ # the list.
2402
+ #
2403
+ # source://spoom//lib/spoom/file_collector.rb#26
2404
+ sig do
2405
+ params(
2406
+ allow_extensions: T::Array[::String],
2407
+ allow_mime_types: T::Array[::String],
2408
+ exclude_patterns: T::Array[::String]
2409
+ ).void
2410
+ end
2411
+ def initialize(allow_extensions: T.unsafe(nil), allow_mime_types: T.unsafe(nil), exclude_patterns: T.unsafe(nil)); end
2412
+
2413
+ # source://spoom//lib/spoom/file_collector.rb#9
2414
+ sig { returns(T::Array[::String]) }
2415
+ def files; end
2416
+
2417
+ # source://spoom//lib/spoom/file_collector.rb#39
2418
+ sig { params(path: ::String).void }
2419
+ def visit_path(path); end
2420
+
2421
+ # source://spoom//lib/spoom/file_collector.rb#34
2422
+ sig { params(paths: T::Array[::String]).void }
2423
+ def visit_paths(paths); end
2424
+
2425
+ private
2426
+
2427
+ # source://spoom//lib/spoom/file_collector.rb#56
2428
+ sig { params(path: ::String).returns(::String) }
2429
+ def clean_path(path); end
2430
+
2431
+ # source://spoom//lib/spoom/file_collector.rb#73
2432
+ sig { params(path: ::String).returns(T::Boolean) }
2433
+ def excluded_file?(path); end
2434
+
2435
+ # source://spoom//lib/spoom/file_collector.rb#88
2436
+ sig { params(path: ::String).returns(T::Boolean) }
2437
+ def excluded_path?(path); end
2438
+
2439
+ # source://spoom//lib/spoom/file_collector.rb#97
2440
+ sig { params(path: ::String).returns(T.nilable(::String)) }
2441
+ def mime_type_for(path); end
2442
+
2443
+ # source://spoom//lib/spoom/file_collector.rb#68
2444
+ sig { params(path: ::String).void }
2445
+ def visit_directory(path); end
2446
+
2447
+ # source://spoom//lib/spoom/file_collector.rb#61
2448
+ sig { params(path: ::String).void }
2449
+ def visit_file(path); end
2450
+ end
2451
+
2452
+ # Build a file hierarchy from a set of file paths.
2453
+ #
2454
+ # source://spoom//lib/spoom/file_tree.rb#6
2455
+ class Spoom::FileTree
2456
+ # source://spoom//lib/spoom/file_tree.rb#10
2457
+ sig { params(paths: T::Enumerable[::String]).void }
2458
+ def initialize(paths = T.unsafe(nil)); end
2459
+
2460
+ # Add a `path` to the tree
2461
+ #
2462
+ # This will create all nodes until the root of `path`.
2463
+ #
2464
+ # source://spoom//lib/spoom/file_tree.rb#25
2465
+ sig { params(path: ::String).returns(::Spoom::FileTree::Node) }
2466
+ def add_path(path); end
2467
+
2468
+ # Add all `paths` to the tree
2469
+ #
2470
+ # source://spoom//lib/spoom/file_tree.rb#17
2471
+ sig { params(paths: T::Enumerable[::String]).void }
2472
+ def add_paths(paths); end
2473
+
2474
+ # All the nodes in this tree
2475
+ #
2476
+ # source://spoom//lib/spoom/file_tree.rb#45
2477
+ sig { returns(T::Array[::Spoom::FileTree::Node]) }
2478
+ def nodes; end
2479
+
2480
+ # Return a map of typing scores for each node in the tree
2481
+ #
2482
+ # source://spoom//lib/spoom/file_tree.rb#59
2483
+ sig { params(context: ::Spoom::Context).returns(T::Hash[::Spoom::FileTree::Node, ::Float]) }
2484
+ def nodes_strictness_scores(context); end
2485
+
2486
+ # All the paths in this tree
2487
+ #
2488
+ # source://spoom//lib/spoom/file_tree.rb#53
2489
+ sig { returns(T::Array[::String]) }
2490
+ def paths; end
2491
+
2492
+ # Return a map of typing scores for each path in the tree
2493
+ #
2494
+ # source://spoom//lib/spoom/file_tree.rb#67
2495
+ sig { params(context: ::Spoom::Context).returns(T::Hash[::String, ::Float]) }
2496
+ def paths_strictness_scores(context); end
2497
+
2498
+ # source://spoom//lib/spoom/file_tree.rb#72
2499
+ sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean).void }
2500
+ def print(out: T.unsafe(nil), colors: T.unsafe(nil)); end
2501
+
2502
+ # All root nodes
2503
+ #
2504
+ # source://spoom//lib/spoom/file_tree.rb#39
2505
+ sig { returns(T::Array[::Spoom::FileTree::Node]) }
2506
+ def roots; end
2507
+ end
2508
+
2509
+ # A visitor that collects all the nodes in a tree
2510
+ #
2511
+ # source://spoom//lib/spoom/file_tree.rb#124
2512
+ class Spoom::FileTree::CollectNodes < ::Spoom::FileTree::Visitor
2513
+ # source://spoom//lib/spoom/file_tree.rb#131
2514
+ sig { void }
2515
+ def initialize; end
2516
+
2517
+ # source://spoom//lib/spoom/file_tree.rb#128
2518
+ sig { returns(T::Array[::Spoom::FileTree::Node]) }
2519
+ def nodes; end
2520
+
2521
+ # source://spoom//lib/spoom/file_tree.rb#137
2522
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
2523
+ def visit_node(node); end
2524
+ end
2525
+
2526
+ # A visitor that collects the typing score of each node in a tree
2527
+ #
2528
+ # source://spoom//lib/spoom/file_tree.rb#167
2529
+ class Spoom::FileTree::CollectScores < ::Spoom::FileTree::CollectStrictnesses
2530
+ # source://spoom//lib/spoom/file_tree.rb#174
2531
+ sig { params(context: ::Spoom::Context).void }
2532
+ def initialize(context); end
2533
+
2534
+ # source://spoom//lib/spoom/file_tree.rb#171
2535
+ sig { returns(T::Hash[::Spoom::FileTree::Node, ::Float]) }
2536
+ def scores; end
2537
+
2538
+ # source://spoom//lib/spoom/file_tree.rb#181
2539
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
2540
+ def visit_node(node); end
2541
+
2542
+ private
2543
+
2544
+ # source://spoom//lib/spoom/file_tree.rb#190
2545
+ sig { params(node: ::Spoom::FileTree::Node).returns(::Float) }
2546
+ def node_score(node); end
2547
+
2548
+ # source://spoom//lib/spoom/file_tree.rb#199
2549
+ sig { params(strictness: T.nilable(::String)).returns(::Float) }
2550
+ def strictness_score(strictness); end
2551
+ end
2552
+
2553
+ # A visitor that collects the strictness of each node in a tree
2554
+ #
2555
+ # source://spoom//lib/spoom/file_tree.rb#144
2556
+ class Spoom::FileTree::CollectStrictnesses < ::Spoom::FileTree::Visitor
2557
+ # source://spoom//lib/spoom/file_tree.rb#151
2558
+ sig { params(context: ::Spoom::Context).void }
2559
+ def initialize(context); end
2560
+
2561
+ # source://spoom//lib/spoom/file_tree.rb#148
2562
+ sig { returns(T::Hash[::Spoom::FileTree::Node, T.nilable(::String)]) }
2563
+ def strictnesses; end
2564
+
2565
+ # source://spoom//lib/spoom/file_tree.rb#158
2566
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
2567
+ def visit_node(node); end
2568
+ end
2569
+
2570
+ # A node representing either a file or a directory inside a FileTree
2571
+ #
2572
+ # source://spoom//lib/spoom/file_tree.rb#78
2573
+ class Spoom::FileTree::Node < ::T::Struct
2574
+ const :parent, T.nilable(::Spoom::FileTree::Node)
2575
+ const :name, ::String
2576
+ const :children, T::Hash[::String, ::Spoom::FileTree::Node], default: T.unsafe(nil)
2577
+
2578
+ # Full path to this node from root
2579
+ #
2580
+ # source://spoom//lib/spoom/file_tree.rb#92
2581
+ sig { returns(::String) }
2582
+ def path; end
2583
+
2584
+ class << self
2585
+ # source://sorbet-runtime/0.5.11481/lib/types/struct.rb#13
2586
+ def inherited(s); end
2587
+ end
2588
+ end
2589
+
2590
+ # An internal class used to print a FileTree
2591
+ #
2592
+ # See `FileTree#print`
2593
+ #
2594
+ # source://spoom//lib/spoom/file_tree.rb#212
2595
+ class Spoom::FileTree::Printer < ::Spoom::FileTree::Visitor
2596
+ # source://spoom//lib/spoom/file_tree.rb#222
2597
+ sig do
2598
+ params(
2599
+ strictnesses: T::Hash[::Spoom::FileTree::Node, T.nilable(::String)],
2600
+ out: T.any(::IO, ::StringIO),
2601
+ colors: T::Boolean
2602
+ ).void
2603
+ end
2604
+ def initialize(strictnesses, out: T.unsafe(nil), colors: T.unsafe(nil)); end
2605
+
2606
+ # source://spoom//lib/spoom/file_tree.rb#230
2607
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
2608
+ def visit_node(node); end
2609
+
2610
+ private
2611
+
2612
+ # source://spoom//lib/spoom/file_tree.rb#255
2613
+ sig { params(strictness: T.nilable(::String)).returns(::Spoom::Color) }
2614
+ def strictness_color(strictness); end
2615
+ end
2616
+
2617
+ # An abstract visitor for FileTree
2618
+ #
2619
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
2620
+ #
2621
+ # source://spoom//lib/spoom/file_tree.rb#101
2622
+ class Spoom::FileTree::Visitor
2623
+ abstract!
2624
+
2625
+ # source://spoom//lib/spoom/file_tree.rb#113
2626
+ sig { params(node: ::Spoom::FileTree::Node).void }
2627
+ def visit_node(node); end
2628
+
2629
+ # source://spoom//lib/spoom/file_tree.rb#118
2630
+ sig { params(nodes: T::Array[::Spoom::FileTree::Node]).void }
2631
+ def visit_nodes(nodes); end
2632
+
2633
+ # source://spoom//lib/spoom/file_tree.rb#108
2634
+ sig { params(tree: ::Spoom::FileTree).void }
2635
+ def visit_tree(tree); end
2636
+ end
2637
+
2638
+ # source://spoom//lib/spoom/context/git.rb#5
2639
+ module Spoom::Git; end
2640
+
2641
+ # source://spoom//lib/spoom/context/git.rb#6
2642
+ class Spoom::Git::Commit < ::T::Struct
2643
+ const :sha, ::String
2644
+ const :time, ::Time
2645
+
2646
+ # source://spoom//lib/spoom/context/git.rb#27
2647
+ sig { returns(::Integer) }
2648
+ def timestamp; end
2649
+
2650
+ class << self
2651
+ # source://sorbet-runtime/0.5.11481/lib/types/struct.rb#13
2652
+ def inherited(s); end
2653
+
2654
+ # Parse a line formatted as `%h %at` into a `Commit`
2655
+ #
2656
+ # source://spoom//lib/spoom/context/git.rb#14
2657
+ sig { params(string: ::String).returns(T.nilable(::Spoom::Git::Commit)) }
2658
+ def parse_line(string); end
2659
+ end
2660
+ end
2661
+
2662
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#5
2663
+ module Spoom::LSP; end
2664
+
2665
+ # source://spoom//lib/spoom/sorbet/lsp.rb#13
2666
+ class Spoom::LSP::Client
2667
+ # source://spoom//lib/spoom/sorbet/lsp.rb#17
2668
+ sig { params(sorbet_bin: ::String, sorbet_args: ::String, path: ::String).void }
2669
+ def initialize(sorbet_bin, *sorbet_args, path: T.unsafe(nil)); end
2670
+
2671
+ # source://spoom//lib/spoom/sorbet/lsp.rb#229
2672
+ sig { void }
2673
+ def close; end
2674
+
2675
+ # source://spoom//lib/spoom/sorbet/lsp.rb#131
2676
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::Location]) }
2677
+ def definitions(uri, line, column); end
2678
+
2679
+ # source://spoom//lib/spoom/sorbet/lsp.rb#212
2680
+ sig { params(uri: ::String).returns(T::Array[::Spoom::LSP::DocumentSymbol]) }
2681
+ def document_symbols(uri); end
2682
+
2683
+ # source://spoom//lib/spoom/sorbet/lsp.rb#89
2684
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T.nilable(::Spoom::LSP::Hover)) }
2685
+ def hover(uri, line, column); end
2686
+
2687
+ # source://spoom//lib/spoom/sorbet/lsp.rb#27
2688
+ sig { returns(::Integer) }
2689
+ def next_id; end
2690
+
2691
+ # LSP requests
2692
+ #
2693
+ # @raise [Error::AlreadyOpen]
2694
+ #
2695
+ # source://spoom//lib/spoom/sorbet/lsp.rb#72
2696
+ sig { params(workspace_path: ::String).void }
2697
+ def open(workspace_path); end
2698
+
2699
+ # source://spoom//lib/spoom/sorbet/lsp.rb#54
2700
+ sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
2701
+ def read; end
2702
+
2703
+ # @raise [Error::BadHeaders]
2704
+ #
2705
+ # source://spoom//lib/spoom/sorbet/lsp.rb#43
2706
+ sig { returns(T.nilable(::String)) }
2707
+ def read_raw; end
2708
+
2709
+ # source://spoom//lib/spoom/sorbet/lsp.rb#173
2710
+ sig do
2711
+ params(
2712
+ uri: ::String,
2713
+ line: ::Integer,
2714
+ column: ::Integer,
2715
+ include_decl: T::Boolean
2716
+ ).returns(T::Array[::Spoom::LSP::Location])
2717
+ end
2718
+ def references(uri, line, column, include_decl = T.unsafe(nil)); end
2719
+
2720
+ # source://spoom//lib/spoom/sorbet/lsp.rb#37
2721
+ sig { params(message: ::Spoom::LSP::Message).returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
2722
+ def send(message); end
2723
+
2724
+ # source://spoom//lib/spoom/sorbet/lsp.rb#32
2725
+ sig { params(json_string: ::String).void }
2726
+ def send_raw(json_string); end
2727
+
2728
+ # source://spoom//lib/spoom/sorbet/lsp.rb#110
2729
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::SignatureHelp]) }
2730
+ def signatures(uri, line, column); end
2731
+
2732
+ # source://spoom//lib/spoom/sorbet/lsp.rb#197
2733
+ sig { params(query: ::String).returns(T::Array[::Spoom::LSP::DocumentSymbol]) }
2734
+ def symbols(query); end
2735
+
2736
+ # source://spoom//lib/spoom/sorbet/lsp.rb#152
2737
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::Location]) }
2738
+ def type_definitions(uri, line, column); end
2739
+ end
2740
+
2741
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#178
2742
+ class Spoom::LSP::Diagnostic < ::T::Struct
2743
+ include ::Spoom::LSP::PrintableSymbol
2744
+
2745
+ const :range, ::Spoom::LSP::Range
2746
+ const :code, ::Integer
2747
+ const :message, ::String
2748
+ const :information, ::Object
2749
+
2750
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#202
2751
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2752
+ def accept_printer(printer); end
2753
+
2754
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#207
2755
+ sig { returns(::String) }
2756
+ def to_s; end
2757
+
2758
+ class << self
2759
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#191
2760
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Diagnostic) }
2761
+ def from_json(json); end
2762
+
2763
+ # source://sorbet-runtime/0.5.11481/lib/types/struct.rb#13
2764
+ def inherited(s); end
2765
+ end
2766
+ end
2767
+
2768
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#212
2769
+ class Spoom::LSP::DocumentSymbol < ::T::Struct
2770
+ include ::Spoom::LSP::PrintableSymbol
2771
+
2772
+ const :name, ::String
2773
+ const :detail, T.nilable(::String)
2774
+ const :kind, ::Integer
2775
+ const :location, T.nilable(::Spoom::LSP::Location)
2776
+ const :range, T.nilable(::Spoom::LSP::Range)
2777
+ const :children, T::Array[::Spoom::LSP::DocumentSymbol]
2778
+
2779
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#240
2780
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2781
+ def accept_printer(printer); end
2782
+
2783
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#272
2784
+ sig { returns(::String) }
2785
+ def kind_string; end
2786
+
2787
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#267
2788
+ sig { returns(::String) }
2789
+ def to_s; end
2790
+
2791
+ class << self
2792
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#227
2793
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::DocumentSymbol) }
2794
+ def from_json(json); end
2795
+
2796
+ # source://sorbet-runtime/0.5.11481/lib/types/struct.rb#13
2797
+ def inherited(s); end
2798
+ end
2799
+ end
2800
+
2801
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#276
2802
+ Spoom::LSP::DocumentSymbol::SYMBOL_KINDS = T.let(T.unsafe(nil), Hash)
2803
+
2804
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#6
2805
+ class Spoom::LSP::Error < ::Spoom::Error; end
2806
+
2807
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#7
2808
+ class Spoom::LSP::Error::AlreadyOpen < ::Spoom::LSP::Error; end
2809
+
2810
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#8
2811
+ class Spoom::LSP::Error::BadHeaders < ::Spoom::LSP::Error; end
2812
+
2813
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#10
2814
+ class Spoom::LSP::Error::Diagnostics < ::Spoom::LSP::Error
2815
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#32
2816
+ sig { params(uri: ::String, diagnostics: T::Array[::Spoom::LSP::Diagnostic]).void }
2817
+ def initialize(uri, diagnostics); end
2818
+
2819
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#17
2820
+ sig { returns(T::Array[::Spoom::LSP::Diagnostic]) }
2821
+ def diagnostics; end
2822
+
2823
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#14
2824
+ sig { returns(::String) }
2825
+ def uri; end
2826
+
2827
+ class << self
2828
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#23
2829
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Error::Diagnostics) }
2830
+ def from_json(json); end
2831
+ end
2832
+ end
2833
+
2834
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#19
2835
+ class Spoom::LSP::Hover < ::T::Struct
2836
+ include ::Spoom::LSP::PrintableSymbol
2837
+
2838
+ const :contents, ::String
2839
+ const :range, T.nilable(T::Range[T.untyped])
2840
+
2841
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#39
2842
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2843
+ def accept_printer(printer); end
2844
+
2845
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#45
2846
+ sig { returns(::String) }
2847
+ def to_s; end
2848
+
2849
+ class << self
2850
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#30
2851
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Hover) }
2852
+ def from_json(json); end
2853
+
2854
+ # source://sorbet-runtime/0.5.11481/lib/types/struct.rb#13
2855
+ def inherited(s); end
2856
+ end
2857
+ end
2858
+
2859
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#112
2860
+ class Spoom::LSP::Location < ::T::Struct
2861
+ include ::Spoom::LSP::PrintableSymbol
2862
+
2863
+ const :uri, ::String
2864
+ const :range, ::Spoom::LSP::Range
2865
+
2866
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#132
2867
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2868
+ def accept_printer(printer); end
2869
+
2870
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#138
2871
+ sig { returns(::String) }
2872
+ def to_s; end
2873
+
2874
+ class << self
2875
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#123
2876
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Location) }
2877
+ def from_json(json); end
2878
+
2879
+ # source://sorbet-runtime/0.5.11481/lib/types/struct.rb#13
2880
+ def inherited(s); end
2881
+ end
2882
+ end
2883
+
2884
+ # A general message as defined by JSON-RPC.
2885
+ #
2886
+ # The language server protocol always uses `"2.0"` as the `jsonrpc` version.
2887
+ #
2888
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#12
2889
+ class Spoom::LSP::Message
2890
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#16
2891
+ sig { void }
2892
+ def initialize; end
2893
+
2894
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#21
2895
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
2896
+ def as_json; end
2897
+
2898
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#29
2899
+ sig { params(args: T.untyped).returns(::String) }
2900
+ def to_json(*args); end
2901
+ end
2902
+
2903
+ # A notification message.
2904
+ #
2905
+ # A processed notification message must not send a response back. They work like events.
2906
+ #
2907
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#58
2908
+ class Spoom::LSP::Notification < ::Spoom::LSP::Message
2909
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#68
2910
+ sig { params(method: ::String, params: T::Hash[T.untyped, T.untyped]).void }
2911
+ def initialize(method, params); end
2912
+
2913
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#62
2914
+ sig { returns(::String) }
2915
+ def method; end
2916
+
2917
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#65
2918
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
2919
+ def params; end
2920
+ end
2921
+
2922
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#50
2923
+ class Spoom::LSP::Position < ::T::Struct
2924
+ include ::Spoom::LSP::PrintableSymbol
2925
+
2926
+ const :line, ::Integer
2927
+ const :char, ::Integer
2928
+
2929
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#70
2930
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2931
+ def accept_printer(printer); end
2932
+
2933
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#75
2934
+ sig { returns(::String) }
2935
+ def to_s; end
2936
+
2937
+ class << self
2938
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#61
2939
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Position) }
2940
+ def from_json(json); end
2941
+
2942
+ # source://sorbet-runtime/0.5.11481/lib/types/struct.rb#13
2943
+ def inherited(s); end
2944
+ end
2945
+ end
2946
+
2947
+ # @abstract Subclasses must implement the `abstract` methods below.
2948
+ #
2949
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#9
2950
+ module Spoom::LSP::PrintableSymbol
2951
+ interface!
2952
+
2953
+ # @abstract
2954
+ #
2955
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#16
2956
+ sig { abstract.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2957
+ def accept_printer(printer); end
2958
+ end
2959
+
2960
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#80
2961
+ class Spoom::LSP::Range < ::T::Struct
2962
+ include ::Spoom::LSP::PrintableSymbol
2963
+
2964
+ const :start, ::Spoom::LSP::Position
2965
+ const :end, ::Spoom::LSP::Position
2966
+
2967
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#100
2968
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2969
+ def accept_printer(printer); end
2970
+
2971
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#107
2972
+ sig { returns(::String) }
2973
+ def to_s; end
2974
+
2975
+ class << self
2976
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#91
2977
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Range) }
2978
+ def from_json(json); end
2979
+
2980
+ # source://sorbet-runtime/0.5.11481/lib/types/struct.rb#13
2981
+ def inherited(s); end
2982
+ end
2983
+ end
2984
+
2985
+ # A request message to describe a request between the client and the server.
2986
+ #
2987
+ # Every processed request must send a response back to the sender of the request.
2988
+ #
2989
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#37
2990
+ class Spoom::LSP::Request < ::Spoom::LSP::Message
2991
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#47
2992
+ sig { params(id: ::Integer, method: ::String, params: T::Hash[T.untyped, T.untyped]).void }
2993
+ def initialize(id, method, params); end
2994
+
2995
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#41
2996
+ sig { returns(::Integer) }
2997
+ def id; end
2998
+
2999
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#44
3000
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
3001
+ def params; end
3002
+ end
3003
+
3004
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#40
3005
+ class Spoom::LSP::ResponseError < ::Spoom::LSP::Error
3006
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#63
3007
+ sig { params(code: ::Integer, message: ::String, data: T::Hash[T.untyped, T.untyped]).void }
3008
+ def initialize(code, message, data); end
3009
+
3010
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#44
3011
+ sig { returns(::Integer) }
3012
+ def code; end
3013
+
3014
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#47
3015
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
3016
+ def data; end
3017
+
3018
+ class << self
3019
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#53
3020
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::ResponseError) }
3021
+ def from_json(json); end
3022
+ end
3023
+ end
3024
+
3025
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#143
3026
+ class Spoom::LSP::SignatureHelp < ::T::Struct
3027
+ include ::Spoom::LSP::PrintableSymbol
3028
+
3029
+ const :label, T.nilable(::String)
3030
+ const :doc, ::Object
3031
+ const :params, T::Array[T.untyped]
3032
+
3033
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#165
3034
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
3035
+ def accept_printer(printer); end
3036
+
3037
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#173
3038
+ sig { returns(::String) }
3039
+ def to_s; end
3040
+
3041
+ class << self
3042
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#155
3043
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::SignatureHelp) }
3044
+ def from_json(json); end
3045
+
3046
+ # source://sorbet-runtime/0.5.11481/lib/types/struct.rb#13
3047
+ def inherited(s); end
3048
+ end
3049
+ end
3050
+
3051
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#309
3052
+ class Spoom::LSP::SymbolPrinter < ::Spoom::Printer
3053
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#326
3054
+ sig do
3055
+ params(
3056
+ out: T.any(::IO, ::StringIO),
3057
+ colors: T::Boolean,
3058
+ indent_level: ::Integer,
3059
+ prefix: T.nilable(::String)
3060
+ ).void
3061
+ end
3062
+ def initialize(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil), prefix: T.unsafe(nil)); end
3063
+
3064
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#348
3065
+ sig { params(uri: ::String).returns(::String) }
3066
+ def clean_uri(uri); end
3067
+
3068
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#316
3069
+ sig { returns(T.nilable(::String)) }
3070
+ def prefix; end
3071
+
3072
+ # @return [String, nil]
3073
+ #
3074
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#316
3075
+ def prefix=(_arg0); end
3076
+
3077
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#356
3078
+ sig { params(objects: T::Array[::Spoom::LSP::PrintableSymbol]).void }
3079
+ def print_list(objects); end
3080
+
3081
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#336
3082
+ sig { params(object: T.nilable(::Spoom::LSP::PrintableSymbol)).void }
3083
+ def print_object(object); end
3084
+
3085
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#343
3086
+ sig { params(objects: T::Array[::Spoom::LSP::PrintableSymbol]).void }
3087
+ def print_objects(objects); end
3088
+
3089
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#313
3090
+ sig { returns(T::Set[::Integer]) }
3091
+ def seen; end
3092
+ end
3093
+
3094
+ # source://spoom//lib/spoom/location.rb#5
3095
+ class Spoom::Location
3096
+ include ::Comparable
3097
+
3098
+ # source://spoom//lib/spoom/location.rb#53
3099
+ sig do
3100
+ params(
3101
+ file: ::String,
3102
+ start_line: ::Integer,
3103
+ start_column: ::Integer,
3104
+ end_line: ::Integer,
3105
+ end_column: ::Integer
3106
+ ).void
3107
+ end
3108
+ def initialize(file, start_line, start_column, end_line, end_column); end
3109
+
3110
+ # source://spoom//lib/spoom/location.rb#73
3111
+ sig { override.params(other: ::BasicObject).returns(T.nilable(::Integer)) }
3112
+ def <=>(other); end
3113
+
3114
+ # @return [Integer]
3115
+ #
3116
+ # source://spoom//lib/spoom/location.rb#42
3117
+ def end_column; end
3118
+
3119
+ # @return [Integer]
3120
+ #
3121
+ # source://spoom//lib/spoom/location.rb#42
3122
+ def end_line; end
3123
+
3124
+ # source://spoom//lib/spoom/location.rb#39
3125
+ sig { returns(::String) }
3126
+ def file; end
3127
+
3128
+ # source://spoom//lib/spoom/location.rb#62
3129
+ sig { params(other: ::Spoom::Location).returns(T::Boolean) }
3130
+ def include?(other); end
3131
+
3132
+ # @return [Integer]
3133
+ #
3134
+ # source://spoom//lib/spoom/location.rb#42
3135
+ def start_column; end
3136
+
3137
+ # source://spoom//lib/spoom/location.rb#42
3138
+ sig { returns(::Integer) }
3139
+ def start_line; end
3140
+
3141
+ # source://spoom//lib/spoom/location.rb#80
3142
+ sig { returns(::String) }
3143
+ def to_s; end
3144
+
3145
+ class << self
3146
+ # source://spoom//lib/spoom/location.rb#33
3147
+ sig { params(file: ::String, location: ::Prism::Location).returns(::Spoom::Location) }
3148
+ def from_prism(file, location); end
3149
+
3150
+ # @raise [LocationError]
3151
+ #
3152
+ # source://spoom//lib/spoom/location.rb#16
3153
+ sig { params(location_string: ::String).returns(::Spoom::Location) }
3154
+ def from_string(location_string); end
3155
+ end
3156
+ end
3157
+
3158
+ # source://spoom//lib/spoom/location.rb#10
3159
+ class Spoom::Location::LocationError < ::Spoom::Error; end
3160
+
3161
+ # source://spoom//lib/spoom/model/model.rb#5
3162
+ class Spoom::Model
3163
+ # source://spoom//lib/spoom/model/model.rb#238
3164
+ sig { void }
3165
+ def initialize; end
3166
+
3167
+ # Get a symbol by it's full name
3168
+ #
3169
+ # Raises an error if the symbol is not found
3170
+ #
3171
+ # @raise [Error]
3172
+ #
3173
+ # source://spoom//lib/spoom/model/model.rb#247
3174
+ sig { params(full_name: ::String).returns(::Spoom::Model::Symbol) }
3175
+ def [](full_name); end
3176
+
3177
+ # source://spoom//lib/spoom/model/model.rb#296
3178
+ sig { void }
3179
+ def finalize!; end
3180
+
3181
+ # Register a new symbol by it's full name
3182
+ #
3183
+ # If the symbol already exists, it will be returned.
3184
+ #
3185
+ # source://spoom//lib/spoom/model/model.rb#258
3186
+ sig { params(full_name: ::String).returns(::Spoom::Model::Symbol) }
3187
+ def register_symbol(full_name); end
3188
+
3189
+ # source://spoom//lib/spoom/model/model.rb#263
3190
+ sig { params(full_name: ::String, context: ::Spoom::Model::Symbol).returns(::Spoom::Model::Symbol) }
3191
+ def resolve_symbol(full_name, context:); end
3192
+
3193
+ # source://spoom//lib/spoom/model/model.rb#290
3194
+ sig { params(symbol: ::Spoom::Model::Symbol).returns(T::Array[::Spoom::Model::Symbol]) }
3195
+ def subtypes(symbol); end
3196
+
3197
+ # source://spoom//lib/spoom/model/model.rb#284
3198
+ sig { params(symbol: ::Spoom::Model::Symbol).returns(T::Array[::Spoom::Model::Symbol]) }
3199
+ def supertypes(symbol); end
3200
+
3201
+ # All the symbols registered in this model
3202
+ #
3203
+ # source://spoom//lib/spoom/model/model.rb#232
3204
+ sig { returns(T::Hash[::String, ::Spoom::Model::Symbol]) }
3205
+ def symbols; end
3206
+
3207
+ # source://spoom//lib/spoom/model/model.rb#235
3208
+ sig { returns(Spoom::Poset[::Spoom::Model::Symbol]) }
3209
+ def symbols_hierarchy; end
3210
+
3211
+ private
3212
+
3213
+ # source://spoom//lib/spoom/model/model.rb#303
3214
+ sig { void }
3215
+ def compute_symbols_hierarchy!; end
3216
+ end
3217
+
3218
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
3219
+ #
3220
+ # source://spoom//lib/spoom/model/model.rb#179
3221
+ class Spoom::Model::Attr < ::Spoom::Model::Property
3222
+ abstract!
3223
+ end
3224
+
3225
+ # source://spoom//lib/spoom/model/model.rb#185
3226
+ class Spoom::Model::AttrAccessor < ::Spoom::Model::Attr; end
3227
+
3228
+ # source://spoom//lib/spoom/model/model.rb#183
3229
+ class Spoom::Model::AttrReader < ::Spoom::Model::Attr; end
3230
+
3231
+ # source://spoom//lib/spoom/model/model.rb#184
3232
+ class Spoom::Model::AttrWriter < ::Spoom::Model::Attr; end
3233
+
3234
+ # Populate a Model by visiting the nodes from a Ruby file
3235
+ #
3236
+ # source://spoom//lib/spoom/model/builder.rb#7
3237
+ class Spoom::Model::Builder < ::Spoom::Model::NamespaceVisitor
3238
+ # source://spoom//lib/spoom/model/builder.rb#11
3239
+ sig { params(model: ::Spoom::Model, file: ::String).void }
3240
+ def initialize(model, file); end
3241
+
3242
+ # Accessors
3243
+ #
3244
+ # source://spoom//lib/spoom/model/builder.rb#146
3245
+ sig { override.params(node: ::Prism::CallNode).void }
3246
+ def visit_call_node(node); end
3247
+
3248
+ # Classes
3249
+ #
3250
+ # source://spoom//lib/spoom/model/builder.rb#24
3251
+ sig { override.params(node: ::Prism::ClassNode).void }
3252
+ def visit_class_node(node); end
3253
+
3254
+ # Constants
3255
+ #
3256
+ # source://spoom//lib/spoom/model/builder.rb#71
3257
+ sig { override.params(node: ::Prism::ConstantPathWriteNode).void }
3258
+ def visit_constant_path_write_node(node); end
3259
+
3260
+ # source://spoom//lib/spoom/model/builder.rb#92
3261
+ sig { override.params(node: ::Prism::ConstantWriteNode).void }
3262
+ def visit_constant_write_node(node); end
3263
+
3264
+ # Methods
3265
+ #
3266
+ # source://spoom//lib/spoom/model/builder.rb#127
3267
+ sig { override.params(node: ::Prism::DefNode).void }
3268
+ def visit_def_node(node); end
3269
+
3270
+ # Modules
3271
+ #
3272
+ # source://spoom//lib/spoom/model/builder.rb#55
3273
+ sig { override.params(node: ::Prism::ModuleNode).void }
3274
+ def visit_module_node(node); end
3275
+
3276
+ # source://spoom//lib/spoom/model/builder.rb#106
3277
+ sig { override.params(node: ::Prism::MultiWriteNode).void }
3278
+ def visit_multi_write_node(node); end
3279
+
3280
+ # source://spoom//lib/spoom/model/builder.rb#39
3281
+ sig { override.params(node: ::Prism::SingletonClassNode).void }
3282
+ def visit_singleton_class_node(node); end
3283
+
3284
+ private
3285
+
3286
+ # source://spoom//lib/spoom/model/builder.rb#234
3287
+ sig { returns(T::Array[::Spoom::Model::Sig]) }
3288
+ def collect_sigs; end
3289
+
3290
+ # source://spoom//lib/spoom/model/builder.rb#229
3291
+ sig { returns(::Spoom::Model::Visibility) }
3292
+ def current_visibility; end
3293
+
3294
+ # source://spoom//lib/spoom/model/builder.rb#241
3295
+ sig { params(node: ::Prism::Node).returns(::Spoom::Location) }
3296
+ def node_location(node); end
3297
+ end
3298
+
3299
+ # source://spoom//lib/spoom/model/model.rb#117
3300
+ class Spoom::Model::Class < ::Spoom::Model::Namespace
3301
+ # source://spoom//lib/spoom/model/model.rb#129
3302
+ sig do
3303
+ params(
3304
+ symbol: ::Spoom::Model::Symbol,
3305
+ owner: T.nilable(::Spoom::Model::Namespace),
3306
+ location: ::Spoom::Location,
3307
+ superclass_name: T.nilable(::String)
3308
+ ).void
3309
+ end
3310
+ def initialize(symbol, owner:, location:, superclass_name: T.unsafe(nil)); end
3311
+
3312
+ # source://spoom//lib/spoom/model/model.rb#119
3313
+ sig { returns(T.nilable(::String)) }
3314
+ def superclass_name; end
3315
+
3316
+ # @return [String, nil]
3317
+ #
3318
+ # source://spoom//lib/spoom/model/model.rb#119
3319
+ def superclass_name=(_arg0); end
3320
+ end
3321
+
3322
+ # source://spoom//lib/spoom/model/model.rb#138
3323
+ class Spoom::Model::Constant < ::Spoom::Model::SymbolDef
3324
+ # source://spoom//lib/spoom/model/model.rb#143
3325
+ sig do
3326
+ params(
3327
+ symbol: ::Spoom::Model::Symbol,
3328
+ owner: T.nilable(::Spoom::Model::Namespace),
3329
+ location: ::Spoom::Location,
3330
+ value: ::String
3331
+ ).void
3332
+ end
3333
+ def initialize(symbol, owner:, location:, value:); end
3334
+
3335
+ # source://spoom//lib/spoom/model/model.rb#140
3336
+ sig { returns(::String) }
3337
+ def value; end
3338
+ end
3339
+
3340
+ # source://spoom//lib/spoom/model/model.rb#8
3341
+ class Spoom::Model::Error < ::Spoom::Error; end
3342
+
3343
+ # source://spoom//lib/spoom/model/model.rb#213
3344
+ class Spoom::Model::Extend < ::Spoom::Model::Mixin; end
3345
+
3346
+ # source://spoom//lib/spoom/model/model.rb#211
3347
+ class Spoom::Model::Include < ::Spoom::Model::Mixin; end
3348
+
3349
+ # source://spoom//lib/spoom/model/model.rb#177
3350
+ class Spoom::Model::Method < ::Spoom::Model::Property; end
3351
+
3352
+ # A mixin (include, prepend, extend) to a namespace
3353
+ #
3354
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
3355
+ #
3356
+ # source://spoom//lib/spoom/model/model.rb#196
3357
+ class Spoom::Model::Mixin
3358
+ abstract!
3359
+
3360
+ # source://spoom//lib/spoom/model/model.rb#206
3361
+ sig { params(name: ::String).void }
3362
+ def initialize(name); end
3363
+
3364
+ # source://spoom//lib/spoom/model/model.rb#203
3365
+ sig { returns(::String) }
3366
+ def name; end
3367
+ end
3368
+
3369
+ # source://spoom//lib/spoom/model/model.rb#136
3370
+ class Spoom::Model::Module < ::Spoom::Model::Namespace; end
3371
+
3372
+ # A class or module
3373
+ #
3374
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
3375
+ #
3376
+ # source://spoom//lib/spoom/model/model.rb#97
3377
+ class Spoom::Model::Namespace < ::Spoom::Model::SymbolDef
3378
+ abstract!
3379
+
3380
+ # source://spoom//lib/spoom/model/model.rb#107
3381
+ sig do
3382
+ params(
3383
+ symbol: ::Spoom::Model::Symbol,
3384
+ owner: T.nilable(::Spoom::Model::Namespace),
3385
+ location: ::Spoom::Location
3386
+ ).void
3387
+ end
3388
+ def initialize(symbol, owner:, location:); end
3389
+
3390
+ # source://spoom//lib/spoom/model/model.rb#101
3391
+ sig { returns(T::Array[::Spoom::Model::SymbolDef]) }
3392
+ def children; end
3393
+
3394
+ # source://spoom//lib/spoom/model/model.rb#104
3395
+ sig { returns(T::Array[::Spoom::Model::Mixin]) }
3396
+ def mixins; end
3397
+ end
3398
+
3399
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
3400
+ #
3401
+ # source://spoom//lib/spoom/model/namespace_visitor.rb#6
3402
+ class Spoom::Model::NamespaceVisitor < ::Spoom::Visitor
3403
+ abstract!
3404
+
3405
+ # source://spoom//lib/spoom/model/namespace_visitor.rb#12
3406
+ sig { void }
3407
+ def initialize; end
3408
+
3409
+ # source://spoom//lib/spoom/model/namespace_visitor.rb#19
3410
+ sig { override.params(node: T.nilable(::Prism::Node)).void }
3411
+ def visit(node); end
3412
+ end
3413
+
3414
+ # source://spoom//lib/spoom/model/model.rb#212
3415
+ class Spoom::Model::Prepend < ::Spoom::Model::Mixin; end
3416
+
3417
+ # A method or an attribute accessor
3418
+ #
3419
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
3420
+ #
3421
+ # source://spoom//lib/spoom/model/model.rb#151
3422
+ class Spoom::Model::Property < ::Spoom::Model::SymbolDef
3423
+ abstract!
3424
+
3425
+ # source://spoom//lib/spoom/model/model.rb#169
3426
+ sig do
3427
+ params(
3428
+ symbol: ::Spoom::Model::Symbol,
3429
+ owner: T.nilable(::Spoom::Model::Namespace),
3430
+ location: ::Spoom::Location,
3431
+ visibility: ::Spoom::Model::Visibility,
3432
+ sigs: T::Array[::Spoom::Model::Sig]
3433
+ ).void
3434
+ end
3435
+ def initialize(symbol, owner:, location:, visibility:, sigs: T.unsafe(nil)); end
3436
+
3437
+ # source://spoom//lib/spoom/model/model.rb#158
3438
+ sig { returns(T::Array[::Spoom::Model::Sig]) }
3439
+ def sigs; end
3440
+
3441
+ # source://spoom//lib/spoom/model/model.rb#155
3442
+ sig { returns(::Spoom::Model::Visibility) }
3443
+ def visibility; end
3444
+ end
3445
+
3446
+ # A reference to something that looks like a constant or a method
3447
+ #
3448
+ # Constants could be classes, modules, or actual constants.
3449
+ # Methods could be accessors, instance or class methods, aliases, etc.
3450
+ #
3451
+ # source://spoom//lib/spoom/model/reference.rb#10
3452
+ class Spoom::Model::Reference < ::T::Struct
3453
+ const :kind, ::Spoom::Model::Reference::Kind
3454
+ const :name, ::String
3455
+ const :location, ::Spoom::Location
3456
+
3457
+ # source://spoom//lib/spoom/model/reference.rb#39
3458
+ sig { returns(T::Boolean) }
3459
+ def constant?; end
3460
+
3461
+ # source://spoom//lib/spoom/model/reference.rb#44
3462
+ sig { returns(T::Boolean) }
3463
+ def method?; end
3464
+
3465
+ class << self
3466
+ # source://spoom//lib/spoom/model/reference.rb#24
3467
+ sig { params(name: ::String, location: ::Spoom::Location).returns(::Spoom::Model::Reference) }
3468
+ def constant(name, location); end
3469
+
3470
+ # source://sorbet-runtime/0.5.11481/lib/types/struct.rb#13
3471
+ def inherited(s); end
3472
+
3473
+ # source://spoom//lib/spoom/model/reference.rb#29
3474
+ sig { params(name: ::String, location: ::Spoom::Location).returns(::Spoom::Model::Reference) }
3475
+ def method(name, location); end
3476
+ end
3477
+ end
3478
+
3479
+ # source://spoom//lib/spoom/model/reference.rb#13
3480
+ class Spoom::Model::Reference::Kind < ::T::Enum
3481
+ enums do
3482
+ Constant = new
3483
+ Method = new
3484
+ end
3485
+ end
3486
+
3487
+ # Visit a file to collect all the references to constants and methods
3488
+ #
3489
+ # source://spoom//lib/spoom/model/references_visitor.rb#7
3490
+ class Spoom::Model::ReferencesVisitor < ::Spoom::Visitor
3491
+ # source://spoom//lib/spoom/model/references_visitor.rb#14
3492
+ sig { params(file: ::String).void }
3493
+ def initialize(file); end
3494
+
3495
+ # source://spoom//lib/spoom/model/references_visitor.rb#11
3496
+ sig { returns(T::Array[::Spoom::Model::Reference]) }
3497
+ def references; end
3498
+
3499
+ # source://spoom//lib/spoom/model/references_visitor.rb#22
3500
+ sig { override.params(node: ::Prism::AliasMethodNode).void }
3501
+ def visit_alias_method_node(node); end
3502
+
3503
+ # source://spoom//lib/spoom/model/references_visitor.rb#27
3504
+ sig { override.params(node: ::Prism::AndNode).void }
3505
+ def visit_and_node(node); end
3506
+
3507
+ # source://spoom//lib/spoom/model/references_visitor.rb#33
3508
+ sig { override.params(node: ::Prism::BlockArgumentNode).void }
3509
+ def visit_block_argument_node(node); end
3510
+
3511
+ # source://spoom//lib/spoom/model/references_visitor.rb#44
3512
+ sig { override.params(node: ::Prism::CallAndWriteNode).void }
3513
+ def visit_call_and_write_node(node); end
3514
+
3515
+ # source://spoom//lib/spoom/model/references_visitor.rb#68
3516
+ sig { override.params(node: ::Prism::CallNode).void }
3517
+ def visit_call_node(node); end
3518
+
3519
+ # source://spoom//lib/spoom/model/references_visitor.rb#52
3520
+ sig { override.params(node: ::Prism::CallOperatorWriteNode).void }
3521
+ def visit_call_operator_write_node(node); end
3522
+
3523
+ # source://spoom//lib/spoom/model/references_visitor.rb#60
3524
+ sig { override.params(node: ::Prism::CallOrWriteNode).void }
3525
+ def visit_call_or_write_node(node); end
3526
+
3527
+ # source://spoom//lib/spoom/model/references_visitor.rb#85
3528
+ sig { override.params(node: ::Prism::ClassNode).void }
3529
+ def visit_class_node(node); end
3530
+
3531
+ # source://spoom//lib/spoom/model/references_visitor.rb#91
3532
+ sig { override.params(node: ::Prism::ConstantAndWriteNode).void }
3533
+ def visit_constant_and_write_node(node); end
3534
+
3535
+ # source://spoom//lib/spoom/model/references_visitor.rb#97
3536
+ sig { override.params(node: ::Prism::ConstantOperatorWriteNode).void }
3537
+ def visit_constant_operator_write_node(node); end
3538
+
3539
+ # source://spoom//lib/spoom/model/references_visitor.rb#103
3540
+ sig { override.params(node: ::Prism::ConstantOrWriteNode).void }
3541
+ def visit_constant_or_write_node(node); end
3542
+
3543
+ # source://spoom//lib/spoom/model/references_visitor.rb#109
3544
+ sig { override.params(node: ::Prism::ConstantPathNode).void }
3545
+ def visit_constant_path_node(node); end
3546
+
3547
+ # source://spoom//lib/spoom/model/references_visitor.rb#115
3548
+ sig { override.params(node: ::Prism::ConstantPathWriteNode).void }
3549
+ def visit_constant_path_write_node(node); end
3550
+
3551
+ # source://spoom//lib/spoom/model/references_visitor.rb#121
3552
+ sig { override.params(node: ::Prism::ConstantReadNode).void }
3553
+ def visit_constant_read_node(node); end
3554
+
3555
+ # source://spoom//lib/spoom/model/references_visitor.rb#126
3556
+ sig { override.params(node: ::Prism::ConstantWriteNode).void }
3557
+ def visit_constant_write_node(node); end
3558
+
3559
+ # source://spoom//lib/spoom/model/references_visitor.rb#131
3560
+ sig { override.params(node: ::Prism::LocalVariableAndWriteNode).void }
3561
+ def visit_local_variable_and_write_node(node); end
3562
+
3563
+ # source://spoom//lib/spoom/model/references_visitor.rb#139
3564
+ sig { override.params(node: ::Prism::LocalVariableOperatorWriteNode).void }
3565
+ def visit_local_variable_operator_write_node(node); end
3566
+
3567
+ # source://spoom//lib/spoom/model/references_visitor.rb#147
3568
+ sig { override.params(node: ::Prism::LocalVariableOrWriteNode).void }
3569
+ def visit_local_variable_or_write_node(node); end
3570
+
3571
+ # source://spoom//lib/spoom/model/references_visitor.rb#155
3572
+ sig { override.params(node: ::Prism::LocalVariableWriteNode).void }
3573
+ def visit_local_variable_write_node(node); end
3574
+
3575
+ # source://spoom//lib/spoom/model/references_visitor.rb#161
3576
+ sig { override.params(node: ::Prism::ModuleNode).void }
3577
+ def visit_module_node(node); end
3578
+
3579
+ # source://spoom//lib/spoom/model/references_visitor.rb#166
3580
+ sig { override.params(node: ::Prism::MultiWriteNode).void }
3581
+ def visit_multi_write_node(node); end
3582
+
3583
+ # source://spoom//lib/spoom/model/references_visitor.rb#177
3584
+ sig { override.params(node: ::Prism::OrNode).void }
3585
+ def visit_or_node(node); end
3586
+
3587
+ private
3588
+
3589
+ # source://spoom//lib/spoom/model/references_visitor.rb#195
3590
+ sig { params(node: ::Prism::Node).returns(::Spoom::Location) }
3591
+ def node_location(node); end
3592
+
3593
+ # source://spoom//lib/spoom/model/references_visitor.rb#185
3594
+ sig { params(name: ::String, node: ::Prism::Node).void }
3595
+ def reference_constant(name, node); end
3596
+
3597
+ # source://spoom//lib/spoom/model/references_visitor.rb#190
3598
+ sig { params(name: ::String, node: ::Prism::Node).void }
3599
+ def reference_method(name, node); end
3600
+ end
3601
+
3602
+ # A Sorbet signature (sig block)
3603
+ #
3604
+ # source://spoom//lib/spoom/model/model.rb#216
3605
+ class Spoom::Model::Sig
3606
+ # source://spoom//lib/spoom/model/model.rb#223
3607
+ sig { params(string: ::String).void }
3608
+ def initialize(string); end
3609
+
3610
+ # source://spoom//lib/spoom/model/model.rb#220
3611
+ sig { returns(::String) }
3612
+ def string; end
3613
+ end
3614
+
3615
+ # source://spoom//lib/spoom/model/model.rb#115
3616
+ class Spoom::Model::SingletonClass < ::Spoom::Model::Namespace; end
3617
+
3618
+ # A Symbol is a uniquely named entity in the Ruby codebase
3619
+ #
3620
+ # A symbol can have multiple definitions, e.g. a class can be reopened.
3621
+ # Sometimes a symbol can have multiple definitions of different types,
3622
+ # e.g. `foo` method can be defined both as a method and as an attribute accessor.
3623
+ #
3624
+ # source://spoom//lib/spoom/model/model.rb#15
3625
+ class Spoom::Model::Symbol
3626
+ # source://spoom//lib/spoom/model/model.rb#27
3627
+ sig { params(full_name: ::String).void }
3628
+ def initialize(full_name); end
3629
+
3630
+ # The definitions of this symbol (where it exists in the code)
3631
+ #
3632
+ # source://spoom//lib/spoom/model/model.rb#24
3633
+ sig { returns(T::Array[::Spoom::Model::SymbolDef]) }
3634
+ def definitions; end
3635
+
3636
+ # The full, unique name of this symbol
3637
+ #
3638
+ # source://spoom//lib/spoom/model/model.rb#20
3639
+ sig { returns(::String) }
3640
+ def full_name; end
3641
+
3642
+ # The short name of this symbol
3643
+ #
3644
+ # source://spoom//lib/spoom/model/model.rb#34
3645
+ sig { returns(::String) }
3646
+ def name; end
3647
+
3648
+ # source://spoom//lib/spoom/model/model.rb#39
3649
+ sig { returns(::String) }
3650
+ def to_s; end
3651
+ end
3652
+
3653
+ # A SymbolDef is a definition of a Symbol
3654
+ #
3655
+ # It can be a class, module, constant, method, etc.
3656
+ # A SymbolDef has a location pointing to the actual code that defines the symbol.
3657
+ #
3658
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
3659
+ #
3660
+ # source://spoom//lib/spoom/model/model.rb#55
3661
+ class Spoom::Model::SymbolDef
3662
+ abstract!
3663
+
3664
+ # source://spoom//lib/spoom/model/model.rb#74
3665
+ sig do
3666
+ params(
3667
+ symbol: ::Spoom::Model::Symbol,
3668
+ owner: T.nilable(::Spoom::Model::Namespace),
3669
+ location: ::Spoom::Location
3670
+ ).void
3671
+ end
3672
+ def initialize(symbol, owner:, location:); end
3673
+
3674
+ # The full name of the symbol this definition belongs to
3675
+ #
3676
+ # source://spoom//lib/spoom/model/model.rb#85
3677
+ sig { returns(::String) }
3678
+ def full_name; end
3679
+
3680
+ # The actual code location of this definition
3681
+ #
3682
+ # source://spoom//lib/spoom/model/model.rb#71
3683
+ sig { returns(::Spoom::Location) }
3684
+ def location; end
3685
+
3686
+ # The short name of the symbol this definition belongs to
3687
+ #
3688
+ # source://spoom//lib/spoom/model/model.rb#91
3689
+ sig { returns(::String) }
3690
+ def name; end
3691
+
3692
+ # The enclosing namespace this definition belongs to
3693
+ #
3694
+ # source://spoom//lib/spoom/model/model.rb#67
3695
+ sig { returns(T.nilable(::Spoom::Model::Namespace)) }
3696
+ def owner; end
3697
+
3698
+ # The symbol this definition belongs to
3699
+ #
3700
+ # source://spoom//lib/spoom/model/model.rb#63
3701
+ sig { returns(::Spoom::Model::Symbol) }
3702
+ def symbol; end
3703
+ end
3704
+
3705
+ # source://spoom//lib/spoom/model/model.rb#44
3706
+ class Spoom::Model::UnresolvedSymbol < ::Spoom::Model::Symbol
3707
+ # source://spoom//lib/spoom/model/model.rb#46
3708
+ sig { override.returns(::String) }
3709
+ def to_s; end
3710
+ end
3711
+
3712
+ # source://spoom//lib/spoom/model/model.rb#187
3713
+ class Spoom::Model::Visibility < ::T::Enum
3714
+ enums do
3715
+ Public = new
3716
+ Protected = new
3717
+ Private = new
3718
+ end
3719
+ end
3720
+
3721
+ # source://spoom//lib/spoom/parse.rb#7
3722
+ class Spoom::ParseError < ::Spoom::Error; end
3723
+
3724
+ # A Poset is a set of elements with a partial order relation.
3725
+ #
3726
+ # The partial order relation is a binary relation that is reflexive, antisymmetric, and transitive.
3727
+ # It can be used to represent a hierarchy of classes or modules, the dependencies between gems, etc.
3728
+ #
3729
+ # source://spoom//lib/spoom/poset.rb#9
3730
+ class Spoom::Poset
3731
+ extend T::Generic
3732
+
3733
+ E = type_member { { upper: Object } }
3734
+
3735
+ # source://spoom//lib/spoom/poset.rb#18
3736
+ sig { void }
3737
+ def initialize; end
3738
+
3739
+ # Get the POSet element for a given value
3740
+ #
3741
+ # Raises if the element is not found
3742
+ #
3743
+ # @raise [Error]
3744
+ #
3745
+ # source://spoom//lib/spoom/poset.rb#26
3746
+ sig { params(value: E).returns(Spoom::Poset::Element[E]) }
3747
+ def [](value); end
3748
+
3749
+ # Add a direct edge from one element to another
3750
+ #
3751
+ # Transitive edges (transitive closure) are automatically computed.
3752
+ # Adds the elements if they don't exist.
3753
+ # If the direct edge already exists, nothing is done.
3754
+ #
3755
+ # source://spoom//lib/spoom/poset.rb#54
3756
+ sig { params(from: E, to: E).void }
3757
+ def add_direct_edge(from, to); end
3758
+
3759
+ # Add an element to the POSet
3760
+ #
3761
+ # source://spoom//lib/spoom/poset.rb#35
3762
+ sig { params(value: E).returns(Spoom::Poset::Element[E]) }
3763
+ def add_element(value); end
3764
+
3765
+ # Is there a direct edge from `from` to `to`?
3766
+ #
3767
+ # source://spoom//lib/spoom/poset.rb#101
3768
+ sig { params(from: E, to: E).returns(T::Boolean) }
3769
+ def direct_edge?(from, to); end
3770
+
3771
+ # Is there an edge (direct or indirect) from `from` to `to`?
3772
+ #
3773
+ # source://spoom//lib/spoom/poset.rb#92
3774
+ sig { params(from: E, to: E).returns(T::Boolean) }
3775
+ def edge?(from, to); end
3776
+
3777
+ # Is the given value a element in the POSet?
3778
+ #
3779
+ # source://spoom//lib/spoom/poset.rb#44
3780
+ sig { params(value: E).returns(T::Boolean) }
3781
+ def element?(value); end
3782
+
3783
+ # Show the POSet as a DOT graph using xdot (used for debugging)
3784
+ #
3785
+ # source://spoom//lib/spoom/poset.rb#107
3786
+ sig { params(direct: T::Boolean, transitive: T::Boolean).void }
3787
+ def show_dot(direct: T.unsafe(nil), transitive: T.unsafe(nil)); end
3788
+
3789
+ # Return the POSet as a DOT graph
3790
+ #
3791
+ # source://spoom//lib/spoom/poset.rb#116
3792
+ sig { params(direct: T::Boolean, transitive: T::Boolean).returns(::String) }
3793
+ def to_dot(direct: T.unsafe(nil), transitive: T.unsafe(nil)); end
3794
+ end
3795
+
3796
+ # An element in a POSet
3797
+ #
3798
+ # source://spoom//lib/spoom/poset.rb#136
3799
+ class Spoom::Poset::Element
3800
+ extend T::Generic
3801
+ include ::Comparable
3802
+
3803
+ E = type_member { { upper: Object } }
3804
+
3805
+ # source://spoom//lib/spoom/poset.rb#152
3806
+ sig { params(value: E).void }
3807
+ def initialize(value); end
3808
+
3809
+ # source://spoom//lib/spoom/poset.rb#161
3810
+ sig { params(other: T.untyped).returns(T.nilable(::Integer)) }
3811
+ def <=>(other); end
3812
+
3813
+ # Direct and indirect ancestors of this element
3814
+ #
3815
+ # source://spoom//lib/spoom/poset.rb#180
3816
+ sig { returns(T::Array[E]) }
3817
+ def ancestors; end
3818
+
3819
+ # Direct children of this element
3820
+ #
3821
+ # source://spoom//lib/spoom/poset.rb#186
3822
+ sig { returns(T::Array[E]) }
3823
+ def children; end
3824
+
3825
+ # Direct and indirect descendants of this element
3826
+ #
3827
+ # source://spoom//lib/spoom/poset.rb#192
3828
+ sig { returns(T::Array[E]) }
3829
+ def descendants; end
3830
+
3831
+ # Edges (direct and indirect) from this element to other elements in the same POSet
3832
+ #
3833
+ # @return [Set<Element[E]>]
3834
+ #
3835
+ # source://spoom//lib/spoom/poset.rb#149
3836
+ def dfroms; end
3837
+
3838
+ # Edges (direct and indirect) from this element to other elements in the same POSet
3839
+ #
3840
+ # source://spoom//lib/spoom/poset.rb#149
3841
+ sig { returns(T::Set[Spoom::Poset::Element[E]]) }
3842
+ def dtos; end
3843
+
3844
+ # Edges (direct and indirect) from this element to other elements in the same POSet
3845
+ #
3846
+ # @return [Set<Element[E]>]
3847
+ #
3848
+ # source://spoom//lib/spoom/poset.rb#149
3849
+ def froms; end
3850
+
3851
+ # Direct parents of this element
3852
+ #
3853
+ # source://spoom//lib/spoom/poset.rb#174
3854
+ sig { returns(T::Array[E]) }
3855
+ def parents; end
3856
+
3857
+ # Edges (direct and indirect) from this element to other elements in the same POSet
3858
+ #
3859
+ # @return [Set<Element[E]>]
3860
+ #
3861
+ # source://spoom//lib/spoom/poset.rb#149
3862
+ def tos; end
3863
+
3864
+ # The value held by this element
3865
+ #
3866
+ # source://spoom//lib/spoom/poset.rb#145
3867
+ sig { returns(E) }
3868
+ def value; end
3869
+ end
3870
+
3871
+ # source://spoom//lib/spoom/poset.rb#13
3872
+ class Spoom::Poset::Error < ::Spoom::Error; end
3873
+
3874
+ # source://spoom//lib/spoom/printer.rb#7
3875
+ class Spoom::Printer
3876
+ include ::Spoom::Colorize
3877
+
3878
+ # source://spoom//lib/spoom/printer.rb#17
3879
+ sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean, indent_level: ::Integer).void }
3880
+ def initialize(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
3881
+
3882
+ # Colorize `string` with color if `@colors`
3883
+ #
3884
+ # source://spoom//lib/spoom/printer.rb#78
3885
+ sig { params(string: ::String, color: ::Spoom::Color).returns(::String) }
3886
+ def colorize(string, *color); end
3887
+
3888
+ # Decrease indent level
3889
+ #
3890
+ # source://spoom//lib/spoom/printer.rb#31
3891
+ sig { void }
3892
+ def dedent; end
3893
+
3894
+ # Increase indent level
3895
+ #
3896
+ # source://spoom//lib/spoom/printer.rb#25
3897
+ sig { void }
3898
+ def indent; end
3899
+
3900
+ # source://spoom//lib/spoom/printer.rb#14
3901
+ sig { returns(T.any(::IO, ::StringIO)) }
3902
+ def out; end
3903
+
3904
+ # @return [IO, StringIO]
3905
+ #
3906
+ # source://spoom//lib/spoom/printer.rb#14
3907
+ def out=(_arg0); end
3908
+
3909
+ # Print `string` into `out`
3910
+ #
3911
+ # source://spoom//lib/spoom/printer.rb#37
3912
+ sig { params(string: T.nilable(::String)).void }
3913
+ def print(string); end
3914
+
3915
+ # Print `string` colored with `color` into `out`
3916
+ #
3917
+ # Does not use colors unless `@colors`.
3918
+ #
3919
+ # source://spoom//lib/spoom/printer.rb#47
3920
+ sig { params(string: T.nilable(::String), color: ::Spoom::Color).void }
3921
+ def print_colored(string, *color); end
3922
+
3923
+ # Print `string` with indent and newline
3924
+ #
3925
+ # source://spoom//lib/spoom/printer.rb#62
3926
+ sig { params(string: T.nilable(::String)).void }
3927
+ def printl(string); end
3928
+
3929
+ # Print a new line into `out`
3930
+ #
3931
+ # source://spoom//lib/spoom/printer.rb#56
3932
+ sig { void }
3933
+ def printn; end
3934
+
3935
+ # Print an indent space into `out`
3936
+ #
3937
+ # source://spoom//lib/spoom/printer.rb#72
3938
+ sig { void }
3939
+ def printt; end
3940
+ end
3941
+
3942
+ # source://spoom//lib/spoom.rb#10
3943
+ Spoom::SPOOM_PATH = T.let(T.unsafe(nil), String)
3944
+
3945
+ # source://spoom//lib/spoom/sorbet/config.rb#5
3946
+ module Spoom::Sorbet; end
3947
+
3948
+ # source://spoom//lib/spoom/sorbet.rb#39
3949
+ Spoom::Sorbet::BIN_PATH = T.let(T.unsafe(nil), String)
3950
+
3951
+ # source://spoom//lib/spoom/sorbet.rb#36
3952
+ Spoom::Sorbet::CONFIG_PATH = T.let(T.unsafe(nil), String)
3953
+
3954
+ # Parse Sorbet config files
3955
+ #
3956
+ # Parses a Sorbet config file:
3957
+ #
3958
+ # ```ruby
3959
+ # config = Spoom::Sorbet::Config.parse_file("sorbet/config")
3960
+ # puts config.paths # "."
3961
+ # ```
3962
+ #
3963
+ # Parses a Sorbet config string:
3964
+ #
3965
+ # ```ruby
3966
+ # config = Spoom::Sorbet::Config.parse_string(<<~CONFIG)
3967
+ # a
3968
+ # --file=b
3969
+ # --ignore=c
3970
+ # CONFIG
3971
+ # puts config.paths # "a", "b"
3972
+ # puts config.ignore # "c"
3973
+ # ```
3974
+ #
3975
+ # source://spoom//lib/spoom/sorbet/config.rb#26
3976
+ class Spoom::Sorbet::Config
3977
+ # source://spoom//lib/spoom/sorbet/config.rb#38
3978
+ sig { void }
3979
+ def initialize; end
3980
+
3981
+ # @return [Array<String>]
3982
+ #
3983
+ # source://spoom//lib/spoom/sorbet/config.rb#32
3984
+ def allowed_extensions; end
3985
+
3986
+ # @return [Array<String>]
3987
+ #
3988
+ # source://spoom//lib/spoom/sorbet/config.rb#32
3989
+ def allowed_extensions=(_arg0); end
3990
+
3991
+ # source://spoom//lib/spoom/sorbet/config.rb#46
3992
+ sig { returns(::Spoom::Sorbet::Config) }
3993
+ def copy; end
3994
+
3995
+ # @return [Array<String>]
3996
+ #
3997
+ # source://spoom//lib/spoom/sorbet/config.rb#32
3998
+ def ignore; end
3999
+
4000
+ # @return [Array<String>]
4001
+ #
4002
+ # source://spoom//lib/spoom/sorbet/config.rb#32
4003
+ def ignore=(_arg0); end
4004
+
4005
+ # source://spoom//lib/spoom/sorbet/config.rb#35
4006
+ sig { returns(T::Boolean) }
4007
+ def no_stdlib; end
4008
+
4009
+ # @return [Boolean]
4010
+ #
4011
+ # source://spoom//lib/spoom/sorbet/config.rb#35
4012
+ def no_stdlib=(_arg0); end
4013
+
4014
+ # Returns self as a string of options that can be passed to Sorbet
4015
+ #
4016
+ # Example:
4017
+ # ~~~rb
4018
+ # config = Sorbet::Config.new
4019
+ # config.paths << "/foo"
4020
+ # config.paths << "/bar"
4021
+ # config.ignore << "/baz"
4022
+ # config.allowed_extensions << ".rb"
4023
+ #
4024
+ # puts config.options_string # "/foo /bar --ignore /baz --allowed-extension .rb"
4025
+ # ~~~
4026
+ #
4027
+ # source://spoom//lib/spoom/sorbet/config.rb#68
4028
+ sig { returns(::String) }
4029
+ def options_string; end
4030
+
4031
+ # source://spoom//lib/spoom/sorbet/config.rb#32
4032
+ sig { returns(T::Array[::String]) }
4033
+ def paths; end
4034
+
4035
+ # @return [Array<String>]
4036
+ #
4037
+ # source://spoom//lib/spoom/sorbet/config.rb#32
4038
+ def paths=(_arg0); end
4039
+
4040
+ class << self
4041
+ # source://spoom//lib/spoom/sorbet/config.rb#81
4042
+ sig { params(sorbet_config_path: ::String).returns(::Spoom::Sorbet::Config) }
4043
+ def parse_file(sorbet_config_path); end
4044
+
4045
+ # source://spoom//lib/spoom/sorbet/config.rb#86
4046
+ sig { params(sorbet_config: ::String).returns(::Spoom::Sorbet::Config) }
4047
+ def parse_string(sorbet_config); end
4048
+
4049
+ private
4050
+
4051
+ # source://spoom//lib/spoom/sorbet/config.rb#150
4052
+ sig { params(line: ::String).returns(::String) }
4053
+ def parse_option(line); end
4054
+ end
4055
+ end
4056
+
4057
+ # source://spoom//lib/spoom/sorbet/config.rb#29
4058
+ Spoom::Sorbet::Config::DEFAULT_ALLOWED_EXTENSIONS = T.let(T.unsafe(nil), Array)
4059
+
4060
+ # source://spoom//lib/spoom/sorbet.rb#14
4061
+ class Spoom::Sorbet::Error < ::Spoom::Error
4062
+ # source://spoom//lib/spoom/sorbet.rb#29
4063
+ sig { params(message: ::String, result: ::Spoom::ExecResult).void }
4064
+ def initialize(message, result); end
4065
+
4066
+ # source://spoom//lib/spoom/sorbet.rb#21
4067
+ sig { returns(::Spoom::ExecResult) }
4068
+ def result; end
4069
+ end
4070
+
4071
+ # source://spoom//lib/spoom/sorbet.rb#17
4072
+ class Spoom::Sorbet::Error::Killed < ::Spoom::Sorbet::Error; end
4073
+
4074
+ # source://spoom//lib/spoom/sorbet.rb#18
4075
+ class Spoom::Sorbet::Error::Segfault < ::Spoom::Sorbet::Error; end
4076
+
4077
+ # source://spoom//lib/spoom/sorbet/errors.rb#6
4078
+ module Spoom::Sorbet::Errors
4079
+ class << self
4080
+ # source://spoom//lib/spoom/sorbet/errors.rb#13
4081
+ sig { params(errors: T::Array[::Spoom::Sorbet::Errors::Error]).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
4082
+ def sort_errors_by_code(errors); end
4083
+ end
4084
+ end
4085
+
4086
+ # source://spoom//lib/spoom/sorbet/errors.rb#7
4087
+ Spoom::Sorbet::Errors::DEFAULT_ERROR_URL_BASE = T.let(T.unsafe(nil), String)
4088
+
4089
+ # source://spoom//lib/spoom/sorbet/errors.rb#127
4090
+ class Spoom::Sorbet::Errors::Error
4091
+ include ::Comparable
4092
+
4093
+ # source://spoom//lib/spoom/sorbet/errors.rb#153
4094
+ sig do
4095
+ params(
4096
+ file: T.nilable(::String),
4097
+ line: T.nilable(::Integer),
4098
+ message: T.nilable(::String),
4099
+ code: T.nilable(::Integer),
4100
+ more: T::Array[::String]
4101
+ ).void
4102
+ end
4103
+ def initialize(file, line, message, code, more = T.unsafe(nil)); end
4104
+
4105
+ # By default errors are sorted by location
4106
+ #
4107
+ # source://spoom//lib/spoom/sorbet/errors.rb#164
4108
+ sig { params(other: T.untyped).returns(::Integer) }
4109
+ def <=>(other); end
4110
+
4111
+ # @return [Integer, nil]
4112
+ #
4113
+ # source://spoom//lib/spoom/sorbet/errors.rb#135
4114
+ def code; end
4115
+
4116
+ # source://spoom//lib/spoom/sorbet/errors.rb#132
4117
+ sig { returns(T.nilable(::String)) }
4118
+ def file; end
4119
+
4120
+ # Other files associated with the error
4121
+ #
4122
+ # source://spoom//lib/spoom/sorbet/errors.rb#142
4123
+ sig { returns(T::Set[::String]) }
4124
+ def files_from_error_sections; end
4125
+
4126
+ # source://spoom//lib/spoom/sorbet/errors.rb#135
4127
+ sig { returns(T.nilable(::Integer)) }
4128
+ def line; end
4129
+
4130
+ # @return [String, nil]
4131
+ #
4132
+ # source://spoom//lib/spoom/sorbet/errors.rb#132
4133
+ def message; end
4134
+
4135
+ # source://spoom//lib/spoom/sorbet/errors.rb#138
4136
+ sig { returns(T::Array[::String]) }
4137
+ def more; end
4138
+
4139
+ # source://spoom//lib/spoom/sorbet/errors.rb#171
4140
+ sig { returns(::String) }
4141
+ def to_s; end
4142
+ end
4143
+
4144
+ # Parse errors from Sorbet output
4145
+ #
4146
+ # source://spoom//lib/spoom/sorbet/errors.rb#18
4147
+ class Spoom::Sorbet::Errors::Parser
4148
+ # source://spoom//lib/spoom/sorbet/errors.rb#45
4149
+ sig { params(error_url_base: ::String).void }
4150
+ def initialize(error_url_base: T.unsafe(nil)); end
4151
+
4152
+ # source://spoom//lib/spoom/sorbet/errors.rb#52
4153
+ sig { params(output: ::String).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
4154
+ def parse(output); end
4155
+
4156
+ private
4157
+
4158
+ # @raise [ParseError]
4159
+ #
4160
+ # source://spoom//lib/spoom/sorbet/errors.rb#116
4161
+ sig { params(line: ::String).void }
4162
+ def append_error(line); end
4163
+
4164
+ # @raise [ParseError]
4165
+ #
4166
+ # source://spoom//lib/spoom/sorbet/errors.rb#108
4167
+ sig { void }
4168
+ def close_error; end
4169
+
4170
+ # source://spoom//lib/spoom/sorbet/errors.rb#75
4171
+ sig { params(error_url_base: ::String).returns(::Regexp) }
4172
+ def error_line_match_regexp(error_url_base); end
4173
+
4174
+ # source://spoom//lib/spoom/sorbet/errors.rb#92
4175
+ sig { params(line: ::String).returns(T.nilable(::Spoom::Sorbet::Errors::Error)) }
4176
+ def match_error_line(line); end
4177
+
4178
+ # @raise [ParseError]
4179
+ #
4180
+ # source://spoom//lib/spoom/sorbet/errors.rb#101
4181
+ sig { params(error: ::Spoom::Sorbet::Errors::Error).void }
4182
+ def open_error(error); end
4183
+
4184
+ class << self
4185
+ # source://spoom//lib/spoom/sorbet/errors.rb#38
4186
+ sig { params(output: ::String, error_url_base: ::String).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
4187
+ def parse_string(output, error_url_base: T.unsafe(nil)); end
4188
+ end
4189
+ end
4190
+
4191
+ # source://spoom//lib/spoom/sorbet/errors.rb#23
4192
+ Spoom::Sorbet::Errors::Parser::HEADER = T.let(T.unsafe(nil), Array)
4193
+
4194
+ # source://spoom//lib/spoom/sorbet/errors.rb#21
4195
+ class Spoom::Sorbet::Errors::Parser::ParseError < ::Spoom::Error; end
4196
+
4197
+ # source://spoom//lib/spoom/sorbet.rb#37
4198
+ Spoom::Sorbet::GEM_PATH = T.let(T.unsafe(nil), String)
4199
+
4200
+ # source://spoom//lib/spoom/sorbet.rb#38
4201
+ Spoom::Sorbet::GEM_VERSION = T.let(T.unsafe(nil), String)
4202
+
4203
+ # source://spoom//lib/spoom/sorbet.rb#41
4204
+ Spoom::Sorbet::KILLED_CODE = T.let(T.unsafe(nil), Integer)
4205
+
4206
+ # source://spoom//lib/spoom/sorbet/metrics.rb#8
4207
+ module Spoom::Sorbet::MetricsParser
4208
+ class << self
4209
+ # source://spoom//lib/spoom/sorbet/metrics.rb#15
4210
+ sig { params(path: ::String, prefix: ::String).returns(T::Hash[::String, ::Integer]) }
4211
+ def parse_file(path, prefix = T.unsafe(nil)); end
4212
+
4213
+ # source://spoom//lib/spoom/sorbet/metrics.rb#25
4214
+ sig { params(obj: T::Hash[::String, T.untyped], prefix: ::String).returns(T::Hash[::String, ::Integer]) }
4215
+ def parse_hash(obj, prefix = T.unsafe(nil)); end
4216
+
4217
+ # source://spoom//lib/spoom/sorbet/metrics.rb#20
4218
+ sig { params(string: ::String, prefix: ::String).returns(T::Hash[::String, ::Integer]) }
4219
+ def parse_string(string, prefix = T.unsafe(nil)); end
4220
+ end
4221
+ end
4222
+
4223
+ # source://spoom//lib/spoom/sorbet/metrics.rb#9
4224
+ Spoom::Sorbet::MetricsParser::DEFAULT_PREFIX = T.let(T.unsafe(nil), String)
4225
+
4226
+ # source://spoom//lib/spoom/sorbet.rb#42
4227
+ Spoom::Sorbet::SEGFAULT_CODE = T.let(T.unsafe(nil), Integer)
4228
+
4229
+ # source://spoom//lib/spoom/sorbet/sigils.rb#9
4230
+ module Spoom::Sorbet::Sigils
4231
+ class << self
4232
+ # changes the sigil in the file at the passed path to the specified new strictness
4233
+ #
4234
+ # source://spoom//lib/spoom/sorbet/sigils.rb#72
4235
+ sig { params(path: T.any(::Pathname, ::String), new_strictness: ::String).returns(T::Boolean) }
4236
+ def change_sigil_in_file(path, new_strictness); end
4237
+
4238
+ # changes the sigil to have a new strictness in a list of files
4239
+ #
4240
+ # source://spoom//lib/spoom/sorbet/sigils.rb#83
4241
+ sig { params(path_list: T::Array[::String], new_strictness: ::String).returns(T::Array[::String]) }
4242
+ def change_sigil_in_files(path_list, new_strictness); end
4243
+
4244
+ # returns a string containing the strictness of a sigil in a file at the passed path
4245
+ # * returns nil if no sigil
4246
+ #
4247
+ # source://spoom//lib/spoom/sorbet/sigils.rb#63
4248
+ sig { params(path: T.any(::Pathname, ::String)).returns(T.nilable(::String)) }
4249
+ def file_strictness(path); end
4250
+
4251
+ # returns the full sigil comment string for the passed strictness
4252
+ #
4253
+ # source://spoom//lib/spoom/sorbet/sigils.rb#38
4254
+ sig { params(strictness: ::String).returns(::String) }
4255
+ def sigil_string(strictness); end
4256
+
4257
+ # returns the strictness of a sigil in the passed file content string (nil if no sigil)
4258
+ #
4259
+ # source://spoom//lib/spoom/sorbet/sigils.rb#50
4260
+ sig { params(content: ::String).returns(T.nilable(::String)) }
4261
+ def strictness_in_content(content); end
4262
+
4263
+ # returns a string which is the passed content but with the sigil updated to a new strictness
4264
+ #
4265
+ # source://spoom//lib/spoom/sorbet/sigils.rb#56
4266
+ sig { params(content: ::String, new_strictness: ::String).returns(::String) }
4267
+ def update_sigil(content, new_strictness); end
4268
+
4269
+ # returns true if the passed string is a valid strictness (else false)
4270
+ #
4271
+ # source://spoom//lib/spoom/sorbet/sigils.rb#44
4272
+ sig { params(strictness: ::String).returns(T::Boolean) }
4273
+ def valid_strictness?(strictness); end
4274
+ end
4275
+ end
4276
+
4277
+ # source://spoom//lib/spoom/sorbet/sigils.rb#31
4278
+ Spoom::Sorbet::Sigils::SIGIL_REGEXP = T.let(T.unsafe(nil), Regexp)
4279
+
4280
+ # source://spoom//lib/spoom/sorbet/sigils.rb#13
4281
+ Spoom::Sorbet::Sigils::STRICTNESS_FALSE = T.let(T.unsafe(nil), String)
4282
+
4283
+ # source://spoom//lib/spoom/sorbet/sigils.rb#12
4284
+ Spoom::Sorbet::Sigils::STRICTNESS_IGNORE = T.let(T.unsafe(nil), String)
4285
+
4286
+ # source://spoom//lib/spoom/sorbet/sigils.rb#17
4287
+ Spoom::Sorbet::Sigils::STRICTNESS_INTERNAL = T.let(T.unsafe(nil), String)
4288
+
4289
+ # source://spoom//lib/spoom/sorbet/sigils.rb#15
4290
+ Spoom::Sorbet::Sigils::STRICTNESS_STRICT = T.let(T.unsafe(nil), String)
4291
+
4292
+ # source://spoom//lib/spoom/sorbet/sigils.rb#16
4293
+ Spoom::Sorbet::Sigils::STRICTNESS_STRONG = T.let(T.unsafe(nil), String)
4294
+
4295
+ # source://spoom//lib/spoom/sorbet/sigils.rb#14
4296
+ Spoom::Sorbet::Sigils::STRICTNESS_TRUE = T.let(T.unsafe(nil), String)
4297
+
4298
+ # source://spoom//lib/spoom/sorbet/sigils.rb#19
4299
+ Spoom::Sorbet::Sigils::VALID_STRICTNESS = T.let(T.unsafe(nil), Array)
4300
+
4301
+ # source://spoom//lib/spoom/timeline.rb#5
4302
+ class Spoom::Timeline
4303
+ # source://spoom//lib/spoom/timeline.rb#9
4304
+ sig { params(context: ::Spoom::Context, from: ::Time, to: ::Time).void }
4305
+ def initialize(context, from, to); end
4306
+
4307
+ # Return one commit for each date in `dates`
4308
+ #
4309
+ # source://spoom//lib/spoom/timeline.rb#36
4310
+ sig { params(dates: T::Array[::Time]).returns(T::Array[::Spoom::Git::Commit]) }
4311
+ def commits_for_dates(dates); end
4312
+
4313
+ # Return all months between `from` and `to`
4314
+ #
4315
+ # source://spoom//lib/spoom/timeline.rb#23
4316
+ sig { returns(T::Array[::Time]) }
4317
+ def months; end
4318
+
4319
+ # Return one commit for each month between `from` and `to`
4320
+ #
4321
+ # source://spoom//lib/spoom/timeline.rb#17
4322
+ sig { returns(T::Array[::Spoom::Git::Commit]) }
4323
+ def ticks; end
4324
+ end
4325
+
4326
+ # source://spoom//lib/spoom/version.rb#5
4327
+ Spoom::VERSION = T.let(T.unsafe(nil), String)
4328
+
4329
+ # source://spoom//lib/spoom/visitor.rb#7
4330
+ class Spoom::Visitor < ::Prism::Visitor
4331
+ # source://spoom//lib/spoom/visitor.rb#16
4332
+ sig { override.params(node: ::Prism::AliasGlobalVariableNode).void }
4333
+ def visit_alias_global_variable_node(node); end
4334
+
4335
+ # source://spoom//lib/spoom/visitor.rb#21
4336
+ sig { override.params(node: ::Prism::AliasMethodNode).void }
4337
+ def visit_alias_method_node(node); end
4338
+
4339
+ # source://spoom//lib/spoom/visitor.rb#26
4340
+ sig { override.params(node: ::Prism::AlternationPatternNode).void }
4341
+ def visit_alternation_pattern_node(node); end
4342
+
4343
+ # source://spoom//lib/spoom/visitor.rb#31
4344
+ sig { override.params(node: ::Prism::AndNode).void }
4345
+ def visit_and_node(node); end
4346
+
4347
+ # source://spoom//lib/spoom/visitor.rb#36
4348
+ sig { override.params(node: ::Prism::ArgumentsNode).void }
4349
+ def visit_arguments_node(node); end
4350
+
4351
+ # source://spoom//lib/spoom/visitor.rb#41
4352
+ sig { override.params(node: ::Prism::ArrayNode).void }
4353
+ def visit_array_node(node); end
4354
+
4355
+ # source://spoom//lib/spoom/visitor.rb#46
4356
+ sig { override.params(node: ::Prism::ArrayPatternNode).void }
4357
+ def visit_array_pattern_node(node); end
4358
+
4359
+ # source://spoom//lib/spoom/visitor.rb#51
4360
+ sig { override.params(node: ::Prism::AssocNode).void }
4361
+ def visit_assoc_node(node); end
4362
+
4363
+ # source://spoom//lib/spoom/visitor.rb#56
4364
+ sig { override.params(node: ::Prism::AssocSplatNode).void }
4365
+ def visit_assoc_splat_node(node); end
4366
+
4367
+ # source://spoom//lib/spoom/visitor.rb#61
4368
+ sig { override.params(node: ::Prism::BackReferenceReadNode).void }
4369
+ def visit_back_reference_read_node(node); end
4370
+
4371
+ # source://spoom//lib/spoom/visitor.rb#66
4372
+ sig { override.params(node: ::Prism::BeginNode).void }
4373
+ def visit_begin_node(node); end
4374
+
4375
+ # source://spoom//lib/spoom/visitor.rb#71
4376
+ sig { override.params(node: ::Prism::BlockArgumentNode).void }
4377
+ def visit_block_argument_node(node); end
4378
+
4379
+ # source://spoom//lib/spoom/visitor.rb#76
4380
+ sig { override.params(node: ::Prism::BlockLocalVariableNode).void }
4381
+ def visit_block_local_variable_node(node); end
4382
+
4383
+ # source://spoom//lib/spoom/visitor.rb#81
4384
+ sig { override.params(node: ::Prism::BlockNode).void }
4385
+ def visit_block_node(node); end
4386
+
4387
+ # source://spoom//lib/spoom/visitor.rb#86
4388
+ sig { override.params(node: ::Prism::BlockParameterNode).void }
4389
+ def visit_block_parameter_node(node); end
4390
+
4391
+ # source://spoom//lib/spoom/visitor.rb#91
4392
+ sig { override.params(node: ::Prism::BlockParametersNode).void }
4393
+ def visit_block_parameters_node(node); end
4394
+
4395
+ # source://spoom//lib/spoom/visitor.rb#96
4396
+ sig { override.params(node: ::Prism::BreakNode).void }
4397
+ def visit_break_node(node); end
4398
+
4399
+ # source://spoom//lib/spoom/visitor.rb#101
4400
+ sig { override.params(node: ::Prism::CallAndWriteNode).void }
4401
+ def visit_call_and_write_node(node); end
4402
+
4403
+ # source://spoom//lib/spoom/visitor.rb#106
4404
+ sig { override.params(node: ::Prism::CallNode).void }
4405
+ def visit_call_node(node); end
4406
+
4407
+ # source://spoom//lib/spoom/visitor.rb#111
4408
+ sig { override.params(node: ::Prism::CallOperatorWriteNode).void }
4409
+ def visit_call_operator_write_node(node); end
4410
+
4411
+ # source://spoom//lib/spoom/visitor.rb#116
4412
+ sig { override.params(node: ::Prism::CallOrWriteNode).void }
4413
+ def visit_call_or_write_node(node); end
4414
+
4415
+ # source://spoom//lib/spoom/visitor.rb#121
4416
+ sig { override.params(node: ::Prism::CallTargetNode).void }
4417
+ def visit_call_target_node(node); end
4418
+
4419
+ # source://spoom//lib/spoom/visitor.rb#126
4420
+ sig { override.params(node: ::Prism::CapturePatternNode).void }
4421
+ def visit_capture_pattern_node(node); end
4422
+
4423
+ # source://spoom//lib/spoom/visitor.rb#131
4424
+ sig { override.params(node: ::Prism::CaseMatchNode).void }
4425
+ def visit_case_match_node(node); end
4426
+
4427
+ # source://spoom//lib/spoom/visitor.rb#136
4428
+ sig { override.params(node: ::Prism::CaseNode).void }
4429
+ def visit_case_node(node); end
4430
+
4431
+ # source://spoom//lib/spoom/visitor.rb#11
4432
+ sig { override.params(node: ::Prism::Node).void }
4433
+ def visit_child_nodes(node); end
4434
+
4435
+ # source://spoom//lib/spoom/visitor.rb#141
4436
+ sig { override.params(node: ::Prism::ClassNode).void }
4437
+ def visit_class_node(node); end
4438
+
4439
+ # source://spoom//lib/spoom/visitor.rb#146
4440
+ sig { override.params(node: ::Prism::ClassVariableAndWriteNode).void }
4441
+ def visit_class_variable_and_write_node(node); end
4442
+
4443
+ # source://spoom//lib/spoom/visitor.rb#151
4444
+ sig { override.params(node: ::Prism::ClassVariableOperatorWriteNode).void }
4445
+ def visit_class_variable_operator_write_node(node); end
4446
+
4447
+ # source://spoom//lib/spoom/visitor.rb#156
4448
+ sig { override.params(node: ::Prism::ClassVariableOrWriteNode).void }
4449
+ def visit_class_variable_or_write_node(node); end
4450
+
4451
+ # source://spoom//lib/spoom/visitor.rb#161
4452
+ sig { override.params(node: ::Prism::ClassVariableReadNode).void }
4453
+ def visit_class_variable_read_node(node); end
4454
+
4455
+ # source://spoom//lib/spoom/visitor.rb#166
4456
+ sig { override.params(node: ::Prism::ClassVariableTargetNode).void }
4457
+ def visit_class_variable_target_node(node); end
4458
+
4459
+ # source://spoom//lib/spoom/visitor.rb#171
4460
+ sig { override.params(node: ::Prism::ClassVariableWriteNode).void }
4461
+ def visit_class_variable_write_node(node); end
4462
+
4463
+ # source://spoom//lib/spoom/visitor.rb#176
4464
+ sig { override.params(node: ::Prism::ConstantAndWriteNode).void }
4465
+ def visit_constant_and_write_node(node); end
4466
+
4467
+ # source://spoom//lib/spoom/visitor.rb#181
4468
+ sig { override.params(node: ::Prism::ConstantOperatorWriteNode).void }
4469
+ def visit_constant_operator_write_node(node); end
4470
+
4471
+ # source://spoom//lib/spoom/visitor.rb#186
4472
+ sig { override.params(node: ::Prism::ConstantOrWriteNode).void }
4473
+ def visit_constant_or_write_node(node); end
4474
+
4475
+ # source://spoom//lib/spoom/visitor.rb#191
4476
+ sig { override.params(node: ::Prism::ConstantPathAndWriteNode).void }
4477
+ def visit_constant_path_and_write_node(node); end
4478
+
4479
+ # source://spoom//lib/spoom/visitor.rb#196
4480
+ sig { override.params(node: ::Prism::ConstantPathNode).void }
4481
+ def visit_constant_path_node(node); end
4482
+
4483
+ # source://spoom//lib/spoom/visitor.rb#201
4484
+ sig { override.params(node: ::Prism::ConstantPathOperatorWriteNode).void }
4485
+ def visit_constant_path_operator_write_node(node); end
4486
+
4487
+ # source://spoom//lib/spoom/visitor.rb#206
4488
+ sig { override.params(node: ::Prism::ConstantPathOrWriteNode).void }
4489
+ def visit_constant_path_or_write_node(node); end
4490
+
4491
+ # source://spoom//lib/spoom/visitor.rb#211
4492
+ sig { override.params(node: ::Prism::ConstantPathTargetNode).void }
4493
+ def visit_constant_path_target_node(node); end
4494
+
4495
+ # source://spoom//lib/spoom/visitor.rb#216
4496
+ sig { override.params(node: ::Prism::ConstantPathWriteNode).void }
4497
+ def visit_constant_path_write_node(node); end
4498
+
4499
+ # source://spoom//lib/spoom/visitor.rb#221
4500
+ sig { override.params(node: ::Prism::ConstantReadNode).void }
4501
+ def visit_constant_read_node(node); end
4502
+
4503
+ # source://spoom//lib/spoom/visitor.rb#226
4504
+ sig { override.params(node: ::Prism::ConstantTargetNode).void }
4505
+ def visit_constant_target_node(node); end
4506
+
4507
+ # source://spoom//lib/spoom/visitor.rb#231
4508
+ sig { override.params(node: ::Prism::ConstantWriteNode).void }
4509
+ def visit_constant_write_node(node); end
4510
+
4511
+ # source://spoom//lib/spoom/visitor.rb#236
4512
+ sig { override.params(node: ::Prism::DefNode).void }
4513
+ def visit_def_node(node); end
4514
+
4515
+ # source://spoom//lib/spoom/visitor.rb#241
4516
+ sig { override.params(node: ::Prism::DefinedNode).void }
4517
+ def visit_defined_node(node); end
4518
+
4519
+ # source://spoom//lib/spoom/visitor.rb#246
4520
+ sig { override.params(node: ::Prism::ElseNode).void }
4521
+ def visit_else_node(node); end
4522
+
4523
+ # source://spoom//lib/spoom/visitor.rb#251
4524
+ sig { override.params(node: ::Prism::EmbeddedStatementsNode).void }
4525
+ def visit_embedded_statements_node(node); end
4526
+
4527
+ # source://spoom//lib/spoom/visitor.rb#256
4528
+ sig { override.params(node: ::Prism::EmbeddedVariableNode).void }
4529
+ def visit_embedded_variable_node(node); end
4530
+
4531
+ # source://spoom//lib/spoom/visitor.rb#261
4532
+ sig { override.params(node: ::Prism::EnsureNode).void }
4533
+ def visit_ensure_node(node); end
4534
+
4535
+ # source://spoom//lib/spoom/visitor.rb#266
4536
+ sig { override.params(node: ::Prism::FalseNode).void }
4537
+ def visit_false_node(node); end
4538
+
4539
+ # source://spoom//lib/spoom/visitor.rb#271
4540
+ sig { override.params(node: ::Prism::FindPatternNode).void }
4541
+ def visit_find_pattern_node(node); end
4542
+
4543
+ # source://spoom//lib/spoom/visitor.rb#276
4544
+ sig { override.params(node: ::Prism::FlipFlopNode).void }
4545
+ def visit_flip_flop_node(node); end
4546
+
4547
+ # source://spoom//lib/spoom/visitor.rb#281
4548
+ sig { override.params(node: ::Prism::FloatNode).void }
4549
+ def visit_float_node(node); end
4550
+
4551
+ # source://spoom//lib/spoom/visitor.rb#286
4552
+ sig { override.params(node: ::Prism::ForNode).void }
4553
+ def visit_for_node(node); end
4554
+
4555
+ # source://spoom//lib/spoom/visitor.rb#291
4556
+ sig { override.params(node: ::Prism::ForwardingArgumentsNode).void }
4557
+ def visit_forwarding_arguments_node(node); end
4558
+
4559
+ # source://spoom//lib/spoom/visitor.rb#296
4560
+ sig { override.params(node: ::Prism::ForwardingParameterNode).void }
4561
+ def visit_forwarding_parameter_node(node); end
4562
+
4563
+ # source://spoom//lib/spoom/visitor.rb#301
4564
+ sig { override.params(node: ::Prism::ForwardingSuperNode).void }
4565
+ def visit_forwarding_super_node(node); end
4566
+
4567
+ # source://spoom//lib/spoom/visitor.rb#306
4568
+ sig { override.params(node: ::Prism::GlobalVariableAndWriteNode).void }
4569
+ def visit_global_variable_and_write_node(node); end
4570
+
4571
+ # source://spoom//lib/spoom/visitor.rb#311
4572
+ sig { override.params(node: ::Prism::GlobalVariableOperatorWriteNode).void }
4573
+ def visit_global_variable_operator_write_node(node); end
4574
+
4575
+ # source://spoom//lib/spoom/visitor.rb#316
4576
+ sig { override.params(node: ::Prism::GlobalVariableOrWriteNode).void }
4577
+ def visit_global_variable_or_write_node(node); end
4578
+
4579
+ # source://spoom//lib/spoom/visitor.rb#321
4580
+ sig { override.params(node: ::Prism::GlobalVariableReadNode).void }
4581
+ def visit_global_variable_read_node(node); end
4582
+
4583
+ # source://spoom//lib/spoom/visitor.rb#326
4584
+ sig { override.params(node: ::Prism::GlobalVariableTargetNode).void }
4585
+ def visit_global_variable_target_node(node); end
4586
+
4587
+ # source://spoom//lib/spoom/visitor.rb#331
4588
+ sig { override.params(node: ::Prism::GlobalVariableWriteNode).void }
4589
+ def visit_global_variable_write_node(node); end
4590
+
4591
+ # source://spoom//lib/spoom/visitor.rb#336
4592
+ sig { override.params(node: ::Prism::HashNode).void }
4593
+ def visit_hash_node(node); end
4594
+
4595
+ # source://spoom//lib/spoom/visitor.rb#341
4596
+ sig { override.params(node: ::Prism::HashPatternNode).void }
4597
+ def visit_hash_pattern_node(node); end
4598
+
4599
+ # source://spoom//lib/spoom/visitor.rb#346
4600
+ sig { override.params(node: ::Prism::IfNode).void }
4601
+ def visit_if_node(node); end
4602
+
4603
+ # source://spoom//lib/spoom/visitor.rb#351
4604
+ sig { override.params(node: ::Prism::ImaginaryNode).void }
4605
+ def visit_imaginary_node(node); end
4606
+
4607
+ # source://spoom//lib/spoom/visitor.rb#356
4608
+ sig { override.params(node: ::Prism::ImplicitNode).void }
4609
+ def visit_implicit_node(node); end
4610
+
4611
+ # source://spoom//lib/spoom/visitor.rb#361
4612
+ sig { override.params(node: ::Prism::ImplicitRestNode).void }
4613
+ def visit_implicit_rest_node(node); end
4614
+
4615
+ # source://spoom//lib/spoom/visitor.rb#366
4616
+ sig { override.params(node: ::Prism::InNode).void }
4617
+ def visit_in_node(node); end
4618
+
4619
+ # source://spoom//lib/spoom/visitor.rb#371
4620
+ sig { override.params(node: ::Prism::IndexAndWriteNode).void }
4621
+ def visit_index_and_write_node(node); end
4622
+
4623
+ # source://spoom//lib/spoom/visitor.rb#376
4624
+ sig { override.params(node: ::Prism::IndexOperatorWriteNode).void }
4625
+ def visit_index_operator_write_node(node); end
4626
+
4627
+ # source://spoom//lib/spoom/visitor.rb#381
4628
+ sig { override.params(node: ::Prism::IndexOrWriteNode).void }
4629
+ def visit_index_or_write_node(node); end
4630
+
4631
+ # source://spoom//lib/spoom/visitor.rb#386
4632
+ sig { override.params(node: ::Prism::IndexTargetNode).void }
4633
+ def visit_index_target_node(node); end
4634
+
4635
+ # source://spoom//lib/spoom/visitor.rb#391
4636
+ sig { override.params(node: ::Prism::InstanceVariableAndWriteNode).void }
4637
+ def visit_instance_variable_and_write_node(node); end
4638
+
4639
+ # source://spoom//lib/spoom/visitor.rb#396
4640
+ sig { override.params(node: ::Prism::InstanceVariableOperatorWriteNode).void }
4641
+ def visit_instance_variable_operator_write_node(node); end
4642
+
4643
+ # source://spoom//lib/spoom/visitor.rb#401
4644
+ sig { override.params(node: ::Prism::InstanceVariableOrWriteNode).void }
4645
+ def visit_instance_variable_or_write_node(node); end
4646
+
4647
+ # source://spoom//lib/spoom/visitor.rb#406
4648
+ sig { override.params(node: ::Prism::InstanceVariableReadNode).void }
4649
+ def visit_instance_variable_read_node(node); end
4650
+
4651
+ # source://spoom//lib/spoom/visitor.rb#411
4652
+ sig { override.params(node: ::Prism::InstanceVariableTargetNode).void }
4653
+ def visit_instance_variable_target_node(node); end
4654
+
4655
+ # source://spoom//lib/spoom/visitor.rb#416
4656
+ sig { override.params(node: ::Prism::InstanceVariableWriteNode).void }
4657
+ def visit_instance_variable_write_node(node); end
4658
+
4659
+ # source://spoom//lib/spoom/visitor.rb#421
4660
+ sig { override.params(node: ::Prism::IntegerNode).void }
4661
+ def visit_integer_node(node); end
4662
+
4663
+ # source://spoom//lib/spoom/visitor.rb#426
4664
+ sig { override.params(node: ::Prism::InterpolatedMatchLastLineNode).void }
4665
+ def visit_interpolated_match_last_line_node(node); end
4666
+
4667
+ # source://spoom//lib/spoom/visitor.rb#431
4668
+ sig { override.params(node: ::Prism::InterpolatedRegularExpressionNode).void }
4669
+ def visit_interpolated_regular_expression_node(node); end
4670
+
4671
+ # source://spoom//lib/spoom/visitor.rb#436
4672
+ sig { override.params(node: ::Prism::InterpolatedStringNode).void }
4673
+ def visit_interpolated_string_node(node); end
4674
+
4675
+ # source://spoom//lib/spoom/visitor.rb#441
4676
+ sig { override.params(node: ::Prism::InterpolatedSymbolNode).void }
4677
+ def visit_interpolated_symbol_node(node); end
4678
+
4679
+ # source://spoom//lib/spoom/visitor.rb#446
4680
+ sig { override.params(node: ::Prism::InterpolatedXStringNode).void }
4681
+ def visit_interpolated_x_string_node(node); end
4682
+
4683
+ # source://spoom//lib/spoom/visitor.rb#451
4684
+ sig { override.params(node: ::Prism::KeywordHashNode).void }
4685
+ def visit_keyword_hash_node(node); end
4686
+
4687
+ # source://spoom//lib/spoom/visitor.rb#456
4688
+ sig { override.params(node: ::Prism::KeywordRestParameterNode).void }
4689
+ def visit_keyword_rest_parameter_node(node); end
4690
+
4691
+ # source://spoom//lib/spoom/visitor.rb#461
4692
+ sig { override.params(node: ::Prism::LambdaNode).void }
4693
+ def visit_lambda_node(node); end
4694
+
4695
+ # source://spoom//lib/spoom/visitor.rb#466
4696
+ sig { override.params(node: ::Prism::LocalVariableAndWriteNode).void }
4697
+ def visit_local_variable_and_write_node(node); end
4698
+
4699
+ # source://spoom//lib/spoom/visitor.rb#471
4700
+ sig { override.params(node: ::Prism::LocalVariableOperatorWriteNode).void }
4701
+ def visit_local_variable_operator_write_node(node); end
4702
+
4703
+ # source://spoom//lib/spoom/visitor.rb#476
4704
+ sig { override.params(node: ::Prism::LocalVariableOrWriteNode).void }
4705
+ def visit_local_variable_or_write_node(node); end
4706
+
4707
+ # source://spoom//lib/spoom/visitor.rb#481
4708
+ sig { override.params(node: ::Prism::LocalVariableReadNode).void }
4709
+ def visit_local_variable_read_node(node); end
4710
+
4711
+ # source://spoom//lib/spoom/visitor.rb#486
4712
+ sig { override.params(node: ::Prism::LocalVariableTargetNode).void }
4713
+ def visit_local_variable_target_node(node); end
4714
+
4715
+ # source://spoom//lib/spoom/visitor.rb#491
4716
+ sig { override.params(node: ::Prism::LocalVariableWriteNode).void }
4717
+ def visit_local_variable_write_node(node); end
4718
+
4719
+ # source://spoom//lib/spoom/visitor.rb#496
4720
+ sig { override.params(node: ::Prism::MatchLastLineNode).void }
4721
+ def visit_match_last_line_node(node); end
4722
+
4723
+ # source://spoom//lib/spoom/visitor.rb#501
4724
+ sig { override.params(node: ::Prism::MatchPredicateNode).void }
4725
+ def visit_match_predicate_node(node); end
4726
+
4727
+ # source://spoom//lib/spoom/visitor.rb#506
4728
+ sig { override.params(node: ::Prism::MatchRequiredNode).void }
4729
+ def visit_match_required_node(node); end
4730
+
4731
+ # source://spoom//lib/spoom/visitor.rb#511
4732
+ sig { override.params(node: ::Prism::MatchWriteNode).void }
4733
+ def visit_match_write_node(node); end
4734
+
4735
+ # source://spoom//lib/spoom/visitor.rb#516
4736
+ sig { override.params(node: ::Prism::MissingNode).void }
4737
+ def visit_missing_node(node); end
4738
+
4739
+ # source://spoom//lib/spoom/visitor.rb#521
4740
+ sig { override.params(node: ::Prism::ModuleNode).void }
4741
+ def visit_module_node(node); end
4742
+
4743
+ # source://spoom//lib/spoom/visitor.rb#526
4744
+ sig { override.params(node: ::Prism::MultiTargetNode).void }
4745
+ def visit_multi_target_node(node); end
4746
+
4747
+ # source://spoom//lib/spoom/visitor.rb#531
4748
+ sig { override.params(node: ::Prism::MultiWriteNode).void }
4749
+ def visit_multi_write_node(node); end
4750
+
4751
+ # source://spoom//lib/spoom/visitor.rb#536
4752
+ sig { override.params(node: ::Prism::NextNode).void }
4753
+ def visit_next_node(node); end
4754
+
4755
+ # source://spoom//lib/spoom/visitor.rb#541
4756
+ sig { override.params(node: ::Prism::NilNode).void }
4757
+ def visit_nil_node(node); end
4758
+
4759
+ # source://spoom//lib/spoom/visitor.rb#546
4760
+ sig { override.params(node: ::Prism::NoKeywordsParameterNode).void }
4761
+ def visit_no_keywords_parameter_node(node); end
4762
+
4763
+ # source://spoom//lib/spoom/visitor.rb#551
4764
+ sig { override.params(node: ::Prism::NumberedParametersNode).void }
4765
+ def visit_numbered_parameters_node(node); end
4766
+
4767
+ # source://spoom//lib/spoom/visitor.rb#556
4768
+ sig { override.params(node: ::Prism::NumberedReferenceReadNode).void }
4769
+ def visit_numbered_reference_read_node(node); end
4770
+
4771
+ # source://spoom//lib/spoom/visitor.rb#561
4772
+ sig { override.params(node: ::Prism::OptionalKeywordParameterNode).void }
4773
+ def visit_optional_keyword_parameter_node(node); end
4774
+
4775
+ # source://spoom//lib/spoom/visitor.rb#566
4776
+ sig { override.params(node: ::Prism::OptionalParameterNode).void }
4777
+ def visit_optional_parameter_node(node); end
4778
+
4779
+ # source://spoom//lib/spoom/visitor.rb#571
4780
+ sig { override.params(node: ::Prism::OrNode).void }
4781
+ def visit_or_node(node); end
4782
+
4783
+ # source://spoom//lib/spoom/visitor.rb#576
4784
+ sig { override.params(node: ::Prism::ParametersNode).void }
4785
+ def visit_parameters_node(node); end
4786
+
4787
+ # source://spoom//lib/spoom/visitor.rb#581
4788
+ sig { override.params(node: ::Prism::ParenthesesNode).void }
4789
+ def visit_parentheses_node(node); end
4790
+
4791
+ # source://spoom//lib/spoom/visitor.rb#586
4792
+ sig { override.params(node: ::Prism::PinnedExpressionNode).void }
4793
+ def visit_pinned_expression_node(node); end
4794
+
4795
+ # source://spoom//lib/spoom/visitor.rb#591
4796
+ sig { override.params(node: ::Prism::PinnedVariableNode).void }
4797
+ def visit_pinned_variable_node(node); end
4798
+
4799
+ # source://spoom//lib/spoom/visitor.rb#596
4800
+ sig { override.params(node: ::Prism::PostExecutionNode).void }
4801
+ def visit_post_execution_node(node); end
4802
+
4803
+ # source://spoom//lib/spoom/visitor.rb#601
4804
+ sig { override.params(node: ::Prism::PreExecutionNode).void }
4805
+ def visit_pre_execution_node(node); end
4806
+
4807
+ # source://spoom//lib/spoom/visitor.rb#606
4808
+ sig { override.params(node: ::Prism::ProgramNode).void }
4809
+ def visit_program_node(node); end
4810
+
4811
+ # source://spoom//lib/spoom/visitor.rb#611
4812
+ sig { override.params(node: ::Prism::RangeNode).void }
4813
+ def visit_range_node(node); end
4814
+
4815
+ # source://spoom//lib/spoom/visitor.rb#616
4816
+ sig { override.params(node: ::Prism::RationalNode).void }
4817
+ def visit_rational_node(node); end
4818
+
4819
+ # source://spoom//lib/spoom/visitor.rb#621
4820
+ sig { override.params(node: ::Prism::RedoNode).void }
4821
+ def visit_redo_node(node); end
4822
+
4823
+ # source://spoom//lib/spoom/visitor.rb#626
4824
+ sig { override.params(node: ::Prism::RegularExpressionNode).void }
4825
+ def visit_regular_expression_node(node); end
4826
+
4827
+ # source://spoom//lib/spoom/visitor.rb#631
4828
+ sig { override.params(node: ::Prism::RequiredKeywordParameterNode).void }
4829
+ def visit_required_keyword_parameter_node(node); end
4830
+
4831
+ # source://spoom//lib/spoom/visitor.rb#636
4832
+ sig { override.params(node: ::Prism::RequiredParameterNode).void }
4833
+ def visit_required_parameter_node(node); end
4834
+
4835
+ # source://spoom//lib/spoom/visitor.rb#641
4836
+ sig { override.params(node: ::Prism::RescueModifierNode).void }
4837
+ def visit_rescue_modifier_node(node); end
4838
+
4839
+ # source://spoom//lib/spoom/visitor.rb#646
4840
+ sig { override.params(node: ::Prism::RescueNode).void }
4841
+ def visit_rescue_node(node); end
4842
+
4843
+ # source://spoom//lib/spoom/visitor.rb#651
4844
+ sig { override.params(node: ::Prism::RestParameterNode).void }
4845
+ def visit_rest_parameter_node(node); end
4846
+
4847
+ # source://spoom//lib/spoom/visitor.rb#656
4848
+ sig { override.params(node: ::Prism::RetryNode).void }
4849
+ def visit_retry_node(node); end
4850
+
4851
+ # source://spoom//lib/spoom/visitor.rb#661
4852
+ sig { override.params(node: ::Prism::ReturnNode).void }
4853
+ def visit_return_node(node); end
4854
+
4855
+ # source://spoom//lib/spoom/visitor.rb#666
4856
+ sig { override.params(node: ::Prism::SelfNode).void }
4857
+ def visit_self_node(node); end
4858
+
4859
+ # source://spoom//lib/spoom/visitor.rb#671
4860
+ sig { override.params(node: ::Prism::SingletonClassNode).void }
4861
+ def visit_singleton_class_node(node); end
4862
+
4863
+ # source://spoom//lib/spoom/visitor.rb#676
4864
+ sig { override.params(node: ::Prism::SourceEncodingNode).void }
4865
+ def visit_source_encoding_node(node); end
4866
+
4867
+ # source://spoom//lib/spoom/visitor.rb#681
4868
+ sig { override.params(node: ::Prism::SourceFileNode).void }
4869
+ def visit_source_file_node(node); end
4870
+
4871
+ # source://spoom//lib/spoom/visitor.rb#686
4872
+ sig { override.params(node: ::Prism::SourceLineNode).void }
4873
+ def visit_source_line_node(node); end
4874
+
4875
+ # source://spoom//lib/spoom/visitor.rb#691
4876
+ sig { override.params(node: ::Prism::SplatNode).void }
4877
+ def visit_splat_node(node); end
4878
+
4879
+ # source://spoom//lib/spoom/visitor.rb#696
4880
+ sig { override.params(node: ::Prism::StatementsNode).void }
4881
+ def visit_statements_node(node); end
4882
+
4883
+ # source://spoom//lib/spoom/visitor.rb#701
4884
+ sig { override.params(node: ::Prism::StringNode).void }
4885
+ def visit_string_node(node); end
4886
+
4887
+ # source://spoom//lib/spoom/visitor.rb#706
4888
+ sig { override.params(node: ::Prism::SuperNode).void }
4889
+ def visit_super_node(node); end
4890
+
4891
+ # source://spoom//lib/spoom/visitor.rb#711
4892
+ sig { override.params(node: ::Prism::SymbolNode).void }
4893
+ def visit_symbol_node(node); end
4894
+
4895
+ # source://spoom//lib/spoom/visitor.rb#716
4896
+ sig { override.params(node: ::Prism::TrueNode).void }
4897
+ def visit_true_node(node); end
4898
+
4899
+ # source://spoom//lib/spoom/visitor.rb#721
4900
+ sig { override.params(node: ::Prism::UndefNode).void }
4901
+ def visit_undef_node(node); end
4902
+
4903
+ # source://spoom//lib/spoom/visitor.rb#726
4904
+ sig { override.params(node: ::Prism::UnlessNode).void }
4905
+ def visit_unless_node(node); end
4906
+
4907
+ # source://spoom//lib/spoom/visitor.rb#731
4908
+ sig { override.params(node: ::Prism::UntilNode).void }
4909
+ def visit_until_node(node); end
4910
+
4911
+ # source://spoom//lib/spoom/visitor.rb#736
4912
+ sig { override.params(node: ::Prism::WhenNode).void }
4913
+ def visit_when_node(node); end
4914
+
4915
+ # source://spoom//lib/spoom/visitor.rb#741
4916
+ sig { override.params(node: ::Prism::WhileNode).void }
4917
+ def visit_while_node(node); end
4918
+
4919
+ # source://spoom//lib/spoom/visitor.rb#746
4920
+ sig { override.params(node: ::Prism::XStringNode).void }
4921
+ def visit_x_string_node(node); end
4922
+
4923
+ # source://spoom//lib/spoom/visitor.rb#751
4924
+ sig { override.params(node: ::Prism::YieldNode).void }
4925
+ def visit_yield_node(node); end
4926
+ end