solargraph 0.54.4 → 0.57.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 (178) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/linting.yml +125 -0
  3. data/.github/workflows/plugins.yml +149 -5
  4. data/.github/workflows/rspec.yml +39 -4
  5. data/.github/workflows/typecheck.yml +8 -3
  6. data/.gitignore +7 -0
  7. data/.overcommit.yml +72 -0
  8. data/.rspec +1 -0
  9. data/.rubocop.yml +66 -0
  10. data/.rubocop_todo.yml +2627 -0
  11. data/.yardopts +1 -0
  12. data/CHANGELOG.md +104 -0
  13. data/README.md +20 -6
  14. data/Rakefile +125 -13
  15. data/lib/solargraph/api_map/cache.rb +3 -2
  16. data/lib/solargraph/api_map/constants.rb +218 -0
  17. data/lib/solargraph/api_map/index.rb +44 -42
  18. data/lib/solargraph/api_map/source_to_yard.rb +10 -4
  19. data/lib/solargraph/api_map/store.rb +165 -32
  20. data/lib/solargraph/api_map.rb +319 -243
  21. data/lib/solargraph/bench.rb +18 -1
  22. data/lib/solargraph/complex_type/type_methods.rb +7 -1
  23. data/lib/solargraph/complex_type/unique_type.rb +105 -16
  24. data/lib/solargraph/complex_type.rb +40 -7
  25. data/lib/solargraph/convention/active_support_concern.rb +111 -0
  26. data/lib/solargraph/convention/base.rb +20 -3
  27. data/lib/solargraph/convention/data_definition/data_assignment_node.rb +61 -0
  28. data/lib/solargraph/convention/data_definition/data_definition_node.rb +91 -0
  29. data/lib/solargraph/convention/data_definition.rb +105 -0
  30. data/lib/solargraph/convention/gemspec.rb +3 -2
  31. data/lib/solargraph/convention/struct_definition/struct_assignment_node.rb +61 -0
  32. data/lib/solargraph/convention/struct_definition/struct_definition_node.rb +102 -0
  33. data/lib/solargraph/convention/struct_definition.rb +164 -0
  34. data/lib/solargraph/convention.rb +35 -4
  35. data/lib/solargraph/diagnostics/rubocop.rb +6 -1
  36. data/lib/solargraph/diagnostics/rubocop_helpers.rb +1 -1
  37. data/lib/solargraph/doc_map.rb +313 -65
  38. data/lib/solargraph/environ.rb +9 -2
  39. data/lib/solargraph/gem_pins.rb +60 -38
  40. data/lib/solargraph/language_server/host/dispatch.rb +2 -0
  41. data/lib/solargraph/language_server/host/message_worker.rb +13 -7
  42. data/lib/solargraph/language_server/host.rb +14 -3
  43. data/lib/solargraph/language_server/message/base.rb +2 -1
  44. data/lib/solargraph/language_server/message/extended/check_gem_version.rb +2 -0
  45. data/lib/solargraph/language_server/message/extended/document.rb +5 -2
  46. data/lib/solargraph/language_server/message/extended/document_gems.rb +3 -3
  47. data/lib/solargraph/language_server/message/text_document/definition.rb +2 -0
  48. data/lib/solargraph/language_server/message/text_document/formatting.rb +16 -2
  49. data/lib/solargraph/language_server/message/text_document/type_definition.rb +1 -0
  50. data/lib/solargraph/language_server/message/workspace/did_change_workspace_folders.rb +2 -0
  51. data/lib/solargraph/language_server/progress.rb +8 -0
  52. data/lib/solargraph/language_server/request.rb +1 -0
  53. data/lib/solargraph/library.rb +53 -32
  54. data/lib/solargraph/location.rb +23 -0
  55. data/lib/solargraph/logging.rb +12 -2
  56. data/lib/solargraph/page.rb +4 -0
  57. data/lib/solargraph/parser/comment_ripper.rb +20 -7
  58. data/lib/solargraph/parser/flow_sensitive_typing.rb +255 -0
  59. data/lib/solargraph/parser/node_methods.rb +16 -2
  60. data/lib/solargraph/parser/node_processor/base.rb +10 -5
  61. data/lib/solargraph/parser/node_processor.rb +26 -9
  62. data/lib/solargraph/parser/parser_gem/class_methods.rb +17 -15
  63. data/lib/solargraph/parser/parser_gem/flawed_builder.rb +1 -0
  64. data/lib/solargraph/parser/parser_gem/node_chainer.rb +13 -11
  65. data/lib/solargraph/parser/parser_gem/node_methods.rb +8 -4
  66. data/lib/solargraph/parser/parser_gem/node_processors/alias_node.rb +2 -1
  67. data/lib/solargraph/parser/parser_gem/node_processors/and_node.rb +21 -0
  68. data/lib/solargraph/parser/parser_gem/node_processors/args_node.rb +4 -2
  69. data/lib/solargraph/parser/parser_gem/node_processors/block_node.rb +7 -4
  70. data/lib/solargraph/parser/parser_gem/node_processors/casgn_node.rb +2 -1
  71. data/lib/solargraph/parser/parser_gem/node_processors/cvasgn_node.rb +2 -1
  72. data/lib/solargraph/parser/parser_gem/node_processors/def_node.rb +6 -3
  73. data/lib/solargraph/parser/parser_gem/node_processors/defs_node.rb +2 -1
  74. data/lib/solargraph/parser/parser_gem/node_processors/gvasgn_node.rb +2 -1
  75. data/lib/solargraph/parser/parser_gem/node_processors/if_node.rb +23 -0
  76. data/lib/solargraph/parser/parser_gem/node_processors/ivasgn_node.rb +4 -2
  77. data/lib/solargraph/parser/parser_gem/node_processors/lvasgn_node.rb +2 -1
  78. data/lib/solargraph/parser/parser_gem/node_processors/masgn_node.rb +7 -1
  79. data/lib/solargraph/parser/parser_gem/node_processors/namespace_node.rb +8 -7
  80. data/lib/solargraph/parser/parser_gem/node_processors/opasgn_node.rb +42 -0
  81. data/lib/solargraph/parser/parser_gem/node_processors/orasgn_node.rb +1 -0
  82. data/lib/solargraph/parser/parser_gem/node_processors/resbody_node.rb +3 -1
  83. data/lib/solargraph/parser/parser_gem/node_processors/sclass_node.rb +4 -3
  84. data/lib/solargraph/parser/parser_gem/node_processors/send_node.rb +63 -30
  85. data/lib/solargraph/parser/parser_gem/node_processors/sym_node.rb +3 -1
  86. data/lib/solargraph/parser/parser_gem/node_processors/until_node.rb +29 -0
  87. data/lib/solargraph/parser/parser_gem/node_processors/while_node.rb +29 -0
  88. data/lib/solargraph/parser/parser_gem/node_processors.rb +14 -0
  89. data/lib/solargraph/parser/region.rb +4 -1
  90. data/lib/solargraph/parser/snippet.rb +2 -0
  91. data/lib/solargraph/parser.rb +1 -0
  92. data/lib/solargraph/pin/base.rb +360 -30
  93. data/lib/solargraph/pin/base_variable.rb +16 -10
  94. data/lib/solargraph/pin/block.rb +2 -0
  95. data/lib/solargraph/pin/breakable.rb +9 -0
  96. data/lib/solargraph/pin/callable.rb +83 -3
  97. data/lib/solargraph/pin/closure.rb +20 -1
  98. data/lib/solargraph/pin/common.rb +10 -1
  99. data/lib/solargraph/pin/constant.rb +2 -0
  100. data/lib/solargraph/pin/delegated_method.rb +21 -1
  101. data/lib/solargraph/pin/documenting.rb +16 -0
  102. data/lib/solargraph/pin/keyword.rb +7 -2
  103. data/lib/solargraph/pin/local_variable.rb +18 -6
  104. data/lib/solargraph/pin/method.rb +175 -46
  105. data/lib/solargraph/pin/method_alias.rb +3 -0
  106. data/lib/solargraph/pin/namespace.rb +17 -9
  107. data/lib/solargraph/pin/parameter.rb +78 -19
  108. data/lib/solargraph/pin/proxy_type.rb +13 -6
  109. data/lib/solargraph/pin/reference/override.rb +24 -6
  110. data/lib/solargraph/pin/reference/require.rb +2 -2
  111. data/lib/solargraph/pin/reference/superclass.rb +5 -0
  112. data/lib/solargraph/pin/reference.rb +26 -0
  113. data/lib/solargraph/pin/search.rb +3 -1
  114. data/lib/solargraph/pin/signature.rb +44 -0
  115. data/lib/solargraph/pin/singleton.rb +1 -1
  116. data/lib/solargraph/pin/symbol.rb +8 -2
  117. data/lib/solargraph/pin/until.rb +18 -0
  118. data/lib/solargraph/pin/while.rb +18 -0
  119. data/lib/solargraph/pin.rb +4 -1
  120. data/lib/solargraph/pin_cache.rb +245 -0
  121. data/lib/solargraph/position.rb +11 -0
  122. data/lib/solargraph/range.rb +10 -0
  123. data/lib/solargraph/rbs_map/conversions.rb +226 -70
  124. data/lib/solargraph/rbs_map/core_fills.rb +32 -16
  125. data/lib/solargraph/rbs_map/core_map.rb +37 -11
  126. data/lib/solargraph/rbs_map/stdlib_map.rb +15 -5
  127. data/lib/solargraph/rbs_map.rb +88 -18
  128. data/lib/solargraph/shell.rb +20 -18
  129. data/lib/solargraph/source/chain/array.rb +11 -7
  130. data/lib/solargraph/source/chain/block_symbol.rb +1 -1
  131. data/lib/solargraph/source/chain/block_variable.rb +1 -1
  132. data/lib/solargraph/source/chain/call.rb +53 -23
  133. data/lib/solargraph/source/chain/constant.rb +1 -1
  134. data/lib/solargraph/source/chain/hash.rb +4 -3
  135. data/lib/solargraph/source/chain/head.rb +1 -1
  136. data/lib/solargraph/source/chain/if.rb +1 -1
  137. data/lib/solargraph/source/chain/link.rb +12 -1
  138. data/lib/solargraph/source/chain/literal.rb +22 -2
  139. data/lib/solargraph/source/chain/or.rb +1 -1
  140. data/lib/solargraph/source/chain/z_super.rb +1 -1
  141. data/lib/solargraph/source/chain.rb +84 -47
  142. data/lib/solargraph/source/change.rb +2 -2
  143. data/lib/solargraph/source/cursor.rb +2 -3
  144. data/lib/solargraph/source/source_chainer.rb +3 -3
  145. data/lib/solargraph/source.rb +5 -2
  146. data/lib/solargraph/source_map/clip.rb +4 -2
  147. data/lib/solargraph/source_map/data.rb +4 -0
  148. data/lib/solargraph/source_map/mapper.rb +13 -7
  149. data/lib/solargraph/source_map.rb +21 -31
  150. data/lib/solargraph/type_checker/checks.rb +4 -0
  151. data/lib/solargraph/type_checker/param_def.rb +2 -0
  152. data/lib/solargraph/type_checker/rules.rb +8 -0
  153. data/lib/solargraph/type_checker.rb +208 -128
  154. data/lib/solargraph/version.rb +1 -1
  155. data/lib/solargraph/views/_method.erb +10 -10
  156. data/lib/solargraph/views/_namespace.erb +3 -3
  157. data/lib/solargraph/views/document.erb +10 -10
  158. data/lib/solargraph/workspace/config.rb +1 -3
  159. data/lib/solargraph/workspace/require_paths.rb +98 -0
  160. data/lib/solargraph/workspace.rb +38 -52
  161. data/lib/solargraph/yard_map/helpers.rb +29 -1
  162. data/lib/solargraph/yard_map/mapper/to_constant.rb +7 -5
  163. data/lib/solargraph/yard_map/mapper/to_method.rb +53 -18
  164. data/lib/solargraph/yard_map/mapper/to_namespace.rb +9 -7
  165. data/lib/solargraph/yard_map/mapper.rb +4 -3
  166. data/lib/solargraph/yard_map/to_method.rb +4 -2
  167. data/lib/solargraph/yardoc.rb +22 -10
  168. data/lib/solargraph.rb +34 -1
  169. data/rbs/fills/tuple.rbs +149 -0
  170. data/rbs_collection.yaml +19 -0
  171. data/sig/shims/parser/3.2.0.1/builders/default.rbs +195 -0
  172. data/sig/shims/thor/1.2.0.1/.rbs_meta.yaml +9 -0
  173. data/sig/shims/thor/1.2.0.1/manifest.yaml +7 -0
  174. data/sig/shims/thor/1.2.0.1/thor.rbs +17 -0
  175. data/solargraph.gemspec +15 -4
  176. metadata +157 -15
  177. data/lib/.rubocop.yml +0 -22
  178. data/lib/solargraph/cache.rb +0 -77
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solargraph
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.54.4
4
+ version: 0.57.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fred Snyder
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2025-05-14 00:00:00.000000000 Z
10
+ date: 2025-09-16 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: backport
@@ -171,19 +170,39 @@ dependencies:
171
170
  - !ruby/object:Gem::Version
