solargraph 0.54.0 → 0.55.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +58 -0
  3. data/lib/solargraph/api_map/cache.rb +10 -1
  4. data/lib/solargraph/api_map/index.rb +167 -0
  5. data/lib/solargraph/api_map/store.rb +75 -122
  6. data/lib/solargraph/api_map.rb +109 -41
  7. data/lib/solargraph/bench.rb +17 -1
  8. data/lib/solargraph/complex_type/type_methods.rb +17 -11
  9. data/lib/solargraph/complex_type/unique_type.rb +181 -17
  10. data/lib/solargraph/complex_type.rb +103 -24
  11. data/lib/solargraph/convention/struct_definition/struct_assignment_node.rb +51 -0
  12. data/lib/solargraph/convention/struct_definition/struct_definition_node.rb +100 -0
  13. data/lib/solargraph/convention/struct_definition.rb +101 -0
  14. data/lib/solargraph/convention.rb +2 -0
  15. data/lib/solargraph/doc_map.rb +43 -18
  16. data/lib/solargraph/equality.rb +33 -0
  17. data/lib/solargraph/language_server/host/message_worker.rb +51 -5
  18. data/lib/solargraph/language_server/host.rb +13 -11
  19. data/lib/solargraph/language_server/message/base.rb +19 -12
  20. data/lib/solargraph/language_server/message/initialize.rb +3 -1
  21. data/lib/solargraph/language_server/message/text_document/completion.rb +0 -3
  22. data/lib/solargraph/language_server/message/text_document/definition.rb +3 -3
  23. data/lib/solargraph/language_server/message/text_document/document_symbol.rb +3 -3
  24. data/lib/solargraph/language_server/message/text_document/formatting.rb +4 -0
  25. data/lib/solargraph/language_server/message/text_document/hover.rb +1 -1
  26. data/lib/solargraph/language_server/message/text_document/type_definition.rb +3 -3
  27. data/lib/solargraph/language_server/message/workspace/workspace_symbol.rb +2 -2
  28. data/lib/solargraph/language_server/progress.rb +19 -2
  29. data/lib/solargraph/library.rb +31 -41
  30. data/lib/solargraph/location.rb +29 -1
  31. data/lib/solargraph/parser/comment_ripper.rb +11 -6
  32. data/lib/solargraph/parser/flow_sensitive_typing.rb +226 -0
  33. data/lib/solargraph/parser/node_methods.rb +15 -1
  34. data/lib/solargraph/parser/parser_gem/class_methods.rb +11 -6
  35. data/lib/solargraph/parser/parser_gem/node_chainer.rb +10 -10
  36. data/lib/solargraph/parser/parser_gem/node_methods.rb +6 -4
  37. data/lib/solargraph/parser/parser_gem/node_processors/and_node.rb +21 -0
  38. data/lib/solargraph/parser/parser_gem/node_processors/args_node.rb +23 -19
  39. data/lib/solargraph/parser/parser_gem/node_processors/casgn_node.rb +21 -1
  40. data/lib/solargraph/parser/parser_gem/node_processors/if_node.rb +21 -0
  41. data/lib/solargraph/parser/parser_gem/node_processors/masgn_node.rb +8 -2
  42. data/lib/solargraph/parser/parser_gem/node_processors/namespace_node.rb +26 -5
  43. data/lib/solargraph/parser/parser_gem/node_processors/opasgn_node.rb +41 -0
  44. data/lib/solargraph/parser/parser_gem/node_processors/send_node.rb +1 -1
  45. data/lib/solargraph/parser/parser_gem/node_processors/until_node.rb +28 -0
  46. data/lib/solargraph/parser/parser_gem/node_processors/while_node.rb +28 -0
  47. data/lib/solargraph/parser/parser_gem/node_processors.rb +10 -0
  48. data/lib/solargraph/parser.rb +3 -5
  49. data/lib/solargraph/pin/base.rb +47 -17
  50. data/lib/solargraph/pin/base_variable.rb +11 -4
  51. data/lib/solargraph/pin/block.rb +8 -26
  52. data/lib/solargraph/pin/breakable.rb +9 -0
  53. data/lib/solargraph/pin/callable.rb +147 -0
  54. data/lib/solargraph/pin/closure.rb +8 -3
  55. data/lib/solargraph/pin/common.rb +2 -6
  56. data/lib/solargraph/pin/conversions.rb +3 -2
  57. data/lib/solargraph/pin/instance_variable.rb +2 -2
  58. data/lib/solargraph/pin/local_variable.rb +7 -1
  59. data/lib/solargraph/pin/method.rb +76 -48
  60. data/lib/solargraph/pin/namespace.rb +14 -11
  61. data/lib/solargraph/pin/parameter.rb +24 -17
  62. data/lib/solargraph/pin/proxy_type.rb +13 -7
  63. data/lib/solargraph/pin/signature.rb +3 -129
  64. data/lib/solargraph/pin/until.rb +18 -0
  65. data/lib/solargraph/pin/while.rb +18 -0
  66. data/lib/solargraph/pin.rb +7 -1
  67. data/lib/solargraph/position.rb +7 -0
  68. data/lib/solargraph/range.rb +9 -4
  69. data/lib/solargraph/rbs_map/conversions.rb +84 -45
  70. data/lib/solargraph/rbs_map/core_fills.rb +16 -9
  71. data/lib/solargraph/rbs_map.rb +1 -0
  72. data/lib/solargraph/shell.rb +19 -2
  73. data/lib/solargraph/source/chain/array.rb +10 -8
  74. data/lib/solargraph/source/chain/block_symbol.rb +1 -1
  75. data/lib/solargraph/source/chain/block_variable.rb +1 -1
  76. data/lib/solargraph/source/chain/call.rb +125 -61
  77. data/lib/solargraph/source/chain/constant.rb +1 -1
  78. data/lib/solargraph/source/chain/hash.rb +8 -2
  79. data/lib/solargraph/source/chain/if.rb +5 -0
  80. data/lib/solargraph/source/chain/link.rb +28 -5
  81. data/lib/solargraph/source/chain/literal.rb +27 -2
  82. data/lib/solargraph/source/chain/or.rb +1 -1
  83. data/lib/solargraph/source/chain/z_super.rb +1 -1
  84. data/lib/solargraph/source/chain.rb +131 -63
  85. data/lib/solargraph/source/cursor.rb +3 -2
  86. data/lib/solargraph/source/source_chainer.rb +2 -2
  87. data/lib/solargraph/source.rb +104 -86
  88. data/lib/solargraph/source_map/clip.rb +8 -6
  89. data/lib/solargraph/source_map/data.rb +30 -0
  90. data/lib/solargraph/source_map.rb +28 -16
  91. data/lib/solargraph/type_checker/checks.rb +4 -0
  92. data/lib/solargraph/type_checker/rules.rb +6 -1
  93. data/lib/solargraph/type_checker.rb +48 -21
  94. data/lib/solargraph/version.rb +1 -1
  95. data/lib/solargraph/views/environment.erb +3 -5
  96. data/lib/solargraph/workspace/config.rb +7 -3
  97. data/lib/solargraph/workspace.rb +1 -1
  98. data/lib/solargraph/yard_map/mapper/to_constant.rb +1 -0
  99. data/lib/solargraph/yard_map/mapper/to_method.rb +42 -15
  100. data/lib/solargraph/yard_map/mapper/to_namespace.rb +1 -0
  101. data/lib/solargraph/yard_map/mapper.rb +1 -0
  102. data/lib/solargraph/yardoc.rb +1 -1
  103. data/lib/solargraph.rb +1 -0
  104. data/solargraph.gemspec +5 -5
  105. metadata +41 -25
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solargraph
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.54.0
4
+ version: 0.55.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fred Snyder
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-04-14 00:00:00.000000000 Z
11
+ date: 2025-06-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: backport
@@ -28,16 +28,16 @@ dependencies:
28
28
  name: benchmark
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '0.4'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '0.4'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -73,6 +73,9 @@ dependencies:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: '1.6'
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: 1.6.1
76
79
  type: :runtime
