mangrove 0.31.0 → 0.34.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +107 -43
  3. data/lib/mangrove/result.rb +50 -0
  4. data/lib/mangrove/version.rb +1 -1
  5. data/sorbet/config +1 -0
  6. data/sorbet/rbi/gems/benchmark@0.4.0.rbi +618 -0
  7. data/sorbet/rbi/gems/date@3.4.1.rbi +75 -0
  8. data/sorbet/rbi/gems/{docile@1.4.0.rbi → docile@1.4.1.rbi} +2 -1
  9. data/sorbet/rbi/gems/{erubi@1.12.0.rbi → erubi@1.13.1.rbi} +26 -17
  10. data/sorbet/rbi/gems/{json@2.7.2.rbi → json@2.9.1.rbi} +516 -134
  11. data/sorbet/rbi/gems/logger@1.6.5.rbi +940 -0
  12. data/sorbet/rbi/gems/{parallel@1.24.0.rbi → parallel@1.26.3.rbi} +31 -21
  13. data/sorbet/rbi/gems/{parser@3.3.2.0.rbi → parser@3.3.7.0.rbi} +23 -1736
  14. data/sorbet/rbi/gems/{prism@0.29.0.rbi → prism@1.3.0.rbi} +13817 -10401
  15. data/sorbet/rbi/gems/{psych@5.1.2.rbi → psych@5.2.3.rbi} +289 -236
  16. data/sorbet/rbi/gems/{racc@1.8.0.rbi → racc@1.8.1.rbi} +0 -4
  17. data/sorbet/rbi/gems/rbi@0.2.3.rbi +4542 -0
  18. data/sorbet/rbi/gems/rbs@3.8.1.rbi +6882 -0
  19. data/sorbet/rbi/gems/{rdoc@6.7.0.rbi → rdoc@6.11.0.rbi} +1115 -1058
  20. data/sorbet/rbi/gems/{regexp_parser@2.9.2.rbi → regexp_parser@2.10.0.rbi} +193 -170
  21. data/sorbet/rbi/gems/{rspec-core@3.13.0.rbi → rspec-core@3.13.2.rbi} +146 -280
  22. data/sorbet/rbi/gems/{rspec-expectations@3.13.0.rbi → rspec-expectations@3.13.3.rbi} +323 -294
  23. data/sorbet/rbi/gems/{rspec-mocks@3.13.1.rbi → rspec-mocks@3.13.2.rbi} +46 -46
  24. data/sorbet/rbi/gems/{rspec-support@3.13.1.rbi → rspec-support@3.13.2.rbi} +22 -22
  25. data/sorbet/rbi/gems/ruboclean@0.7.1.rbi +473 -0
  26. data/sorbet/rbi/gems/{rubocop-ast@1.31.3.rbi → rubocop-ast@1.37.0.rbi} +1293 -745
  27. data/sorbet/rbi/gems/{rubocop-rspec@2.30.0.rbi → rubocop-rspec@3.4.0.rbi} +341 -1073
  28. data/sorbet/rbi/gems/{rubocop@1.64.1.rbi → rubocop@1.70.0.rbi} +5693 -3796
  29. data/sorbet/rbi/gems/{simplecov-html@0.12.3.rbi → simplecov-html@0.13.1.rbi} +77 -68
  30. data/sorbet/rbi/gems/{spoom@1.3.2.rbi → spoom@1.5.1.rbi} +2306 -1701
  31. data/sorbet/rbi/gems/{stringio@3.1.0.rbi → stringio@3.1.2.rbi} +1 -0
  32. data/sorbet/rbi/gems/{tapioca@0.14.3.rbi → tapioca@0.16.8.rbi} +411 -332
  33. data/sorbet/rbi/gems/{thor@1.3.1.rbi → thor@1.3.2.rbi} +57 -31
  34. data/sorbet/rbi/gems/unicode-display_width@3.1.4.rbi +132 -0
  35. data/sorbet/rbi/gems/unicode-emoji@4.0.4.rbi +251 -0
  36. data/sorbet/rbi/gems/{webrick@1.8.1.rbi → webrick@1.9.1.rbi} +92 -72
  37. data/sorbet/rbi/gems/{yard-sorbet@0.8.1.rbi → yard-sorbet@0.9.0.rbi} +36 -29
  38. data/sorbet/rbi/gems/{yard@0.9.36.rbi → yard@0.9.37.rbi} +393 -235
  39. metadata +39 -42
  40. data/sorbet/rbi/gems/rbi@0.1.13.rbi +0 -3078
  41. data/sorbet/rbi/gems/rexml@3.2.8.rbi +0 -4794
  42. data/sorbet/rbi/gems/ruboclean@0.6.0.rbi +0 -315
  43. data/sorbet/rbi/gems/rubocop-capybara@2.20.0.rbi +0 -1208
  44. data/sorbet/rbi/gems/rubocop-factory_bot@2.25.1.rbi +0 -928
  45. data/sorbet/rbi/gems/rubocop-rspec_rails@2.28.3.rbi +0 -911
  46. data/sorbet/rbi/gems/strscan@3.1.0.rbi +0 -9
  47. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +0 -65
  48. /data/sorbet/rbi/gems/{io-console@0.7.2.rbi → io-console@0.8.0.rbi} +0 -0
  49. /data/sorbet/rbi/gems/{reline@0.5.8.rbi → reline@0.6.0.rbi} +0 -0
  50. /data/sorbet/rbi/gems/{ruby-lsp@0.17.2.rbi → ruby-lsp@0.23.6.rbi} +0 -0
@@ -6,7 +6,13 @@
6
6
 
7
7
 
8
8
  # source://spoom//lib/spoom.rb#7
9
- module Spoom; end
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
10
16
 
11
17
  # source://spoom//lib/spoom/cli/helper.rb#9
12
18
  module Spoom::Cli; end
@@ -22,7 +28,7 @@ class Spoom::Cli::Deadcode < ::Thor
22
28
 
23
29
  def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
24
30
 
25
- # source://spoom//lib/spoom/cli/deadcode.rb#150
31
+ # source://spoom//lib/spoom/cli/deadcode.rb#154
26
32
  def remove(location_string); end
27
33
  end
28
34
 
@@ -128,13 +134,13 @@ class Spoom::Cli::Main < ::Thor
128
134
  # source://spoom//lib/spoom/cli.rb#65
129
135
  def coverage(*args); end
130
136
 
131
- # source://thor/1.3.1/lib/thor.rb#334
137
+ # source://thor/1.3.2/lib/thor.rb#334
132
138
  def deadcode(*args); end
133
139
 
134
140
  # source://spoom//lib/spoom/cli.rb#75
135
141
  def lsp(*args); end
136
142
 
137
- # source://thor/1.3.1/lib/thor.rb#334
143
+ # source://thor/1.3.2/lib/thor.rb#334
138
144
  def srb(*args); end
139
145
 
140
146
  # source://spoom//lib/spoom/cli.rb#94
@@ -270,23 +276,46 @@ class Spoom::Cli::Srb::LSP < ::Thor
270
276
  def types(file, line, col); end
271
277
  end
272
278
 
273
- # source://spoom//lib/spoom/cli/srb.rb#12
279
+ # source://spoom//lib/spoom/cli/srb.rb#13
274
280
  class Spoom::Cli::Srb::Main < ::Thor
275
- # source://thor/1.3.1/lib/thor.rb#334
281
+ # source://thor/1.3.2/lib/thor.rb#334
276
282
  def bump(*args); end
277
283
 
278
- # source://thor/1.3.1/lib/thor.rb#334
284
+ # source://thor/1.3.2/lib/thor.rb#334
279
285
  def coverage(*args); end
280
286
 
281
287
  def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
282
288
 
283
- # source://thor/1.3.1/lib/thor.rb#334
289
+ # source://thor/1.3.2/lib/thor.rb#334
284
290
  def lsp(*args); end
285
291
 
286
- # source://thor/1.3.1/lib/thor.rb#334
292
+ # source://thor/1.3.2/lib/thor.rb#334
293
+ def sigs(*args); end
294
+
295
+ # source://thor/1.3.2/lib/thor.rb#334
287
296
  def tc(*args); end
288
297
  end
289
298
 
299
+ # source://spoom//lib/spoom/cli/srb/sigs.rb#9
300
+ class Spoom::Cli::Srb::Sigs < ::Thor
301
+ include ::Spoom::Colorize
302
+ include ::Spoom::Cli::Helper
303
+
304
+ # source://spoom//lib/spoom/cli/srb/sigs.rb#45
305
+ def collect_files(paths); end
306
+
307
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
308
+
309
+ # source://spoom//lib/spoom/cli/srb/sigs.rb#32
310
+ def strip(*paths); end
311
+
312
+ # source://spoom//lib/spoom/cli/srb/sigs.rb#64
313
+ def transform_files(files, &block); end
314
+
315
+ # source://spoom//lib/spoom/cli/srb/sigs.rb#16
316
+ def translate(*paths); end
317
+ end
318
+
290
319
  # source://spoom//lib/spoom/cli/srb/tc.rb#7
291
320
  class Spoom::Cli::Srb::Tc < ::Thor
292
321
  include ::Spoom::Colorize
@@ -319,24 +348,24 @@ Spoom::Cli::Srb::Tc::SORT_LOC = T.let(T.unsafe(nil), String)
319
348
  # source://spoom//lib/spoom/colors.rb#5
320
349
  class Spoom::Color < ::T::Enum
321
350
  enums do
322
- CLEAR = new
323
- BOLD = new
324
351
  BLACK = new
325
- RED = new
326
- GREEN = new
327
- YELLOW = new
328
352
  BLUE = new
329
- MAGENTA = new
353
+ BOLD = new
354
+ CLEAR = new
330
355
  CYAN = new
331
- WHITE = new
356
+ GREEN = new
332
357
  LIGHT_BLACK = new
333
- LIGHT_RED = new
334
- LIGHT_GREEN = new
335
- LIGHT_YELLOW = new
336
358
  LIGHT_BLUE = new
337
- LIGHT_MAGENTA = new
338
359
  LIGHT_CYAN = new
360
+ LIGHT_GREEN = new
361
+ LIGHT_MAGENTA = new
362
+ LIGHT_RED = new
339
363
  LIGHT_WHITE = new
364
+ LIGHT_YELLOW = new
365
+ MAGENTA = new
366
+ RED = new
367
+ WHITE = new
368
+ YELLOW = new
340
369
  end
341
370
 
342
371
  # source://spoom//lib/spoom/colors.rb#32
@@ -420,7 +449,7 @@ module Spoom::Context::Bundle
420
449
  # Returns `nil` if `gem` cannot be found in the Gemfile.
421
450
  #
422
451
  # source://spoom//lib/spoom/context/bundle.rb#62
423
- sig { params(gem: ::String).returns(T.nilable(::String)) }
452
+ sig { params(gem: ::String).returns(T.nilable(::Gem::Version)) }
424
453
  def gem_version_from_gemfile_lock(gem); end
425
454
 
426
455
  # source://spoom//lib/spoom/context/bundle.rb#51
@@ -998,7 +1027,7 @@ class Spoom::Coverage::D3::ColorPalette < ::T::Struct
998
1027
  prop :strong, ::String
999
1028
 
1000
1029
  class << self
1001
- # source://sorbet-runtime/0.5.11414/lib/types/struct.rb#13
1030
+ # source://sorbet-runtime/0.5.11766/lib/types/struct.rb#13
1002
1031
  def inherited(s); end
1003
1032
  end
1004
1033
  end
@@ -1338,7 +1367,7 @@ class Spoom::Coverage::Snapshot < ::T::Struct
1338
1367
  sig { params(obj: T::Hash[::String, T.untyped]).returns(::Spoom::Coverage::Snapshot) }
1339
1368
  def from_obj(obj); end
1340
1369
 
1341
- # source://sorbet-runtime/0.5.11414/lib/types/struct.rb#13
1370
+ # source://sorbet-runtime/0.5.11766/lib/types/struct.rb#13
1342
1371
  def inherited(s); end
1343
1372
  end
1344
1373
  end
@@ -1390,53 +1419,15 @@ class Spoom::Coverage::Template
1390
1419
  def html; end
1391
1420
  end
1392
1421
 
1393
- # source://spoom//lib/spoom/deadcode/visitor.rb#5
1422
+ # source://spoom//lib/spoom/deadcode/erb.rb#27
1394
1423
  module Spoom::Deadcode
1395
1424
  class << self
1396
- # source://spoom//lib/spoom/deadcode.rb#81
1397
- sig do
1398
- params(
1399
- index: ::Spoom::Deadcode::Index,
1400
- erb: ::String,
1401
- file: ::String,
1402
- plugins: T::Array[::Spoom::Deadcode::Plugins::Base]
1403
- ).void
1404
- end
1405
- def index_erb(index, erb, file:, plugins: T.unsafe(nil)); end
1406
-
1407
- # source://spoom//lib/spoom/deadcode.rb#67
1408
- sig do
1409
- params(
1410
- index: ::Spoom::Deadcode::Index,
1411
- node: ::Prism::Node,
1412
- ruby: ::String,
1413
- file: ::String,
1414
- plugins: T::Array[::Spoom::Deadcode::Plugins::Base]
1415
- ).void
1416
- end
1417
- def index_node(index, node, ruby, file:, plugins: T.unsafe(nil)); end
1418
-
1419
- # source://spoom//lib/spoom/deadcode.rb#75
1420
- sig do
1421
- params(
1422
- index: ::Spoom::Deadcode::Index,
1423
- ruby: ::String,
1424
- file: ::String,
1425
- plugins: T::Array[::Spoom::Deadcode::Plugins::Base]
1426
- ).void
1427
- end
1428
- def index_ruby(index, ruby, file:, plugins: T.unsafe(nil)); end
1429
-
1430
1425
  # source://spoom//lib/spoom/deadcode/plugins.rb#75
1431
- sig { params(context: ::Spoom::Context).returns(T::Array[::Spoom::Deadcode::Plugins::Base]) }
1426
+ sig { params(context: ::Spoom::Context).returns(T::Array[T.class_of(Spoom::Deadcode::Plugins::Base)]) }
1432
1427
  def load_custom_plugins(context); end
1433
1428
 
1434
- # source://spoom//lib/spoom/deadcode.rb#43
1435
- sig { params(ruby: ::String, file: ::String).returns(::Prism::Node) }
1436
- def parse_ruby(ruby, file:); end
1437
-
1438
1429
  # source://spoom//lib/spoom/deadcode/plugins.rb#61
1439
- sig { params(context: ::Spoom::Context).returns(T::Array[::Spoom::Deadcode::Plugins::Base]) }
1430
+ sig { params(context: ::Spoom::Context).returns(T::Set[T.class_of(Spoom::Deadcode::Plugins::Base)]) }
1440
1431
  def plugins_from_gemfile_lock(context); end
1441
1432
  end
1442
1433
  end
@@ -1454,7 +1445,7 @@ class Spoom::Deadcode::Definition < ::T::Struct
1454
1445
  const :kind, ::Spoom::Deadcode::Definition::Kind
1455
1446
  const :name, ::String
1456
1447
  const :full_name, ::String
1457
- const :location, ::Spoom::Deadcode::Location
1448
+ const :location, ::Spoom::Location
1458
1449
  const :status, ::Spoom::Deadcode::Definition::Status, default: T.unsafe(nil)
1459
1450
 
1460
1451
  # source://spoom//lib/spoom/deadcode/definition.rb#78
@@ -1512,7 +1503,7 @@ class Spoom::Deadcode::Definition < ::T::Struct
1512
1503
  def to_json(*args); end
1513
1504
 
1514
1505
  class << self
1515
- # source://sorbet-runtime/0.5.11414/lib/types/struct.rb#13
1506
+ # source://sorbet-runtime/0.5.11766/lib/types/struct.rb#13
1516
1507
  def inherited(s); end
1517
1508
  end
1518
1509
  end
@@ -1572,40 +1563,35 @@ end
1572
1563
  # source://spoom//lib/spoom/deadcode/erb.rb#63
1573
1564
  Spoom::Deadcode::ERB::BLOCK_EXPR = T.let(T.unsafe(nil), Regexp)
1574
1565
 
1575
- # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1576
- #
1577
- # source://spoom//lib/spoom/deadcode.rb#21
1578
- class Spoom::Deadcode::Error < ::Spoom::Error
1579
- abstract!
1580
- end
1581
-
1582
1566
  # source://spoom//lib/spoom/deadcode/index.rb#6
1583
1567
  class Spoom::Deadcode::Index
1584
- # source://spoom//lib/spoom/deadcode/index.rb#16
1585
- sig { void }
1586
- def initialize; end
1568
+ # source://spoom//lib/spoom/deadcode/index.rb#29
1569
+ sig { params(model: ::Spoom::Model).void }
1570
+ def initialize(model); end
1587
1571
 
1588
- # source://spoom//lib/spoom/deadcode/index.rb#51
1572
+ # source://spoom//lib/spoom/deadcode/index.rb#219
1589
1573
  sig { returns(T::Array[::Spoom::Deadcode::Definition]) }
1590
1574
  def all_definitions; end
1591
1575
 
1592
- # source://spoom//lib/spoom/deadcode/index.rb#56
1593
- sig { returns(T::Array[::Spoom::Deadcode::Reference]) }
1576
+ # source://spoom//lib/spoom/deadcode/index.rb#224
1577
+ sig { returns(T::Array[::Spoom::Model::Reference]) }
1594
1578
  def all_references; end
1595
1579
 
1596
- # Indexing
1597
- #
1598
- # source://spoom//lib/spoom/deadcode/index.rb#24
1580
+ # source://spoom//lib/spoom/deadcode/index.rb#99
1581
+ sig { params(plugins: T::Array[::Spoom::Deadcode::Plugins::Base]).void }
1582
+ def apply_plugins!(plugins); end
1583
+
1584
+ # source://spoom//lib/spoom/deadcode/index.rb#79
1599
1585
  sig { params(definition: ::Spoom::Deadcode::Definition).void }
1600
1586
  def define(definition); end
1601
1587
 
1602
- # source://spoom//lib/spoom/deadcode/index.rb#10
1588
+ # source://spoom//lib/spoom/deadcode/index.rb#23
1603
1589
  sig { returns(T::Hash[::String, T::Array[::Spoom::Deadcode::Definition]]) }
1604
1590
  def definitions; end
1605
1591
 
1606
1592
  # Utils
1607
1593
  #
1608
- # source://spoom//lib/spoom/deadcode/index.rb#46
1594
+ # source://spoom//lib/spoom/deadcode/index.rb#214
1609
1595
  sig { params(name: ::String).returns(T::Array[::Spoom::Deadcode::Definition]) }
1610
1596
  def definitions_for_name(name); end
1611
1597
 
@@ -1613,324 +1599,111 @@ class Spoom::Deadcode::Index
1613
1599
  #
1614
1600
  # To be called once all the files have been indexed and all the definitions and references discovered.
1615
1601
  #
1616
- # source://spoom//lib/spoom/deadcode/index.rb#37
1602
+ # source://spoom//lib/spoom/deadcode/index.rb#122
1617
1603
  sig { void }
1618
1604
  def finalize!; end
1619
1605
 
1620
- # source://spoom//lib/spoom/deadcode/index.rb#29
1621
- sig { params(reference: ::Spoom::Deadcode::Reference).void }
1622
- def reference(reference); end
1606
+ # source://spoom//lib/spoom/deadcode/index.rb#94
1607
+ sig { params(symbol_def: ::Spoom::Model::SymbolDef).void }
1608
+ def ignore(symbol_def); end
1623
1609
 
1624
- # source://spoom//lib/spoom/deadcode/index.rb#13
1625
- sig { returns(T::Hash[::String, T::Array[::Spoom::Deadcode::Reference]]) }
1610
+ # source://spoom//lib/spoom/deadcode/index.rb#50
1611
+ sig { params(erb: ::String, file: ::String, plugins: T::Array[::Spoom::Deadcode::Plugins::Base]).void }
1612
+ def index_erb(erb, file:, plugins: T.unsafe(nil)); end
1613
+
1614
+ # Indexing
1615
+ #
1616
+ # source://spoom//lib/spoom/deadcode/index.rb#39
1617
+ sig { params(file: ::String, plugins: T::Array[::Spoom::Deadcode::Plugins::Base]).void }
1618
+ def index_file(file, plugins: T.unsafe(nil)); end
1619
+
1620
+ # source://spoom//lib/spoom/deadcode/index.rb#55
1621
+ sig { params(rb: ::String, file: ::String, plugins: T::Array[::Spoom::Deadcode::Plugins::Base]).void }
1622
+ def index_ruby(rb, file:, plugins: T.unsafe(nil)); end
1623
+
1624
+ # source://spoom//lib/spoom/deadcode/index.rb#20
1625
+ sig { returns(::Spoom::Model) }
1626
+ def model; end
1627
+
1628
+ # source://spoom//lib/spoom/deadcode/index.rb#84
1629
+ sig { params(name: ::String, location: ::Spoom::Location).void }
1630
+ def reference_constant(name, location); end
1631
+
1632
+ # source://spoom//lib/spoom/deadcode/index.rb#89
1633
+ sig { params(name: ::String, location: ::Spoom::Location).void }
1634
+ def reference_method(name, location); end
1635
+
1636
+ # source://spoom//lib/spoom/deadcode/index.rb#26
1637
+ sig { returns(T::Hash[::String, T::Array[::Spoom::Model::Reference]]) }
1626
1638
  def references; end
1627
1639
  end
1628
1640
 
1641
+ # source://spoom//lib/spoom/deadcode/index.rb#9
1642
+ class Spoom::Deadcode::Index::Error < ::Spoom::Error
1643
+ # source://spoom//lib/spoom/deadcode/index.rb#13
1644
+ sig { params(message: ::String, parent: ::Exception).void }
1645
+ def initialize(message, parent:); end
1646
+ end
1647
+
1629
1648
  # source://spoom//lib/spoom/deadcode/indexer.rb#6
1630
- class Spoom::Deadcode::Indexer < ::Spoom::Deadcode::Visitor
1649
+ class Spoom::Deadcode::Indexer < ::Spoom::Visitor
1631
1650
  # source://spoom//lib/spoom/deadcode/indexer.rb#16
1632
1651
  sig do
1633
1652
  params(
1634
1653
  path: ::String,
1635
- source: ::String,
1636
1654
  index: ::Spoom::Deadcode::Index,
1637
1655
  plugins: T::Array[::Spoom::Deadcode::Plugins::Base]
1638
1656
  ).void
1639
1657
  end
1640
- def initialize(path, source, index, plugins: T.unsafe(nil)); end
1641
-
1642
- # Context
1643
- #
1644
- # source://spoom//lib/spoom/deadcode/indexer.rb#408
1645
- sig { returns(::Prism::Node) }
1646
- def current_node; end
1647
-
1648
- # Definition indexing
1649
- #
1650
- # source://spoom//lib/spoom/deadcode/indexer.rb#322
1651
- sig { params(name: ::String, full_name: ::String, node: ::Prism::Node).void }
1652
- def define_attr_reader(name, full_name, node); end
1653
-
1654
- # source://spoom//lib/spoom/deadcode/indexer.rb#334
1655
- sig { params(name: ::String, full_name: ::String, node: ::Prism::Node).void }
1656
- def define_attr_writer(name, full_name, node); end
1657
-
1658
- # source://spoom//lib/spoom/deadcode/indexer.rb#346
1659
- sig { params(name: ::String, full_name: ::String, node: ::Prism::Node).void }
1660
- def define_class(name, full_name, node); end
1661
-
1662
- # source://spoom//lib/spoom/deadcode/indexer.rb#358
1663
- sig { params(name: ::String, full_name: ::String, node: ::Prism::Node).void }
1664
- def define_constant(name, full_name, node); end
1665
-
1666
- # source://spoom//lib/spoom/deadcode/indexer.rb#370
1667
- sig { params(name: ::String, full_name: ::String, node: ::Prism::Node).void }
1668
- def define_method(name, full_name, node); end
1669
-
1670
- # source://spoom//lib/spoom/deadcode/indexer.rb#382
1671
- sig { params(name: ::String, full_name: ::String, node: ::Prism::Node).void }
1672
- def define_module(name, full_name, node); end
1658
+ def initialize(path, index, plugins: T.unsafe(nil)); end
1673
1659
 
1674
1660
  # source://spoom//lib/spoom/deadcode/indexer.rb#13
1675
1661
  sig { returns(::Spoom::Deadcode::Index) }
1676
1662
  def index; end
1677
1663
 
1678
- # source://spoom//lib/spoom/deadcode/indexer.rb#453
1679
- sig { returns(T.nilable(::String)) }
1680
- def last_sig; end
1681
-
1682
- # source://spoom//lib/spoom/deadcode/indexer.rb#427
1683
- sig { returns(T.nilable(::Prism::BlockNode)) }
1684
- def nesting_block; end
1685
-
1686
- # source://spoom//lib/spoom/deadcode/indexer.rb#432
1687
- sig { returns(T.nilable(::Prism::CallNode)) }
1688
- def nesting_call; end
1689
-
1690
- # source://spoom//lib/spoom/deadcode/indexer.rb#422
1691
- sig { returns(T.nilable(::Prism::ClassNode)) }
1692
- def nesting_class; end
1693
-
1694
- # source://spoom//lib/spoom/deadcode/indexer.rb#437
1695
- sig { returns(T.nilable(::String)) }
1696
- def nesting_class_name; end
1697
-
1698
- # source://spoom//lib/spoom/deadcode/indexer.rb#445
1699
- sig { returns(T.nilable(::String)) }
1700
- def nesting_class_superclass_name; end
1701
-
1702
- # source://spoom//lib/spoom/deadcode/indexer.rb#413
1703
- sig { type_parameters(:N).params(type: T::Class[T.type_parameter(:N)]).returns(T.nilable(T.type_parameter(:N))) }
1704
- def nesting_node(type); end
1705
-
1706
- # Node utils
1707
- #
1708
- # source://spoom//lib/spoom/deadcode/indexer.rb#464
1709
- sig { params(node: ::Prism::Node).returns(::Spoom::Deadcode::Location) }
1710
- def node_location(node); end
1711
-
1712
1664
  # source://spoom//lib/spoom/deadcode/indexer.rb#10
1713
1665
  sig { returns(::String) }
1714
1666
  def path; end
1715
1667
 
1716
- # Reference indexing
1717
- #
1718
- # source://spoom//lib/spoom/deadcode/indexer.rb#396
1719
- sig { params(name: ::String, node: ::Prism::Node).void }
1720
- def reference_constant(name, node); end
1721
-
1722
- # source://spoom//lib/spoom/deadcode/indexer.rb#401
1723
- sig { params(name: ::String, node: ::Prism::Node).void }
1724
- def reference_method(name, node); end
1725
-
1726
1668
  # Visit
1727
1669
  #
1728
- # source://spoom//lib/spoom/deadcode/indexer.rb#35
1729
- sig { override.params(node: T.nilable(::Prism::Node)).void }
1730
- def visit(node); end
1731
-
1732
- # source://spoom//lib/spoom/deadcode/indexer.rb#45
1733
- sig { override.params(node: ::Prism::AliasMethodNode).void }
1734
- def visit_alias_method_node(node); end
1735
-
1736
- # source://spoom//lib/spoom/deadcode/indexer.rb#50
1737
- sig { override.params(node: ::Prism::AndNode).void }
1738
- def visit_and_node(node); end
1739
-
1740
- # source://spoom//lib/spoom/deadcode/indexer.rb#56
1741
- sig { override.params(node: ::Prism::BlockArgumentNode).void }
1742
- def visit_block_argument_node(node); end
1743
-
1744
- # source://spoom//lib/spoom/deadcode/indexer.rb#67
1745
- sig { override.params(node: ::Prism::CallAndWriteNode).void }
1746
- def visit_call_and_write_node(node); end
1747
-
1748
- # source://spoom//lib/spoom/deadcode/indexer.rb#91
1670
+ # source://spoom//lib/spoom/deadcode/indexer.rb#27
1749
1671
  sig { override.params(node: ::Prism::CallNode).void }
1750
1672
  def visit_call_node(node); end