172
171
  version: '3.0'
173
172
  - !ruby/object:Gem::Dependency
174
- name: rbs
173
+ name: prism
175
174
  requirement: !ruby/object:Gem::Requirement
176
175
  requirements:
177
176
  - - "~>"
178
177
  - !ruby/object:Gem::Version
179
- version: '3.3'
178
+ version: '1.4'
180
179
  type: :runtime
181
180
  prerelease: false
182
181
  version_requirements: !ruby/object:Gem::Requirement
183
182
  requirements:
184
183
  - - "~>"
185
184
  - !ruby/object:Gem::Version
186
- version: '3.3'
185
+ version: '1.4'
186
+ - !ruby/object:Gem::Dependency
187
+ name: rbs
188
+ requirement: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ version: 3.6.1
193
+ - - "<="
194
+ - !ruby/object:Gem::Version
195
+ version: 4.0.0.dev.4
196
+ type: :runtime
197
+ prerelease: false
198
+ version_requirements: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - ">="
201
+ - !ruby/object:Gem::Version
202
+ version: 3.6.1
203
+ - - "<="
204
+ - !ruby/object:Gem::Version
205
+ version: 4.0.0.dev.4
187
206
  - !ruby/object:Gem::Dependency
188
207
  name: reverse_markdown
189
208
  requirement: !ruby/object:Gem::Requirement