77
80
  prerelease: false
78
81
  version_requirements: !ruby/object:Gem::Requirement
@@ -80,6 +83,9 @@ dependencies:
80
83
  - - "~>"
81
84
  - !ruby/object:Gem::Version
82
85
  version: '1.6'
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: 1.6.1
83
89
  - !ruby/object:Gem::Dependency
84
90
  name: kramdown
85
91
  requirement: !ruby/object:Gem::Requirement
@@ -182,22 +188,16 @@ dependencies:
182
188
  name: reverse_markdown
183
189
  requirement: !ruby/object:Gem::Requirement
184
190
  requirements:
185
- - - ">="
186
- - !ruby/object:Gem::Version
187
- version: '2.0'
188
- - - "<"
191
+ - - "~>"
189
192
  - !ruby/object:Gem::Version
190
- version: '4'
193
+ version: '3.0'
191
194
  type: :runtime
192
195
  prerelease: false
193
196
  version_requirements: !ruby/object:Gem::Requirement
194
197
  requirements:
195
- - - ">="
196
- - !ruby/object:Gem::Version
197
- version: '2.0'
198
- - - "<"
198
+ - - "~>"
199
199
  - !ruby/object:Gem::Version
200
- version: '4'
200
+ version: '3.0'
201
201
  - !ruby/object:Gem::Dependency