1751
-
1752
- # source://spoom//lib/spoom/deadcode/indexer.rb#75
1753
- sig { override.params(node: ::Prism::CallOperatorWriteNode).void }
1754
- def visit_call_operator_write_node(node); end
1755
-
1756
- # source://spoom//lib/spoom/deadcode/indexer.rb#83
1757
- sig { override.params(node: ::Prism::CallOrWriteNode).void }
1758
- def visit_call_or_write_node(node); end
1759
-
1760
- # source://spoom//lib/spoom/deadcode/indexer.rb#104
1761
- sig { override.params(node: ::Prism::ClassNode).void }
1762
- def visit_class_node(node); end
1763
-
1764
- # source://spoom//lib/spoom/deadcode/indexer.rb#137
1765
- sig { override.params(node: ::Prism::ConstantAndWriteNode).void }
1766
- def visit_constant_and_write_node(node); end
1767
-
1768
- # source://spoom//lib/spoom/deadcode/indexer.rb#143
1769
- sig { override.params(node: ::Prism::ConstantOperatorWriteNode).void }
1770
- def visit_constant_operator_write_node(node); end
1771
-
1772
- # source://spoom//lib/spoom/deadcode/indexer.rb#149
1773
- sig { override.params(node: ::Prism::ConstantOrWriteNode).void }
1774
- def visit_constant_or_write_node(node); end
1775
-
1776
- # source://spoom//lib/spoom/deadcode/indexer.rb#155
1777
- sig { override.params(node: ::Prism::ConstantPathWriteNode).void }
1778
- def visit_constant_path_write_node(node); end
1779
-
1780
- # source://spoom//lib/spoom/deadcode/indexer.rb#173
1781
- sig { override.params(node: ::Prism::ConstantReadNode).void }
1782
- def visit_constant_read_node(node); end
1783
-
1784
- # source://spoom//lib/spoom/deadcode/indexer.rb#178
1785
- sig { override.params(node: ::Prism::ConstantWriteNode).void }
1786
- def visit_constant_write_node(node); end
1787
-
1788
- # source://spoom//lib/spoom/deadcode/indexer.rb#186
1789
- sig { override.params(node: ::Prism::DefNode).void }
1790
- def visit_def_node(node); end
1791
-
1792
- # source://spoom//lib/spoom/deadcode/indexer.rb#194
1793
- sig { override.params(node: ::Prism::LocalVariableAndWriteNode).void }
1794
- def visit_local_variable_and_write_node(node); end
1795
-
1796
- # source://spoom//lib/spoom/deadcode/indexer.rb#202
1797
- sig { override.params(node: ::Prism::LocalVariableOperatorWriteNode).void }
1798
- def visit_local_variable_operator_write_node(node); end
1799
-
1800
- # source://spoom//lib/spoom/deadcode/indexer.rb#210
1801
- sig { override.params(node: ::Prism::LocalVariableOrWriteNode).void }
1802
- def visit_local_variable_or_write_node(node); end
1803
-
1804
- # source://spoom//lib/spoom/deadcode/indexer.rb#218
1805
- sig { override.params(node: ::Prism::LocalVariableWriteNode).void }
1806
- def visit_local_variable_write_node(node); end
1807
-
1808
- # source://spoom//lib/spoom/deadcode/indexer.rb#224
1809
- sig { override.params(node: ::Prism::ModuleNode).void }
1810
- def visit_module_node(node); end
1811
-
1812
- # source://spoom//lib/spoom/deadcode/indexer.rb#254
1813
- sig { override.params(node: ::Prism::MultiWriteNode).void }
1814
- def visit_multi_write_node(node); end
1815
-
1816
- # source://spoom//lib/spoom/deadcode/indexer.rb#268
1817
- sig { override.params(node: ::Prism::OrNode).void }
1818
- def visit_or_node(node); end
1819
-
1820
- # source://spoom//lib/spoom/deadcode/indexer.rb#274
1821
- sig { params(send: ::Spoom::Deadcode::Send).void }
1822
- def visit_send(send); end
1823
- end
1824
-
1825
- # source://spoom//lib/spoom/deadcode.rb#29
1826
- class Spoom::Deadcode::IndexerError < ::Spoom::Deadcode::Error
1827
- # source://spoom//lib/spoom/deadcode.rb#33
1828
- sig { params(message: ::String, parent: ::Exception).void }
1829
- def initialize(message, parent:); end
1830
- end
1831
-
1832
- # source://spoom//lib/spoom/deadcode/location.rb#6
1833
- class Spoom::Deadcode::Location
1834
- include ::Comparable
1835
-
1836
- # source://spoom//lib/spoom/deadcode/location.rb#54
1837
- sig do
1838
- params(
1839
- file: ::String,
1840
- start_line: ::Integer,
1841
- start_column: ::Integer,
1842
- end_line: ::Integer,
1843
- end_column: ::Integer
1844
- ).void
1845
- end
1846
- def initialize(file, start_line, start_column, end_line, end_column); end
1847
-
1848
- # source://spoom//lib/spoom/deadcode/location.rb#74
1849
- sig { override.params(other: ::BasicObject).returns(T.nilable(::Integer)) }
1850
- def <=>(other); end
1851
-
1852
- # @return [Integer]
1853
- #
1854
- # source://spoom//lib/spoom/deadcode/location.rb#43
1855
- def end_column; end
1856
-
1857
- # @return [Integer]
1858
- #
1859
- # source://spoom//lib/spoom/deadcode/location.rb#43
1860
- def end_line; end
1861
-
1862
- # source://spoom//lib/spoom/deadcode/location.rb#40
1863
- sig { returns(::String) }
1864
- def file; end
1865
-
1866
- # source://spoom//lib/spoom/deadcode/location.rb#63
1867
- sig { params(other: ::Spoom::Deadcode::Location).returns(T::Boolean) }
1868
- def include?(other); end
1869
-
1870
- # @return [Integer]
1871
- #
1872
- # source://spoom//lib/spoom/deadcode/location.rb#43
1873
- def start_column; end
1874
-
1875
- # source://spoom//lib/spoom/deadcode/location.rb#43
1876
- sig { returns(::Integer) }
1877
- def start_line; end
1878
-
1879
- # source://spoom//lib/spoom/deadcode/location.rb#81
1880
- sig { returns(::String) }
1881
- def to_s; end
1882
-
1883
- class << self
1884
- # source://spoom//lib/spoom/deadcode/location.rb#34
1885
- sig { params(file: ::String, location: ::Prism::Location).returns(::Spoom::Deadcode::Location) }
1886
- def from_prism(file, location); end
1887
-
1888
- # @raise [LocationError]
1889
- #
1890
- # source://spoom//lib/spoom/deadcode/location.rb#17
1891
- sig { params(location_string: ::String).returns(::Spoom::Deadcode::Location) }
1892
- def from_string(location_string); end
1893
- end
1894
1673
  end
1895
1674
 
1896
- # source://spoom//lib/spoom/deadcode/location.rb#11
1897
- class Spoom::Deadcode::Location::LocationError < ::Spoom::Error; end
1898
-
1899
1675
  # source://spoom//lib/spoom/deadcode/plugins.rb#36
1900
1676
  Spoom::Deadcode::PLUGINS_FOR_GEM = T.let(T.unsafe(nil), Hash)
1901
1677
 
1902
- # source://spoom//lib/spoom/deadcode.rb#27
1903
- class Spoom::Deadcode::ParserError < ::Spoom::Deadcode::Error; end
1904
-
1905
1678
  # source://spoom//lib/spoom/deadcode/plugins/base.rb#8
1906
1679
  module Spoom::Deadcode::Plugins; end
1907
1680
 
1908
1681
  # source://spoom//lib/spoom/deadcode/plugins/action_mailer.rb#7
1909
1682
  class Spoom::Deadcode::Plugins::ActionMailer < ::Spoom::Deadcode::Plugins::Base
1910
1683
  # source://spoom//lib/spoom/deadcode/plugins/action_mailer.rb#11
1911
- sig { override.params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void }
1912
- def on_send(indexer, send); end
1684
+ sig { override.params(send: ::Spoom::Deadcode::Send).void }
1685
+ def on_send(send); end
1913
1686
  end
1914
1687
 
1915
1688
  # source://spoom//lib/spoom/deadcode/plugins/action_mailer_preview.rb#7
1916
1689
  class Spoom::Deadcode::Plugins::ActionMailerPreview < ::Spoom::Deadcode::Plugins::Base
1917
1690
  # source://spoom//lib/spoom/deadcode/plugins/action_mailer_preview.rb#13
1918
- sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
1919
- def on_define_method(indexer, definition); end
1691
+ sig { override.params(definition: ::Spoom::Model::Method).void }
1692
+ def on_define_method(definition); end
1920
1693
  end
1921
1694
 
1922
1695
  # source://spoom//lib/spoom/deadcode/plugins/actionpack.rb#7
1923
1696
  class Spoom::Deadcode::Plugins::ActionPack < ::Spoom::Deadcode::Plugins::Base
1924
1697
  # source://spoom//lib/spoom/deadcode/plugins/actionpack.rb#31
1925
- sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
1926
- def on_define_method(indexer, definition); end
1698
+ sig { override.params(definition: ::Spoom::Model::Method).void }
1699
+ def on_define_method(definition); end
1927
1700
 
1928
- # source://spoom//lib/spoom/deadcode/plugins/actionpack.rb#36
1929
- sig { override.params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void }
1930
- def on_send(indexer, send); end
1701
+ # source://spoom//lib/spoom/deadcode/plugins/actionpack.rb#39
1702
+ sig { override.params(send: ::Spoom::Deadcode::Send).void }
1703
+ def on_send(send); end
1931
1704
  end
1932
1705
 
1933
- # source://spoom//lib/spoom/deadcode/plugins/actionpack.rb#10
1706
+ # source://spoom//lib/spoom/deadcode/plugins/actionpack.rb#12
1934
1707
  Spoom::Deadcode::Plugins::ActionPack::CALLBACKS = T.let(T.unsafe(nil), Array)
1935
1708
 
1936
1709
  # source://spoom//lib/spoom/deadcode/plugins/active_job.rb#7
@@ -1939,15 +1712,15 @@ class Spoom::Deadcode::Plugins::ActiveJob < ::Spoom::Deadcode::Plugins::Base; en
1939
1712
  # source://spoom//lib/spoom/deadcode/plugins/active_model.rb#7
1940
1713
  class Spoom::Deadcode::Plugins::ActiveModel < ::Spoom::Deadcode::Plugins::Base
1941
1714
  # source://spoom//lib/spoom/deadcode/plugins/active_model.rb#14
1942
- sig { override.params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void }
1943
- def on_send(indexer, send); end
1715
+ sig { override.params(send: ::Spoom::Deadcode::Send).void }
1716
+ def on_send(send); end
1944
1717
  end
1945
1718
 
1946
1719
  # source://spoom//lib/spoom/deadcode/plugins/active_record.rb#7
1947
1720
  class Spoom::Deadcode::Plugins::ActiveRecord < ::Spoom::Deadcode::Plugins::Base
1948
1721
  # source://spoom//lib/spoom/deadcode/plugins/active_record.rb#74
1949
- sig { override.params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void }
1950
- def on_send(indexer, send); end
1722
+ sig { override.params(send: ::Spoom::Deadcode::Send).void }
1723
+ def on_send(send); end
1951
1724
  end
1952
1725
 
1953
1726
  # source://spoom//lib/spoom/deadcode/plugins/active_record.rb#64
@@ -1962,8 +1735,8 @@ Spoom::Deadcode::Plugins::ActiveRecord::CRUD_METHODS = T.let(T.unsafe(nil), Arra
1962
1735
  # source://spoom//lib/spoom/deadcode/plugins/active_support.rb#7
1963
1736
  class Spoom::Deadcode::Plugins::ActiveSupport < ::Spoom::Deadcode::Plugins::Base
1964
1737
  # source://spoom//lib/spoom/deadcode/plugins/active_support.rb#22
1965
- sig { override.params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void }
1966
- def on_send(indexer, send); end
1738
+ sig { override.params(send: ::Spoom::Deadcode::Send).void }
1739
+ def on_send(send); end
1967
1740
  end
1968
1741
 
1969
1742
  # source://spoom//lib/spoom/deadcode/plugins/active_support.rb#19
@@ -1975,41 +1748,43 @@ Spoom::Deadcode::Plugins::ActiveSupport::SETUP_AND_TEARDOWN_METHODS = T.let(T.un
1975
1748
  class Spoom::Deadcode::Plugins::Base
1976
1749
  abstract!
1977
1750
 
1751
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#132
1752
+ sig { params(index: ::Spoom::Deadcode::Index).void }
1753
+ def initialize(index); end
1754
+
1755
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#129
1756
+ sig { returns(::Spoom::Deadcode::Index) }
1757
+ def index; end
1758
+
1978
1759
  # Do not override this method, use `on_define_accessor` instead.
1979
1760
  #
1980
- # source://spoom//lib/spoom/deadcode/plugins/base.rb#150
1981
- sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
1982
- def internal_on_define_accessor(indexer, definition); end
1761
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#158
1762
+ sig { params(definition: ::Spoom::Model::Attr).void }
1763
+ def internal_on_define_accessor(definition); end
1983
1764
 
1984
1765
  # Do not override this method, use `on_define_class` instead.
1985
1766
  #
1986
- # source://spoom//lib/spoom/deadcode/plugins/base.rb#174
1987
- sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
1988
- def internal_on_define_class(indexer, definition); end
1767
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#182
1768
+ sig { params(definition: ::Spoom::Model::Class).void }
1769
+ def internal_on_define_class(definition); end
1989
1770
 
1990
1771
  # Do not override this method, use `on_define_constant` instead.
1991
1772
  #
1992
- # source://spoom//lib/spoom/deadcode/plugins/base.rb#204
1993
- sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
1994
- def internal_on_define_constant(indexer, definition); end
1773
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#212
1774
+ sig { params(definition: ::Spoom::Model::Constant).void }
1775
+ def internal_on_define_constant(definition); end
1995
1776
 
1996
1777
  # Do not override this method, use `on_define_method` instead.
1997
1778
  #
1998
- # source://spoom//lib/spoom/deadcode/plugins/base.rb#232
1999
- sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2000
- def internal_on_define_method(indexer, definition); end
1779
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#238
1780
+ sig { params(definition: ::Spoom::Model::Method).void }
1781
+ def internal_on_define_method(definition); end
2001
1782
 
2002
1783
  # Do not override this method, use `on_define_module` instead.
2003
1784
  #
2004
- # source://spoom//lib/spoom/deadcode/plugins/base.rb#258
2005
- sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2006
- def internal_on_define_module(indexer, definition); end
2007
-
2008
- # Do not override this method, use `on_send` instead.
2009
- #
2010
- # source://spoom//lib/spoom/deadcode/plugins/base.rb#284
2011
- sig { params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void }
2012
- def internal_on_send(indexer, send); end
1785
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#264
1786
+ sig { params(definition: ::Spoom::Model::Module).void }
1787
+ def internal_on_define_module(definition); end
2013
1788
 
2014
1789
  # Called when an accessor is defined.
2015
1790
  #
@@ -2019,15 +1794,15 @@ class Spoom::Deadcode::Plugins::Base
2019
1794
  #
2020
1795
  # ~~~rb
2021
1796
  # class MyPlugin < Spoom::Deadcode::Plugins::Base
2022
- # def on_define_accessor(indexer, definition)
2023
- # definition.ignored! if definition.name == "foo"
1797
+ # def on_define_accessor(definition)
1798
+ # @index.ignore(definition) if symbol_def.name == "foo"
2024
1799
  # end
2025
1800
  # end
2026
1801
  # ~~~
2027
1802
  #
2028
- # source://spoom//lib/spoom/deadcode/plugins/base.rb#144
2029
- sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2030
- def on_define_accessor(indexer, definition); end
1803
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#152
1804
+ sig { params(definition: ::Spoom::Model::Attr).void }
1805
+ def on_define_accessor(definition); end
2031
1806
 
2032
1807
  # Called when a class is defined.
2033
1808
  #
@@ -2037,15 +1812,15 @@ class Spoom::Deadcode::Plugins::Base
2037
1812
  #
2038
1813
  # ~~~rb
2039
1814
  # class MyPlugin < Spoom::Deadcode::Plugins::Base
2040
- # def on_define_class(indexer, definition)
2041
- # definition.ignored! if definition.name == "Foo"
1815
+ # def on_define_class(definition)
1816
+ # @index.ignore(definition) if definition.name == "Foo"
2042
1817
  # end
2043
1818
  # end
2044
1819
  # ~~~
2045
1820
  #
2046
- # source://spoom//lib/spoom/deadcode/plugins/base.rb#168
2047
- sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2048
- def on_define_class(indexer, definition); end
1821
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#176
1822
+ sig { params(definition: ::Spoom::Model::Class).void }
1823
+ def on_define_class(definition); end
2049
1824
 
2050
1825
  # Called when a constant is defined.
2051
1826
  #
@@ -2055,15 +1830,15 @@ class Spoom::Deadcode::Plugins::Base
2055
1830
  #
2056
1831
  # ~~~rb
2057
1832
  # class MyPlugin < Spoom::Deadcode::Plugins::Base
2058
- # def on_define_constant(indexer, definition)
2059
- # definition.ignored! if definition.name == "FOO"
1833
+ # def on_define_constant(definition)
1834
+ # @index.ignore(definition) if definition.name == "FOO"
2060
1835
  # end
2061
1836
  # end
2062
1837
  # ~~~
2063
1838
  #
2064
- # source://spoom//lib/spoom/deadcode/plugins/base.rb#198
2065
- sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2066
- def on_define_constant(indexer, definition); end
1839
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#206
1840
+ sig { params(definition: ::Spoom::Model::Constant).void }
1841
+ def on_define_constant(definition); end
2067
1842
 
2068
1843
  # Called when a method is defined.
2069
1844
  #
@@ -2073,17 +1848,15 @@ class Spoom::Deadcode::Plugins::Base
2073
1848
  #
2074
1849
  # ~~~rb
2075
1850
  # class MyPlugin < Spoom::Deadcode::Plugins::Base
2076
- # def on_define_method(indexer, definition)
2077
- # super # So the `ignore_method_names` DSL is still applied
2078
- #
2079
- # definition.ignored! if definition.name == "foo"
1851
+ # def on_define_method(definition)
1852
+ # @index.ignore(definition) if definition.name == "foo"
2080
1853
  # end
2081
1854
  # end
2082
1855
  # ~~~
2083
1856
  #
2084
- # source://spoom//lib/spoom/deadcode/plugins/base.rb#226
2085
- sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2086
- def on_define_method(indexer, definition); end
1857
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#232
1858
+ sig { params(definition: ::Spoom::Model::Method).void }
1859
+ def on_define_method(definition); end
2087
1860
 
2088
1861
  # Called when a module is defined.
2089
1862
  #
@@ -2093,76 +1866,80 @@ class Spoom::Deadcode::Plugins::Base
2093
1866
  #
2094
1867
  # ~~~rb
2095
1868
  # class MyPlugin < Spoom::Deadcode::Plugins::Base
2096
- # def on_define_module(indexer, definition)
2097
- # definition.ignored! if definition.name == "Foo"
1869
+ # def on_define_module(definition)
1870
+ # @index.ignore(definition) if definition.name == "Foo"
2098
1871
  # end
2099
1872
  # end
2100
1873
  # ~~~
2101
1874
  #
2102
- # source://spoom//lib/spoom/deadcode/plugins/base.rb#252
2103
- sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2104
- def on_define_module(indexer, definition); end
1875
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#258
1876
+ sig { params(definition: ::Spoom::Model::Module).void }
1877
+ def on_define_module(definition); end
2105
1878
 
2106
1879
  # Called when a send is being processed
2107
1880
  #
2108
1881
  # ~~~rb
2109
1882
  # class MyPlugin < Spoom::Deadcode::Plugins::Base
2110
- # def on_send(indexer, send)
1883
+ # def on_send(send)
2111
1884
  # return unless send.name == "dsl_method"
2112
1885
  # return if send.args.empty?
2113
1886
  #
2114
1887
  # method_name = send.args.first.slice.delete_prefix(":")
2115
- # indexer.reference_method(method_name, send.node)
1888
+ # @index.reference_method(method_name, send.node, send.loc)
2116
1889
  # end
2117
1890
  # end
2118
1891
  # ~~~
2119
1892
  #
2120
- # source://spoom//lib/spoom/deadcode/plugins/base.rb#278
2121
- sig { params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void }
2122
- def on_send(indexer, send); end
1893
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#284
1894
+ sig { params(send: ::Spoom::Deadcode::Send).void }
1895
+ def on_send(send); end
2123
1896
 
2124
1897
  private
2125
1898
 
2126
1899
  # Plugin utils
2127
1900
  #
2128
- # source://spoom//lib/spoom/deadcode/plugins/base.rb#339
1901
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#352
2129
1902
  sig { params(name: ::String).returns(::String) }
2130
1903
  def camelize(name); end
2131
1904
 
2132
- # DSL support
2133
- #
2134
- # source://spoom//lib/spoom/deadcode/plugins/base.rb#293
1905
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#301
2135
1906
  sig { params(name: T.nilable(::String)).returns(T::Boolean) }
2136
1907
  def ignored_class_name?(name); end
2137
1908
 
2138
- # source://spoom//lib/spoom/deadcode/plugins/base.rb#307
1909
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#320
2139
1910
  sig { params(name: ::String).returns(T::Boolean) }
2140
1911
  def ignored_constant_name?(name); end
2141
1912
 
2142
- # source://spoom//lib/spoom/deadcode/plugins/base.rb#312
1913
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#325
2143
1914
  sig { params(name: ::String).returns(T::Boolean) }
2144
1915
  def ignored_method_name?(name); end
2145
1916
 
2146
- # source://spoom//lib/spoom/deadcode/plugins/base.rb#317
1917
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#330
2147
1918
  sig { params(name: ::String).returns(T::Boolean) }
2148
1919
  def ignored_module_name?(name); end
2149
1920
 
2150
- # source://spoom//lib/spoom/deadcode/plugins/base.rb#322
1921
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#335
2151
1922
  sig { params(name: ::String, names_variable: ::Symbol, patterns_variable: ::Symbol).returns(T::Boolean) }
2152
1923
  def ignored_name?(name, names_variable, patterns_variable); end
2153
1924
 
2154
- # source://spoom//lib/spoom/deadcode/plugins/base.rb#300
2155
- sig { params(superclass_name: T.nilable(::String)).returns(T::Boolean) }
2156
- def ignored_subclass?(superclass_name); end
1925
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#308
1926
+ sig { params(definition: ::Spoom::Model::Class).returns(T::Boolean) }
1927
+ def ignored_subclass?(definition); end
2157
1928
 
2158
- # source://spoom//lib/spoom/deadcode/plugins/base.rb#327
1929
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#340
2159
1930
  sig { params(const: ::Symbol).returns(T::Set[::String]) }
2160
1931
  def names(const); end
2161
1932
 
2162
- # source://spoom//lib/spoom/deadcode/plugins/base.rb#332
1933
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#345
2163
1934
  sig { params(const: ::Symbol).returns(T::Array[::Regexp]) }
2164
1935
  def patterns(const); end
2165
1936
 
1937
+ # DSL support
1938
+ #
1939
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#293
1940
+ sig { params(definition: ::Spoom::Model::Namespace, superclass_name: ::String).returns(T::Boolean) }
1941
+ def subclass_of?(definition, superclass_name); end
1942
+
2166
1943
  class << self
2167
1944
  # Mark classes directly subclassing a class matching `names` as ignored.
2168
1945
  #
@@ -2271,32 +2048,36 @@ end
2271
2048
  # source://spoom//lib/spoom/deadcode/plugins/graphql.rb#7
2272
2049
  class Spoom::Deadcode::Plugins::GraphQL < ::Spoom::Deadcode::Plugins::Base
2273
2050
  # source://spoom//lib/spoom/deadcode/plugins/graphql.rb#28
2274
- sig { override.params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void }
2275
- def on_send(indexer, send); end
2051
+ sig { override.params(send: ::Spoom::Deadcode::Send).void }
2052
+ def on_send(send); end
2276
2053
  end
2277
2054
 
2278
2055
  # source://spoom//lib/spoom/deadcode/plugins/minitest.rb#7
2279
2056
  class Spoom::Deadcode::Plugins::Minitest < ::Spoom::Deadcode::Plugins::Base
2280
2057
  # source://spoom//lib/spoom/deadcode/plugins/minitest.rb#22
2281
- sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2282
- def on_define_method(indexer, definition); end
2058
+ sig { override.params(definition: ::Spoom::Model::Method).void }
2059
+ def on_define_method(definition); end
2060
+
2061
+ # source://spoom//lib/spoom/deadcode/plugins/minitest.rb#28
2062
+ sig { override.params(send: ::Spoom::Deadcode::Send).void }
2063
+ def on_send(send); end
2283
2064
  end
2284
2065
 
2285
2066
  # source://spoom//lib/spoom/deadcode/plugins/namespaces.rb#7
2286
2067
  class Spoom::Deadcode::Plugins::Namespaces < ::Spoom::Deadcode::Plugins::Base
2287
2068
  # source://spoom//lib/spoom/deadcode/plugins/namespaces.rb#11
2288
- sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2289
- def on_define_class(indexer, definition); end
2069
+ sig { override.params(definition: ::Spoom::Model::Class).void }
2070
+ def on_define_class(definition); end
2290
2071
 
2291
2072
  # source://spoom//lib/spoom/deadcode/plugins/namespaces.rb#16
2292
- sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2293
- def on_define_module(indexer, definition); end
2073
+ sig { override.params(definition: ::Spoom::Model::Module).void }
2074
+ def on_define_module(definition); end
2294
2075
 
2295
2076
  private
2296
2077
 
2297
2078
  # source://spoom//lib/spoom/deadcode/plugins/namespaces.rb#23
2298
- sig { params(indexer: ::Spoom::Deadcode::Indexer).returns(T::Boolean) }
2299
- def used_as_namespace?(indexer); end
2079
+ sig { params(symbol_def: ::Spoom::Model::Namespace).returns(T::Boolean) }
2080
+ def used_as_namespace?(symbol_def); end
2300
2081
  end
2301
2082
 
2302
2083
  # source://spoom//lib/spoom/deadcode/plugins/rspec.rb#7
@@ -2305,18 +2086,18 @@ class Spoom::Deadcode::Plugins::RSpec < ::Spoom::Deadcode::Plugins::Base; end
2305
2086
  # source://spoom//lib/spoom/deadcode/plugins/rails.rb#7
2306
2087
  class Spoom::Deadcode::Plugins::Rails < ::Spoom::Deadcode::Plugins::Base
2307
2088
  # source://spoom//lib/spoom/deadcode/plugins/rails.rb#13
2308
- sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2309
- def on_define_class(indexer, definition); end
2089
+ sig { override.params(definition: ::Spoom::Model::Class).void }
2090
+ def on_define_class(definition); end
2310
2091
 
2311
2092
  # source://spoom//lib/spoom/deadcode/plugins/rails.rb#18
2312
- sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2313
- def on_define_module(indexer, definition); end
2093
+ sig { override.params(definition: ::Spoom::Model::Module).void }
2094
+ def on_define_module(definition); end
2314
2095
 
2315
2096
  private
2316
2097
 
2317
2098
  # source://spoom//lib/spoom/deadcode/plugins/rails.rb#25
2318
- sig { params(indexer: ::Spoom::Deadcode::Indexer).returns(T::Boolean) }
2319
- def file_is_helper?(indexer); end
2099
+ sig { params(symbol_def: ::Spoom::Model::Namespace).returns(T::Boolean) }
2100
+ def file_is_helper?(symbol_def); end
2320
2101
  end
2321
2102
 
2322
2103
  # source://spoom//lib/spoom/deadcode/plugins/rake.rb#7
@@ -2325,22 +2106,12 @@ class Spoom::Deadcode::Plugins::Rake < ::Spoom::Deadcode::Plugins::Base; end
2325
2106
  # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#7
2326
2107
  class Spoom::Deadcode::Plugins::Rubocop < ::Spoom::Deadcode::Plugins::Base
2327
2108
  # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#18
2328
- sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2329
- def on_define_constant(indexer, definition); end
2330
-
2331
- # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#23
2332
- sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2333
- def on_define_method(indexer, definition); end
2334
-
2335
- private
2336
-
2337
- # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#30
2338
- sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).returns(T::Boolean) }
2339
- def rubocop_constant?(indexer, definition); end
2109
+ sig { override.params(definition: ::Spoom::Model::Constant).void }
2110
+ def on_define_constant(definition); end
2340
2111
 
2341
- # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#35
2342
- sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).returns(T::Boolean) }
2343
- def rubocop_method?(indexer, definition); end
2112
+ # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#26
2113
+ sig { override.params(definition: ::Spoom::Model::Method).void }
2114
+ def on_define_method(definition); end
2344
2115
  end
2345
2116
 
2346
2117
  # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#10
@@ -2349,74 +2120,42 @@ Spoom::Deadcode::Plugins::Rubocop::RUBOCOP_CONSTANTS = T.let(T.unsafe(nil), Set)
2349
2120
  # source://spoom//lib/spoom/deadcode/plugins/ruby.rb#7
2350
2121
  class Spoom::Deadcode::Plugins::Ruby < ::Spoom::Deadcode::Plugins::Base
2351
2122
  # source://spoom//lib/spoom/deadcode/plugins/ruby.rb#24
2352
- sig { override.params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void }
2353
- def on_send(indexer, send); end
2123
+ sig { override.params(send: ::Spoom::Deadcode::Send).void }
2124
+ def on_send(send); end
2354
2125
 
2355
2126
  private
2356
2127
 
2357
- # source://spoom//lib/spoom/deadcode/plugins/ruby.rb#43
2358
- sig { params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send, node: ::Prism::Node).void }
2359
- def reference_symbol_as_constant(indexer, send, node); end
2128
+ # source://spoom//lib/spoom/deadcode/plugins/ruby.rb#46
2129
+ sig { params(send: ::Spoom::Deadcode::Send, node: ::Prism::Node).void }
2130
+ def reference_symbol_as_constant(send, node); end
2360
2131
  end
2361
2132
 
2362
2133
  # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#7
2363
2134
  class Spoom::Deadcode::Plugins::Sorbet < ::Spoom::Deadcode::Plugins::Base
2364
2135
  # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#11
2365
- sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2366
- def on_define_constant(indexer, definition); end
2136
+ sig { override.params(definition: ::Spoom::Model::Constant).void }
2137
+ def on_define_constant(definition); end
2367
2138
 
2368
2139
  # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#16
2369
- sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2370
- def on_define_method(indexer, definition); end
2140
+ sig { override.params(definition: ::Spoom::Model::Method).void }
2141
+ def on_define_method(definition); end
2371
2142
 
2372
2143
  private
2373
2144
 
2374
- # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#34
2375
- sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).returns(T::Boolean) }
2376
- def sorbet_enum_constant?(indexer, definition); end
2145
+ # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#28
2146
+ sig { params(definition: ::Spoom::Model::Constant).returns(T::Boolean) }
2147
+ def sorbet_enum_constant?(definition); end
2377
2148
 
2378
2149
  # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#23
2379
- sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).returns(T::Boolean) }
2380
- def sorbet_type_member?(indexer, definition); end
2150
+ sig { params(definition: ::Spoom::Model::Constant).returns(T::Boolean) }
2151
+ def sorbet_type_member?(definition); end
2381
2152
  end
2382
2153
 
2383
2154
  # source://spoom//lib/spoom/deadcode/plugins/thor.rb#7
2384
2155
  class Spoom::Deadcode::Plugins::Thor < ::Spoom::Deadcode::Plugins::Base
2385
2156
  # source://spoom//lib/spoom/deadcode/plugins/thor.rb#13
2386
- sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2387
- def on_define_method(indexer, definition); end
2388
- end
2389
-
2390
- # A reference is a call to a method or a constant
2391
- #
2392
- # source://spoom//lib/spoom/deadcode/reference.rb#7
2393
- class Spoom::Deadcode::Reference < ::T::Struct
2394
- const :kind, ::Spoom::Deadcode::Reference::Kind
2395
- const :name, ::String
2396
- const :location, ::Spoom::Deadcode::Location
2397
-
2398
- # Kind
2399
- #
2400
- # source://spoom//lib/spoom/deadcode/reference.rb#24
2401
- sig { returns(T::Boolean) }
2402
- def constant?; end
2403
-
2404
- # source://spoom//lib/spoom/deadcode/reference.rb#29
2405
- sig { returns(T::Boolean) }
2406
- def method?; end
2407
-
2408
- class << self
2409
- # source://sorbet-runtime/0.5.11414/lib/types/struct.rb#13
2410
- def inherited(s); end
2411
- end
2412
- end
2413
-
2414
- # source://spoom//lib/spoom/deadcode/reference.rb#10
2415
- class Spoom::Deadcode::Reference::Kind < ::T::Enum
2416
- enums do
2417
- Constant = new
2418
- Method = new
2419
- end
2157
+ sig { override.params(definition: ::Spoom::Model::Method).void }
2158
+ def on_define_method(definition); end
2420
2159
  end
2421
2160
 
2422
2161
  # source://spoom//lib/spoom/deadcode/remover.rb#6
@@ -2426,12 +2165,7 @@ class Spoom::Deadcode::Remover
2426
2165
  def initialize(context); end