@@ -204,14 +223,14 @@ dependencies:
204
223
  requirements:
205
224
  - - "~>"
206
225
  - !ruby/object:Gem::Version
207
- version: '1.38'
226
+ version: '1.76'
208
227
  type: :runtime
209
228
  prerelease: false
210
229
  version_requirements: !ruby/object:Gem::Requirement
211
230
  requirements:
212
231
  - - "~>"
213
232
  - !ruby/object:Gem::Version
214
- version: '1.38'
233
+ version: '1.76'
215
234
  - !ruby/object:Gem::Dependency
216
235
  name: thor
217
236
  requirement: !ruby/object:Gem::Requirement
@@ -274,6 +293,20 @@ dependencies:
274
293
  - - "~>"
275
294
  - !ruby/object:Gem::Version
276
295
  version: '0.1'
296
+ - !ruby/object:Gem::Dependency
297
+ name: yard-activesupport-concern
298
+ requirement: !ruby/object:Gem::Requirement
299
+ requirements:
300
+ - - "~>"
301
+ - !ruby/object:Gem::Version
302
+ version: '0.0'
303
+ type: :runtime
304
+ prerelease: false
305
+ version_requirements: !ruby/object:Gem::Requirement
306
+ requirements:
307
+ - - "~>"
308
+ - !ruby/object:Gem::Version
309
+ version: '0.0'
277
310
  - !ruby/object:Gem::Dependency