202
202
  name: rubocop
203
203
  requirement: !ruby/object:Gem::Requirement
@@ -278,16 +278,16 @@ dependencies:
278
278
  name: pry
279
279
  requirement: !ruby/object:Gem::Requirement
280
280
  requirements:
281
- - - ">="
281
+ - - "~>"
282
282
  - !ruby/object:Gem::Version
283
- version: '0'
283
+ version: '0.15'
284
284
  type: :development
285
285
  prerelease: false
286
286
  version_requirements: !ruby/object:Gem::Requirement
287
287
  requirements:
288
- - - ">="
288
+ - - "~>"
289
289
  - !ruby/object:Gem::Version
290
- version: '0'
290
+ version: '0.15'
291
291
  - !ruby/object:Gem::Dependency
292
292
  name: public_suffix
293
293
  requirement: !ruby/object:Gem::Requirement
@@ -362,16 +362,16 @@ dependencies:
362
362
  name: irb
363
363
  requirement: !ruby/object:Gem::Requirement
364
364
  requirements:
365
- - - ">="
365
+ - - "~>"
366
366
  - !ruby/object:Gem::Version
367
- version: '0'
367
+ version: '1.15'
368
368
  type: :development
369
369
  prerelease: false
370
370
  version_requirements: !ruby/object:Gem::Requirement
371
371
  requirements:
372
- - - ">="
372
+ - - "~>"
373
373
  - !ruby/object:Gem::Version
374
- version: '0'
374
+ version: '1.15'
375
375
  description: IDE tools for code completion, inline documentation, and static analysis
376
376
  email: admin@castwide.com
377
377
  executables:
@@ -397,6 +397,7 @@ files:
397
397
  - lib/solargraph.rb
398
398
  - lib/solargraph/api_map.rb
399
399
  - lib/solargraph/api_map/cache.rb
400
+ - lib/solargraph/api_map/index.rb
400
401
  - lib/solargraph/api_map/source_to_yard.rb
401
402
  - lib/solargraph/api_map/store.rb
402
403
  - lib/solargraph/bench.rb
@@ -409,6 +410,9 @@ files:
409
410
  - lib/solargraph/convention/gemfile.rb
410
411
  - lib/solargraph/convention/gemspec.rb
411
412
  - lib/solargraph/convention/rakefile.rb
413
+ - lib/solargraph/convention/struct_definition.rb
414
+ - lib/solargraph/convention/struct_definition/struct_assignment_node.rb
415
+ - lib/solargraph/convention/struct_definition/struct_definition_node.rb
412
416
  - lib/solargraph/converters/dd.rb
413
417
  - lib/solargraph/converters/dl.rb
414
418
  - lib/solargraph/converters/dt.rb
@@ -423,6 +427,7 @@ files:
423
427
  - lib/solargraph/diagnostics/update_errors.rb
424
428
  - lib/solargraph/doc_map.rb
425
429
  - lib/solargraph/environ.rb
430
+ - lib/solargraph/equality.rb
426
431
  - lib/solargraph/gem_pins.rb
427
432
  - lib/solargraph/language_server.rb
428
433
  - lib/solargraph/language_server/completion_item_kinds.rb
@@ -491,6 +496,7 @@ files:
491
496
  - lib/solargraph/page.rb
492
497
  - lib/solargraph/parser.rb
493
498
  - lib/solargraph/parser/comment_ripper.rb