2427
2166
 
2428
2167
  # source://spoom//lib/spoom/deadcode/remover.rb#17
2429
- sig do
2430
- params(
2431
- kind: T.nilable(::Spoom::Deadcode::Definition::Kind),
2432
- location: ::Spoom::Deadcode::Location
2433
- ).returns(::String)
2434
- end
2168
+ sig { params(kind: T.nilable(::Spoom::Deadcode::Definition::Kind), location: ::Spoom::Location).returns(::String) }
2435
2169
  def remove_location(kind, location); end
2436
2170
  end
2437
2171
 
@@ -2484,6 +2218,8 @@ class Spoom::Deadcode::Remover::NodeContext
2484
2218
  sig { returns(T.nilable(::Prism::Node)) }
2485
2219
  def next_node; end
2486
2220
 
2221
+ # @raise [Error]
2222
+ #
2487
2223
  # source://spoom//lib/spoom/deadcode/remover.rb#433
2488
2224
  sig { returns(T::Array[::Prism::Node]) }
2489
2225
  def next_nodes; end
@@ -2492,10 +2228,14 @@ class Spoom::Deadcode::Remover::NodeContext
2492
2228
  sig { returns(::Prism::Node) }
2493
2229
  def node; end
2494
2230
 
2231
+ # @raise [Error]
2232
+ #
2495
2233
  # source://spoom//lib/spoom/deadcode/remover.rb#408
2496
2234
  sig { returns(::Spoom::Deadcode::Remover::NodeContext) }
2497
2235
  def parent_context; end
2498
2236
 
2237
+ # @raise [Error]
2238
+ #
2499
2239
  # source://spoom//lib/spoom/deadcode/remover.rb#400
2500
2240
  sig { returns(::Prism::Node) }
2501
2241
  def parent_node; end
@@ -2504,6 +2244,8 @@ class Spoom::Deadcode::Remover::NodeContext
2504
2244
  sig { returns(T.nilable(::Prism::Node)) }
2505
2245
  def previous_node; end
2506
2246
 
2247
+ # @raise [Error]
2248
+ #
2507
2249
  # source://spoom//lib/spoom/deadcode/remover.rb#417
2508
2250
  sig { returns(T::Array[::Prism::Node]) }
2509
2251
  def previous_nodes; end
@@ -2522,9 +2264,9 @@ class Spoom::Deadcode::Remover::NodeContext
2522
2264
  end
2523
2265
 
2524
2266
  # source://spoom//lib/spoom/deadcode/remover.rb#549
2525
- class Spoom::Deadcode::Remover::NodeFinder < ::Spoom::Deadcode::Visitor
2267
+ class Spoom::Deadcode::Remover::NodeFinder < ::Spoom::Visitor
2526
2268
  # source://spoom//lib/spoom/deadcode/remover.rb#621
2527
- sig { params(location: ::Spoom::Deadcode::Location, kind: T.nilable(::Spoom::Deadcode::Definition::Kind)).void }
2269
+ sig { params(location: ::Spoom::Location, kind: T.nilable(::Spoom::Deadcode::Definition::Kind)).void }
2528
2270
  def initialize(location, kind); end
2529
2271
 
2530
2272
  # source://spoom//lib/spoom/deadcode/remover.rb#615
@@ -2544,7 +2286,7 @@ class Spoom::Deadcode::Remover::NodeFinder < ::Spoom::Deadcode::Visitor
2544
2286
  sig do
2545
2287
  params(
2546
2288
  source: ::String,
2547
- location: ::Spoom::Deadcode::Location,
2289
+ location: ::Spoom::Location,
2548
2290
  kind: T.nilable(::Spoom::Deadcode::Definition::Kind)
2549
2291
  ).returns(::Spoom::Deadcode::Remover::NodeContext)
2550
2292
  end
@@ -2563,7 +2305,7 @@ class Spoom::Deadcode::Remover::NodeRemover
2563
2305
  params(
2564
2306
  source: ::String,
2565
2307
  kind: T.nilable(::Spoom::Deadcode::Definition::Kind),
2566
- location: ::Spoom::Deadcode::Location
2308
+ location: ::Spoom::Location
2567
2309
  ).void
2568
2310
  end
2569
2311
  def initialize(source, kind, location); end
@@ -2632,8 +2374,9 @@ class Spoom::Deadcode::Send < ::T::Struct
2632
2374
  const :recv, T.nilable(::Prism::Node), default: T.unsafe(nil)
2633
2375
  const :args, T::Array[::Prism::Node], default: T.unsafe(nil)
2634
2376
  const :block, T.nilable(::Prism::Node), default: T.unsafe(nil)
2377
+ const :location, ::Spoom::Location
2635
2378
 
2636
- # source://spoom//lib/spoom/deadcode/send.rb#21
2379
+ # source://spoom//lib/spoom/deadcode/send.rb#22
2637
2380
  sig do
2638
2381
  type_parameters(:T)
2639
2382
  .params(
@@ -2643,1337 +2386,1520 @@ class Spoom::Deadcode::Send < ::T::Struct
2643
2386
  end
2644
2387
  def each_arg(arg_type, &block); end
2645
2388
 
2646
- # source://spoom//lib/spoom/deadcode/send.rb#28
2389
+ # source://spoom//lib/spoom/deadcode/send.rb#29
2647
2390
  sig { params(block: T.proc.params(key: ::Prism::Node, value: T.nilable(::Prism::Node)).void).void }
2648
2391
  def each_arg_assoc(&block); end
2649
2392
 
2650
2393
  class << self
2651
- # source://sorbet-runtime/0.5.11414/lib/types/struct.rb#13
2394
+ # source://sorbet-runtime/0.5.11766/lib/types/struct.rb#13
2652
2395
  def inherited(s); end
2653
2396
  end
2654
2397
  end
2655
2398
 
2656
- # source://spoom//lib/spoom/deadcode/visitor.rb#6
2657
- class Spoom::Deadcode::Visitor < ::Prism::Visitor
2658
- # source://spoom//lib/spoom/deadcode/visitor.rb#15
2659
- sig { override.params(node: ::Prism::AliasGlobalVariableNode).void }
2660
- def visit_alias_global_variable_node(node); end
2399
+ # source://spoom//lib/spoom.rb#12
2400
+ class Spoom::Error < ::StandardError; end
2661
2401
 
2662
- # source://spoom//lib/spoom/deadcode/visitor.rb#20
2663
- sig { override.params(node: ::Prism::AliasMethodNode).void }
2664
- def visit_alias_method_node(node); end
2402
+ # source://spoom//lib/spoom/context/exec.rb#5
2403
+ class Spoom::ExecResult < ::T::Struct
2404
+ const :out, ::String
2405
+ const :err, T.nilable(::String)
2406
+ const :status, T::Boolean
2407
+ const :exit_code, ::Integer
2665
2408
 
2666
- # source://spoom//lib/spoom/deadcode/visitor.rb#25
2667
- sig { override.params(node: ::Prism::AlternationPatternNode).void }
2668
- def visit_alternation_pattern_node(node); end
2409
+ # source://spoom//lib/spoom/context/exec.rb#14
2410
+ sig { returns(::String) }
2411
+ def to_s; end
2669
2412
 
2670
- # source://spoom//lib/spoom/deadcode/visitor.rb#30
2671
- sig { override.params(node: ::Prism::AndNode).void }
2672
- def visit_and_node(node); end
2413
+ class << self
2414
+ # source://sorbet-runtime/0.5.11766/lib/types/struct.rb#13
2415
+ def inherited(s); end
2416
+ end
2417
+ end
2673
2418
 
2674
- # source://spoom//lib/spoom/deadcode/visitor.rb#35
2675
- sig { override.params(node: ::Prism::ArgumentsNode).void }
2676
- def visit_arguments_node(node); end
2419
+ # source://spoom//lib/spoom/file_collector.rb#5
2420
+ class Spoom::FileCollector
2421
+ # Initialize a new file collector
2422
+ #
2423
+ # If `allow_extensions` is empty, all files are collected.
2424
+ # If `allow_extensions` is an array of extensions, only files with one of these extensions are collected.
2425
+ #
2426
+ # If `allow_mime_types` is empty, all files are collected.
2427
+ # If `allow_mime_types` is an array of mimetypes, files without an extension are collected if their mimetype is in
2428
+ # the list.
2429
+ #
2430
+ # source://spoom//lib/spoom/file_collector.rb#26
2431
+ sig do
2432
+ params(
2433
+ allow_extensions: T::Array[::String],
2434
+ allow_mime_types: T::Array[::String],
2435
+ exclude_patterns: T::Array[::String]
2436
+ ).void
2437
+ end
2438
+ def initialize(allow_extensions: T.unsafe(nil), allow_mime_types: T.unsafe(nil), exclude_patterns: T.unsafe(nil)); end
2677
2439
 
2678
- # source://spoom//lib/spoom/deadcode/visitor.rb#40
2679
- sig { override.params(node: ::Prism::ArrayNode).void }
2680
- def visit_array_node(node); end
2440
+ # source://spoom//lib/spoom/file_collector.rb#9
2441
+ sig { returns(T::Array[::String]) }
2442
+ def files; end
2681
2443
 
2682
- # source://spoom//lib/spoom/deadcode/visitor.rb#45
2683
- sig { override.params(node: ::Prism::ArrayPatternNode).void }
2684
- def visit_array_pattern_node(node); end
2444
+ # source://spoom//lib/spoom/file_collector.rb#39
2445
+ sig { params(path: ::String).void }
2446
+ def visit_path(path); end
2685
2447
 
2686
- # source://spoom//lib/spoom/deadcode/visitor.rb#50
2687
- sig { override.params(node: ::Prism::AssocNode).void }
2688
- def visit_assoc_node(node); end
2448
+ # source://spoom//lib/spoom/file_collector.rb#34
2449
+ sig { params(paths: T::Array[::String]).void }
2450
+ def visit_paths(paths); end
2689
2451
 
2690
- # source://spoom//lib/spoom/deadcode/visitor.rb#55
2691
- sig { override.params(node: ::Prism::AssocSplatNode).void }
2692
- def visit_assoc_splat_node(node); end
2452
+ private
2693
2453
 
2694
- # source://spoom//lib/spoom/deadcode/visitor.rb#60
2695
- sig { override.params(node: ::Prism::BackReferenceReadNode).void }
2696
- def visit_back_reference_read_node(node); end
2454
+ # source://spoom//lib/spoom/file_collector.rb#56
2455
+ sig { params(path: ::String).returns(::String) }
2456
+ def clean_path(path); end
2697
2457
 
2698
- # source://spoom//lib/spoom/deadcode/visitor.rb#65
2699
- sig { override.params(node: ::Prism::BeginNode).void }
2700
- def visit_begin_node(node); end
2458
+ # source://spoom//lib/spoom/file_collector.rb#73
2459
+ sig { params(path: ::String).returns(T::Boolean) }
2460
+ def excluded_file?(path); end
2701
2461
 
2702
- # source://spoom//lib/spoom/deadcode/visitor.rb#70
2703
- sig { override.params(node: ::Prism::BlockArgumentNode).void }
2704
- def visit_block_argument_node(node); end
2462
+ # source://spoom//lib/spoom/file_collector.rb#88
2463
+ sig { params(path: ::String).returns(T::Boolean) }
2464
+ def excluded_path?(path); end
2705
2465
 
2706
- # source://spoom//lib/spoom/deadcode/visitor.rb#75
2707
- sig { override.params(node: ::Prism::BlockLocalVariableNode).void }
2708
- def visit_block_local_variable_node(node); end
2466
+ # source://spoom//lib/spoom/file_collector.rb#97
2467
+ sig { params(path: ::String).returns(T.nilable(::String)) }
2468
+ def mime_type_for(path); end
2709
2469
 
2710
- # source://spoom//lib/spoom/deadcode/visitor.rb#80
2711
- sig { override.params(node: ::Prism::BlockNode).void }
2712
- def visit_block_node(node); end
2470
+ # source://spoom//lib/spoom/file_collector.rb#68
2471
+ sig { params(path: ::String).void }
2472
+ def visit_directory(path); end
2713
2473
 
2714
- # source://spoom//lib/spoom/deadcode/visitor.rb#85
2715
- sig { override.params(node: ::Prism::BlockParameterNode).void }
2716
- def visit_block_parameter_node(node); end
2474
+ # source://spoom//lib/spoom/file_collector.rb#61
2475
+ sig { params(path: ::String).void }
2476
+ def visit_file(path); end
2477
+ end
2717
2478
 
2718
- # source://spoom//lib/spoom/deadcode/visitor.rb#90
2719
- sig { override.params(node: ::Prism::BlockParametersNode).void }
2720
- def visit_block_parameters_node(node); end
2479
+ # Build a file hierarchy from a set of file paths.
2480
+ #
2481
+ # source://spoom//lib/spoom/file_tree.rb#6
2482
+ class Spoom::FileTree
2483
+ # source://spoom//lib/spoom/file_tree.rb#10
2484
+ sig { params(paths: T::Enumerable[::String]).void }
2485
+ def initialize(paths = T.unsafe(nil)); end
2721
2486
 
2722
- # source://spoom//lib/spoom/deadcode/visitor.rb#95
2723
- sig { override.params(node: ::Prism::BreakNode).void }
2724
- def visit_break_node(node); end
2487
+ # Add a `path` to the tree
2488
+ #
2489
+ # This will create all nodes until the root of `path`.
2490
+ #
2491
+ # source://spoom//lib/spoom/file_tree.rb#25
2492
+ sig { params(path: ::String).returns(::Spoom::FileTree::Node) }
2493
+ def add_path(path); end
2725
2494
 
2726
- # source://spoom//lib/spoom/deadcode/visitor.rb#100
2727
- sig { override.params(node: ::Prism::CallAndWriteNode).void }
2728
- def visit_call_and_write_node(node); end
2495
+ # Add all `paths` to the tree
2496
+ #
2497
+ # source://spoom//lib/spoom/file_tree.rb#17
2498
+ sig { params(paths: T::Enumerable[::String]).void }
2499
+ def add_paths(paths); end
2729
2500
 
2730
- # source://spoom//lib/spoom/deadcode/visitor.rb#105
2731
- sig { override.params(node: ::Prism::CallNode).void }
2732
- def visit_call_node(node); end
2501
+ # All the nodes in this tree
2502
+ #
2503
+ # source://spoom//lib/spoom/file_tree.rb#45
2504
+ sig { returns(T::Array[::Spoom::FileTree::Node]) }
2505
+ def nodes; end
2733
2506
 
2734
- # source://spoom//lib/spoom/deadcode/visitor.rb#110
2735
- sig { override.params(node: ::Prism::CallOperatorWriteNode).void }
2736
- def visit_call_operator_write_node(node); end
2507
+ # Return a map of typing scores for each node in the tree
2508
+ #
2509
+ # source://spoom//lib/spoom/file_tree.rb#59
2510
+ sig { params(context: ::Spoom::Context).returns(T::Hash[::Spoom::FileTree::Node, ::Float]) }
2511
+ def nodes_strictness_scores(context); end
2737
2512
 
2738
- # source://spoom//lib/spoom/deadcode/visitor.rb#115
2739
- sig { override.params(node: ::Prism::CallOrWriteNode).void }
2740
- def visit_call_or_write_node(node); end
2513
+ # All the paths in this tree
2514
+ #
2515
+ # source://spoom//lib/spoom/file_tree.rb#53
2516
+ sig { returns(T::Array[::String]) }
2517
+ def paths; end
2741
2518
 
2742
- # source://spoom//lib/spoom/deadcode/visitor.rb#120
2743
- sig { override.params(node: ::Prism::CallTargetNode).void }
2744
- def visit_call_target_node(node); end
2519
+ # Return a map of typing scores for each path in the tree
2520
+ #
2521
+ # source://spoom//lib/spoom/file_tree.rb#67
2522
+ sig { params(context: ::Spoom::Context).returns(T::Hash[::String, ::Float]) }
2523
+ def paths_strictness_scores(context); end
2745
2524
 
2746
- # source://spoom//lib/spoom/deadcode/visitor.rb#125
2747
- sig { override.params(node: ::Prism::CapturePatternNode).void }
2748
- def visit_capture_pattern_node(node); end
2525
+ # source://spoom//lib/spoom/file_tree.rb#72
2526
+ sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean).void }
2527
+ def print(out: T.unsafe(nil), colors: T.unsafe(nil)); end
2749
2528
 
2750
- # source://spoom//lib/spoom/deadcode/visitor.rb#130
2751
- sig { override.params(node: ::Prism::CaseMatchNode).void }
2752
- def visit_case_match_node(node); end
2529
+ # All root nodes
2530
+ #
2531
+ # source://spoom//lib/spoom/file_tree.rb#39
2532
+ sig { returns(T::Array[::Spoom::FileTree::Node]) }
2533
+ def roots; end
2534
+ end
2753
2535
 
2754
- # source://spoom//lib/spoom/deadcode/visitor.rb#135
2755
- sig { override.params(node: ::Prism::CaseNode).void }
2756
- def visit_case_node(node); end
2536
+ # A visitor that collects all the nodes in a tree
2537
+ #
2538
+ # source://spoom//lib/spoom/file_tree.rb#124
2539
+ class Spoom::FileTree::CollectNodes < ::Spoom::FileTree::Visitor
2540
+ # source://spoom//lib/spoom/file_tree.rb#131
2541
+ sig { void }
2542
+ def initialize; end
2757
2543
 
2758
- # source://spoom//lib/spoom/deadcode/visitor.rb#10
2759
- sig { override.params(node: ::Prism::Node).void }
2760
- def visit_child_nodes(node); end
2544
+ # source://spoom//lib/spoom/file_tree.rb#128
2545
+ sig { returns(T::Array[::Spoom::FileTree::Node]) }
2546
+ def nodes; end
2761
2547
 
2762
- # source://spoom//lib/spoom/deadcode/visitor.rb#140
2763
- sig { override.params(node: ::Prism::ClassNode).void }
2764
- def visit_class_node(node); end
2548
+ # source://spoom//lib/spoom/file_tree.rb#137
2549
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
2550
+ def visit_node(node); end
2551
+ end
2765
2552
 
2766
- # source://spoom//lib/spoom/deadcode/visitor.rb#145
2767
- sig { override.params(node: ::Prism::ClassVariableAndWriteNode).void }
2768
- def visit_class_variable_and_write_node(node); end
2553
+ # A visitor that collects the typing score of each node in a tree
2554
+ #
2555
+ # source://spoom//lib/spoom/file_tree.rb#167
2556
+ class Spoom::FileTree::CollectScores < ::Spoom::FileTree::CollectStrictnesses
2557
+ # source://spoom//lib/spoom/file_tree.rb#174
2558
+ sig { params(context: ::Spoom::Context).void }
2559
+ def initialize(context); end
2769
2560
 
2770
- # source://spoom//lib/spoom/deadcode/visitor.rb#150
2771
- sig { override.params(node: ::Prism::ClassVariableOperatorWriteNode).void }
2772
- def visit_class_variable_operator_write_node(node); end
2561
+ # source://spoom//lib/spoom/file_tree.rb#171
2562
+ sig { returns(T::Hash[::Spoom::FileTree::Node, ::Float]) }
2563
+ def scores; end
2773
2564
 
2774
- # source://spoom//lib/spoom/deadcode/visitor.rb#155
2775
- sig { override.params(node: ::Prism::ClassVariableOrWriteNode).void }
2776
- def visit_class_variable_or_write_node(node); end
2565
+ # source://spoom//lib/spoom/file_tree.rb#181
2566
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
2567
+ def visit_node(node); end
2777
2568
 
2778
- # source://spoom//lib/spoom/deadcode/visitor.rb#160
2779
- sig { override.params(node: ::Prism::ClassVariableReadNode).void }
2780
- def visit_class_variable_read_node(node); end
2569
+ private
2781
2570
 
2782
- # source://spoom//lib/spoom/deadcode/visitor.rb#165
2783
- sig { override.params(node: ::Prism::ClassVariableTargetNode).void }
2784
- def visit_class_variable_target_node(node); end
2571
+ # source://spoom//lib/spoom/file_tree.rb#190
2572
+ sig { params(node: ::Spoom::FileTree::Node).returns(::Float) }
2573
+ def node_score(node); end
2785
2574
 
2786
- # source://spoom//lib/spoom/deadcode/visitor.rb#170
2787
- sig { override.params(node: ::Prism::ClassVariableWriteNode).void }
2788
- def visit_class_variable_write_node(node); end
2575
+ # source://spoom//lib/spoom/file_tree.rb#199
2576
+ sig { params(strictness: T.nilable(::String)).returns(::Float) }
2577
+ def strictness_score(strictness); end
2578
+ end
2789
2579
 
2790
- # source://spoom//lib/spoom/deadcode/visitor.rb#175
2791
- sig { override.params(node: ::Prism::ConstantAndWriteNode).void }
2792
- def visit_constant_and_write_node(node); end
2580
+ # A visitor that collects the strictness of each node in a tree
2581
+ #
2582
+ # source://spoom//lib/spoom/file_tree.rb#144
2583
+ class Spoom::FileTree::CollectStrictnesses < ::Spoom::FileTree::Visitor
2584
+ # source://spoom//lib/spoom/file_tree.rb#151
2585
+ sig { params(context: ::Spoom::Context).void }
2586
+ def initialize(context); end
2793
2587
 
2794
- # source://spoom//lib/spoom/deadcode/visitor.rb#180
2795
- sig { override.params(node: ::Prism::ConstantOperatorWriteNode).void }
2796
- def visit_constant_operator_write_node(node); end
2588
+ # source://spoom//lib/spoom/file_tree.rb#148
2589
+ sig { returns(T::Hash[::Spoom::FileTree::Node, T.nilable(::String)]) }
2590
+ def strictnesses; end
2797
2591
 
2798
- # source://spoom//lib/spoom/deadcode/visitor.rb#185
2799
- sig { override.params(node: ::Prism::ConstantOrWriteNode).void }
2800
- def visit_constant_or_write_node(node); end
2801
-
2802
- # source://spoom//lib/spoom/deadcode/visitor.rb#190
2803
- sig { override.params(node: ::Prism::ConstantPathAndWriteNode).void }
2804
- def visit_constant_path_and_write_node(node); end
2592
+ # source://spoom//lib/spoom/file_tree.rb#158
2593
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
2594
+ def visit_node(node); end
2595
+ end
2805
2596
 
2806
- # source://spoom//lib/spoom/deadcode/visitor.rb#195
2807
- sig { override.params(node: ::Prism::ConstantPathNode).void }
2808
- def visit_constant_path_node(node); end
2597
+ # A node representing either a file or a directory inside a FileTree
2598
+ #
2599
+ # source://spoom//lib/spoom/file_tree.rb#78
2600
+ class Spoom::FileTree::Node < ::T::Struct
2601
+ const :parent, T.nilable(::Spoom::FileTree::Node)
2602
+ const :name, ::String
2603
+ const :children, T::Hash[::String, ::Spoom::FileTree::Node], default: T.unsafe(nil)
2809
2604
 
2810
- # source://spoom//lib/spoom/deadcode/visitor.rb#200
2811
- sig { override.params(node: ::Prism::ConstantPathOperatorWriteNode).void }
2812
- def visit_constant_path_operator_write_node(node); end
2605
+ # Full path to this node from root
2606
+ #
2607
+ # source://spoom//lib/spoom/file_tree.rb#92
2608
+ sig { returns(::String) }
2609
+ def path; end
2813
2610
 
2814
- # source://spoom//lib/spoom/deadcode/visitor.rb#205
2815
- sig { override.params(node: ::Prism::ConstantPathOrWriteNode).void }
2816
- def visit_constant_path_or_write_node(node); end
2611
+ class << self
2612
+ # source://sorbet-runtime/0.5.11766/lib/types/struct.rb#13
2613
+ def inherited(s); end
2614
+ end
2615
+ end
2817
2616
 
2818
- # source://spoom//lib/spoom/deadcode/visitor.rb#210
2819
- sig { override.params(node: ::Prism::ConstantPathTargetNode).void }
2820
- def visit_constant_path_target_node(node); end
2617
+ # An internal class used to print a FileTree
2618
+ #
2619
+ # See `FileTree#print`
2620
+ #
2621
+ # source://spoom//lib/spoom/file_tree.rb#212
2622
+ class Spoom::FileTree::Printer < ::Spoom::FileTree::Visitor
2623
+ # source://spoom//lib/spoom/file_tree.rb#222
2624
+ sig do
2625
+ params(
2626
+ strictnesses: T::Hash[::Spoom::FileTree::Node, T.nilable(::String)],
2627
+ out: T.any(::IO, ::StringIO),
2628
+ colors: T::Boolean
2629
+ ).void
2630
+ end
2631
+ def initialize(strictnesses, out: T.unsafe(nil), colors: T.unsafe(nil)); end
2821
2632
 
2822
- # source://spoom//lib/spoom/deadcode/visitor.rb#215
2823
- sig { override.params(node: ::Prism::ConstantPathWriteNode).void }
2824
- def visit_constant_path_write_node(node); end
2633
+ # source://spoom//lib/spoom/file_tree.rb#230
2634
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
2635
+ def visit_node(node); end
2825
2636
 
2826
- # source://spoom//lib/spoom/deadcode/visitor.rb#220
2827
- sig { override.params(node: ::Prism::ConstantReadNode).void }
2828
- def visit_constant_read_node(node); end
2637
+ private
2829
2638
 
2830
- # source://spoom//lib/spoom/deadcode/visitor.rb#225
2831
- sig { override.params(node: ::Prism::ConstantTargetNode).void }
2832
- def visit_constant_target_node(node); end
2639
+ # source://spoom//lib/spoom/file_tree.rb#255
2640
+ sig { params(strictness: T.nilable(::String)).returns(::Spoom::Color) }
2641
+ def strictness_color(strictness); end
2642
+ end
2833
2643
 
2834
- # source://spoom//lib/spoom/deadcode/visitor.rb#230
2835
- sig { override.params(node: ::Prism::ConstantWriteNode).void }
2836
- def visit_constant_write_node(node); end
2644
+ # An abstract visitor for FileTree
2645
+ #
2646
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
2647
+ #
2648
+ # source://spoom//lib/spoom/file_tree.rb#101
2649
+ class Spoom::FileTree::Visitor
2650
+ abstract!
2837
2651
 
2838
- # source://spoom//lib/spoom/deadcode/visitor.rb#235
2839
- sig { override.params(node: ::Prism::DefNode).void }
2840
- def visit_def_node(node); end
2652
+ # source://spoom//lib/spoom/file_tree.rb#113
2653
+ sig { params(node: ::Spoom::FileTree::Node).void }
2654
+ def visit_node(node); end
2841
2655
 
2842
- # source://spoom//lib/spoom/deadcode/visitor.rb#240
2843
- sig { override.params(node: ::Prism::DefinedNode).void }
2844
- def visit_defined_node(node); end
2656
+ # source://spoom//lib/spoom/file_tree.rb#118
2657
+ sig { params(nodes: T::Array[::Spoom::FileTree::Node]).void }
2658
+ def visit_nodes(nodes); end
2845
2659
 
2846
- # source://spoom//lib/spoom/deadcode/visitor.rb#245
2847
- sig { override.params(node: ::Prism::ElseNode).void }
2848
- def visit_else_node(node); end
2660
+ # source://spoom//lib/spoom/file_tree.rb#108
2661
+ sig { params(tree: ::Spoom::FileTree).void }
2662
+ def visit_tree(tree); end
2663
+ end
2849
2664
 
2850
- # source://spoom//lib/spoom/deadcode/visitor.rb#250
2851
- sig { override.params(node: ::Prism::EmbeddedStatementsNode).void }
2852
- def visit_embedded_statements_node(node); end
2665
+ # source://spoom//lib/spoom/context/git.rb#5
2666
+ module Spoom::Git; end
2853
2667
 
2854
- # source://spoom//lib/spoom/deadcode/visitor.rb#255
2855
- sig { override.params(node: ::Prism::EmbeddedVariableNode).void }
2856
- def visit_embedded_variable_node(node); end
2668
+ # source://spoom//lib/spoom/context/git.rb#6
2669
+ class Spoom::Git::Commit < ::T::Struct
2670
+ const :sha, ::String
2671
+ const :time, ::Time
2857
2672
 
2858
- # source://spoom//lib/spoom/deadcode/visitor.rb#260
2859
- sig { override.params(node: ::Prism::EnsureNode).void }
2860
- def visit_ensure_node(node); end
2673
+ # source://spoom//lib/spoom/context/git.rb#27
2674
+ sig { returns(::Integer) }
2675
+ def timestamp; end
2861
2676
 
2862
- # source://spoom//lib/spoom/deadcode/visitor.rb#265
2863
- sig { override.params(node: ::Prism::FalseNode).void }
2864
- def visit_false_node(node); end
2677
+ class << self
2678
+ # source://sorbet-runtime/0.5.11766/lib/types/struct.rb#13
2679
+ def inherited(s); end
2865
2680
 
2866
- # source://spoom//lib/spoom/deadcode/visitor.rb#270
2867
- sig { override.params(node: ::Prism::FindPatternNode).void }
2868
- def visit_find_pattern_node(node); end
2681
+ # Parse a line formatted as `%h %at` into a `Commit`
2682
+ #
2683
+ # source://spoom//lib/spoom/context/git.rb#14
2684
+ sig { params(string: ::String).returns(T.nilable(::Spoom::Git::Commit)) }
2685
+ def parse_line(string); end
2686
+ end
2687
+ end
2869
2688
 
2870
- # source://spoom//lib/spoom/deadcode/visitor.rb#275
2871
- sig { override.params(node: ::Prism::FlipFlopNode).void }
2872
- def visit_flip_flop_node(node); end
2689
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#5
2690
+ module Spoom::LSP; end
2873
2691
 
2874
- # source://spoom//lib/spoom/deadcode/visitor.rb#280
2875
- sig { override.params(node: ::Prism::FloatNode).void }
2876
- def visit_float_node(node); end
2692
+ # source://spoom//lib/spoom/sorbet/lsp.rb#13
2693
+ class Spoom::LSP::Client
2694
+ # source://spoom//lib/spoom/sorbet/lsp.rb#17
2695
+ sig { params(sorbet_bin: ::String, sorbet_args: ::String, path: ::String).void }
2696
+ def initialize(sorbet_bin, *sorbet_args, path: T.unsafe(nil)); end
2877
2697
 
2878
- # source://spoom//lib/spoom/deadcode/visitor.rb#285
2879
- sig { override.params(node: ::Prism::ForNode).void }
2880
- def visit_for_node(node); end
2698
+ # source://spoom//lib/spoom/sorbet/lsp.rb#229
2699
+ sig { void }
2700
+ def close; end
2881
2701
 