278
311
  name: pry
279
312
  requirement: !ruby/object:Gem::Requirement
@@ -330,20 +363,104 @@ dependencies:
330
363
  - - "~>"
331
364
  - !ruby/object:Gem::Version
332
365
  version: '3.5'
366
+ - !ruby/object:Gem::Dependency
367
+ name: rubocop-rake
368
+ requirement: !ruby/object:Gem::Requirement
369
+ requirements:
370
+ - - "~>"
371
+ - !ruby/object:Gem::Version
372
+ version: '0.7'
373
+ type: :development
374
+ prerelease: false
375
+ version_requirements: !ruby/object:Gem::Requirement
376
+ requirements:
377
+ - - "~>"
378
+ - !ruby/object:Gem::Version
379
+ version: '0.7'
380
+ - !ruby/object:Gem::Dependency
381
+ name: rubocop-rspec
382
+ requirement: !ruby/object:Gem::Requirement
383
+ requirements:
384
+ - - "~>"
385
+ - !ruby/object:Gem::Version
386
+ version: '3.6'
387
+ type: :development
388
+ prerelease: false
389
+ version_requirements: !ruby/object:Gem::Requirement
390
+ requirements:
391
+ - - "~>"
392
+ - !ruby/object:Gem::Version
393
+ version: '3.6'
394
+ - !ruby/object:Gem::Dependency
395
+ name: rubocop-yard
396
+ requirement: !ruby/object:Gem::Requirement
397
+ requirements:
398
+ - - "~>"
399
+ - !ruby/object:Gem::Version
400
+ version: '1.0'
401
+ type: :development
402
+ prerelease: false
403
+ version_requirements: !ruby/object:Gem::Requirement
404
+ requirements:
405
+ - - "~>"
406
+ - !ruby/object:Gem::Version
407
+ version: '1.0'
333
408
  - !ruby/object:Gem::Dependency