499
+ - lib/solargraph/parser/flow_sensitive_typing.rb
494
500
  - lib/solargraph/parser/node_methods.rb
495
501
  - lib/solargraph/parser/node_processor.rb
496
502
  - lib/solargraph/parser/node_processor/base.rb
@@ -501,6 +507,7 @@ files:
501
507
  - lib/solargraph/parser/parser_gem/node_methods.rb
502
508
  - lib/solargraph/parser/parser_gem/node_processors.rb
503
509
  - lib/solargraph/parser/parser_gem/node_processors/alias_node.rb
510
+ - lib/solargraph/parser/parser_gem/node_processors/and_node.rb
504
511
  - lib/solargraph/parser/parser_gem/node_processors/args_node.rb
505
512
  - lib/solargraph/parser/parser_gem/node_processors/begin_node.rb
506
513
  - lib/solargraph/parser/parser_gem/node_processors/block_node.rb
@@ -509,21 +516,27 @@ files:
509
516
  - lib/solargraph/parser/parser_gem/node_processors/def_node.rb
510
517
  - lib/solargraph/parser/parser_gem/node_processors/defs_node.rb
511
518
  - lib/solargraph/parser/parser_gem/node_processors/gvasgn_node.rb
519
+ - lib/solargraph/parser/parser_gem/node_processors/if_node.rb
512
520
  - lib/solargraph/parser/parser_gem/node_processors/ivasgn_node.rb
513
521
  - lib/solargraph/parser/parser_gem/node_processors/lvasgn_node.rb
514
522
  - lib/solargraph/parser/parser_gem/node_processors/masgn_node.rb
515
523
  - lib/solargraph/parser/parser_gem/node_processors/namespace_node.rb
524
+ - lib/solargraph/parser/parser_gem/node_processors/opasgn_node.rb
516
525
  - lib/solargraph/parser/parser_gem/node_processors/orasgn_node.rb
517
526
  - lib/solargraph/parser/parser_gem/node_processors/resbody_node.rb
518
527
  - lib/solargraph/parser/parser_gem/node_processors/sclass_node.rb
519
528
  - lib/solargraph/parser/parser_gem/node_processors/send_node.rb
520
529
  - lib/solargraph/parser/parser_gem/node_processors/sym_node.rb
530
+ - lib/solargraph/parser/parser_gem/node_processors/until_node.rb
531
+ - lib/solargraph/parser/parser_gem/node_processors/while_node.rb
521
532
  - lib/solargraph/parser/region.rb
522
533
  - lib/solargraph/parser/snippet.rb
523
534
  - lib/solargraph/pin.rb
524
535
  - lib/solargraph/pin/base.rb
525
536
  - lib/solargraph/pin/base_variable.rb
526
537
  - lib/solargraph/pin/block.rb
538
+ - lib/solargraph/pin/breakable.rb
539
+ - lib/solargraph/pin/callable.rb
527
540
  - lib/solargraph/pin/class_variable.rb
528
541
  - lib/solargraph/pin/closure.rb
529
542
  - lib/solargraph/pin/common.rb
@@ -553,6 +566,8 @@ files:
553
566
  - lib/solargraph/pin/signature.rb
554
567
  - lib/solargraph/pin/singleton.rb
555
568
  - lib/solargraph/pin/symbol.rb
569
+ - lib/solargraph/pin/until.rb
570
+ - lib/solargraph/pin/while.rb
556
571
  - lib/solargraph/position.rb
557
572
  - lib/solargraph/range.rb
558
573
  - lib/solargraph/rbs_map.rb
@@ -589,6 +604,7 @@ files:
589
604
  - lib/solargraph/source_map.rb
590
605
  - lib/solargraph/source_map/clip.rb
591
606
  - lib/solargraph/source_map/completion.rb
607
+ - lib/solargraph/source_map/data.rb
592
608
  - lib/solargraph/source_map/mapper.rb
593
609
  - lib/solargraph/type_checker.rb
594
610
  - lib/solargraph/type_checker/checks.rb
@@ -639,7 +655,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
639
655
  - !ruby/object:Gem::Version
640
656
  version: '0'
641
657
  requirements: []
642
- rubygems_version: 3.3.7
658
+ rubygems_version: 3.5.22
643
659
  signing_key:
644
660
  specification_version: 4
645
661
  summary: A Ruby language server