2882
- # source://spoom//lib/spoom/deadcode/visitor.rb#290
2883
- sig { override.params(node: ::Prism::ForwardingArgumentsNode).void }
2884
- def visit_forwarding_arguments_node(node); end
2702
+ # source://spoom//lib/spoom/sorbet/lsp.rb#131
2703
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::Location]) }
2704
+ def definitions(uri, line, column); end
2885
2705
 
2886
- # source://spoom//lib/spoom/deadcode/visitor.rb#295
2887
- sig { override.params(node: ::Prism::ForwardingParameterNode).void }
2888
- def visit_forwarding_parameter_node(node); end
2706
+ # source://spoom//lib/spoom/sorbet/lsp.rb#212
2707
+ sig { params(uri: ::String).returns(T::Array[::Spoom::LSP::DocumentSymbol]) }
2708
+ def document_symbols(uri); end
2889
2709
 
2890
- # source://spoom//lib/spoom/deadcode/visitor.rb#300
2891
- sig { override.params(node: ::Prism::ForwardingSuperNode).void }
2892
- def visit_forwarding_super_node(node); end
2710
+ # source://spoom//lib/spoom/sorbet/lsp.rb#89
2711
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T.nilable(::Spoom::LSP::Hover)) }
2712
+ def hover(uri, line, column); end
2893
2713
 
2894
- # source://spoom//lib/spoom/deadcode/visitor.rb#305
2895
- sig { override.params(node: ::Prism::GlobalVariableAndWriteNode).void }
2896
- def visit_global_variable_and_write_node(node); end
2714
+ # source://spoom//lib/spoom/sorbet/lsp.rb#27
2715
+ sig { returns(::Integer) }
2716
+ def next_id; end
2897
2717
 
2898
- # source://spoom//lib/spoom/deadcode/visitor.rb#310
2899
- sig { override.params(node: ::Prism::GlobalVariableOperatorWriteNode).void }
2900
- def visit_global_variable_operator_write_node(node); end
2718
+ # LSP requests
2719
+ #
2720
+ # @raise [Error::AlreadyOpen]
2721
+ #
2722
+ # source://spoom//lib/spoom/sorbet/lsp.rb#72
2723
+ sig { params(workspace_path: ::String).void }
2724
+ def open(workspace_path); end
2901
2725
 
2902
- # source://spoom//lib/spoom/deadcode/visitor.rb#315
2903
- sig { override.params(node: ::Prism::GlobalVariableOrWriteNode).void }
2904
- def visit_global_variable_or_write_node(node); end
2726
+ # source://spoom//lib/spoom/sorbet/lsp.rb#54
2727
+ sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
2728
+ def read; end
2905
2729
 
2906
- # source://spoom//lib/spoom/deadcode/visitor.rb#320
2907
- sig { override.params(node: ::Prism::GlobalVariableReadNode).void }
2908
- def visit_global_variable_read_node(node); end
2730
+ # @raise [Error::BadHeaders]
2731
+ #
2732
+ # source://spoom//lib/spoom/sorbet/lsp.rb#43
2733
+ sig { returns(T.nilable(::String)) }
2734
+ def read_raw; end
2909
2735
 
2910
- # source://spoom//lib/spoom/deadcode/visitor.rb#325
2911
- sig { override.params(node: ::Prism::GlobalVariableTargetNode).void }
2912
- def visit_global_variable_target_node(node); end
2736
+ # source://spoom//lib/spoom/sorbet/lsp.rb#173
2737
+ sig do
2738
+ params(
2739
+ uri: ::String,
2740
+ line: ::Integer,
2741
+ column: ::Integer,
2742
+ include_decl: T::Boolean
2743
+ ).returns(T::Array[::Spoom::LSP::Location])
2744
+ end
2745
+ def references(uri, line, column, include_decl = T.unsafe(nil)); end
2913
2746
 
2914
- # source://spoom//lib/spoom/deadcode/visitor.rb#330
2915
- sig { override.params(node: ::Prism::GlobalVariableWriteNode).void }
2916
- def visit_global_variable_write_node(node); end
2747
+ # source://spoom//lib/spoom/sorbet/lsp.rb#37
2748
+ sig { params(message: ::Spoom::LSP::Message).returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
2749
+ def send(message); end
2917
2750
 
2918
- # source://spoom//lib/spoom/deadcode/visitor.rb#335
2919
- sig { override.params(node: ::Prism::HashNode).void }
2920
- def visit_hash_node(node); end
2751
+ # source://spoom//lib/spoom/sorbet/lsp.rb#32
2752
+ sig { params(json_string: ::String).void }
2753
+ def send_raw(json_string); end
2921
2754
 
2922
- # source://spoom//lib/spoom/deadcode/visitor.rb#340
2923
- sig { override.params(node: ::Prism::HashPatternNode).void }
2924
- def visit_hash_pattern_node(node); end
2755
+ # source://spoom//lib/spoom/sorbet/lsp.rb#110
2756
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::SignatureHelp]) }
2757
+ def signatures(uri, line, column); end
2925
2758
 
2926
- # source://spoom//lib/spoom/deadcode/visitor.rb#345
2927
- sig { override.params(node: ::Prism::IfNode).void }
2928
- def visit_if_node(node); end
2759
+ # source://spoom//lib/spoom/sorbet/lsp.rb#197
2760
+ sig { params(query: ::String).returns(T::Array[::Spoom::LSP::DocumentSymbol]) }
2761
+ def symbols(query); end
2929
2762
 
2930
- # source://spoom//lib/spoom/deadcode/visitor.rb#350
2931
- sig { override.params(node: ::Prism::ImaginaryNode).void }
2932
- def visit_imaginary_node(node); end
2763
+ # source://spoom//lib/spoom/sorbet/lsp.rb#152
2764
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::Location]) }
2765
+ def type_definitions(uri, line, column); end
2766
+ end
2933
2767
 
2934
- # source://spoom//lib/spoom/deadcode/visitor.rb#355
2935
- sig { override.params(node: ::Prism::ImplicitNode).void }
2936
- def visit_implicit_node(node); end
2768
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#178
2769
+ class Spoom::LSP::Diagnostic < ::T::Struct
2770
+ include ::Spoom::LSP::PrintableSymbol
2937
2771
 
2938
- # source://spoom//lib/spoom/deadcode/visitor.rb#360
2939
- sig { override.params(node: ::Prism::ImplicitRestNode).void }
2940
- def visit_implicit_rest_node(node); end
2772
+ const :range, ::Spoom::LSP::Range
2773
+ const :code, ::Integer
2774
+ const :message, ::String
2775
+ const :information, ::Object
2941
2776
 
2942
- # source://spoom//lib/spoom/deadcode/visitor.rb#365
2943
- sig { override.params(node: ::Prism::InNode).void }
2944
- def visit_in_node(node); end
2777
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#202
2778
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2779
+ def accept_printer(printer); end
2945
2780
 
2946
- # source://spoom//lib/spoom/deadcode/visitor.rb#370
2947
- sig { override.params(node: ::Prism::IndexAndWriteNode).void }
2948
- def visit_index_and_write_node(node); end
2781
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#207
2782
+ sig { returns(::String) }
2783
+ def to_s; end
2949
2784
 
2950
- # source://spoom//lib/spoom/deadcode/visitor.rb#375
2951
- sig { override.params(node: ::Prism::IndexOperatorWriteNode).void }
2952
- def visit_index_operator_write_node(node); end
2785
+ class << self
2786
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#191
2787
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Diagnostic) }
2788
+ def from_json(json); end
2953
2789
 
2954
- # source://spoom//lib/spoom/deadcode/visitor.rb#380
2955
- sig { override.params(node: ::Prism::IndexOrWriteNode).void }
2956
- def visit_index_or_write_node(node); end
2790
+ # source://sorbet-runtime/0.5.11766/lib/types/struct.rb#13
2791
+ def inherited(s); end
2792
+ end
2793
+ end
2957
2794
 
2958
- # source://spoom//lib/spoom/deadcode/visitor.rb#385
2959
- sig { override.params(node: ::Prism::IndexTargetNode).void }
2960
- def visit_index_target_node(node); end
2795
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#212
2796
+ class Spoom::LSP::DocumentSymbol < ::T::Struct
2797
+ include ::Spoom::LSP::PrintableSymbol
2961
2798
 
2962
- # source://spoom//lib/spoom/deadcode/visitor.rb#390
2963
- sig { override.params(node: ::Prism::InstanceVariableAndWriteNode).void }
2964
- def visit_instance_variable_and_write_node(node); end
2799
+ const :name, ::String
2800
+ const :detail, T.nilable(::String)
2801
+ const :kind, ::Integer
2802
+ const :location, T.nilable(::Spoom::LSP::Location)
2803
+ const :range, T.nilable(::Spoom::LSP::Range)
2804
+ const :children, T::Array[::Spoom::LSP::DocumentSymbol]
2965
2805
 
2966
- # source://spoom//lib/spoom/deadcode/visitor.rb#395
2967
- sig { override.params(node: ::Prism::InstanceVariableOperatorWriteNode).void }
2968
- def visit_instance_variable_operator_write_node(node); end
2806
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#240
2807
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2808
+ def accept_printer(printer); end
2969
2809
 
2970
- # source://spoom//lib/spoom/deadcode/visitor.rb#400
2971
- sig { override.params(node: ::Prism::InstanceVariableOrWriteNode).void }
2972
- def visit_instance_variable_or_write_node(node); end
2810
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#272
2811
+ sig { returns(::String) }
2812
+ def kind_string; end
2973
2813
 
2974
- # source://spoom//lib/spoom/deadcode/visitor.rb#405
2975
- sig { override.params(node: ::Prism::InstanceVariableReadNode).void }
2976
- def visit_instance_variable_read_node(node); end
2814
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#267
2815
+ sig { returns(::String) }
2816
+ def to_s; end
2977
2817
 
2978
- # source://spoom//lib/spoom/deadcode/visitor.rb#410
2979
- sig { override.params(node: ::Prism::InstanceVariableTargetNode).void }
2980
- def visit_instance_variable_target_node(node); end
2818
+ class << self
2819
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#227
2820
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::DocumentSymbol) }
2821
+ def from_json(json); end
2981
2822
 
2982
- # source://spoom//lib/spoom/deadcode/visitor.rb#415
2983
- sig { override.params(node: ::Prism::InstanceVariableWriteNode).void }
2984
- def visit_instance_variable_write_node(node); end
2823
+ # source://sorbet-runtime/0.5.11766/lib/types/struct.rb#13
2824
+ def inherited(s); end
2825
+ end
2826
+ end
2985
2827
 
2986
- # source://spoom//lib/spoom/deadcode/visitor.rb#420
2987
- sig { override.params(node: ::Prism::IntegerNode).void }
2988
- def visit_integer_node(node); end
2828
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#276
2829
+ Spoom::LSP::DocumentSymbol::SYMBOL_KINDS = T.let(T.unsafe(nil), Hash)
2989
2830
 
2990
- # source://spoom//lib/spoom/deadcode/visitor.rb#425
2991
- sig { override.params(node: ::Prism::InterpolatedMatchLastLineNode).void }
2992
- def visit_interpolated_match_last_line_node(node); end
2831
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#6
2832
+ class Spoom::LSP::Error < ::Spoom::Error; end
2993
2833
 
2994
- # source://spoom//lib/spoom/deadcode/visitor.rb#430
2995
- sig { override.params(node: ::Prism::InterpolatedRegularExpressionNode).void }
2996
- def visit_interpolated_regular_expression_node(node); end
2834
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#7
2835
+ class Spoom::LSP::Error::AlreadyOpen < ::Spoom::LSP::Error; end
2997
2836
 
2998
- # source://spoom//lib/spoom/deadcode/visitor.rb#435
2999
- sig { override.params(node: ::Prism::InterpolatedStringNode).void }
3000
- def visit_interpolated_string_node(node); end
2837
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#8
2838
+ class Spoom::LSP::Error::BadHeaders < ::Spoom::LSP::Error; end
3001
2839
 
3002
- # source://spoom//lib/spoom/deadcode/visitor.rb#440
3003
- sig { override.params(node: ::Prism::InterpolatedSymbolNode).void }
3004
- def visit_interpolated_symbol_node(node); end
2840
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#10
2841
+ class Spoom::LSP::Error::Diagnostics < ::Spoom::LSP::Error
2842
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#32
2843
+ sig { params(uri: ::String, diagnostics: T::Array[::Spoom::LSP::Diagnostic]).void }
2844
+ def initialize(uri, diagnostics); end
3005
2845
 
3006
- # source://spoom//lib/spoom/deadcode/visitor.rb#445
3007
- sig { override.params(node: ::Prism::InterpolatedXStringNode).void }
3008
- def visit_interpolated_x_string_node(node); end
2846
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#17
2847
+ sig { returns(T::Array[::Spoom::LSP::Diagnostic]) }
2848
+ def diagnostics; end
3009
2849
 
3010
- # source://spoom//lib/spoom/deadcode/visitor.rb#450
3011
- sig { override.params(node: ::Prism::KeywordHashNode).void }
3012
- def visit_keyword_hash_node(node); end
2850
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#14
2851
+ sig { returns(::String) }
2852
+ def uri; end
3013
2853
 
3014
- # source://spoom//lib/spoom/deadcode/visitor.rb#455
3015
- sig { override.params(node: ::Prism::KeywordRestParameterNode).void }
3016
- def visit_keyword_rest_parameter_node(node); end
2854
+ class << self
2855
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#23
2856
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Error::Diagnostics) }
2857
+ def from_json(json); end
2858
+ end
2859
+ end
3017
2860
 
3018
- # source://spoom//lib/spoom/deadcode/visitor.rb#460
3019
- sig { override.params(node: ::Prism::LambdaNode).void }
3020
- def visit_lambda_node(node); end
2861
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#19
2862
+ class Spoom::LSP::Hover < ::T::Struct
2863
+ include ::Spoom::LSP::PrintableSymbol
3021
2864
 
3022
- # source://spoom//lib/spoom/deadcode/visitor.rb#465
3023
- sig { override.params(node: ::Prism::LocalVariableAndWriteNode).void }
3024
- def visit_local_variable_and_write_node(node); end
2865
+ const :contents, ::String
2866
+ const :range, T.nilable(T::Range[T.untyped])
3025
2867
 
3026
- # source://spoom//lib/spoom/deadcode/visitor.rb#470
3027
- sig { override.params(node: ::Prism::LocalVariableOperatorWriteNode).void }
3028
- def visit_local_variable_operator_write_node(node); end
2868
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#39
2869
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2870
+ def accept_printer(printer); end
3029
2871
 
3030
- # source://spoom//lib/spoom/deadcode/visitor.rb#475
3031
- sig { override.params(node: ::Prism::LocalVariableOrWriteNode).void }
3032
- def visit_local_variable_or_write_node(node); end
2872
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#45
2873
+ sig { returns(::String) }
2874
+ def to_s; end
3033
2875
 
3034
- # source://spoom//lib/spoom/deadcode/visitor.rb#480
3035
- sig { override.params(node: ::Prism::LocalVariableReadNode).void }
3036
- def visit_local_variable_read_node(node); end
2876
+ class << self
2877
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#30
2878
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Hover) }
2879
+ def from_json(json); end
3037
2880
 
3038
- # source://spoom//lib/spoom/deadcode/visitor.rb#485
3039
- sig { override.params(node: ::Prism::LocalVariableTargetNode).void }
3040
- def visit_local_variable_target_node(node); end
2881
+ # source://sorbet-runtime/0.5.11766/lib/types/struct.rb#13
2882
+ def inherited(s); end
2883
+ end
2884
+ end
3041
2885
 
3042
- # source://spoom//lib/spoom/deadcode/visitor.rb#490
3043
- sig { override.params(node: ::Prism::LocalVariableWriteNode).void }
3044
- def visit_local_variable_write_node(node); end
2886
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#112
2887
+ class Spoom::LSP::Location < ::T::Struct
2888
+ include ::Spoom::LSP::PrintableSymbol
3045
2889
 
3046
- # source://spoom//lib/spoom/deadcode/visitor.rb#495
3047
- sig { override.params(node: ::Prism::MatchLastLineNode).void }
3048
- def visit_match_last_line_node(node); end
2890
+ const :uri, ::String
2891
+ const :range, ::Spoom::LSP::Range
3049
2892
 
3050
- # source://spoom//lib/spoom/deadcode/visitor.rb#500
3051
- sig { override.params(node: ::Prism::MatchPredicateNode).void }
3052
- def visit_match_predicate_node(node); end
2893
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#132
2894
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2895
+ def accept_printer(printer); end
3053
2896
 
3054
- # source://spoom//lib/spoom/deadcode/visitor.rb#505
3055
- sig { override.params(node: ::Prism::MatchRequiredNode).void }
3056
- def visit_match_required_node(node); end
2897
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#138
2898
+ sig { returns(::String) }
2899
+ def to_s; end
3057
2900
 
3058
- # source://spoom//lib/spoom/deadcode/visitor.rb#510
3059
- sig { override.params(node: ::Prism::MatchWriteNode).void }
3060
- def visit_match_write_node(node); end
2901
+ class << self
2902
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#123
2903
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Location) }
2904
+ def from_json(json); end
3061
2905
 
3062
- # source://spoom//lib/spoom/deadcode/visitor.rb#515
3063
- sig { override.params(node: ::Prism::MissingNode).void }
3064
- def visit_missing_node(node); end
2906
+ # source://sorbet-runtime/0.5.11766/lib/types/struct.rb#13
2907
+ def inherited(s); end
2908
+ end
2909
+ end
3065
2910
 
3066
- # source://spoom//lib/spoom/deadcode/visitor.rb#520
3067
- sig { override.params(node: ::Prism::ModuleNode).void }
3068
- def visit_module_node(node); end
2911
+ # A general message as defined by JSON-RPC.
2912
+ #
2913
+ # The language server protocol always uses `"2.0"` as the `jsonrpc` version.
2914
+ #
2915
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#12
2916
+ class Spoom::LSP::Message
2917
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#16
2918
+ sig { void }
2919
+ def initialize; end
3069
2920
 
3070
- # source://spoom//lib/spoom/deadcode/visitor.rb#525
3071
- sig { override.params(node: ::Prism::MultiTargetNode).void }
3072
- def visit_multi_target_node(node); end
2921
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#21
2922
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
2923
+ def as_json; end
3073
2924
 
3074
- # source://spoom//lib/spoom/deadcode/visitor.rb#530
3075
- sig { override.params(node: ::Prism::MultiWriteNode).void }
3076
- def visit_multi_write_node(node); end
2925
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#29
2926
+ sig { params(args: T.untyped).returns(::String) }
2927
+ def to_json(*args); end
2928
+ end
3077
2929
 
3078
- # source://spoom//lib/spoom/deadcode/visitor.rb#535
3079
- sig { override.params(node: ::Prism::NextNode).void }
3080
- def visit_next_node(node); end
2930
+ # A notification message.
2931
+ #
2932
+ # A processed notification message must not send a response back. They work like events.
2933
+ #
2934
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#58
2935
+ class Spoom::LSP::Notification < ::Spoom::LSP::Message
2936
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#68
2937
+ sig { params(method: ::String, params: T::Hash[T.untyped, T.untyped]).void }
2938
+ def initialize(method, params); end
3081
2939
 
3082
- # source://spoom//lib/spoom/deadcode/visitor.rb#540
3083
- sig { override.params(node: ::Prism::NilNode).void }
3084
- def visit_nil_node(node); end
2940
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#62
2941
+ sig { returns(::String) }
2942
+ def method; end
3085
2943
 
3086
- # source://spoom//lib/spoom/deadcode/visitor.rb#545
3087
- sig { override.params(node: ::Prism::NoKeywordsParameterNode).void }
3088
- def visit_no_keywords_parameter_node(node); end
2944
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#65
2945
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
2946
+ def params; end
2947
+ end
3089
2948
 
3090
- # source://spoom//lib/spoom/deadcode/visitor.rb#550
3091
- sig { override.params(node: ::Prism::NumberedParametersNode).void }
3092
- def visit_numbered_parameters_node(node); end
2949
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#50
2950
+ class Spoom::LSP::Position < ::T::Struct
2951
+ include ::Spoom::LSP::PrintableSymbol
3093
2952
 
3094
- # source://spoom//lib/spoom/deadcode/visitor.rb#555
3095
- sig { override.params(node: ::Prism::NumberedReferenceReadNode).void }
3096
- def visit_numbered_reference_read_node(node); end
2953
+ const :line, ::Integer
2954
+ const :char, ::Integer
3097
2955
 
3098
- # source://spoom//lib/spoom/deadcode/visitor.rb#560
3099
- sig { override.params(node: ::Prism::OptionalKeywordParameterNode).void }
3100
- def visit_optional_keyword_parameter_node(node); end
2956
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#70
2957
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2958
+ def accept_printer(printer); end
3101
2959
 
3102
- # source://spoom//lib/spoom/deadcode/visitor.rb#565
3103
- sig { override.params(node: ::Prism::OptionalParameterNode).void }
3104
- def visit_optional_parameter_node(node); end
2960
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#75
2961
+ sig { returns(::String) }
2962
+ def to_s; end
3105
2963
 
3106
- # source://spoom//lib/spoom/deadcode/visitor.rb#570
3107
- sig { override.params(node: ::Prism::OrNode).void }
3108
- def visit_or_node(node); end
2964
+ class << self
2965
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#61
2966
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Position) }
2967
+ def from_json(json); end
3109
2968
 
3110
- # source://spoom//lib/spoom/deadcode/visitor.rb#575
3111
- sig { override.params(node: ::Prism::ParametersNode).void }
3112
- def visit_parameters_node(node); end
2969
+ # source://sorbet-runtime/0.5.11766/lib/types/struct.rb#13
2970
+ def inherited(s); end
2971
+ end
2972
+ end
3113
2973
 
3114
- # source://spoom//lib/spoom/deadcode/visitor.rb#580
3115
- sig { override.params(node: ::Prism::ParenthesesNode).void }
3116
- def visit_parentheses_node(node); end
2974
+ # @abstract Subclasses must implement the `abstract` methods below.
2975
+ #
2976
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#9
2977
+ module Spoom::LSP::PrintableSymbol
2978
+ interface!
3117
2979
 
3118
- # source://spoom//lib/spoom/deadcode/visitor.rb#585
3119
- sig { override.params(node: ::Prism::PinnedExpressionNode).void }
3120
- def visit_pinned_expression_node(node); end
2980
+ # @abstract
2981
+ #
2982
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#16
2983
+ sig { abstract.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2984
+ def accept_printer(printer); end
2985
+ end
3121
2986
 
3122
- # source://spoom//lib/spoom/deadcode/visitor.rb#590
3123
- sig { override.params(node: ::Prism::PinnedVariableNode).void }
3124
- def visit_pinned_variable_node(node); end
2987
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#80
2988
+ class Spoom::LSP::Range < ::T::Struct
2989
+ include ::Spoom::LSP::PrintableSymbol
3125
2990
 
3126
- # source://spoom//lib/spoom/deadcode/visitor.rb#595
3127
- sig { override.params(node: ::Prism::PostExecutionNode).void }
3128
- def visit_post_execution_node(node); end
2991
+ const :start, ::Spoom::LSP::Position
2992
+ const :end, ::Spoom::LSP::Position
3129
2993
 
3130
- # source://spoom//lib/spoom/deadcode/visitor.rb#600
3131
- sig { override.params(node: ::Prism::PreExecutionNode).void }
3132
- def visit_pre_execution_node(node); end
2994
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#100
2995
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2996
+ def accept_printer(printer); end
3133
2997
 
3134
- # source://spoom//lib/spoom/deadcode/visitor.rb#605
3135
- sig { override.params(node: ::Prism::ProgramNode).void }
3136
- def visit_program_node(node); end
2998
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#107
2999
+ sig { returns(::String) }
3000
+ def to_s; end
3137
3001
 
3138
- # source://spoom//lib/spoom/deadcode/visitor.rb#610
3139
- sig { override.params(node: ::Prism::RangeNode).void }
3140
- def visit_range_node(node); end
3002
+ class << self
3003
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#91
3004
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Range) }
3005
+ def from_json(json); end
3141
3006
 
3142
- # source://spoom//lib/spoom/deadcode/visitor.rb#615
3143
- sig { override.params(node: ::Prism::RationalNode).void }
3144
- def visit_rational_node(node); end
3007
+ # source://sorbet-runtime/0.5.11766/lib/types/struct.rb#13
3008
+ def inherited(s); end
3009
+ end
3010
+ end
3145
3011
 
3146
- # source://spoom//lib/spoom/deadcode/visitor.rb#620
3147
- sig { override.params(node: ::Prism::RedoNode).void }
3148
- def visit_redo_node(node); end
3012
+ # A request message to describe a request between the client and the server.
3013
+ #
3014
+ # Every processed request must send a response back to the sender of the request.
3015
+ #
3016
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#37
3017
+ class Spoom::LSP::Request < ::Spoom::LSP::Message
3018
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#47
3019
+ sig { params(id: ::Integer, method: ::String, params: T::Hash[T.untyped, T.untyped]).void }
3020
+ def initialize(id, method, params); end
3149
3021
 
3150
- # source://spoom//lib/spoom/deadcode/visitor.rb#625
3151
- sig { override.params(node: ::Prism::RegularExpressionNode).void }
3152
- def visit_regular_expression_node(node); end
3022
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#41
3023
+ sig { returns(::Integer) }
3024
+ def id; end
3153
3025
 
3154
- # source://spoom//lib/spoom/deadcode/visitor.rb#630
3155
- sig { override.params(node: ::Prism::RequiredKeywordParameterNode).void }
3156
- def visit_required_keyword_parameter_node(node); end
3026
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#44
3027
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
3028
+ def params; end
3029
+ end
3157
3030
 
3158
- # source://spoom//lib/spoom/deadcode/visitor.rb#635
3159
- sig { override.params(node: ::Prism::RequiredParameterNode).void }
3160
- def visit_required_parameter_node(node); end
3031
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#40
3032
+ class Spoom::LSP::ResponseError < ::Spoom::LSP::Error
3033
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#63
3034
+ sig { params(code: ::Integer, message: ::String, data: T::Hash[T.untyped, T.untyped]).void }
3035
+ def initialize(code, message, data); end
3161
3036
 
3162
- # source://spoom//lib/spoom/deadcode/visitor.rb#640
3163
- sig { override.params(node: ::Prism::RescueModifierNode).void }
3164
- def visit_rescue_modifier_node(node); end
3037
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#44
3038
+ sig { returns(::Integer) }
3039
+ def code; end
3165
3040
 
3166
- # source://spoom//lib/spoom/deadcode/visitor.rb#645
3167
- sig { override.params(node: ::Prism::RescueNode).void }
3168
- def visit_rescue_node(node); end
3041
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#47
3042
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
3043
+ def data; end
3169
3044
 
3170
- # source://spoom//lib/spoom/deadcode/visitor.rb#650
3171
- sig { override.params(node: ::Prism::RestParameterNode).void }
3172
- def visit_rest_parameter_node(node); end
3045
+ class << self
3046
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#53
3047
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::ResponseError) }
3048
+ def from_json(json); end
3049
+ end
3050
+ end
3173
3051
 
3174
- # source://spoom//lib/spoom/deadcode/visitor.rb#655
3175
- sig { override.params(node: ::Prism::RetryNode).void }
3176
- def visit_retry_node(node); end
3052
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#143
3053
+ class Spoom::LSP::SignatureHelp < ::T::Struct
3054
+ include ::Spoom::LSP::PrintableSymbol
3177
3055
 
3178
- # source://spoom//lib/spoom/deadcode/visitor.rb#660
3179
- sig { override.params(node: ::Prism::ReturnNode).void }
3180
- def visit_return_node(node); end
3056
+ const :label, T.nilable(::String)
3057
+ const :doc, ::Object
3058
+ const :params, T::Array[T.untyped]
3181
3059
 
3182
- # source://spoom//lib/spoom/deadcode/visitor.rb#665
3183
- sig { override.params(node: ::Prism::SelfNode).void }
3184
- def visit_self_node(node); end
3060
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#165
3061
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
3062
+ def accept_printer(printer); end
3185
3063
 
3186
- # source://spoom//lib/spoom/deadcode/visitor.rb#670
3187
- sig { override.params(node: ::Prism::SingletonClassNode).void }
3188
- def visit_singleton_class_node(node); end
3064
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#173
3065
+ sig { returns(::String) }
3066
+ def to_s; end
3189
3067
 
3190
- # source://spoom//lib/spoom/deadcode/visitor.rb#675
3191
- sig { override.params(node: ::Prism::SourceEncodingNode).void }
3192
- def visit_source_encoding_node(node); end
3068
+ class << self
3069
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#155
3070
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::SignatureHelp) }
3071
+ def from_json(json); end
3193
3072
 
3194
- # source://spoom//lib/spoom/deadcode/visitor.rb#680
3195
- sig { override.params(node: ::Prism::SourceFileNode).void }
3196
- def visit_source_file_node(node); end
3073
+ # source://sorbet-runtime/0.5.11766/lib/types/struct.rb#13
3074
+ def inherited(s); end
3075
+ end
3076
+ end
3197
3077
 
3198
- # source://spoom//lib/spoom/deadcode/visitor.rb#685
3199
- sig { override.params(node: ::Prism::SourceLineNode).void }
3200
- def visit_source_line_node(node); end
3078
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#309
3079
+ class Spoom::LSP::SymbolPrinter < ::Spoom::Printer
3080
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#326
3081
+ sig do
3082
+ params(
3083
+ out: T.any(::IO, ::StringIO),
3084
+ colors: T::Boolean,
3085
+ indent_level: ::Integer,
3086
+ prefix: T.nilable(::String)
3087
+ ).void
3088
+ end
3089
+ def initialize(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil), prefix: T.unsafe(nil)); end
3201
3090
 
3202
- # source://spoom//lib/spoom/deadcode/visitor.rb#690
3203
- sig { override.params(node: ::Prism::SplatNode).void }
3204
- def visit_splat_node(node); end
3091
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#348
3092
+ sig { params(uri: ::String).returns(::String) }
3093
+ def clean_uri(uri); end
3205
3094
 
3206
- # source://spoom//lib/spoom/deadcode/visitor.rb#695
3207
- sig { override.params(node: ::Prism::StatementsNode).void }
3208
- def visit_statements_node(node); end
3095
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#316
3096
+ sig { returns(T.nilable(::String)) }
3097
+ def prefix; end
3209
3098
 
3210
- # source://spoom//lib/spoom/deadcode/visitor.rb#700
3211
- sig { override.params(node: ::Prism::StringNode).void }
3212
- def visit_string_node(node); end
3099
+ # @return [String, nil]
3100
+ #
3101
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#316
3102
+ def prefix=(_arg0); end
3213
3103
 