334
409
  name: simplecov
335
410
  requirement: !ruby/object:Gem::Requirement
336
411
  requirements:
337
412
  - - "~>"
338
413
  - !ruby/object:Gem::Version
339
- version: '0.14'
414
+ version: '0.21'
415
+ type: :development
416
+ prerelease: false
417
+ version_requirements: !ruby/object:Gem::Requirement
418
+ requirements:
419
+ - - "~>"
420
+ - !ruby/object:Gem::Version
421
+ version: '0.21'
422
+ - !ruby/object:Gem::Dependency
423
+ name: simplecov-lcov
424
+ requirement: !ruby/object:Gem::Requirement
425
+ requirements:
426
+ - - "~>"
427
+ - !ruby/object:Gem::Version
428
+ version: '0.8'
429
+ type: :development
430
+ prerelease: false
431
+ version_requirements: !ruby/object:Gem::Requirement
432
+ requirements:
433
+ - - "~>"
434
+ - !ruby/object:Gem::Version
435
+ version: '0.8'
436
+ - !ruby/object:Gem::Dependency
437
+ name: undercover
438
+ requirement: !ruby/object:Gem::Requirement
439
+ requirements:
440
+ - - "~>"
441
+ - !ruby/object:Gem::Version
442
+ version: '0.7'
443
+ type: :development
444
+ prerelease: false
445
+ version_requirements: !ruby/object:Gem::Requirement
446
+ requirements:
447
+ - - "~>"
448
+ - !ruby/object:Gem::Version
449
+ version: '0.7'
450
+ - !ruby/object:Gem::Dependency
451
+ name: overcommit
452
+ requirement: !ruby/object:Gem::Requirement
453
+ requirements:
454
+ - - "~>"
455
+ - !ruby/object:Gem::Version
456
+ version: 0.68.0
340
457
  type: :development
341
458
  prerelease: false
342
459
  version_requirements: !ruby/object:Gem::Requirement
343
460
  requirements:
344
461
  - - "~>"
345
462
  - !ruby/object:Gem::Version
346
- version: '0.14'
463
+ version: 0.68.0
347
464
  - !ruby/object:Gem::Dependency
348
465
  name: webmock
349
466
  requirement: !ruby/object:Gem::Requirement
@@ -380,11 +497,15 @@ extensions: []
380
497
  extra_rdoc_files: []
381
498
  files:
382
499
  - ".github/FUNDING.yml"
500
+ - ".github/workflows/linting.yml"
383
501
  - ".github/workflows/plugins.yml"
384
502
  - ".github/workflows/rspec.yml"
385
503
  - ".github/workflows/typecheck.yml"
386
504
  - ".gitignore"
505
+ - ".overcommit.yml"
387
506
  - ".rspec"
507
+ - ".rubocop.yml"
508
+ - ".rubocop_todo.yml"
388
509
  - ".yardopts"
389
510
  - CHANGELOG.md
390
511
  - Gemfile
@@ -393,23 +514,29 @@ files:
393
514
  - Rakefile
394
515
  - SPONSORS.md
395
516
  - bin/solargraph
396
- - lib/.rubocop.yml
397
517
  - lib/solargraph.rb
398
518
  - lib/solargraph/api_map.rb
399
519
  - lib/solargraph/api_map/cache.rb
520
+ - lib/solargraph/api_map/constants.rb
400
521
  - lib/solargraph/api_map/index.rb
401
522
  - lib/solargraph/api_map/source_to_yard.rb
402
523
  - lib/solargraph/api_map/store.rb
403
524
  - lib/solargraph/bench.rb
404
- - lib/solargraph/cache.rb
405
525
  - lib/solargraph/complex_type.rb
406
526
  - lib/solargraph/complex_type/type_methods.rb
407
527
  - lib/solargraph/complex_type/unique_type.rb
408
528
  - lib/solargraph/convention.rb
529
+ - lib/solargraph/convention/active_support_concern.rb
409
530
  - lib/solargraph/convention/base.rb
531
+ - lib/solargraph/convention/data_definition.rb
532
+ - lib/solargraph/convention/data_definition/data_assignment_node.rb
533
+ - lib/solargraph/convention/data_definition/data_definition_node.rb
410
534
  - lib/solargraph/convention/gemfile.rb
411
535
  - lib/solargraph/convention/gemspec.rb
412
536
  - lib/solargraph/convention/rakefile.rb
537
+ - lib/solargraph/convention/struct_definition.rb
538
+ - lib/solargraph/convention/struct_definition/struct_assignment_node.rb
539
+ - lib/solargraph/convention/struct_definition/struct_definition_node.rb
413
540
  - lib/solargraph/converters/dd.rb
414
541
  - lib/solargraph/converters/dl.rb
415
542
  - lib/solargraph/converters/dt.rb
@@ -493,6 +620,7 @@ files:
493
620
  - lib/solargraph/page.rb
494
621
  - lib/solargraph/parser.rb
495
622
  - lib/solargraph/parser/comment_ripper.rb
623
+ - lib/solargraph/parser/flow_sensitive_typing.rb
496
624
  - lib/solargraph/parser/node_methods.rb
497
625
  - lib/solargraph/parser/node_processor.rb
498
626
  - lib/solargraph/parser/node_processor/base.rb
@@ -503,6 +631,7 @@ files:
503
631
  - lib/solargraph/parser/parser_gem/node_methods.rb
504
632
  - lib/solargraph/parser/parser_gem/node_processors.rb
505
633
  - lib/solargraph/parser/parser_gem/node_processors/alias_node.rb
634
+ - lib/solargraph/parser/parser_gem/node_processors/and_node.rb
506
635
  - lib/solargraph/parser/parser_gem/node_processors/args_node.rb
507
636
  - lib/solargraph/parser/parser_gem/node_processors/begin_node.rb
508
637
  - lib/solargraph/parser/parser_gem/node_processors/block_node.rb