3214
- # source://spoom//lib/spoom/deadcode/visitor.rb#705
3215
- sig { override.params(node: ::Prism::SuperNode).void }
3216
- def visit_super_node(node); end
3104
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#356
3105
+ sig { params(objects: T::Array[::Spoom::LSP::PrintableSymbol]).void }
3106
+ def print_list(objects); end
3217
3107
 
3218
- # source://spoom//lib/spoom/deadcode/visitor.rb#710
3219
- sig { override.params(node: ::Prism::SymbolNode).void }
3220
- def visit_symbol_node(node); end
3108
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#336
3109
+ sig { params(object: T.nilable(::Spoom::LSP::PrintableSymbol)).void }
3110
+ def print_object(object); end
3221
3111
 
3222
- # source://spoom//lib/spoom/deadcode/visitor.rb#715
3223
- sig { override.params(node: ::Prism::TrueNode).void }
3224
- def visit_true_node(node); end
3112
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#343
3113
+ sig { params(objects: T::Array[::Spoom::LSP::PrintableSymbol]).void }
3114
+ def print_objects(objects); end
3225
3115
 
3226
- # source://spoom//lib/spoom/deadcode/visitor.rb#720
3227
- sig { override.params(node: ::Prism::UndefNode).void }
3228
- def visit_undef_node(node); end
3116
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#313
3117
+ sig { returns(T::Set[::Integer]) }
3118
+ def seen; end
3119
+ end
3229
3120
 
3230
- # source://spoom//lib/spoom/deadcode/visitor.rb#725
3231
- sig { override.params(node: ::Prism::UnlessNode).void }
3232
- def visit_unless_node(node); end
3121
+ # source://spoom//lib/spoom/location.rb#5
3122
+ class Spoom::Location
3123
+ include ::Comparable
3233
3124
 
3234
- # source://spoom//lib/spoom/deadcode/visitor.rb#730
3235
- sig { override.params(node: ::Prism::UntilNode).void }
3236
- def visit_until_node(node); end
3125
+ # @raise [LocationError]
3126
+ #
3127
+ # source://spoom//lib/spoom/location.rb#73
3128
+ sig do
3129
+ params(
3130
+ file: ::String,
3131
+ start_line: T.nilable(::Integer),
3132
+ start_column: T.nilable(::Integer),
3133
+ end_line: T.nilable(::Integer),
3134
+ end_column: T.nilable(::Integer)
3135
+ ).void
3136
+ end
3137
+ def initialize(file, start_line: T.unsafe(nil), start_column: T.unsafe(nil), end_line: T.unsafe(nil), end_column: T.unsafe(nil)); end
3237
3138
 
3238
- # source://spoom//lib/spoom/deadcode/visitor.rb#735
3239
- sig { override.params(node: ::Prism::WhenNode).void }
3240
- def visit_when_node(node); end
3139
+ # source://spoom//lib/spoom/location.rb#106
3140
+ sig { override.params(other: ::BasicObject).returns(T.nilable(::Integer)) }
3141
+ def <=>(other); end
3241
3142
 
3242
- # source://spoom//lib/spoom/deadcode/visitor.rb#740
3243
- sig { override.params(node: ::Prism::WhileNode).void }
3244
- def visit_while_node(node); end
3143
+ # @return [Integer, nil]
3144
+ #
3145
+ # source://spoom//lib/spoom/location.rb#62
3146
+ def end_column; end
3245
3147
 
3246
- # source://spoom//lib/spoom/deadcode/visitor.rb#745
3247
- sig { override.params(node: ::Prism::XStringNode).void }
3248
- def visit_x_string_node(node); end
3148
+ # @return [Integer, nil]
3149
+ #
3150
+ # source://spoom//lib/spoom/location.rb#62
3151
+ def end_line; end
3249
3152
 
3250
- # source://spoom//lib/spoom/deadcode/visitor.rb#750
3251
- sig { override.params(node: ::Prism::YieldNode).void }
3252
- def visit_yield_node(node); end
3253
- end
3153
+ # source://spoom//lib/spoom/location.rb#59
3154
+ sig { returns(::String) }
3155
+ def file; end
3254
3156
 
3255
- # source://spoom//lib/spoom.rb#12
3256
- class Spoom::Error < ::StandardError; end
3157
+ # source://spoom//lib/spoom/location.rb#93
3158
+ sig { params(other: ::Spoom::Location).returns(T::Boolean) }
3159
+ def include?(other); end
3257
3160
 
3258
- # source://spoom//lib/spoom/context/exec.rb#5
3259
- class Spoom::ExecResult < ::T::Struct
3260
- const :out, ::String
3261
- const :err, T.nilable(::String)
3262
- const :status, T::Boolean
3263
- const :exit_code, ::Integer
3161
+ # @return [Integer, nil]
3162
+ #
3163
+ # source://spoom//lib/spoom/location.rb#62
3164
+ def start_column; end
3264
3165
 
3265
- # source://spoom//lib/spoom/context/exec.rb#14
3166
+ # source://spoom//lib/spoom/location.rb#62
3167
+ sig { returns(T.nilable(::Integer)) }
3168
+ def start_line; end
3169
+
3170
+ # source://spoom//lib/spoom/location.rb#129
3266
3171
  sig { returns(::String) }
3267
3172
  def to_s; end
3268
3173
 
3269
3174
  class << self
3270
- # source://sorbet-runtime/0.5.11414/lib/types/struct.rb#13
3271
- def inherited(s); end
3175
+ # source://spoom//lib/spoom/location.rb#47
3176
+ sig { params(file: ::String, location: ::Prism::Location).returns(::Spoom::Location) }
3177
+ def from_prism(file, location); end
3178
+
3179
+ # @raise [LocationError]
3180
+ #
3181
+ # source://spoom//lib/spoom/location.rb#16
3182
+ sig { params(location_string: ::String).returns(::Spoom::Location) }
3183
+ def from_string(location_string); end
3272
3184
  end
3273
3185
  end
3274
3186
 
3275
- # source://spoom//lib/spoom/file_collector.rb#5
3276
- class Spoom::FileCollector
3277
- # Initialize a new file collector
3187
+ # source://spoom//lib/spoom/location.rb#10
3188
+ class Spoom::Location::LocationError < ::Spoom::Error; end
3189
+
3190
+ # source://spoom//lib/spoom/model/model.rb#5
3191
+ class Spoom::Model
3192
+ # source://spoom//lib/spoom/model/model.rb#238
3193
+ sig { void }
3194
+ def initialize; end
3195
+
3196
+ # Get a symbol by it's full name
3278
3197
  #
3279
- # If `allow_extensions` is empty, all files are collected.
3280
- # If `allow_extensions` is an array of extensions, only files with one of these extensions are collected.
3198
+ # Raises an error if the symbol is not found
3281
3199
  #
3282
- # If `allow_mime_types` is empty, all files are collected.
3283
- # If `allow_mime_types` is an array of mimetypes, files without an extension are collected if their mimetype is in
3284
- # the list.
3200
+ # @raise [Error]
3285
3201
  #
3286
- # source://spoom//lib/spoom/file_collector.rb#26
3287
- sig do
3288
- params(
3289
- allow_extensions: T::Array[::String],
3290
- allow_mime_types: T::Array[::String],
3291
- exclude_patterns: T::Array[::String]
3292
- ).void
3293
- end
3294
- def initialize(allow_extensions: T.unsafe(nil), allow_mime_types: T.unsafe(nil), exclude_patterns: T.unsafe(nil)); end
3202
+ # source://spoom//lib/spoom/model/model.rb#247
3203
+ sig { params(full_name: ::String).returns(::Spoom::Model::Symbol) }
3204
+ def [](full_name); end
3295
3205
 
3296
- # source://spoom//lib/spoom/file_collector.rb#9
3297
- sig { returns(T::Array[::String]) }
3298
- def files; end
3206
+ # source://spoom//lib/spoom/model/model.rb#296
3207
+ sig { void }
3208
+ def finalize!; end
3299
3209
 
3300
- # source://spoom//lib/spoom/file_collector.rb#39
3301
- sig { params(path: ::String).void }
3302
- def visit_path(path); end
3210
+ # Register a new symbol by it's full name
3211
+ #
3212
+ # If the symbol already exists, it will be returned.
3213
+ #
3214
+ # source://spoom//lib/spoom/model/model.rb#258
3215
+ sig { params(full_name: ::String).returns(::Spoom::Model::Symbol) }
3216
+ def register_symbol(full_name); end
3303
3217
 
3304
- # source://spoom//lib/spoom/file_collector.rb#34
3305
- sig { params(paths: T::Array[::String]).void }
3306
- def visit_paths(paths); end
3218
+ # source://spoom//lib/spoom/model/model.rb#263
3219
+ sig { params(full_name: ::String, context: ::Spoom::Model::Symbol).returns(::Spoom::Model::Symbol) }
3220
+ def resolve_symbol(full_name, context:); end
3307
3221
 
3308
- private
3222
+ # source://spoom//lib/spoom/model/model.rb#290
3223
+ sig { params(symbol: ::Spoom::Model::Symbol).returns(T::Array[::Spoom::Model::Symbol]) }
3224
+ def subtypes(symbol); end
3309
3225
 
3310
- # source://spoom//lib/spoom/file_collector.rb#56
3311
- sig { params(path: ::String).returns(::String) }
3312
- def clean_path(path); end
3226
+ # source://spoom//lib/spoom/model/model.rb#284
3227
+ sig { params(symbol: ::Spoom::Model::Symbol).returns(T::Array[::Spoom::Model::Symbol]) }
3228
+ def supertypes(symbol); end
3313
3229
 
3314
- # source://spoom//lib/spoom/file_collector.rb#73
3315
- sig { params(path: ::String).returns(T::Boolean) }
3316
- def excluded_file?(path); end
3230
+ # All the symbols registered in this model
3231
+ #
3232
+ # source://spoom//lib/spoom/model/model.rb#232
3233
+ sig { returns(T::Hash[::String, ::Spoom::Model::Symbol]) }
3234
+ def symbols; end
3317
3235
 
3318
- # source://spoom//lib/spoom/file_collector.rb#88
3319
- sig { params(path: ::String).returns(T::Boolean) }
3320
- def excluded_path?(path); end
3236
+ # source://spoom//lib/spoom/model/model.rb#235
3237
+ sig { returns(Spoom::Poset[::Spoom::Model::Symbol]) }
3238
+ def symbols_hierarchy; end
3321
3239
 
3322
- # source://spoom//lib/spoom/file_collector.rb#97
3323
- sig { params(path: ::String).returns(T.nilable(::String)) }
3324
- def mime_type_for(path); end
3240
+ private
3325
3241
 
3326
- # source://spoom//lib/spoom/file_collector.rb#68
3327
- sig { params(path: ::String).void }
3328
- def visit_directory(path); end
3242
+ # source://spoom//lib/spoom/model/model.rb#303
3243
+ sig { void }
3244
+ def compute_symbols_hierarchy!; end
3245
+ end
3329
3246
 
3330
- # source://spoom//lib/spoom/file_collector.rb#61
3331
- sig { params(path: ::String).void }
3332
- def visit_file(path); end
3247
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
3248
+ #
3249
+ # source://spoom//lib/spoom/model/model.rb#179
3250
+ class Spoom::Model::Attr < ::Spoom::Model::Property
3251
+ abstract!
3333
3252
  end
3334
3253
 
3335
- # Build a file hierarchy from a set of file paths.
3254
+ # source://spoom//lib/spoom/model/model.rb#185
3255
+ class Spoom::Model::AttrAccessor < ::Spoom::Model::Attr; end
3256
+
3257
+ # source://spoom//lib/spoom/model/model.rb#183
3258
+ class Spoom::Model::AttrReader < ::Spoom::Model::Attr; end
3259
+
3260
+ # source://spoom//lib/spoom/model/model.rb#184
3261
+ class Spoom::Model::AttrWriter < ::Spoom::Model::Attr; end
3262
+
3263
+ # Populate a Model by visiting the nodes from a Ruby file
3336
3264
  #
3337
- # source://spoom//lib/spoom/file_tree.rb#6
3338
- class Spoom::FileTree
3339
- # source://spoom//lib/spoom/file_tree.rb#10
3340
- sig { params(paths: T::Enumerable[::String]).void }
3341
- def initialize(paths = T.unsafe(nil)); end
3265
+ # source://spoom//lib/spoom/model/builder.rb#7
3266
+ class Spoom::Model::Builder < ::Spoom::Model::NamespaceVisitor
3267
+ # source://spoom//lib/spoom/model/builder.rb#11
3268
+ sig { params(model: ::Spoom::Model, file: ::String).void }
3269
+ def initialize(model, file); end
3342
3270
 
3343
- # Add a `path` to the tree
3344
- #
3345
- # This will create all nodes until the root of `path`.
3271
+ # Accessors
3346
3272
  #
3347
- # source://spoom//lib/spoom/file_tree.rb#25
3348
- sig { params(path: ::String).returns(::Spoom::FileTree::Node) }
3349
- def add_path(path); end
3273
+ # source://spoom//lib/spoom/model/builder.rb#146
3274
+ sig { override.params(node: ::Prism::CallNode).void }
3275
+ def visit_call_node(node); end
3350
3276
 
3351
- # Add all `paths` to the tree
3277
+ # Classes
3352
3278
  #
3353
- # source://spoom//lib/spoom/file_tree.rb#17
3354
- sig { params(paths: T::Enumerable[::String]).void }
3355
- def add_paths(paths); end
3279
+ # source://spoom//lib/spoom/model/builder.rb#24
3280
+ sig { override.params(node: ::Prism::ClassNode).void }
3281
+ def visit_class_node(node); end
3356
3282
 
3357
- # All the nodes in this tree
3283
+ # Constants
3358
3284
  #
3359
- # source://spoom//lib/spoom/file_tree.rb#45
3360
- sig { returns(T::Array[::Spoom::FileTree::Node]) }
3361
- def nodes; end
3285
+ # source://spoom//lib/spoom/model/builder.rb#71
3286
+ sig { override.params(node: ::Prism::ConstantPathWriteNode).void }
3287
+ def visit_constant_path_write_node(node); end
3362
3288
 
3363
- # Return a map of typing scores for each node in the tree
3364
- #
3365
- # source://spoom//lib/spoom/file_tree.rb#59
3366
- sig { params(context: ::Spoom::Context).returns(T::Hash[::Spoom::FileTree::Node, ::Float]) }
3367
- def nodes_strictness_scores(context); end
3289
+ # source://spoom//lib/spoom/model/builder.rb#92
3290
+ sig { override.params(node: ::Prism::ConstantWriteNode).void }
3291
+ def visit_constant_write_node(node); end
3368
3292
 
3369
- # All the paths in this tree
3293
+ # Methods
3370
3294
  #
3371
- # source://spoom//lib/spoom/file_tree.rb#53
3372
- sig { returns(T::Array[::String]) }
3373
- def paths; end
3295
+ # source://spoom//lib/spoom/model/builder.rb#127
3296
+ sig { override.params(node: ::Prism::DefNode).void }
3297
+ def visit_def_node(node); end
3374
3298
 
3375
- # Return a map of typing scores for each path in the tree
3299
+ # Modules
3376
3300
  #
3377
- # source://spoom//lib/spoom/file_tree.rb#67
3378
- sig { params(context: ::Spoom::Context).returns(T::Hash[::String, ::Float]) }
3379
- def paths_strictness_scores(context); end
3301
+ # source://spoom//lib/spoom/model/builder.rb#55
3302
+ sig { override.params(node: ::Prism::ModuleNode).void }
3303
+ def visit_module_node(node); end
3380
3304
 
3381
- # source://spoom//lib/spoom/file_tree.rb#72
3382
- sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean).void }
3383
- def print(out: T.unsafe(nil), colors: T.unsafe(nil)); end
3305
+ # source://spoom//lib/spoom/model/builder.rb#106
3306
+ sig { override.params(node: ::Prism::MultiWriteNode).void }
3307
+ def visit_multi_write_node(node); end
3384
3308
 
3385
- # All root nodes
3386
- #
3387
- # source://spoom//lib/spoom/file_tree.rb#39
3388
- sig { returns(T::Array[::Spoom::FileTree::Node]) }
3389
- def roots; end
3390
- end
3309
+ # source://spoom//lib/spoom/model/builder.rb#39
3310
+ sig { override.params(node: ::Prism::SingletonClassNode).void }
3311
+ def visit_singleton_class_node(node); end
3391
3312
 
3392
- # A visitor that collects all the nodes in a tree
3393
- #
3394
- # source://spoom//lib/spoom/file_tree.rb#124
3395
- class Spoom::FileTree::CollectNodes < ::Spoom::FileTree::Visitor
3396
- # source://spoom//lib/spoom/file_tree.rb#131
3397
- sig { void }
3398
- def initialize; end
3313
+ private
3399
3314
 
3400
- # source://spoom//lib/spoom/file_tree.rb#128
3401
- sig { returns(T::Array[::Spoom::FileTree::Node]) }
3402
- def nodes; end
3315
+ # source://spoom//lib/spoom/model/builder.rb#234
3316
+ sig { returns(T::Array[::Spoom::Model::Sig]) }
3317
+ def collect_sigs; end
3403
3318
 
3404
- # source://spoom//lib/spoom/file_tree.rb#137
3405
- sig { override.params(node: ::Spoom::FileTree::Node).void }
3406
- def visit_node(node); end
3407
- end
3319
+ # source://spoom//lib/spoom/model/builder.rb#229
3320
+ sig { returns(::Spoom::Model::Visibility) }
3321
+ def current_visibility; end
3408
3322
 
3409
- # A visitor that collects the typing score of each node in a tree
3410
- #
3411
- # source://spoom//lib/spoom/file_tree.rb#167
3412
- class Spoom::FileTree::CollectScores < ::Spoom::FileTree::CollectStrictnesses
3413
- # source://spoom//lib/spoom/file_tree.rb#174
3414
- sig { params(context: ::Spoom::Context).void }
3415
- def initialize(context); end
3323
+ # source://spoom//lib/spoom/model/builder.rb#241
3324
+ sig { params(node: ::Prism::Node).returns(::Spoom::Location) }
3325
+ def node_location(node); end
3326
+ end
3416
3327
 
3417
- # source://spoom//lib/spoom/file_tree.rb#171
3418
- sig { returns(T::Hash[::Spoom::FileTree::Node, ::Float]) }
3419
- def scores; end
3328
+ # source://spoom//lib/spoom/model/model.rb#117
3329
+ class Spoom::Model::Class < ::Spoom::Model::Namespace
3330
+ # source://spoom//lib/spoom/model/model.rb#129
3331
+ sig do
3332
+ params(
3333
+ symbol: ::Spoom::Model::Symbol,
3334
+ owner: T.nilable(::Spoom::Model::Namespace),
3335
+ location: ::Spoom::Location,
3336
+ superclass_name: T.nilable(::String)
3337
+ ).void
3338
+ end
3339
+ def initialize(symbol, owner:, location:, superclass_name: T.unsafe(nil)); end
3420
3340
 
3421
- # source://spoom//lib/spoom/file_tree.rb#181
3422
- sig { override.params(node: ::Spoom::FileTree::Node).void }
3423
- def visit_node(node); end
3341
+ # source://spoom//lib/spoom/model/model.rb#119
3342
+ sig { returns(T.nilable(::String)) }
3343
+ def superclass_name; end
3424
3344
 
3425
- private
3345
+ # @return [String, nil]
3346
+ #
3347
+ # source://spoom//lib/spoom/model/model.rb#119
3348
+ def superclass_name=(_arg0); end
3349
+ end
3426
3350
 
3427
- # source://spoom//lib/spoom/file_tree.rb#190
3428
- sig { params(node: ::Spoom::FileTree::Node).returns(::Float) }
3429
- def node_score(node); end
3351
+ # source://spoom//lib/spoom/model/model.rb#138
3352
+ class Spoom::Model::Constant < ::Spoom::Model::SymbolDef
3353
+ # source://spoom//lib/spoom/model/model.rb#143
3354
+ sig do
3355
+ params(
3356
+ symbol: ::Spoom::Model::Symbol,
3357
+ owner: T.nilable(::Spoom::Model::Namespace),
3358
+ location: ::Spoom::Location,
3359
+ value: ::String
3360
+ ).void
3361
+ end
3362
+ def initialize(symbol, owner:, location:, value:); end
3430
3363
 
3431
- # source://spoom//lib/spoom/file_tree.rb#199
3432
- sig { params(strictness: T.nilable(::String)).returns(::Float) }
3433
- def strictness_score(strictness); end
3364
+ # source://spoom//lib/spoom/model/model.rb#140
3365
+ sig { returns(::String) }
3366
+ def value; end
3434
3367
  end
3435
3368
 
3436
- # A visitor that collects the strictness of each node in a tree
3437
- #
3438
- # source://spoom//lib/spoom/file_tree.rb#144
3439
- class Spoom::FileTree::CollectStrictnesses < ::Spoom::FileTree::Visitor
3440
- # source://spoom//lib/spoom/file_tree.rb#151
3441
- sig { params(context: ::Spoom::Context).void }
3442
- def initialize(context); end
3369
+ # source://spoom//lib/spoom/model/model.rb#8
3370
+ class Spoom::Model::Error < ::Spoom::Error; end
3443
3371
 
3444
- # source://spoom//lib/spoom/file_tree.rb#148
3445
- sig { returns(T::Hash[::Spoom::FileTree::Node, T.nilable(::String)]) }
3446
- def strictnesses; end
3372
+ # source://spoom//lib/spoom/model/model.rb#213
3373
+ class Spoom::Model::Extend < ::Spoom::Model::Mixin; end
3447
3374
 
3448
- # source://spoom//lib/spoom/file_tree.rb#158
3449
- sig { override.params(node: ::Spoom::FileTree::Node).void }
3450
- def visit_node(node); end
3451
- end
3375
+ # source://spoom//lib/spoom/model/model.rb#211
3376
+ class Spoom::Model::Include < ::Spoom::Model::Mixin; end
3452
3377
 
3453
- # A node representing either a file or a directory inside a FileTree
3378
+ # source://spoom//lib/spoom/model/model.rb#177
3379
+ class Spoom::Model::Method < ::Spoom::Model::Property; end
3380
+
3381
+ # A mixin (include, prepend, extend) to a namespace
3454
3382
  #
3455
- # source://spoom//lib/spoom/file_tree.rb#78
3456
- class Spoom::FileTree::Node < ::T::Struct
3457
- const :parent, T.nilable(::Spoom::FileTree::Node)
3458
- const :name, ::String
3459
- const :children, T::Hash[::String, ::Spoom::FileTree::Node], default: T.unsafe(nil)
3383
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
3384
+ #
3385
+ # source://spoom//lib/spoom/model/model.rb#196
3386
+ class Spoom::Model::Mixin
3387
+ abstract!
3460
3388
 
3461
- # Full path to this node from root
3462
- #
3463
- # source://spoom//lib/spoom/file_tree.rb#92
3464
- sig { returns(::String) }
3465
- def path; end
3389
+ # source://spoom//lib/spoom/model/model.rb#206
3390
+ sig { params(name: ::String).void }
3391
+ def initialize(name); end
3466
3392
 
3467
- class << self
3468
- # source://sorbet-runtime/0.5.11414/lib/types/struct.rb#13
3469
- def inherited(s); end
3470
- end
3393
+ # source://spoom//lib/spoom/model/model.rb#203
3394
+ sig { returns(::String) }
3395
+ def name; end
3471
3396
  end
3472
3397
 
3473
- # An internal class used to print a FileTree
3398
+ # source://spoom//lib/spoom/model/model.rb#136
3399
+ class Spoom::Model::Module < ::Spoom::Model::Namespace; end
3400
+
3401
+ # A class or module
3474
3402
  #
3475
- # See `FileTree#print`
3403
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
3476
3404
  #
3477
- # source://spoom//lib/spoom/file_tree.rb#212
3478
- class Spoom::FileTree::Printer < ::Spoom::FileTree::Visitor
3479
- # source://spoom//lib/spoom/file_tree.rb#222
3405
+ # source://spoom//lib/spoom/model/model.rb#97
3406
+ class Spoom::Model::Namespace < ::Spoom::Model::SymbolDef
3407
+ abstract!
3408
+
3409
+ # source://spoom//lib/spoom/model/model.rb#107
3480
3410
  sig do
3481
3411
  params(
3482
- strictnesses: T::Hash[::Spoom::FileTree::Node, T.nilable(::String)],
3483
- out: T.any(::IO, ::StringIO),
3484
- colors: T::Boolean
3412
+ symbol: ::Spoom::Model::Symbol,
3413
+ owner: T.nilable(::Spoom::Model::Namespace),
3414
+ location: ::Spoom::Location
3485
3415
  ).void
3486
3416
  end
3487
- def initialize(strictnesses, out: T.unsafe(nil), colors: T.unsafe(nil)); end
3417
+ def initialize(symbol, owner:, location:); end
3488
3418
 
3489
- # source://spoom//lib/spoom/file_tree.rb#230
3490
- sig { override.params(node: ::Spoom::FileTree::Node).void }
3491
- def visit_node(node); end
3419
+ # source://spoom//lib/spoom/model/model.rb#101
3420
+ sig { returns(T::Array[::Spoom::Model::SymbolDef]) }
3421
+ def children; end
3492
3422
 
3493
- private
3423
+ # source://spoom//lib/spoom/model/model.rb#104
3424
+ sig { returns(T::Array[::Spoom::Model::Mixin]) }
3425
+ def mixins; end
3426
+ end
3494
3427
 
3495
- # source://spoom//lib/spoom/file_tree.rb#255
3496
- sig { params(strictness: T.nilable(::String)).returns(::Spoom::Color) }
3497
- def strictness_color(strictness); end
3428
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
3429
+ #
3430
+ # source://spoom//lib/spoom/model/namespace_visitor.rb#6
3431
+ class Spoom::Model::NamespaceVisitor < ::Spoom::Visitor
3432
+ abstract!
3433
+
3434
+ # source://spoom//lib/spoom/model/namespace_visitor.rb#12
3435
+ sig { void }
3436
+ def initialize; end
3437
+
3438
+ # source://spoom//lib/spoom/model/namespace_visitor.rb#19
3439
+ sig { override.params(node: T.nilable(::Prism::Node)).void }
3440
+ def visit(node); end
3498
3441
  end
3499
3442
 
3500
- # An abstract visitor for FileTree
3443
+ # source://spoom//lib/spoom/model/model.rb#212
3444
+ class Spoom::Model::Prepend < ::Spoom::Model::Mixin; end
3445
+
3446
+ # A method or an attribute accessor
3501
3447
  #
3502
3448
  # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
3503
3449
  #
3504
- # source://spoom//lib/spoom/file_tree.rb#101
3505
- class Spoom::FileTree::Visitor
3450
+ # source://spoom//lib/spoom/model/model.rb#151
3451
+ class Spoom::Model::Property < ::Spoom::Model::SymbolDef
3506
3452
  abstract!
3507
3453
 
3508
- # source://spoom//lib/spoom/file_tree.rb#113
3509
- sig { params(node: ::Spoom::FileTree::Node).void }
3510
- def visit_node(node); end
3454
+ # source://spoom//lib/spoom/model/model.rb#169
3455
+ sig do
3456
+ params(
3457
+ symbol: ::Spoom::Model::Symbol,
3458
+ owner: T.nilable(::Spoom::Model::Namespace),
3459
+ location: ::Spoom::Location,
3460
+ visibility: ::Spoom::Model::Visibility,
3461
+ sigs: T::Array[::Spoom::Model::Sig]
3462
+ ).void
3463
+ end
3464
+ def initialize(symbol, owner:, location:, visibility:, sigs: T.unsafe(nil)); end
3511
3465
 
3512
- # source://spoom//lib/spoom/file_tree.rb#118
3513
- sig { params(nodes: T::Array[::Spoom::FileTree::Node]).void }
3514
- def visit_nodes(nodes); end
3466
+ # source://spoom//lib/spoom/model/model.rb#158
3467
+ sig { returns(T::Array[::Spoom::Model::Sig]) }
3468
+ def sigs; end
3515
3469
 
3516
- # source://spoom//lib/spoom/file_tree.rb#108
3517
- sig { params(tree: ::Spoom::FileTree).void }
3518
- def visit_tree(tree); end
3470
+ # source://spoom//lib/spoom/model/model.rb#155
3471
+ sig { returns(::Spoom::Model::Visibility) }
3472
+ def visibility; end
3519
3473
  end
3520
3474
 
3521
- # source://spoom//lib/spoom/context/git.rb#5
3522
- module Spoom::Git; end
3475
+ # A reference to something that looks like a constant or a method
3476
+ #
3477
+ # Constants could be classes, modules, or actual constants.
3478
+ # Methods could be accessors, instance or class methods, aliases, etc.
3479
+ #
3480
+ # source://spoom//lib/spoom/model/reference.rb#10
3481
+ class Spoom::Model::Reference < ::T::Struct
3482
+ const :kind, ::Spoom::Model::Reference::Kind
3483
+ const :name, ::String
3484
+ const :location, ::Spoom::Location
3523
3485
 
3524
- # source://spoom//lib/spoom/context/git.rb#6
3525
- class Spoom::Git::Commit < ::T::Struct
3526
- const :sha, ::String
3527
- const :time, ::Time
3486
+ # source://spoom//lib/spoom/model/reference.rb#39
3487
+ sig { returns(T::Boolean) }
3488
+ def constant?; end
3528
3489
 
3529
- # source://spoom//lib/spoom/context/git.rb#27
3530
- sig { returns(::Integer) }
3531
- def timestamp; end
3490
+ # source://spoom//lib/spoom/model/reference.rb#44
3491
+ sig { returns(T::Boolean) }
3492
+ def method?; end
3532
3493
 
3533
3494
  class << self
3534
- # source://sorbet-runtime/0.5.11414/lib/types/struct.rb#13
3495
+ # source://spoom//lib/spoom/model/reference.rb#24
3496
+ sig { params(name: ::String, location: ::Spoom::Location).returns(::Spoom::Model::Reference) }
3497
+ def constant(name, location); end
3498
+
3499
+ # source://sorbet-runtime/0.5.11766/lib/types/struct.rb#13
3535
3500
  def inherited(s); end
3536
3501
 
3537
- # Parse a line formatted as `%h %at` into a `Commit`
3538
- #
3539
- # source://spoom//lib/spoom/context/git.rb#14
3540
- sig { params(string: ::String).returns(T.nilable(::Spoom::Git::Commit)) }
3541
- def parse_line(string); end
3502
+ # source://spoom//lib/spoom/model/reference.rb#29
3503
+ sig { params(name: ::String, location: ::Spoom::Location).returns(::Spoom::Model::Reference) }
3504
+ def method(name, location); end
3542
3505
  end
3543
3506
  end
3544
3507
 
3545
- # source://spoom//lib/spoom/sorbet/lsp/base.rb#5
3546
- module Spoom::LSP; end
3508
+ # source://spoom//lib/spoom/model/reference.rb#13
3509
+ class Spoom::Model::Reference::Kind < ::T::Enum
3510
+ enums do
3511
+ Constant = new
3512
+ Method = new
3513
+ end
3514
+ end
3547
3515
 
3548
- # source://spoom//lib/spoom/sorbet/lsp.rb#13
3549
- class Spoom::LSP::Client
3550
- # source://spoom//lib/spoom/sorbet/lsp.rb#17
3551
- sig { params(sorbet_bin: ::String, sorbet_args: ::String, path: ::String).void }
3552
- def initialize(sorbet_bin, *sorbet_args, path: T.unsafe(nil)); end
3516
+ # Visit a file to collect all the references to constants and methods
3517
+ #
3518
+ # source://spoom//lib/spoom/model/references_visitor.rb#7
3519
+ class Spoom::Model::ReferencesVisitor < ::Spoom::Visitor
3520
+ # source://spoom//lib/spoom/model/references_visitor.rb#14
3521
+ sig { params(file: ::String).void }
3522
+ def initialize(file); end
3523
+
3524
+ # source://spoom//lib/spoom/model/references_visitor.rb#11
3525
+ sig { returns(T::Array[::Spoom::Model::Reference]) }
3526
+ def references; end
3553
3527
 
3554
- # source://spoom//lib/spoom/sorbet/lsp.rb#229
3555
- sig { void }
3556
- def close; end
3528
+ # source://spoom//lib/spoom/model/references_visitor.rb#22
3529
+ sig { override.params(node: ::Prism::AliasMethodNode).void }
3530
+ def visit_alias_method_node(node); end
3557
3531
 
3558
- # source://spoom//lib/spoom/sorbet/lsp.rb#131
3559
- sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::Location]) }
3560
- def definitions(uri, line, column); end
3532
+ # source://spoom//lib/spoom/model/references_visitor.rb#27
3533
+ sig { override.params(node: ::Prism::AndNode).void }
3534
+ def visit_and_node(node); end
3561
3535
 
3562
- # source://spoom//lib/spoom/sorbet/lsp.rb#212
3563
- sig { params(uri: ::String).returns(T::Array[::Spoom::LSP::DocumentSymbol]) }
3564
- def document_symbols(uri); end
3536
+ # source://spoom//lib/spoom/model/references_visitor.rb#33
3537
+ sig { override.params(node: ::Prism::BlockArgumentNode).void }
3538
+ def visit_block_argument_node(node); end
3565
3539
 
3566
- # source://spoom//lib/spoom/sorbet/lsp.rb#89
3567
- sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T.nilable(::Spoom::LSP::Hover)) }
3568
- def hover(uri, line, column); end
3540
+ # source://spoom//lib/spoom/model/references_visitor.rb#44
3541
+ sig { override.params(node: ::Prism::CallAndWriteNode).void }
3542
+ def visit_call_and_write_node(node); end
3569
3543
 
3570
- # source://spoom//lib/spoom/sorbet/lsp.rb#27
3571
- sig { returns(::Integer) }
3572
- def next_id; end
3544
+ # source://spoom//lib/spoom/model/references_visitor.rb#68
3545
+ sig { override.params(node: ::Prism::CallNode).void }
3546
+ def visit_call_node(node); end
3573
3547
 
3574
- # LSP requests
3575
- #
3576
- # @raise [Error::AlreadyOpen]
3577
- #
3578
- # source://spoom//lib/spoom/sorbet/lsp.rb#72
3579
- sig { params(workspace_path: ::String).void }
3580
- def open(workspace_path); end
3548
+ # source://spoom//lib/spoom/model/references_visitor.rb#52
3549
+ sig { override.params(node: ::Prism::CallOperatorWriteNode).void }
3550
+ def visit_call_operator_write_node(node); end
3581
3551
 
3582
- # source://spoom//lib/spoom/sorbet/lsp.rb#54
3583
- sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
3584
- def read; end
3552
+ # source://spoom//lib/spoom/model/references_visitor.rb#60
3553
+ sig { override.params(node: ::Prism::CallOrWriteNode).void }
3554
+ def visit_call_or_write_node(node); end
3585
3555
 
3586
- # @raise [Error::BadHeaders]
3587
- #
3588
- # source://spoom//lib/spoom/sorbet/lsp.rb#43
3589
- sig { returns(T.nilable(::String)) }
3590
- def read_raw; end
3556
+ # source://spoom//lib/spoom/model/references_visitor.rb#85
3557
+ sig { override.params(node: ::Prism::ClassNode).void }
3558
+ def visit_class_node(node); end
3591
3559
 
3592
- # source://spoom//lib/spoom/sorbet/lsp.rb#173
3593
- sig do
3594
- params(
3595
- uri: ::String,
3596
- line: ::Integer,
3597
- column: ::Integer,
3598
- include_decl: T::Boolean
3599
- ).returns(T::Array[::Spoom::LSP::Location])
3600
- end
3601
- def references(uri, line, column, include_decl = T.unsafe(nil)); end
3602
-
3603
- # source://spoom//lib/spoom/sorbet/lsp.rb#37
3604
- sig { params(message: ::Spoom::LSP::Message).returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
3605
- def send(message); end
3560
+ # source://spoom//lib/spoom/model/references_visitor.rb#91
3561
+ sig { override.params(node: ::Prism::ConstantAndWriteNode).void }
3562
+ def visit_constant_and_write_node(node); end
3606
3563
 
3607
- # source://spoom//lib/spoom/sorbet/lsp.rb#32
3608
- sig { params(json_string: ::String).void }
3609
- def send_raw(json_string); end
3564
+ # source://spoom//lib/spoom/model/references_visitor.rb#97
3565
+ sig { override.params(node: ::Prism::ConstantOperatorWriteNode).void }
3566
+ def visit_constant_operator_write_node(node); end
3610
3567
 
3611
- # source://spoom//lib/spoom/sorbet/lsp.rb#110
3612
- sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::SignatureHelp]) }
3613
- def signatures(uri, line, column); end
3568
+ # source://spoom//lib/spoom/model/references_visitor.rb#103
3569
+ sig { override.params(node: ::Prism::ConstantOrWriteNode).void }
3570
+ def visit_constant_or_write_node(node); end
3614
3571
 
3615
- # source://spoom//lib/spoom/sorbet/lsp.rb#197
3616
- sig { params(query: ::String).returns(T::Array[::Spoom::LSP::DocumentSymbol]) }
3617
- def symbols(query); end
3572
+ # source://spoom//lib/spoom/model/references_visitor.rb#109
3573
+ sig { override.params(node: ::Prism::ConstantPathNode).void }
3574
+ def visit_constant_path_node(node); end
3618
3575
 
3619
- # source://spoom//lib/spoom/sorbet/lsp.rb#152
3620
- sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::Location]) }
3621
- def type_definitions(uri, line, column); end
3622
- end
3576
+ # source://spoom//lib/spoom/model/references_visitor.rb#115
3577
+ sig { override.params(node: ::Prism::ConstantPathWriteNode).void }
3578
+ def visit_constant_path_write_node(node); end
3623
3579
 
3624
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#178
3625
- class Spoom::LSP::Diagnostic < ::T::Struct
3626
- include ::Spoom::LSP::PrintableSymbol
3580
+ # source://spoom//lib/spoom/model/references_visitor.rb#121
3581
+ sig { override.params(node: ::Prism::ConstantReadNode).void }
3582
+ def visit_constant_read_node(node); end
3627
3583
 
3628
- const :range, ::Spoom::LSP::Range
3629
- const :code, ::Integer
3630
- const :message, ::String
3631
- const :information, ::Object
3584
+ # source://spoom//lib/spoom/model/references_visitor.rb#126
3585
+ sig { override.params(node: ::Prism::ConstantWriteNode).void }
3586
+ def visit_constant_write_node(node); end
3632
3587
 
3633
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#202
3634
- sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
3635
- def accept_printer(printer); end
3588
+ # source://spoom//lib/spoom/model/references_visitor.rb#131
3589
+ sig { override.params(node: ::Prism::LocalVariableAndWriteNode).void }
3590
+ def visit_local_variable_and_write_node(node); end
3636
3591
 
3637
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#207
3638
- sig { returns(::String) }
3639
- def to_s; end
3592
+ # source://spoom//lib/spoom/model/references_visitor.rb#139
3593
+ sig { override.params(node: ::Prism::LocalVariableOperatorWriteNode).void }
3594
+ def visit_local_variable_operator_write_node(node); end
3640
3595
 
3641
- class << self
3642
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#191
3643
- sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Diagnostic) }
3644
- def from_json(json); end
3596
+ # source://spoom//lib/spoom/model/references_visitor.rb#147
3597
+ sig { override.params(node: ::Prism::LocalVariableOrWriteNode).void }
3598
+ def visit_local_variable_or_write_node(node); end
3645
3599
 
3646
- # source://sorbet-runtime/0.5.11414/lib/types/struct.rb#13
3647
- def inherited(s); end
3648
- end
3649
- end
3600
+ # source://spoom//lib/spoom/model/references_visitor.rb#155
3601
+ sig { override.params(node: ::Prism::LocalVariableWriteNode).void }
3602
+ def visit_local_variable_write_node(node); end
3650
3603
 
3651
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#212
3652
- class Spoom::LSP::DocumentSymbol < ::T::Struct
3653
- include ::Spoom::LSP::PrintableSymbol
3604
+ # source://spoom//lib/spoom/model/references_visitor.rb#161
3605
+ sig { override.params(node: ::Prism::ModuleNode).void }
3606
+ def visit_module_node(node); end
3654
3607
 
3655
- const :name, ::String
3656
- const :detail, T.nilable(::String)
3657
- const :kind, ::Integer
3658
- const :location, T.nilable(::Spoom::LSP::Location)
3659
- const :range, T.nilable(::Spoom::LSP::Range)
3660
- const :children, T::Array[::Spoom::LSP::DocumentSymbol]
3608
+ # source://spoom//lib/spoom/model/references_visitor.rb#166
3609
+ sig { override.params(node: ::Prism::MultiWriteNode).void }
3610
+ def visit_multi_write_node(node); end
3661
3611
 
3662
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#240
3663
- sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
3664
- def accept_printer(printer); end
3612
+ # source://spoom//lib/spoom/model/references_visitor.rb#177
3613
+ sig { override.params(node: ::Prism::OrNode).void }
3614
+ def visit_or_node(node); end
3665
3615
 
3666
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#272
3667
- sig { returns(::String) }
3668
- def kind_string; end
3616
+ private
3669
3617
 
3670
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#267
3671
- sig { returns(::String) }
3672
- def to_s; end
3618
+ # source://spoom//lib/spoom/model/references_visitor.rb#195
3619
+ sig { params(node: ::Prism::Node).returns(::Spoom::Location) }
3620
+ def node_location(node); end
3673
3621
 
3674
- class << self
3675
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#227
3676
- sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::DocumentSymbol) }
3677
- def from_json(json); end
3622
+ # source://spoom//lib/spoom/model/references_visitor.rb#185
3623
+ sig { params(name: ::String, node: ::Prism::Node).void }
3624
+ def reference_constant(name, node); end
3678
3625
 
3679
- # source://sorbet-runtime/0.5.11414/lib/types/struct.rb#13
3680
- def inherited(s); end
3681
- end
3626
+ # source://spoom//lib/spoom/model/references_visitor.rb#190
3627
+ sig { params(name: ::String, node: ::Prism::Node).void }
3628
+ def reference_method(name, node); end
3682
3629
  end
3683
3630
 
3684
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#276
3685
- Spoom::LSP::DocumentSymbol::SYMBOL_KINDS = T.let(T.unsafe(nil), Hash)
3631
+ # A Sorbet signature (sig block)
3632
+ #
3633
+ # source://spoom//lib/spoom/model/model.rb#216
3634
+ class Spoom::Model::Sig
3635
+ # source://spoom//lib/spoom/model/model.rb#223
3636
+ sig { params(string: ::String).void }
3637
+ def initialize(string); end
3686
3638
 
3687
- # source://spoom//lib/spoom/sorbet/lsp/errors.rb#6
3688
- class Spoom::LSP::Error < ::StandardError; end
3639
+ # source://spoom//lib/spoom/model/model.rb#220
3640
+ sig { returns(::String) }
3641
+ def string; end
3642
+ end
3689
3643
 
3690
- # source://spoom//lib/spoom/sorbet/lsp/errors.rb#7
3691
- class Spoom::LSP::Error::AlreadyOpen < ::Spoom::LSP::Error; end
3644
+ # source://spoom//lib/spoom/model/model.rb#115
3645
+ class Spoom::Model::SingletonClass < ::Spoom::Model::Namespace; end
3692
3646
 
3693
- # source://spoom//lib/spoom/sorbet/lsp/errors.rb#8
3694
- class Spoom::LSP::Error::BadHeaders < ::Spoom::LSP::Error; end
3647
+ # A Symbol is a uniquely named entity in the Ruby codebase
3648
+ #
3649
+ # A symbol can have multiple definitions, e.g. a class can be reopened.
3650
+ # Sometimes a symbol can have multiple definitions of different types,
3651
+ # e.g. `foo` method can be defined both as a method and as an attribute accessor.
3652
+ #
3653
+ # source://spoom//lib/spoom/model/model.rb#15
3654
+ class Spoom::Model::Symbol
3655
+ # source://spoom//lib/spoom/model/model.rb#27
3656
+ sig { params(full_name: ::String).void }
3657
+ def initialize(full_name); end
3695
3658
 
3696
- # source://spoom//lib/spoom/sorbet/lsp/errors.rb#10
3697
- class Spoom::LSP::Error::Diagnostics < ::Spoom::LSP::Error
3698
- # source://spoom//lib/spoom/sorbet/lsp/errors.rb#32
3699
- sig { params(uri: ::String, diagnostics: T::Array[::Spoom::LSP::Diagnostic]).void }
3700
- def initialize(uri, diagnostics); end
3659
+ # The definitions of this symbol (where it exists in the code)
3660
+ #
3661
+ # source://spoom//lib/spoom/model/model.rb#24
3662
+ sig { returns(T::Array[::Spoom::Model::SymbolDef]) }
3663
+ def definitions; end
3701
3664
 
3702
- # source://spoom//lib/spoom/sorbet/lsp/errors.rb#17
3703
- sig { returns(T::Array[::Spoom::LSP::Diagnostic]) }
3704
- def diagnostics; end
3665
+ # The full, unique name of this symbol
3666
+ #
3667
+ # source://spoom//lib/spoom/model/model.rb#20
3668
+ sig { returns(::String) }
3669
+ def full_name; end
3705
3670
 
3706
- # source://spoom//lib/spoom/sorbet/lsp/errors.rb#14
3671
+ # The short name of this symbol
3672
+ #
3673
+ # source://spoom//lib/spoom/model/model.rb#34
3707
3674
  sig { returns(::String) }
3708
- def uri; end
3675
+ def name; end
3709
3676
 
3710
- class << self
3711
- # source://spoom//lib/spoom/sorbet/lsp/errors.rb#23
3712
- sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Error::Diagnostics) }
3713
- def from_json(json); end
3714
- end
3677
+ # source://spoom//lib/spoom/model/model.rb#39
3678
+ sig { returns(::String) }
3679
+ def to_s; end
3715
3680
  end
3716
3681
 
3717
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#19
3718
- class Spoom::LSP::Hover < ::T::Struct
3719
- include ::Spoom::LSP::PrintableSymbol
3720
-
3721
- const :contents, ::String
3722
- const :range, T.nilable(T::Range[T.untyped])
3682
+ # A SymbolDef is a definition of a Symbol
3683
+ #
3684
+ # It can be a class, module, constant, method, etc.
3685
+ # A SymbolDef has a location pointing to the actual code that defines the symbol.
3686
+ #
3687
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
3688
+ #
3689
+ # source://spoom//lib/spoom/model/model.rb#55
3690
+ class Spoom::Model::SymbolDef
3691
+ abstract!
3723
3692
 
3724
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#39
3725
- sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
3726
- def accept_printer(printer); end
3693
+ # source://spoom//lib/spoom/model/model.rb#74
3694
+ sig do
3695
+ params(
3696
+ symbol: ::Spoom::Model::Symbol,
3697
+ owner: T.nilable(::Spoom::Model::Namespace),
3698
+ location: ::Spoom::Location
3699
+ ).void
3700
+ end
3701
+ def initialize(symbol, owner:, location:); end
3727
3702
 
3728
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#45
3703
+ # The full name of the symbol this definition belongs to
3704
+ #
3705
+ # source://spoom//lib/spoom/model/model.rb#85
3729
3706
  sig { returns(::String) }
3730
- def to_s; end
3731
-
3732
- class << self
3733
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#30
3734
- sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Hover) }
3735
- def from_json(json); end
3707
+ def full_name; end
3736
3708
 
3737
- # source://sorbet-runtime/0.5.11414/lib/types/struct.rb#13
3738
- def inherited(s); end
3739
- end
3740
- end
3709
+ # The actual code location of this definition
3710
+ #
3711
+ # source://spoom//lib/spoom/model/model.rb#71
3712
+ sig { returns(::Spoom::Location) }
3713
+ def location; end
3741
3714
 
3742
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#112
3743
- class Spoom::LSP::Location < ::T::Struct
3744
- include ::Spoom::LSP::PrintableSymbol
3715
+ # The short name of the symbol this definition belongs to
3716
+ #
3717
+ # source://spoom//lib/spoom/model/model.rb#91
3718
+ sig { returns(::String) }
3719
+ def name; end
3745
3720
 
3746
- const :uri, ::String
3747
- const :range, ::Spoom::LSP::Range
3721
+ # The enclosing namespace this definition belongs to
3722
+ #
3723
+ # source://spoom//lib/spoom/model/model.rb#67
3724
+ sig { returns(T.nilable(::Spoom::Model::Namespace)) }
3725
+ def owner; end
3748
3726
 
3749
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#132
3750
- sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
3751
- def accept_printer(printer); end
3727
+ # The symbol this definition belongs to
3728
+ #
3729
+ # source://spoom//lib/spoom/model/model.rb#63
3730
+ sig { returns(::Spoom::Model::Symbol) }
3731
+ def symbol; end
3732
+ end
3752
3733
 
3753
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#138
3754
- sig { returns(::String) }
3734
+ # source://spoom//lib/spoom/model/model.rb#44
3735
+ class Spoom::Model::UnresolvedSymbol < ::Spoom::Model::Symbol
3736
+ # source://spoom//lib/spoom/model/model.rb#46
3737
+ sig { override.returns(::String) }
3755
3738
  def to_s; end
3739
+ end
3756
3740
 
3757
- class << self
3758
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#123
3759
- sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Location) }
3760
- def from_json(json); end
3761
-
3762
- # source://sorbet-runtime/0.5.11414/lib/types/struct.rb#13
3763
- def inherited(s); end
3741
+ # source://spoom//lib/spoom/model/model.rb#187
3742
+ class Spoom::Model::Visibility < ::T::Enum
3743
+ enums do
3744
+ Private = new
3745
+ Protected = new
3746
+ Public = new
3764
3747
  end
3765
3748
  end
3766
3749
 
3767
- # A general message as defined by JSON-RPC.
3750
+ # source://spoom//lib/spoom/parse.rb#7
3751
+ class Spoom::ParseError < ::Spoom::Error; end
3752
+
3753
+ # A Poset is a set of elements with a partial order relation.
3768
3754
  #
3769
- # The language server protocol always uses `"2.0"` as the `jsonrpc` version.
3755
+ # The partial order relation is a binary relation that is reflexive, antisymmetric, and transitive.
3756
+ # It can be used to represent a hierarchy of classes or modules, the dependencies between gems, etc.
3770
3757
  #
3771
- # source://spoom//lib/spoom/sorbet/lsp/base.rb#12
3772
- class Spoom::LSP::Message
3773
- # source://spoom//lib/spoom/sorbet/lsp/base.rb#16
3758
+ # source://spoom//lib/spoom/poset.rb#9
3759
+ class Spoom::Poset
3760
+ extend T::Generic
3761
+
3762
+ E = type_member { { upper: Object } }
3763
+
3764
+ # source://spoom//lib/spoom/poset.rb#18
3774
3765
  sig { void }
3775
3766
  def initialize; end
3776
3767
 
3777
- # source://spoom//lib/spoom/sorbet/lsp/base.rb#21
3778
- sig { returns(T::Hash[T.untyped, T.untyped]) }
3779
- def as_json; end
3768
+ # Get the POSet element for a given value
3769
+ #
3770
+ # Raises if the element is not found
3771
+ #
3772
+ # @raise [Error]
3773
+ #
3774
+ # source://spoom//lib/spoom/poset.rb#26
3775
+ sig { params(value: E).returns(Spoom::Poset::Element[E]) }
3776
+ def [](value); end
3780
3777
 
3781
- # source://spoom//lib/spoom/sorbet/lsp/base.rb#29
3782
- sig { params(args: T.untyped).returns(::String) }
3783
- def to_json(*args); end
3784
- end
3778
+ # Add a direct edge from one element to another
3779
+ #
3780
+ # Transitive edges (transitive closure) are automatically computed.
3781
+ # Adds the elements if they don't exist.
3782
+ # If the direct edge already exists, nothing is done.
3783
+ #
3784
+ # source://spoom//lib/spoom/poset.rb#54
3785
+ sig { params(from: E, to: E).void }
3786
+ def add_direct_edge(from, to); end
3785
3787
 
3786
- # A notification message.
3787
- #
3788
- # A processed notification message must not send a response back. They work like events.
3789
- #
3790
- # source://spoom//lib/spoom/sorbet/lsp/base.rb#58
3791
- class Spoom::LSP::Notification < ::Spoom::LSP::Message
3792
- # source://spoom//lib/spoom/sorbet/lsp/base.rb#68
3793
- sig { params(method: ::String, params: T::Hash[T.untyped, T.untyped]).void }
3794
- def initialize(method, params); end
3788
+ # Add an element to the POSet
3789
+ #
3790
+ # source://spoom//lib/spoom/poset.rb#35
3791
+ sig { params(value: E).returns(Spoom::Poset::Element[E]) }
3792
+ def add_element(value); end
3795
3793
 
3796
- # source://spoom//lib/spoom/sorbet/lsp/base.rb#62
3797
- sig { returns(::String) }
3798
- def method; end
3794
+ # Is there a direct edge from `from` to `to`?
3795
+ #
3796
+ # source://spoom//lib/spoom/poset.rb#101
3797
+ sig { params(from: E, to: E).returns(T::Boolean) }
3798
+ def direct_edge?(from, to); end
3799
3799
 
3800
- # source://spoom//lib/spoom/sorbet/lsp/base.rb#65
3801
- sig { returns(T::Hash[T.untyped, T.untyped]) }
3802
- def params; end
3803
- end
3800
+ # Is there an edge (direct or indirect) from `from` to `to`?
3801
+ #
3802
+ # source://spoom//lib/spoom/poset.rb#92
3803
+ sig { params(from: E, to: E).returns(T::Boolean) }
3804
+ def edge?(from, to); end
3804
3805
 
3805
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#50
3806
- class Spoom::LSP::Position < ::T::Struct
3807
- include ::Spoom::LSP::PrintableSymbol
3806
+ # Is the given value a element in the POSet?
3807
+ #
3808
+ # source://spoom//lib/spoom/poset.rb#44
3809
+ sig { params(value: E).returns(T::Boolean) }
3810
+ def element?(value); end
3808
3811
 
3809
- const :line, ::Integer
3810
- const :char, ::Integer
3812
+ # Show the POSet as a DOT graph using xdot (used for debugging)
3813
+ #
3814
+ # source://spoom//lib/spoom/poset.rb#107
3815
+ sig { params(direct: T::Boolean, transitive: T::Boolean).void }
3816
+ def show_dot(direct: T.unsafe(nil), transitive: T.unsafe(nil)); end
3811
3817
 
3812
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#70
3813
- sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
3814
- def accept_printer(printer); end
3818
+ # Return the POSet as a DOT graph
3819
+ #
3820
+ # source://spoom//lib/spoom/poset.rb#116
3821
+ sig { params(direct: T::Boolean, transitive: T::Boolean).returns(::String) }
3822
+ def to_dot(direct: T.unsafe(nil), transitive: T.unsafe(nil)); end
3823
+ end
3815
3824
 
3816
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#75
3817
- sig { returns(::String) }
3818
- def to_s; end
3825
+ # An element in a POSet
3826
+ #
3827
+ # source://spoom//lib/spoom/poset.rb#136
3828
+ class Spoom::Poset::Element
3829
+ extend T::Generic
3830
+ include ::Comparable
3819
3831
 
3820
- class << self
3821
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#61
3822
- sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Position) }
3823
- def from_json(json); end
3832
+ E = type_member { { upper: Object } }
3824
3833
 
3825
- # source://sorbet-runtime/0.5.11414/lib/types/struct.rb#13
3826
- def inherited(s); end
3827
- end
3828
- end
3834
+ # source://spoom//lib/spoom/poset.rb#152
3835
+ sig { params(value: E).void }
3836
+ def initialize(value); end
3829
3837
 
3830
- # @abstract Subclasses must implement the `abstract` methods below.
3831
- #
3832
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#9
3833
- module Spoom::LSP::PrintableSymbol
3834
- interface!
3838
+ # source://spoom//lib/spoom/poset.rb#161
3839
+ sig { params(other: T.untyped).returns(T.nilable(::Integer)) }
3840
+ def <=>(other); end
3835
3841
 
3836
- # @abstract
3842
+ # Direct and indirect ancestors of this element
3837
3843
  #
3838
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#16
3839
- sig { abstract.params(printer: ::Spoom::LSP::SymbolPrinter).void }
3840
- def accept_printer(printer); end
3841
- end
3842
-
3843
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#80
3844
- class Spoom::LSP::Range < ::T::Struct
3845
- include ::Spoom::LSP::PrintableSymbol
3846
-
3847
- const :start, ::Spoom::LSP::Position
3848
- const :end, ::Spoom::LSP::Position
3849
-
3850
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#100
3851
- sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
3852
- def accept_printer(printer); end
3853
-
3854
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#107
3855
- sig { returns(::String) }
3856
- def to_s; end
3857
-
3858
- class << self
3859
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#91
3860
- sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Range) }
3861
- def from_json(json); end
3862
-
3863
- # source://sorbet-runtime/0.5.11414/lib/types/struct.rb#13
3864
- def inherited(s); end
3865
- end
3866
- end
3867
-
3868
- # A request message to describe a request between the client and the server.
3869
- #
3870
- # Every processed request must send a response back to the sender of the request.
3871
- #
3872
- # source://spoom//lib/spoom/sorbet/lsp/base.rb#37
3873
- class Spoom::LSP::Request < ::Spoom::LSP::Message
3874
- # source://spoom//lib/spoom/sorbet/lsp/base.rb#47
3875
- sig { params(id: ::Integer, method: ::String, params: T::Hash[T.untyped, T.untyped]).void }
3876
- def initialize(id, method, params); end
3877
-
3878
- # source://spoom//lib/spoom/sorbet/lsp/base.rb#41
3879
- sig { returns(::Integer) }
3880
- def id; end
3881
-
3882
- # source://spoom//lib/spoom/sorbet/lsp/base.rb#44
3883
- sig { returns(T::Hash[T.untyped, T.untyped]) }
3884
- def params; end
3885
- end
3886
-
3887
- # source://spoom//lib/spoom/sorbet/lsp/errors.rb#40
3888
- class Spoom::LSP::ResponseError < ::Spoom::LSP::Error
3889
- # source://spoom//lib/spoom/sorbet/lsp/errors.rb#63
3890
- sig { params(code: ::Integer, message: ::String, data: T::Hash[T.untyped, T.untyped]).void }
3891
- def initialize(code, message, data); end
3892
-
3893
- # source://spoom//lib/spoom/sorbet/lsp/errors.rb#44
3894
- sig { returns(::Integer) }
3895
- def code; end
3896
-
3897
- # source://spoom//lib/spoom/sorbet/lsp/errors.rb#47
3898
- sig { returns(T::Hash[T.untyped, T.untyped]) }
3899
- def data; end
3900
-
3901
- class << self
3902
- # source://spoom//lib/spoom/sorbet/lsp/errors.rb#53
3903
- sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::ResponseError) }
3904
- def from_json(json); end
3905
- end
3906
- end
3907
-
3908
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#143
3909
- class Spoom::LSP::SignatureHelp < ::T::Struct
3910
- include ::Spoom::LSP::PrintableSymbol
3911
-
3912
- const :label, T.nilable(::String)
3913
- const :doc, ::Object
3914
- const :params, T::Array[T.untyped]
3915
-
3916
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#165
3917
- sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
3918
- def accept_printer(printer); end
3919
-
3920
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#173
3921
- sig { returns(::String) }
3922
- def to_s; end
3923
-
3924
- class << self
3925
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#155
3926
- sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::SignatureHelp) }
3927
- def from_json(json); end
3928
-
3929
- # source://sorbet-runtime/0.5.11414/lib/types/struct.rb#13
3930
- def inherited(s); end
3931
- end
3932
- end
3844
+ # source://spoom//lib/spoom/poset.rb#180
3845
+ sig { returns(T::Array[E]) }
3846
+ def ancestors; end
3933
3847
 
3934
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#309
3935
- class Spoom::LSP::SymbolPrinter < ::Spoom::Printer
3936
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#326
3937
- sig do
3938
- params(
3939
- out: T.any(::IO, ::StringIO),
3940
- colors: T::Boolean,
3941
- indent_level: ::Integer,
3942
- prefix: T.nilable(::String)
3943
- ).void
3944
- end
3945
- def initialize(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil), prefix: T.unsafe(nil)); end
3848
+ # Direct children of this element
3849
+ #
3850
+ # source://spoom//lib/spoom/poset.rb#186
3851
+ sig { returns(T::Array[E]) }
3852
+ def children; end
3946
3853
 
3947
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#348
3948
- sig { params(uri: ::String).returns(::String) }
3949
- def clean_uri(uri); end
3854
+ # Direct and indirect descendants of this element
3855
+ #
3856
+ # source://spoom//lib/spoom/poset.rb#192
3857
+ sig { returns(T::Array[E]) }
3858
+ def descendants; end
3950
3859
 
3951
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#316
3952
- sig { returns(T.nilable(::String)) }
3953
- def prefix; end
3860
+ # Edges (direct and indirect) from this element to other elements in the same POSet
3861
+ #
3862
+ # @return [Set<Element[E]>]
3863
+ #
3864
+ # source://spoom//lib/spoom/poset.rb#149
3865
+ def dfroms; end
3954
3866
 