@@ -511,21 +640,26 @@ files:
511
640
  - lib/solargraph/parser/parser_gem/node_processors/def_node.rb
512
641
  - lib/solargraph/parser/parser_gem/node_processors/defs_node.rb
513
642
  - lib/solargraph/parser/parser_gem/node_processors/gvasgn_node.rb
643
+ - lib/solargraph/parser/parser_gem/node_processors/if_node.rb
514
644
  - lib/solargraph/parser/parser_gem/node_processors/ivasgn_node.rb
515
645
  - lib/solargraph/parser/parser_gem/node_processors/lvasgn_node.rb
516
646
  - lib/solargraph/parser/parser_gem/node_processors/masgn_node.rb
517
647
  - lib/solargraph/parser/parser_gem/node_processors/namespace_node.rb
648
+ - lib/solargraph/parser/parser_gem/node_processors/opasgn_node.rb
518
649
  - lib/solargraph/parser/parser_gem/node_processors/orasgn_node.rb
519
650
  - lib/solargraph/parser/parser_gem/node_processors/resbody_node.rb
520
651
  - lib/solargraph/parser/parser_gem/node_processors/sclass_node.rb
521
652
  - lib/solargraph/parser/parser_gem/node_processors/send_node.rb
522
653
  - lib/solargraph/parser/parser_gem/node_processors/sym_node.rb
654
+ - lib/solargraph/parser/parser_gem/node_processors/until_node.rb
655
+ - lib/solargraph/parser/parser_gem/node_processors/while_node.rb
523
656
  - lib/solargraph/parser/region.rb
524
657
  - lib/solargraph/parser/snippet.rb
525
658
  - lib/solargraph/pin.rb
526
659
  - lib/solargraph/pin/base.rb
527
660
  - lib/solargraph/pin/base_variable.rb
528
661
  - lib/solargraph/pin/block.rb
662
+ - lib/solargraph/pin/breakable.rb
529
663
  - lib/solargraph/pin/callable.rb
530
664
  - lib/solargraph/pin/class_variable.rb
531
665
  - lib/solargraph/pin/closure.rb
@@ -556,6 +690,9 @@ files:
556
690
  - lib/solargraph/pin/signature.rb
557
691
  - lib/solargraph/pin/singleton.rb
558
692
  - lib/solargraph/pin/symbol.rb
693
+ - lib/solargraph/pin/until.rb
694
+ - lib/solargraph/pin/while.rb
695
+ - lib/solargraph/pin_cache.rb
559
696
  - lib/solargraph/position.rb
560
697
  - lib/solargraph/range.rb
561
698
  - lib/solargraph/rbs_map.rb
@@ -609,6 +746,7 @@ files:
609
746
  - lib/solargraph/views/search.erb
610
747
  - lib/solargraph/workspace.rb
611
748
  - lib/solargraph/workspace/config.rb
749
+ - lib/solargraph/workspace/require_paths.rb
612
750
  - lib/solargraph/yard_map.rb
613
751
  - lib/solargraph/yard_map/cache.rb
614
752
  - lib/solargraph/yard_map/helpers.rb
@@ -619,6 +757,12 @@ files:
619
757
  - lib/solargraph/yard_map/to_method.rb
620
758
  - lib/solargraph/yard_tags.rb
621
759
  - lib/solargraph/yardoc.rb
760
+ - rbs/fills/tuple.rbs
761
+ - rbs_collection.yaml
762
+ - sig/shims/parser/3.2.0.1/builders/default.rbs
763
+ - sig/shims/thor/1.2.0.1/.rbs_meta.yaml
764
+ - sig/shims/thor/1.2.0.1/manifest.yaml
765
+ - sig/shims/thor/1.2.0.1/thor.rbs
622
766
  - solargraph.gemspec
623
767
  homepage: https://solargraph.org
624
768
  licenses:
@@ -628,7 +772,6 @@ metadata:
628
772
  bug_tracker_uri: https://github.com/castwide/solargraph/issues
629
773
  changelog_uri: https://github.com/castwide/solargraph/blob/master/CHANGELOG.md