3955
- # @return [String, nil]
3867
+ # Edges (direct and indirect) from this element to other elements in the same POSet
3956
3868
  #
3957
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#316
3958
- def prefix=(_arg0); end
3869
+ # source://spoom//lib/spoom/poset.rb#149
3870
+ sig { returns(T::Set[Spoom::Poset::Element[E]]) }
3871
+ def dtos; end
3959
3872
 
3960
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#356
3961
- sig { params(objects: T::Array[::Spoom::LSP::PrintableSymbol]).void }
3962
- def print_list(objects); end
3873
+ # Edges (direct and indirect) from this element to other elements in the same POSet
3874
+ #
3875
+ # @return [Set<Element[E]>]
3876
+ #
3877
+ # source://spoom//lib/spoom/poset.rb#149
3878
+ def froms; end
3963
3879
 
3964
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#336
3965
- sig { params(object: T.nilable(::Spoom::LSP::PrintableSymbol)).void }
3966
- def print_object(object); end
3880
+ # Direct parents of this element
3881
+ #
3882
+ # source://spoom//lib/spoom/poset.rb#174
3883
+ sig { returns(T::Array[E]) }
3884
+ def parents; end
3967
3885
 
3968
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#343
3969
- sig { params(objects: T::Array[::Spoom::LSP::PrintableSymbol]).void }
3970
- def print_objects(objects); end
3886
+ # Edges (direct and indirect) from this element to other elements in the same POSet
3887
+ #
3888
+ # @return [Set<Element[E]>]
3889
+ #
3890
+ # source://spoom//lib/spoom/poset.rb#149
3891
+ def tos; end
3971
3892
 
3972
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#313
3973
- sig { returns(T::Set[::Integer]) }
3974
- def seen; end
3893
+ # The value held by this element
3894
+ #
3895
+ # source://spoom//lib/spoom/poset.rb#145
3896
+ sig { returns(E) }
3897
+ def value; end
3975
3898
  end
3976
3899
 
3900
+ # source://spoom//lib/spoom/poset.rb#13
3901
+ class Spoom::Poset::Error < ::Spoom::Error; end
3902
+
3977
3903
  # source://spoom//lib/spoom/printer.rb#7
3978
3904
  class Spoom::Printer
3979
3905
  include ::Spoom::Colorize
@@ -4161,7 +4087,7 @@ end
4161
4087
  Spoom::Sorbet::Config::DEFAULT_ALLOWED_EXTENSIONS = T.let(T.unsafe(nil), Array)
4162
4088
 
4163
4089
  # source://spoom//lib/spoom/sorbet.rb#14
4164
- class Spoom::Sorbet::Error < ::StandardError
4090
+ class Spoom::Sorbet::Error < ::Spoom::Error
4165
4091
  # source://spoom//lib/spoom/sorbet.rb#29
4166
4092
  sig { params(message: ::String, result: ::Spoom::ExecResult).void }
4167
4093
  def initialize(message, result); end
@@ -4189,233 +4115,912 @@ end
4189
4115
  # source://spoom//lib/spoom/sorbet/errors.rb#7
4190
4116
  Spoom::Sorbet::Errors::DEFAULT_ERROR_URL_BASE = T.let(T.unsafe(nil), String)
4191
4117
 
4192
- # source://spoom//lib/spoom/sorbet/errors.rb#125
4118
+ # source://spoom//lib/spoom/sorbet/errors.rb#127
4193
4119
  class Spoom::Sorbet::Errors::Error
4194
4120
  include ::Comparable
4195
4121
 