630
774
  source_code_uri: https://github.com/castwide/solargraph
631
- post_install_message:
632
775
  rdoc_options: []
633
776
  require_paths:
634
777
  - lib
@@ -643,8 +786,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
643
786
  - !ruby/object:Gem::Version
644
787
  version: '0'
645
788
  requirements: []
646
- rubygems_version: 3.3.7
647
- signing_key:
789
+ rubygems_version: 3.6.7
648
790
  specification_version: 4
649
791
  summary: A Ruby language server
650
792
  test_files: []
data/lib/.rubocop.yml DELETED
@@ -1,22 +0,0 @@
1
- AllCops:
2
- NewCops: enable
3
- Style/MethodDefParentheses:
4
- Enabled: false
5
- Layout/EmptyLineAfterGuardClause:
6
- Enabled: false
7
- Layout/SpaceAroundMethodCallOperator:
8
- Enabled: true
9
- Lint/RaiseException:
10
- Enabled: true
11
- Lint/StructNewOverride:
12
- Enabled: true
13
- Metrics/MethodLength:
14
- Max: 25
15
- Style/ExponentialNotation:
16
- Enabled: true
17
- Style/HashEachMethods:
18
- Enabled: true
19
- Style/HashTransformKeys:
20
- Enabled: true
21
- Style/HashTransformValues:
22
- Enabled: true
@@ -1,77 +0,0 @@
1
- require 'fileutils'
2
- require 'rbs'
3
-
4
- module Solargraph
5
- module Cache
6
- class << self
7
- # The base directory where cached documentation is installed.
8
- #
9
- # @return [String]
10
- def base_dir
11
- # The directory is not stored in a variable so it can be overridden
12
- # in specs.
13
- ENV['SOLARGRAPH_CACHE'] ||
14
- (ENV['XDG_CACHE_HOME'] ? File.join(ENV['XDG_CACHE_HOME'], 'solargraph') : nil) ||
15
- File.join(Dir.home, '.cache', 'solargraph')
16
- end
17
-
18
- # The working directory for the current Ruby, RBS, and Solargraph versions.
19
- #
20
- # @return [String]
21
- def work_dir
22
- # The directory is not stored in a variable so it can be overridden
23
- # in specs.
24
- File.join(base_dir, "ruby-#{RUBY_VERSION}", "rbs-#{RBS::VERSION}", "solargraph-#{Solargraph::VERSION}")
25
- end
26
-
27
- # Append the given path to the current cache directory (`work_dir`).
28
- #
29
- # @example
30
- # Cache.join('date-3.4.1.ser')
31
- #
32
- # @param path [Array<String>]
33
- # @return [String]
34
- def join *path
35
- File.join(work_dir, *path)
36
- end
37
-
38
- # @param path [Array<String>]
39
- # @return [Array<Solargraph::Pin::Base>, nil]
40
- def load *path
41
- file = join(*path)
42
- return nil unless File.file?(file)
43
- Marshal.load(File.read(file, mode: 'rb'))
44
- rescue StandardError => e
45
- Solargraph.logger.warn "Failed to load cached file #{file}: [#{e.class}] #{e.message}"
46
- FileUtils.rm_f file
47
- nil
48
- end
49
-
50
- def exist? *path
51
- File.file? join(*path)
52
- end
53
-
54
- # @param path [Array<String>]
55
- # @param pins [Array<Pin::Base>]
56
- # @return [void]
57
- def save *path, pins
58
- file = File.join(work_dir, *path)
59
- base = File.dirname(file)
60
- FileUtils.mkdir_p base unless File.directory?(base)
61
- ser = Marshal.dump(pins)
62
- File.write file, ser, mode: 'wb'
63
- end
64
-
65
- # @return [void]
66
- # @param path [Array<String>]
67
- def uncache *path
68
- FileUtils.rm_rf File.join(work_dir, *path), secure: true
69
- end
70
-
71
- # @return [void]
72
- def clear
73
- FileUtils.rm_rf base_dir, secure: true
74
- end
75
- end
76
- end
77
- end