4196
- # source://spoom//lib/spoom/sorbet/errors.rb#151
4197
- sig do
4198
- params(
4199
- file: T.nilable(::String),
4200
- line: T.nilable(::Integer),
4201
- message: T.nilable(::String),
4202
- code: T.nilable(::Integer),
4203
- more: T::Array[::String]
4204
- ).void
4205
- end
4206
- def initialize(file, line, message, code, more = T.unsafe(nil)); end
4122
+ # source://spoom//lib/spoom/sorbet/errors.rb#153
4123
+ sig do
4124
+ params(
4125
+ file: T.nilable(::String),
4126
+ line: T.nilable(::Integer),
4127
+ message: T.nilable(::String),
4128
+ code: T.nilable(::Integer),
4129
+ more: T::Array[::String]
4130
+ ).void
4131
+ end
4132
+ def initialize(file, line, message, code, more = T.unsafe(nil)); end
4133
+
4134
+ # By default errors are sorted by location
4135
+ #
4136
+ # source://spoom//lib/spoom/sorbet/errors.rb#164
4137
+ sig { params(other: T.untyped).returns(::Integer) }
4138
+ def <=>(other); end
4139
+
4140
+ # @return [Integer, nil]
4141
+ #
4142
+ # source://spoom//lib/spoom/sorbet/errors.rb#135
4143
+ def code; end
4144
+
4145
+ # source://spoom//lib/spoom/sorbet/errors.rb#132
4146
+ sig { returns(T.nilable(::String)) }
4147
+ def file; end
4148
+
4149
+ # Other files associated with the error
4150
+ #
4151
+ # source://spoom//lib/spoom/sorbet/errors.rb#142
4152
+ sig { returns(T::Set[::String]) }
4153
+ def files_from_error_sections; end
4154
+
4155
+ # source://spoom//lib/spoom/sorbet/errors.rb#135
4156
+ sig { returns(T.nilable(::Integer)) }
4157
+ def line; end
4158
+
4159
+ # @return [String, nil]
4160
+ #
4161
+ # source://spoom//lib/spoom/sorbet/errors.rb#132
4162
+ def message; end
4163
+
4164
+ # source://spoom//lib/spoom/sorbet/errors.rb#138
4165
+ sig { returns(T::Array[::String]) }
4166
+ def more; end
4167
+
4168
+ # source://spoom//lib/spoom/sorbet/errors.rb#171
4169
+ sig { returns(::String) }
4170
+ def to_s; end
4171
+ end
4172
+
4173
+ # Parse errors from Sorbet output
4174
+ #
4175
+ # source://spoom//lib/spoom/sorbet/errors.rb#18
4176
+ class Spoom::Sorbet::Errors::Parser
4177
+ # source://spoom//lib/spoom/sorbet/errors.rb#45
4178
+ sig { params(error_url_base: ::String).void }
4179
+ def initialize(error_url_base: T.unsafe(nil)); end
4180
+
4181
+ # source://spoom//lib/spoom/sorbet/errors.rb#52
4182
+ sig { params(output: ::String).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
4183
+ def parse(output); end
4184
+
4185
+ private
4186
+
4187
+ # @raise [ParseError]
4188
+ #
4189
+ # source://spoom//lib/spoom/sorbet/errors.rb#116
4190
+ sig { params(line: ::String).void }
4191
+ def append_error(line); end
4192
+
4193
+ # @raise [ParseError]
4194
+ #
4195
+ # source://spoom//lib/spoom/sorbet/errors.rb#108
4196
+ sig { void }
4197
+ def close_error; end
4198
+
4199
+ # source://spoom//lib/spoom/sorbet/errors.rb#75
4200
+ sig { params(error_url_base: ::String).returns(::Regexp) }
4201
+ def error_line_match_regexp(error_url_base); end
4202
+
4203
+ # source://spoom//lib/spoom/sorbet/errors.rb#92
4204
+ sig { params(line: ::String).returns(T.nilable(::Spoom::Sorbet::Errors::Error)) }
4205
+ def match_error_line(line); end
4206
+
4207
+ # @raise [ParseError]
4208
+ #
4209
+ # source://spoom//lib/spoom/sorbet/errors.rb#101
4210
+ sig { params(error: ::Spoom::Sorbet::Errors::Error).void }
4211
+ def open_error(error); end
4212
+
4213
+ class << self
4214
+ # source://spoom//lib/spoom/sorbet/errors.rb#38
4215
+ sig { params(output: ::String, error_url_base: ::String).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
4216
+ def parse_string(output, error_url_base: T.unsafe(nil)); end
4217
+ end
4218
+ end
4219
+
4220
+ # source://spoom//lib/spoom/sorbet/errors.rb#23
4221
+ Spoom::Sorbet::Errors::Parser::HEADER = T.let(T.unsafe(nil), Array)
4222
+
4223
+ # source://spoom//lib/spoom/sorbet/errors.rb#21
4224
+ class Spoom::Sorbet::Errors::Parser::ParseError < ::Spoom::Error; end
4225
+
4226
+ # source://spoom//lib/spoom/sorbet.rb#37
4227
+ Spoom::Sorbet::GEM_PATH = T.let(T.unsafe(nil), String)
4228
+
4229
+ # source://spoom//lib/spoom/sorbet.rb#38
4230
+ Spoom::Sorbet::GEM_VERSION = T.let(T.unsafe(nil), String)
4231
+
4232
+ # source://spoom//lib/spoom/sorbet.rb#41
4233
+ Spoom::Sorbet::KILLED_CODE = T.let(T.unsafe(nil), Integer)
4234
+
4235
+ # source://spoom//lib/spoom/sorbet/metrics.rb#8
4236
+ module Spoom::Sorbet::MetricsParser
4237
+ class << self
4238
+ # source://spoom//lib/spoom/sorbet/metrics.rb#15
4239
+ sig { params(path: ::String, prefix: ::String).returns(T::Hash[::String, ::Integer]) }
4240
+ def parse_file(path, prefix = T.unsafe(nil)); end
4241
+
4242
+ # source://spoom//lib/spoom/sorbet/metrics.rb#25
4243
+ sig { params(obj: T::Hash[::String, T.untyped], prefix: ::String).returns(T::Hash[::String, ::Integer]) }
4244
+ def parse_hash(obj, prefix = T.unsafe(nil)); end
4245
+
4246
+ # source://spoom//lib/spoom/sorbet/metrics.rb#20
4247
+ sig { params(string: ::String, prefix: ::String).returns(T::Hash[::String, ::Integer]) }
4248
+ def parse_string(string, prefix = T.unsafe(nil)); end
4249
+ end
4250
+ end
4251
+
4252
+ # source://spoom//lib/spoom/sorbet/metrics.rb#9
4253
+ Spoom::Sorbet::MetricsParser::DEFAULT_PREFIX = T.let(T.unsafe(nil), String)
4254
+
4255
+ # source://spoom//lib/spoom/sorbet.rb#42
4256
+ Spoom::Sorbet::SEGFAULT_CODE = T.let(T.unsafe(nil), Integer)
4257
+
4258
+ # source://spoom//lib/spoom/sorbet/sigils.rb#9
4259
+ module Spoom::Sorbet::Sigils
4260
+ class << self
4261
+ # changes the sigil in the file at the passed path to the specified new strictness
4262
+ #
4263
+ # source://spoom//lib/spoom/sorbet/sigils.rb#72
4264
+ sig { params(path: T.any(::Pathname, ::String), new_strictness: ::String).returns(T::Boolean) }
4265
+ def change_sigil_in_file(path, new_strictness); end
4266
+
4267
+ # changes the sigil to have a new strictness in a list of files
4268
+ #
4269
+ # source://spoom//lib/spoom/sorbet/sigils.rb#83
4270
+ sig { params(path_list: T::Array[::String], new_strictness: ::String).returns(T::Array[::String]) }
4271
+ def change_sigil_in_files(path_list, new_strictness); end
4272
+
4273
+ # returns a string containing the strictness of a sigil in a file at the passed path
4274
+ # * returns nil if no sigil
4275
+ #
4276
+ # source://spoom//lib/spoom/sorbet/sigils.rb#63
4277
+ sig { params(path: T.any(::Pathname, ::String)).returns(T.nilable(::String)) }
4278
+ def file_strictness(path); end
4279
+
4280
+ # returns the full sigil comment string for the passed strictness
4281
+ #
4282
+ # source://spoom//lib/spoom/sorbet/sigils.rb#38
4283
+ sig { params(strictness: ::String).returns(::String) }
4284
+ def sigil_string(strictness); end
4285
+
4286
+ # returns the strictness of a sigil in the passed file content string (nil if no sigil)
4287
+ #
4288
+ # source://spoom//lib/spoom/sorbet/sigils.rb#50
4289
+ sig { params(content: ::String).returns(T.nilable(::String)) }
4290
+ def strictness_in_content(content); end
4291
+
4292
+ # returns a string which is the passed content but with the sigil updated to a new strictness
4293
+ #
4294
+ # source://spoom//lib/spoom/sorbet/sigils.rb#56
4295
+ sig { params(content: ::String, new_strictness: ::String).returns(::String) }
4296
+ def update_sigil(content, new_strictness); end
4297
+
4298
+ # returns true if the passed string is a valid strictness (else false)
4299
+ #
4300
+ # source://spoom//lib/spoom/sorbet/sigils.rb#44
4301
+ sig { params(strictness: ::String).returns(T::Boolean) }
4302
+ def valid_strictness?(strictness); end
4303
+ end
4304
+ end
4305
+
4306
+ # source://spoom//lib/spoom/sorbet/sigils.rb#31
4307
+ Spoom::Sorbet::Sigils::SIGIL_REGEXP = T.let(T.unsafe(nil), Regexp)
4308
+
4309
+ # source://spoom//lib/spoom/sorbet/sigils.rb#13
4310
+ Spoom::Sorbet::Sigils::STRICTNESS_FALSE = T.let(T.unsafe(nil), String)
4311
+
4312
+ # source://spoom//lib/spoom/sorbet/sigils.rb#12
4313
+ Spoom::Sorbet::Sigils::STRICTNESS_IGNORE = T.let(T.unsafe(nil), String)
4314
+
4315
+ # source://spoom//lib/spoom/sorbet/sigils.rb#17
4316
+ Spoom::Sorbet::Sigils::STRICTNESS_INTERNAL = T.let(T.unsafe(nil), String)
4317
+
4318
+ # source://spoom//lib/spoom/sorbet/sigils.rb#15
4319
+ Spoom::Sorbet::Sigils::STRICTNESS_STRICT = T.let(T.unsafe(nil), String)
4320
+
4321
+ # source://spoom//lib/spoom/sorbet/sigils.rb#16
4322
+ Spoom::Sorbet::Sigils::STRICTNESS_STRONG = T.let(T.unsafe(nil), String)
4323
+
4324
+ # source://spoom//lib/spoom/sorbet/sigils.rb#14
4325
+ Spoom::Sorbet::Sigils::STRICTNESS_TRUE = T.let(T.unsafe(nil), String)
4326
+
4327
+ # source://spoom//lib/spoom/sorbet/sigils.rb#19
4328
+ Spoom::Sorbet::Sigils::VALID_STRICTNESS = T.let(T.unsafe(nil), Array)
4329
+
4330
+ # source://spoom//lib/spoom/sorbet/sigs.rb#8
4331
+ class Spoom::Sorbet::Sigs
4332
+ class << self
4333
+ # source://spoom//lib/spoom/sorbet/sigs.rb#25
4334
+ sig { params(ruby_contents: ::String).returns(::String) }
4335
+ def rbi_to_rbs(ruby_contents); end
4336
+
4337
+ # source://spoom//lib/spoom/sorbet/sigs.rb#13
4338
+ sig { params(ruby_contents: ::String).returns(::String) }
4339
+ def strip(ruby_contents); end
4340
+
4341
+ private
4342
+
4343
+ # source://spoom//lib/spoom/sorbet/sigs.rb#48
4344
+ sig { params(ruby_contents: ::String).returns(T::Array[[::RBI::Sig, T.any(::RBI::Attr, ::RBI::Method)]]) }
4345
+ def collect_sigs(ruby_contents); end
4346
+ end
4347
+ end
4348
+
4349
+ # From https://github.com/Shopify/ruby-lsp/blob/9154bfc6ef/lib/ruby_lsp/document.rb#L127
4350
+ #
4351
+ # source://spoom//lib/spoom/sorbet/sigs.rb#145
4352
+ class Spoom::Sorbet::Sigs::Scanner
4353
+ # source://spoom//lib/spoom/sorbet/sigs.rb#151
4354
+ sig { params(source: ::String).void }
4355
+ def initialize(source); end
4356
+
4357
+ # Finds the character index inside the source string for a given line and column
4358
+ #
4359
+ # source://spoom//lib/spoom/sorbet/sigs.rb#159
4360
+ sig { params(line: ::Integer, character: ::Integer).returns(::Integer) }
4361
+ def find_char_position(line, character); end
4362
+ end
4363
+
4364
+ # source://spoom//lib/spoom/sorbet/sigs.rb#148
4365
+ Spoom::Sorbet::Sigs::Scanner::LINE_BREAK = T.let(T.unsafe(nil), Integer)
4366
+
4367
+ # source://spoom//lib/spoom/sorbet/sigs.rb#83
4368
+ class Spoom::Sorbet::Sigs::SigTranslator
4369
+ class << self
4370
+ # source://spoom//lib/spoom/sorbet/sigs.rb#88
4371
+ sig { params(sig: ::RBI::Sig, node: T.any(::RBI::Attr, ::RBI::Method)).returns(::String) }
4372
+ def translate(sig, node); end
4373
+
4374
+ private
4375
+
4376
+ # source://spoom//lib/spoom/sorbet/sigs.rb#135
4377
+ sig { params(sig: ::RBI::Sig, node: ::RBI::Attr).returns(::String) }
4378
+ def translate_attr_sig(sig, node); end
4379
+
4380
+ # source://spoom//lib/spoom/sorbet/sigs.rb#100
4381
+ sig { params(sig: ::RBI::Sig, node: ::RBI::Method).returns(::String) }
4382
+ def translate_method_sig(sig, node); end
4383
+ end
4384
+ end
4385
+
4386
+ # source://spoom//lib/spoom/sorbet/sigs.rb#56
4387
+ class Spoom::Sorbet::Sigs::SigsLocator < ::RBI::Visitor
4388
+ # source://spoom//lib/spoom/sorbet/sigs.rb#63
4389
+ sig { void }
4390
+ def initialize; end
4391
+
4392
+ # source://spoom//lib/spoom/sorbet/sigs.rb#60
4393
+ sig { returns(T::Array[[::RBI::Sig, T.any(::RBI::Attr, ::RBI::Method)]]) }
4394
+ def sigs; end
4395
+
4396
+ # source://spoom//lib/spoom/sorbet/sigs.rb#69
4397
+ sig { override.params(node: T.nilable(::RBI::Node)).void }
4398
+ def visit(node); end
4399
+ end
4400
+
4401
+ # source://spoom//lib/spoom/timeline.rb#5
4402
+ class Spoom::Timeline
4403
+ # source://spoom//lib/spoom/timeline.rb#9
4404
+ sig { params(context: ::Spoom::Context, from: ::Time, to: ::Time).void }
4405
+ def initialize(context, from, to); end
4406
+
4407
+ # Return one commit for each date in `dates`
4408
+ #
4409
+ # source://spoom//lib/spoom/timeline.rb#36
4410
+ sig { params(dates: T::Array[::Time]).returns(T::Array[::Spoom::Git::Commit]) }
4411
+ def commits_for_dates(dates); end
4412
+
4413
+ # Return all months between `from` and `to`
4414
+ #
4415
+ # source://spoom//lib/spoom/timeline.rb#23
4416
+ sig { returns(T::Array[::Time]) }
4417
+ def months; end
4418
+
4419
+ # Return one commit for each month between `from` and `to`
4420
+ #
4421
+ # source://spoom//lib/spoom/timeline.rb#17
4422
+ sig { returns(T::Array[::Spoom::Git::Commit]) }
4423
+ def ticks; end
4424
+ end
4425
+
4426
+ # source://spoom//lib/spoom/version.rb#5
4427
+ Spoom::VERSION = T.let(T.unsafe(nil), String)
4428
+
4429
+ # source://spoom//lib/spoom/visitor.rb#7
4430
+ class Spoom::Visitor < ::Prism::Visitor
4431
+ # source://spoom//lib/spoom/visitor.rb#16
4432
+ sig { override.params(node: ::Prism::AliasGlobalVariableNode).void }
4433
+ def visit_alias_global_variable_node(node); end
4434
+
4435
+ # source://spoom//lib/spoom/visitor.rb#21
4436
+ sig { override.params(node: ::Prism::AliasMethodNode).void }
4437
+ def visit_alias_method_node(node); end
4438
+
4439
+ # source://spoom//lib/spoom/visitor.rb#26
4440
+ sig { override.params(node: ::Prism::AlternationPatternNode).void }
4441
+ def visit_alternation_pattern_node(node); end
4442
+
4443
+ # source://spoom//lib/spoom/visitor.rb#31
4444
+ sig { override.params(node: ::Prism::AndNode).void }
4445
+ def visit_and_node(node); end
4446
+
4447
+ # source://spoom//lib/spoom/visitor.rb#36
4448
+ sig { override.params(node: ::Prism::ArgumentsNode).void }
4449
+ def visit_arguments_node(node); end
4450
+
4451
+ # source://spoom//lib/spoom/visitor.rb#41
4452
+ sig { override.params(node: ::Prism::ArrayNode).void }
4453
+ def visit_array_node(node); end
4454
+
4455
+ # source://spoom//lib/spoom/visitor.rb#46
4456
+ sig { override.params(node: ::Prism::ArrayPatternNode).void }
4457
+ def visit_array_pattern_node(node); end
4458
+
4459
+ # source://spoom//lib/spoom/visitor.rb#51
4460
+ sig { override.params(node: ::Prism::AssocNode).void }
4461
+ def visit_assoc_node(node); end
4462
+
4463
+ # source://spoom//lib/spoom/visitor.rb#56
4464
+ sig { override.params(node: ::Prism::AssocSplatNode).void }
4465
+ def visit_assoc_splat_node(node); end
4466
+
4467
+ # source://spoom//lib/spoom/visitor.rb#61
4468
+ sig { override.params(node: ::Prism::BackReferenceReadNode).void }
4469
+ def visit_back_reference_read_node(node); end
4470
+
4471
+ # source://spoom//lib/spoom/visitor.rb#66
4472
+ sig { override.params(node: ::Prism::BeginNode).void }
4473
+ def visit_begin_node(node); end
4474
+
4475
+ # source://spoom//lib/spoom/visitor.rb#71
4476
+ sig { override.params(node: ::Prism::BlockArgumentNode).void }
4477
+ def visit_block_argument_node(node); end
4478
+
4479
+ # source://spoom//lib/spoom/visitor.rb#76
4480
+ sig { override.params(node: ::Prism::BlockLocalVariableNode).void }
4481
+ def visit_block_local_variable_node(node); end
4482
+
4483
+ # source://spoom//lib/spoom/visitor.rb#81
4484
+ sig { override.params(node: ::Prism::BlockNode).void }
4485
+ def visit_block_node(node); end
4486
+
4487
+ # source://spoom//lib/spoom/visitor.rb#86
4488
+ sig { override.params(node: ::Prism::BlockParameterNode).void }
4489
+ def visit_block_parameter_node(node); end
4490
+
4491
+ # source://spoom//lib/spoom/visitor.rb#91
4492
+ sig { override.params(node: ::Prism::BlockParametersNode).void }
4493
+ def visit_block_parameters_node(node); end
4494
+
4495
+ # source://spoom//lib/spoom/visitor.rb#96
4496
+ sig { override.params(node: ::Prism::BreakNode).void }
4497
+ def visit_break_node(node); end
4498
+
4499
+ # source://spoom//lib/spoom/visitor.rb#101
4500
+ sig { override.params(node: ::Prism::CallAndWriteNode).void }
4501
+ def visit_call_and_write_node(node); end
4502
+
4503
+ # source://spoom//lib/spoom/visitor.rb#106
4504
+ sig { override.params(node: ::Prism::CallNode).void }
4505
+ def visit_call_node(node); end
4506
+
4507
+ # source://spoom//lib/spoom/visitor.rb#111
4508
+ sig { override.params(node: ::Prism::CallOperatorWriteNode).void }
4509
+ def visit_call_operator_write_node(node); end
4510
+
4511
+ # source://spoom//lib/spoom/visitor.rb#116
4512
+ sig { override.params(node: ::Prism::CallOrWriteNode).void }
4513
+ def visit_call_or_write_node(node); end
4514
+
4515
+ # source://spoom//lib/spoom/visitor.rb#121
4516
+ sig { override.params(node: ::Prism::CallTargetNode).void }
4517
+ def visit_call_target_node(node); end
4518
+
4519
+ # source://spoom//lib/spoom/visitor.rb#126
4520
+ sig { override.params(node: ::Prism::CapturePatternNode).void }
4521
+ def visit_capture_pattern_node(node); end
4522
+
4523
+ # source://spoom//lib/spoom/visitor.rb#131
4524
+ sig { override.params(node: ::Prism::CaseMatchNode).void }
4525
+ def visit_case_match_node(node); end
4526
+
4527
+ # source://spoom//lib/spoom/visitor.rb#136
4528
+ sig { override.params(node: ::Prism::CaseNode).void }
4529
+ def visit_case_node(node); end
4530
+
4531
+ # source://spoom//lib/spoom/visitor.rb#11
4532
+ sig { override.params(node: ::Prism::Node).void }
4533
+ def visit_child_nodes(node); end
4534
+
4535
+ # source://spoom//lib/spoom/visitor.rb#141
4536
+ sig { override.params(node: ::Prism::ClassNode).void }
4537
+ def visit_class_node(node); end
4538
+
4539
+ # source://spoom//lib/spoom/visitor.rb#146
4540
+ sig { override.params(node: ::Prism::ClassVariableAndWriteNode).void }
4541
+ def visit_class_variable_and_write_node(node); end
4542
+
4543
+ # source://spoom//lib/spoom/visitor.rb#151
4544
+ sig { override.params(node: ::Prism::ClassVariableOperatorWriteNode).void }
4545
+ def visit_class_variable_operator_write_node(node); end
4546
+
4547
+ # source://spoom//lib/spoom/visitor.rb#156
4548
+ sig { override.params(node: ::Prism::ClassVariableOrWriteNode).void }
4549
+ def visit_class_variable_or_write_node(node); end
4550
+
4551
+ # source://spoom//lib/spoom/visitor.rb#161
4552
+ sig { override.params(node: ::Prism::ClassVariableReadNode).void }
4553
+ def visit_class_variable_read_node(node); end
4554
+
4555
+ # source://spoom//lib/spoom/visitor.rb#166
4556
+ sig { override.params(node: ::Prism::ClassVariableTargetNode).void }
4557
+ def visit_class_variable_target_node(node); end
4558
+
4559
+ # source://spoom//lib/spoom/visitor.rb#171
4560
+ sig { override.params(node: ::Prism::ClassVariableWriteNode).void }
4561
+ def visit_class_variable_write_node(node); end
4562
+
4563
+ # source://spoom//lib/spoom/visitor.rb#176
4564
+ sig { override.params(node: ::Prism::ConstantAndWriteNode).void }
4565
+ def visit_constant_and_write_node(node); end
4566
+
4567
+ # source://spoom//lib/spoom/visitor.rb#181
4568
+ sig { override.params(node: ::Prism::ConstantOperatorWriteNode).void }
4569
+ def visit_constant_operator_write_node(node); end
4570
+
4571
+ # source://spoom//lib/spoom/visitor.rb#186
4572
+ sig { override.params(node: ::Prism::ConstantOrWriteNode).void }
4573
+ def visit_constant_or_write_node(node); end
4574
+
4575
+ # source://spoom//lib/spoom/visitor.rb#191
4576
+ sig { override.params(node: ::Prism::ConstantPathAndWriteNode).void }
4577
+ def visit_constant_path_and_write_node(node); end
4578
+
4579
+ # source://spoom//lib/spoom/visitor.rb#196
4580
+ sig { override.params(node: ::Prism::ConstantPathNode).void }
4581
+ def visit_constant_path_node(node); end
4582
+
4583
+ # source://spoom//lib/spoom/visitor.rb#201
4584
+ sig { override.params(node: ::Prism::ConstantPathOperatorWriteNode).void }
4585
+ def visit_constant_path_operator_write_node(node); end
4586
+
4587
+ # source://spoom//lib/spoom/visitor.rb#206
4588
+ sig { override.params(node: ::Prism::ConstantPathOrWriteNode).void }
4589
+ def visit_constant_path_or_write_node(node); end
4590
+
4591
+ # source://spoom//lib/spoom/visitor.rb#211
4592
+ sig { override.params(node: ::Prism::ConstantPathTargetNode).void }
4593
+ def visit_constant_path_target_node(node); end
4594
+
4595
+ # source://spoom//lib/spoom/visitor.rb#216
4596
+ sig { override.params(node: ::Prism::ConstantPathWriteNode).void }
4597
+ def visit_constant_path_write_node(node); end
4598
+
4599
+ # source://spoom//lib/spoom/visitor.rb#221
4600
+ sig { override.params(node: ::Prism::ConstantReadNode).void }
4601
+ def visit_constant_read_node(node); end
4602
+
4603
+ # source://spoom//lib/spoom/visitor.rb#226
4604
+ sig { override.params(node: ::Prism::ConstantTargetNode).void }
4605
+ def visit_constant_target_node(node); end
4606
+
4607
+ # source://spoom//lib/spoom/visitor.rb#231
4608
+ sig { override.params(node: ::Prism::ConstantWriteNode).void }
4609
+ def visit_constant_write_node(node); end
4610
+
4611
+ # source://spoom//lib/spoom/visitor.rb#236
4612
+ sig { override.params(node: ::Prism::DefNode).void }
4613
+ def visit_def_node(node); end
4614
+
4615
+ # source://spoom//lib/spoom/visitor.rb#241
4616
+ sig { override.params(node: ::Prism::DefinedNode).void }
4617
+ def visit_defined_node(node); end
4618
+
4619
+ # source://spoom//lib/spoom/visitor.rb#246
4620
+ sig { override.params(node: ::Prism::ElseNode).void }
4621
+ def visit_else_node(node); end
4622
+
4623
+ # source://spoom//lib/spoom/visitor.rb#251
4624
+ sig { override.params(node: ::Prism::EmbeddedStatementsNode).void }
4625
+ def visit_embedded_statements_node(node); end
4626
+
4627
+ # source://spoom//lib/spoom/visitor.rb#256
4628
+ sig { override.params(node: ::Prism::EmbeddedVariableNode).void }
4629
+ def visit_embedded_variable_node(node); end
4630
+
4631
+ # source://spoom//lib/spoom/visitor.rb#261
4632
+ sig { override.params(node: ::Prism::EnsureNode).void }
4633
+ def visit_ensure_node(node); end
4634
+
4635
+ # source://spoom//lib/spoom/visitor.rb#266
4636
+ sig { override.params(node: ::Prism::FalseNode).void }
4637
+ def visit_false_node(node); end
4638
+
4639
+ # source://spoom//lib/spoom/visitor.rb#271
4640
+ sig { override.params(node: ::Prism::FindPatternNode).void }
4641
+ def visit_find_pattern_node(node); end
4642
+
4643
+ # source://spoom//lib/spoom/visitor.rb#276
4644
+ sig { override.params(node: ::Prism::FlipFlopNode).void }
4645
+ def visit_flip_flop_node(node); end
4646
+
4647
+ # source://spoom//lib/spoom/visitor.rb#281
4648
+ sig { override.params(node: ::Prism::FloatNode).void }
4649
+ def visit_float_node(node); end
4650
+
4651
+ # source://spoom//lib/spoom/visitor.rb#286
4652
+ sig { override.params(node: ::Prism::ForNode).void }
4653
+ def visit_for_node(node); end
4654
+
4655
+ # source://spoom//lib/spoom/visitor.rb#291
4656
+ sig { override.params(node: ::Prism::ForwardingArgumentsNode).void }
4657
+ def visit_forwarding_arguments_node(node); end
4658
+
4659
+ # source://spoom//lib/spoom/visitor.rb#296
4660
+ sig { override.params(node: ::Prism::ForwardingParameterNode).void }
4661
+ def visit_forwarding_parameter_node(node); end
4662
+
4663
+ # source://spoom//lib/spoom/visitor.rb#301
4664
+ sig { override.params(node: ::Prism::ForwardingSuperNode).void }
4665
+ def visit_forwarding_super_node(node); end
4666
+
4667
+ # source://spoom//lib/spoom/visitor.rb#306
4668
+ sig { override.params(node: ::Prism::GlobalVariableAndWriteNode).void }
4669
+ def visit_global_variable_and_write_node(node); end
4670
+
4671
+ # source://spoom//lib/spoom/visitor.rb#311
4672
+ sig { override.params(node: ::Prism::GlobalVariableOperatorWriteNode).void }
4673
+ def visit_global_variable_operator_write_node(node); end
4674
+
4675
+ # source://spoom//lib/spoom/visitor.rb#316
4676
+ sig { override.params(node: ::Prism::GlobalVariableOrWriteNode).void }
4677
+ def visit_global_variable_or_write_node(node); end
4678
+
4679
+ # source://spoom//lib/spoom/visitor.rb#321
4680
+ sig { override.params(node: ::Prism::GlobalVariableReadNode).void }
4681
+ def visit_global_variable_read_node(node); end
4682
+
4683
+ # source://spoom//lib/spoom/visitor.rb#326
4684
+ sig { override.params(node: ::Prism::GlobalVariableTargetNode).void }
4685
+ def visit_global_variable_target_node(node); end
4686
+
4687
+ # source://spoom//lib/spoom/visitor.rb#331
4688
+ sig { override.params(node: ::Prism::GlobalVariableWriteNode).void }
4689
+ def visit_global_variable_write_node(node); end
4690
+
4691
+ # source://spoom//lib/spoom/visitor.rb#336
4692
+ sig { override.params(node: ::Prism::HashNode).void }
4693
+ def visit_hash_node(node); end
4694
+
4695
+ # source://spoom//lib/spoom/visitor.rb#341
4696
+ sig { override.params(node: ::Prism::HashPatternNode).void }
4697
+ def visit_hash_pattern_node(node); end
4698
+
4699
+ # source://spoom//lib/spoom/visitor.rb#346
4700
+ sig { override.params(node: ::Prism::IfNode).void }
4701
+ def visit_if_node(node); end
4702
+
4703
+ # source://spoom//lib/spoom/visitor.rb#351
4704
+ sig { override.params(node: ::Prism::ImaginaryNode).void }
4705
+ def visit_imaginary_node(node); end
4706
+
4707
+ # source://spoom//lib/spoom/visitor.rb#356
4708
+ sig { override.params(node: ::Prism::ImplicitNode).void }
4709
+ def visit_implicit_node(node); end
4710
+
4711
+ # source://spoom//lib/spoom/visitor.rb#361
4712
+ sig { override.params(node: ::Prism::ImplicitRestNode).void }
4713
+ def visit_implicit_rest_node(node); end
4714
+
4715
+ # source://spoom//lib/spoom/visitor.rb#366
4716
+ sig { override.params(node: ::Prism::InNode).void }
4717
+ def visit_in_node(node); end
4718
+
4719
+ # source://spoom//lib/spoom/visitor.rb#371
4720
+ sig { override.params(node: ::Prism::IndexAndWriteNode).void }
4721
+ def visit_index_and_write_node(node); end
4722
+
4723
+ # source://spoom//lib/spoom/visitor.rb#376
4724
+ sig { override.params(node: ::Prism::IndexOperatorWriteNode).void }
4725
+ def visit_index_operator_write_node(node); end
4726
+
4727
+ # source://spoom//lib/spoom/visitor.rb#381
4728
+ sig { override.params(node: ::Prism::IndexOrWriteNode).void }
4729
+ def visit_index_or_write_node(node); end
4730
+
4731
+ # source://spoom//lib/spoom/visitor.rb#386
4732
+ sig { override.params(node: ::Prism::IndexTargetNode).void }
4733
+ def visit_index_target_node(node); end
4734
+
4735
+ # source://spoom//lib/spoom/visitor.rb#391
4736
+ sig { override.params(node: ::Prism::InstanceVariableAndWriteNode).void }
4737
+ def visit_instance_variable_and_write_node(node); end
4738
+
4739
+ # source://spoom//lib/spoom/visitor.rb#396
4740
+ sig { override.params(node: ::Prism::InstanceVariableOperatorWriteNode).void }
4741
+ def visit_instance_variable_operator_write_node(node); end
4742
+
4743
+ # source://spoom//lib/spoom/visitor.rb#401
4744
+ sig { override.params(node: ::Prism::InstanceVariableOrWriteNode).void }
4745
+ def visit_instance_variable_or_write_node(node); end
4746
+
4747
+ # source://spoom//lib/spoom/visitor.rb#406
4748
+ sig { override.params(node: ::Prism::InstanceVariableReadNode).void }
4749
+ def visit_instance_variable_read_node(node); end
4750
+
4751
+ # source://spoom//lib/spoom/visitor.rb#411
4752
+ sig { override.params(node: ::Prism::InstanceVariableTargetNode).void }
4753
+ def visit_instance_variable_target_node(node); end
4754
+
4755
+ # source://spoom//lib/spoom/visitor.rb#416
4756
+ sig { override.params(node: ::Prism::InstanceVariableWriteNode).void }
4757
+ def visit_instance_variable_write_node(node); end
4758
+
4759
+ # source://spoom//lib/spoom/visitor.rb#421
4760
+ sig { override.params(node: ::Prism::IntegerNode).void }
4761
+ def visit_integer_node(node); end
4762
+
4763
+ # source://spoom//lib/spoom/visitor.rb#426
4764
+ sig { override.params(node: ::Prism::InterpolatedMatchLastLineNode).void }
4765
+ def visit_interpolated_match_last_line_node(node); end
4766
+
4767
+ # source://spoom//lib/spoom/visitor.rb#431
4768
+ sig { override.params(node: ::Prism::InterpolatedRegularExpressionNode).void }
4769
+ def visit_interpolated_regular_expression_node(node); end
4770
+
4771
+ # source://spoom//lib/spoom/visitor.rb#436
4772
+ sig { override.params(node: ::Prism::InterpolatedStringNode).void }
4773
+ def visit_interpolated_string_node(node); end
4774
+
4775
+ # source://spoom//lib/spoom/visitor.rb#441
4776
+ sig { override.params(node: ::Prism::InterpolatedSymbolNode).void }
4777
+ def visit_interpolated_symbol_node(node); end
4778
+
4779
+ # source://spoom//lib/spoom/visitor.rb#446
4780
+ sig { override.params(node: ::Prism::InterpolatedXStringNode).void }
4781
+ def visit_interpolated_x_string_node(node); end
4782
+
4783
+ # source://spoom//lib/spoom/visitor.rb#451
4784
+ sig { override.params(node: ::Prism::KeywordHashNode).void }
4785
+ def visit_keyword_hash_node(node); end
4786
+
4787
+ # source://spoom//lib/spoom/visitor.rb#456
4788
+ sig { override.params(node: ::Prism::KeywordRestParameterNode).void }
4789
+ def visit_keyword_rest_parameter_node(node); end
4790
+
4791
+ # source://spoom//lib/spoom/visitor.rb#461
4792
+ sig { override.params(node: ::Prism::LambdaNode).void }
4793
+ def visit_lambda_node(node); end
4794
+
4795
+ # source://spoom//lib/spoom/visitor.rb#466
4796
+ sig { override.params(node: ::Prism::LocalVariableAndWriteNode).void }
4797
+ def visit_local_variable_and_write_node(node); end
4798
+
4799
+ # source://spoom//lib/spoom/visitor.rb#471
4800
+ sig { override.params(node: ::Prism::LocalVariableOperatorWriteNode).void }
4801
+ def visit_local_variable_operator_write_node(node); end
4802
+
4803
+ # source://spoom//lib/spoom/visitor.rb#476
4804
+ sig { override.params(node: ::Prism::LocalVariableOrWriteNode).void }
4805
+ def visit_local_variable_or_write_node(node); end
4806
+
4807
+ # source://spoom//lib/spoom/visitor.rb#481
4808
+ sig { override.params(node: ::Prism::LocalVariableReadNode).void }
4809
+ def visit_local_variable_read_node(node); end
4810
+
4811
+ # source://spoom//lib/spoom/visitor.rb#486
4812
+ sig { override.params(node: ::Prism::LocalVariableTargetNode).void }
4813
+ def visit_local_variable_target_node(node); end
4814
+
4815
+ # source://spoom//lib/spoom/visitor.rb#491
4816
+ sig { override.params(node: ::Prism::LocalVariableWriteNode).void }
4817
+ def visit_local_variable_write_node(node); end
4818
+
4819
+ # source://spoom//lib/spoom/visitor.rb#496
4820
+ sig { override.params(node: ::Prism::MatchLastLineNode).void }
4821
+ def visit_match_last_line_node(node); end
4822
+
4823
+ # source://spoom//lib/spoom/visitor.rb#501
4824
+ sig { override.params(node: ::Prism::MatchPredicateNode).void }
4825
+ def visit_match_predicate_node(node); end
4826
+
4827
+ # source://spoom//lib/spoom/visitor.rb#506
4828
+ sig { override.params(node: ::Prism::MatchRequiredNode).void }
4829
+ def visit_match_required_node(node); end
4830
+
4831
+ # source://spoom//lib/spoom/visitor.rb#511
4832
+ sig { override.params(node: ::Prism::MatchWriteNode).void }
4833
+ def visit_match_write_node(node); end
4834
+
4835
+ # source://spoom//lib/spoom/visitor.rb#516
4836
+ sig { override.params(node: ::Prism::MissingNode).void }
4837
+ def visit_missing_node(node); end
4838
+
4839
+ # source://spoom//lib/spoom/visitor.rb#521
4840
+ sig { override.params(node: ::Prism::ModuleNode).void }
4841
+ def visit_module_node(node); end
4842
+
4843
+ # source://spoom//lib/spoom/visitor.rb#526
4844
+ sig { override.params(node: ::Prism::MultiTargetNode).void }
4845
+ def visit_multi_target_node(node); end
4207
4846
 
4208
- # By default errors are sorted by location
4209
- #
4210
- # source://spoom//lib/spoom/sorbet/errors.rb#162
4211
- sig { params(other: T.untyped).returns(::Integer) }
4212
- def <=>(other); end
4847
+ # source://spoom//lib/spoom/visitor.rb#531
4848
+ sig { override.params(node: ::Prism::MultiWriteNode).void }
4849
+ def visit_multi_write_node(node); end
4213
4850
 
4214
- # @return [Integer, nil]
4215
- #
4216
- # source://spoom//lib/spoom/sorbet/errors.rb#133
4217
- def code; end
4851
+ # source://spoom//lib/spoom/visitor.rb#536
4852
+ sig { override.params(node: ::Prism::NextNode).void }
4853
+ def visit_next_node(node); end
4218
4854
 
4219
- # source://spoom//lib/spoom/sorbet/errors.rb#130
4220
- sig { returns(T.nilable(::String)) }
4221
- def file; end
4855
+ # source://spoom//lib/spoom/visitor.rb#541
4856
+ sig { override.params(node: ::Prism::NilNode).void }
4857
+ def visit_nil_node(node); end
4222
4858
 
4223
- # Other files associated with the error
4224
- #
4225
- # source://spoom//lib/spoom/sorbet/errors.rb#140
4226
- sig { returns(T::Set[::String]) }
4227
- def files_from_error_sections; end
4859
+ # source://spoom//lib/spoom/visitor.rb#546
4860
+ sig { override.params(node: ::Prism::NoKeywordsParameterNode).void }
4861
+ def visit_no_keywords_parameter_node(node); end
4228
4862
 
4229
- # source://spoom//lib/spoom/sorbet/errors.rb#133
4230
- sig { returns(T.nilable(::Integer)) }
4231
- def line; end
4863
+ # source://spoom//lib/spoom/visitor.rb#551
4864
+ sig { override.params(node: ::Prism::NumberedParametersNode).void }
4865
+ def visit_numbered_parameters_node(node); end
4232
4866
 
4233
- # @return [String, nil]
4234
- #
4235
- # source://spoom//lib/spoom/sorbet/errors.rb#130
4236
- def message; end
4867
+ # source://spoom//lib/spoom/visitor.rb#556
4868
+ sig { override.params(node: ::Prism::NumberedReferenceReadNode).void }
4869
+ def visit_numbered_reference_read_node(node); end
4237
4870
 
4238
- # source://spoom//lib/spoom/sorbet/errors.rb#136
4239
- sig { returns(T::Array[::String]) }
4240
- def more; end
4871
+ # source://spoom//lib/spoom/visitor.rb#561
4872
+ sig { override.params(node: ::Prism::OptionalKeywordParameterNode).void }
4873
+ def visit_optional_keyword_parameter_node(node); end
4241
4874
 
4242
- # source://spoom//lib/spoom/sorbet/errors.rb#169
4243
- sig { returns(::String) }
4244
- def to_s; end
4245
- end
4875
+ # source://spoom//lib/spoom/visitor.rb#566
4876
+ sig { override.params(node: ::Prism::OptionalParameterNode).void }
4877
+ def visit_optional_parameter_node(node); end
4246
4878
 
4247
- # Parse errors from Sorbet output
4248
- #
4249
- # source://spoom//lib/spoom/sorbet/errors.rb#18
4250
- class Spoom::Sorbet::Errors::Parser
4251
- # source://spoom//lib/spoom/sorbet/errors.rb#43
4252
- sig { params(error_url_base: ::String).void }
4253
- def initialize(error_url_base: T.unsafe(nil)); end
4879
+ # source://spoom//lib/spoom/visitor.rb#571
4880
+ sig { override.params(node: ::Prism::OrNode).void }
4881
+ def visit_or_node(node); end
4254
4882
 
4255
- # source://spoom//lib/spoom/sorbet/errors.rb#50
4256
- sig { params(output: ::String).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
4257
- def parse(output); end
4883
+ # source://spoom//lib/spoom/visitor.rb#576
4884
+ sig { override.params(node: ::Prism::ParametersNode).void }
4885
+ def visit_parameters_node(node); end
4258
4886
 
4259
- private
4887
+ # source://spoom//lib/spoom/visitor.rb#581
4888
+ sig { override.params(node: ::Prism::ParenthesesNode).void }
4889
+ def visit_parentheses_node(node); end
4260
4890
 
4261
- # source://spoom//lib/spoom/sorbet/errors.rb#114
4262
- sig { params(line: ::String).void }
4263
- def append_error(line); end
4891
+ # source://spoom//lib/spoom/visitor.rb#586
4892
+ sig { override.params(node: ::Prism::PinnedExpressionNode).void }
4893
+ def visit_pinned_expression_node(node); end
4264
4894
 
4265
- # source://spoom//lib/spoom/sorbet/errors.rb#106
4266
- sig { void }
4267
- def close_error; end
4895
+ # source://spoom//lib/spoom/visitor.rb#591
4896
+ sig { override.params(node: ::Prism::PinnedVariableNode).void }
4897
+ def visit_pinned_variable_node(node); end
4268
4898
 
4269
- # source://spoom//lib/spoom/sorbet/errors.rb#73
4270
- sig { params(error_url_base: ::String).returns(::Regexp) }
4271
- def error_line_match_regexp(error_url_base); end
4899
+ # source://spoom//lib/spoom/visitor.rb#596
4900
+ sig { override.params(node: ::Prism::PostExecutionNode).void }
4901
+ def visit_post_execution_node(node); end
4272
4902
 
4273
- # source://spoom//lib/spoom/sorbet/errors.rb#90
4274
- sig { params(line: ::String).returns(T.nilable(::Spoom::Sorbet::Errors::Error)) }
4275
- def match_error_line(line); end
4903
+ # source://spoom//lib/spoom/visitor.rb#601
4904
+ sig { override.params(node: ::Prism::PreExecutionNode).void }
4905
+ def visit_pre_execution_node(node); end
4276
4906
 
4277
- # source://spoom//lib/spoom/sorbet/errors.rb#99
4278
- sig { params(error: ::Spoom::Sorbet::Errors::Error).void }
4279
- def open_error(error); end
4907
+ # source://spoom//lib/spoom/visitor.rb#606
4908
+ sig { override.params(node: ::Prism::ProgramNode).void }
4909
+ def visit_program_node(node); end
4280
4910
 
4281
- class << self
4282
- # source://spoom//lib/spoom/sorbet/errors.rb#36
4283
- sig { params(output: ::String, error_url_base: ::String).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
4284
- def parse_string(output, error_url_base: T.unsafe(nil)); end
4285
- end
4286
- end
4911
+ # source://spoom//lib/spoom/visitor.rb#611
4912
+ sig { override.params(node: ::Prism::RangeNode).void }
4913
+ def visit_range_node(node); end
4287
4914
 
4288
- # source://spoom//lib/spoom/sorbet/errors.rb#21
4289
- Spoom::Sorbet::Errors::Parser::HEADER = T.let(T.unsafe(nil), Array)
4915
+ # source://spoom//lib/spoom/visitor.rb#616
4916
+ sig { override.params(node: ::Prism::RationalNode).void }
4917
+ def visit_rational_node(node); end
4290
4918
 
4291
- # source://spoom//lib/spoom/sorbet.rb#37
4292
- Spoom::Sorbet::GEM_PATH = T.let(T.unsafe(nil), String)
4919
+ # source://spoom//lib/spoom/visitor.rb#621
4920
+ sig { override.params(node: ::Prism::RedoNode).void }
4921
+ def visit_redo_node(node); end
4293
4922
 
4294
- # source://spoom//lib/spoom/sorbet.rb#38
4295
- Spoom::Sorbet::GEM_VERSION = T.let(T.unsafe(nil), String)
4923
+ # source://spoom//lib/spoom/visitor.rb#626
4924
+ sig { override.params(node: ::Prism::RegularExpressionNode).void }
4925
+ def visit_regular_expression_node(node); end
4296
4926
 
4297
- # source://spoom//lib/spoom/sorbet.rb#41
4298
- Spoom::Sorbet::KILLED_CODE = T.let(T.unsafe(nil), Integer)
4927
+ # source://spoom//lib/spoom/visitor.rb#631
4928
+ sig { override.params(node: ::Prism::RequiredKeywordParameterNode).void }
4929
+ def visit_required_keyword_parameter_node(node); end
4299
4930
 
4300
- # source://spoom//lib/spoom/sorbet/metrics.rb#8
4301
- module Spoom::Sorbet::MetricsParser
4302
- class << self
4303
- # source://spoom//lib/spoom/sorbet/metrics.rb#15
4304
- sig { params(path: ::String, prefix: ::String).returns(T::Hash[::String, ::Integer]) }
4305
- def parse_file(path, prefix = T.unsafe(nil)); end
4931
+ # source://spoom//lib/spoom/visitor.rb#636
4932
+ sig { override.params(node: ::Prism::RequiredParameterNode).void }
4933
+ def visit_required_parameter_node(node); end
4306
4934
 
4307
- # source://spoom//lib/spoom/sorbet/metrics.rb#25
4308
- sig { params(obj: T::Hash[::String, T.untyped], prefix: ::String).returns(T::Hash[::String, ::Integer]) }
4309
- def parse_hash(obj, prefix = T.unsafe(nil)); end
4935
+ # source://spoom//lib/spoom/visitor.rb#641
4936
+ sig { override.params(node: ::Prism::RescueModifierNode).void }
4937
+ def visit_rescue_modifier_node(node); end
4310
4938
 
4311
- # source://spoom//lib/spoom/sorbet/metrics.rb#20
4312
- sig { params(string: ::String, prefix: ::String).returns(T::Hash[::String, ::Integer]) }
4313
- def parse_string(string, prefix = T.unsafe(nil)); end
4314
- end
4315
- end
4939
+ # source://spoom//lib/spoom/visitor.rb#646
4940
+ sig { override.params(node: ::Prism::RescueNode).void }
4941
+ def visit_rescue_node(node); end
4316
4942
 
4317
- # source://spoom//lib/spoom/sorbet/metrics.rb#9
4318
- Spoom::Sorbet::MetricsParser::DEFAULT_PREFIX = T.let(T.unsafe(nil), String)
4943
+ # source://spoom//lib/spoom/visitor.rb#651
4944
+ sig { override.params(node: ::Prism::RestParameterNode).void }
4945
+ def visit_rest_parameter_node(node); end
4319
4946
 
4320
- # source://spoom//lib/spoom/sorbet.rb#42
4321
- Spoom::Sorbet::SEGFAULT_CODE = T.let(T.unsafe(nil), Integer)
4947
+ # source://spoom//lib/spoom/visitor.rb#656
4948
+ sig { override.params(node: ::Prism::RetryNode).void }
4949
+ def visit_retry_node(node); end
4322
4950
 
4323
- # source://spoom//lib/spoom/sorbet/sigils.rb#9
4324
- module Spoom::Sorbet::Sigils
4325
- class << self
4326
- # changes the sigil in the file at the passed path to the specified new strictness
4327
- #
4328
- # source://spoom//lib/spoom/sorbet/sigils.rb#72
4329
- sig { params(path: T.any(::Pathname, ::String), new_strictness: ::String).returns(T::Boolean) }
4330
- def change_sigil_in_file(path, new_strictness); end
4951
+ # source://spoom//lib/spoom/visitor.rb#661
4952
+ sig { override.params(node: ::Prism::ReturnNode).void }
4953
+ def visit_return_node(node); end
4331
4954
 
4332
- # changes the sigil to have a new strictness in a list of files
4333
- #
4334
- # source://spoom//lib/spoom/sorbet/sigils.rb#83
4335
- sig { params(path_list: T::Array[::String], new_strictness: ::String).returns(T::Array[::String]) }
4336
- def change_sigil_in_files(path_list, new_strictness); end
4955
+ # source://spoom//lib/spoom/visitor.rb#666
4956
+ sig { override.params(node: ::Prism::SelfNode).void }
4957
+ def visit_self_node(node); end
4337
4958
 
4338
- # returns a string containing the strictness of a sigil in a file at the passed path
4339
- # * returns nil if no sigil
4340
- #
4341
- # source://spoom//lib/spoom/sorbet/sigils.rb#63
4342
- sig { params(path: T.any(::Pathname, ::String)).returns(T.nilable(::String)) }
4343
- def file_strictness(path); end
4959
+ # source://spoom//lib/spoom/visitor.rb#671
4960
+ sig { override.params(node: ::Prism::SingletonClassNode).void }
4961
+ def visit_singleton_class_node(node); end
4344
4962
 
4345
- # returns the full sigil comment string for the passed strictness
4346
- #
4347
- # source://spoom//lib/spoom/sorbet/sigils.rb#38
4348
- sig { params(strictness: ::String).returns(::String) }
4349
- def sigil_string(strictness); end
4963
+ # source://spoom//lib/spoom/visitor.rb#676
4964
+ sig { override.params(node: ::Prism::SourceEncodingNode).void }
4965
+ def visit_source_encoding_node(node); end
4350
4966
 
4351
- # returns the strictness of a sigil in the passed file content string (nil if no sigil)
4352
- #
4353
- # source://spoom//lib/spoom/sorbet/sigils.rb#50
4354
- sig { params(content: ::String).returns(T.nilable(::String)) }
4355
- def strictness_in_content(content); end
4967
+ # source://spoom//lib/spoom/visitor.rb#681
4968
+ sig { override.params(node: ::Prism::SourceFileNode).void }
4969
+ def visit_source_file_node(node); end
4356
4970
 
4357
- # returns a string which is the passed content but with the sigil updated to a new strictness
4358
- #
4359
- # source://spoom//lib/spoom/sorbet/sigils.rb#56
4360
- sig { params(content: ::String, new_strictness: ::String).returns(::String) }
4361
- def update_sigil(content, new_strictness); end
4971
+ # source://spoom//lib/spoom/visitor.rb#686
4972
+ sig { override.params(node: ::Prism::SourceLineNode).void }
4973
+ def visit_source_line_node(node); end
4362
4974
 
4363
- # returns true if the passed string is a valid strictness (else false)
4364
- #
4365
- # source://spoom//lib/spoom/sorbet/sigils.rb#44
4366
- sig { params(strictness: ::String).returns(T::Boolean) }
4367
- def valid_strictness?(strictness); end
4368
- end
4369
- end
4975
+ # source://spoom//lib/spoom/visitor.rb#691
4976
+ sig { override.params(node: ::Prism::SplatNode).void }
4977
+ def visit_splat_node(node); end
4370
4978
 
4371
- # source://spoom//lib/spoom/sorbet/sigils.rb#31
4372
- Spoom::Sorbet::Sigils::SIGIL_REGEXP = T.let(T.unsafe(nil), Regexp)
4979
+ # source://spoom//lib/spoom/visitor.rb#696
4980
+ sig { override.params(node: ::Prism::StatementsNode).void }
4981
+ def visit_statements_node(node); end
4373
4982
 
4374
- # source://spoom//lib/spoom/sorbet/sigils.rb#13
4375
- Spoom::Sorbet::Sigils::STRICTNESS_FALSE = T.let(T.unsafe(nil), String)
4983
+ # source://spoom//lib/spoom/visitor.rb#701
4984
+ sig { override.params(node: ::Prism::StringNode).void }
4985
+ def visit_string_node(node); end
4376
4986
 
4377
- # source://spoom//lib/spoom/sorbet/sigils.rb#12
4378
- Spoom::Sorbet::Sigils::STRICTNESS_IGNORE = T.let(T.unsafe(nil), String)
4987
+ # source://spoom//lib/spoom/visitor.rb#706
4988
+ sig { override.params(node: ::Prism::SuperNode).void }
4989
+ def visit_super_node(node); end
4379
4990
 
4380
- # source://spoom//lib/spoom/sorbet/sigils.rb#17
4381
- Spoom::Sorbet::Sigils::STRICTNESS_INTERNAL = T.let(T.unsafe(nil), String)
4991
+ # source://spoom//lib/spoom/visitor.rb#711
4992
+ sig { override.params(node: ::Prism::SymbolNode).void }
4993
+ def visit_symbol_node(node); end
4382
4994
 
4383
- # source://spoom//lib/spoom/sorbet/sigils.rb#15
4384
- Spoom::Sorbet::Sigils::STRICTNESS_STRICT = T.let(T.unsafe(nil), String)
4995
+ # source://spoom//lib/spoom/visitor.rb#716
4996
+ sig { override.params(node: ::Prism::TrueNode).void }
4997
+ def visit_true_node(node); end
4385
4998
 
4386
- # source://spoom//lib/spoom/sorbet/sigils.rb#16
4387
- Spoom::Sorbet::Sigils::STRICTNESS_STRONG = T.let(T.unsafe(nil), String)
4999
+ # source://spoom//lib/spoom/visitor.rb#721
5000
+ sig { override.params(node: ::Prism::UndefNode).void }
5001
+ def visit_undef_node(node); end
4388
5002
 
4389
- # source://spoom//lib/spoom/sorbet/sigils.rb#14
4390
- Spoom::Sorbet::Sigils::STRICTNESS_TRUE = T.let(T.unsafe(nil), String)
5003
+ # source://spoom//lib/spoom/visitor.rb#726
5004
+ sig { override.params(node: ::Prism::UnlessNode).void }
5005
+ def visit_unless_node(node); end
4391
5006
 
4392
- # source://spoom//lib/spoom/sorbet/sigils.rb#19
4393
- Spoom::Sorbet::Sigils::VALID_STRICTNESS = T.let(T.unsafe(nil), Array)
5007
+ # source://spoom//lib/spoom/visitor.rb#731
5008
+ sig { override.params(node: ::Prism::UntilNode).void }
5009
+ def visit_until_node(node); end
4394
5010
 
4395
- # source://spoom//lib/spoom/timeline.rb#5
4396
- class Spoom::Timeline
4397
- # source://spoom//lib/spoom/timeline.rb#9
4398
- sig { params(context: ::Spoom::Context, from: ::Time, to: ::Time).void }
4399
- def initialize(context, from, to); end
5011
+ # source://spoom//lib/spoom/visitor.rb#736
5012
+ sig { override.params(node: ::Prism::WhenNode).void }
5013
+ def visit_when_node(node); end
4400
5014
 
4401
- # Return one commit for each date in `dates`
4402
- #
4403
- # source://spoom//lib/spoom/timeline.rb#36
4404
- sig { params(dates: T::Array[::Time]).returns(T::Array[::Spoom::Git::Commit]) }
4405
- def commits_for_dates(dates); end
5015
+ # source://spoom//lib/spoom/visitor.rb#741
5016
+ sig { override.params(node: ::Prism::WhileNode).void }
5017
+ def visit_while_node(node); end
4406
5018
 
4407
- # Return all months between `from` and `to`
4408
- #
4409
- # source://spoom//lib/spoom/timeline.rb#23
4410
- sig { returns(T::Array[::Time]) }
4411
- def months; end
5019
+ # source://spoom//lib/spoom/visitor.rb#746
5020
+ sig { override.params(node: ::Prism::XStringNode).void }
5021
+ def visit_x_string_node(node); end
4412
5022
 
4413
- # Return one commit for each month between `from` and `to`
4414
- #
4415
- # source://spoom//lib/spoom/timeline.rb#17
4416
- sig { returns(T::Array[::Spoom::Git::Commit]) }
4417
- def ticks; end
5023
+ # source://spoom//lib/spoom/visitor.rb#751
5024
+ sig { override.params(node: ::Prism::YieldNode).void }
5025
+ def visit_yield_node(node); end
4418
5026
  end
4419
-
4420
- # source://spoom//lib/spoom/version.rb#5
4421
- Spoom::VERSION = T.let(T.unsafe(nil), String)