solargraph 0.56.1 → 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 (132) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/linting.yml +125 -0
  3. data/.github/workflows/plugins.yml +148 -6
  4. data/.github/workflows/rspec.yml +39 -4
  5. data/.github/workflows/typecheck.yml +5 -2
  6. data/.gitignore +5 -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 +50 -0
  13. data/README.md +8 -4
  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 +20 -26
  18. data/lib/solargraph/api_map/source_to_yard.rb +10 -4
  19. data/lib/solargraph/api_map/store.rb +126 -18
  20. data/lib/solargraph/api_map.rb +212 -234
  21. data/lib/solargraph/bench.rb +1 -0
  22. data/lib/solargraph/complex_type/type_methods.rb +1 -0
  23. data/lib/solargraph/complex_type/unique_type.rb +7 -7
  24. data/lib/solargraph/complex_type.rb +5 -1
  25. data/lib/solargraph/convention/active_support_concern.rb +111 -0
  26. data/lib/solargraph/convention/base.rb +17 -0
  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 +2 -1
  32. data/lib/solargraph/convention/struct_definition/struct_definition_node.rb +4 -2
  33. data/lib/solargraph/convention/struct_definition.rb +87 -24
  34. data/lib/solargraph/convention.rb +32 -2
  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 +40 -12
  38. data/lib/solargraph/environ.rb +9 -2
  39. data/lib/solargraph/gem_pins.rb +17 -11
  40. data/lib/solargraph/language_server/host/dispatch.rb +2 -0
  41. data/lib/solargraph/language_server/host/message_worker.rb +3 -0
  42. data/lib/solargraph/language_server/host.rb +2 -1
  43. data/lib/solargraph/language_server/message/base.rb +2 -1
  44. data/lib/solargraph/language_server/message/extended/check_gem_version.rb +1 -1
  45. data/lib/solargraph/language_server/message/text_document/definition.rb +2 -0
  46. data/lib/solargraph/language_server/message/text_document/formatting.rb +16 -2
  47. data/lib/solargraph/language_server/message/text_document/type_definition.rb +1 -0
  48. data/lib/solargraph/language_server/message/workspace/did_change_workspace_folders.rb +2 -0
  49. data/lib/solargraph/language_server/progress.rb +8 -0
  50. data/lib/solargraph/language_server/request.rb +1 -0
  51. data/lib/solargraph/library.rb +17 -24
  52. data/lib/solargraph/location.rb +2 -0
  53. data/lib/solargraph/logging.rb +11 -2
  54. data/lib/solargraph/page.rb +4 -0
  55. data/lib/solargraph/parser/comment_ripper.rb +8 -1
  56. data/lib/solargraph/parser/flow_sensitive_typing.rb +32 -4
  57. data/lib/solargraph/parser/node_methods.rb +2 -2
  58. data/lib/solargraph/parser/node_processor/base.rb +10 -5
  59. data/lib/solargraph/parser/node_processor.rb +24 -8
  60. data/lib/solargraph/parser/parser_gem/class_methods.rb +1 -1
  61. data/lib/solargraph/parser/parser_gem/flawed_builder.rb +1 -0
  62. data/lib/solargraph/parser/parser_gem/node_chainer.rb +3 -1
  63. data/lib/solargraph/parser/parser_gem/node_methods.rb +4 -2
  64. data/lib/solargraph/parser/parser_gem/node_processors/block_node.rb +3 -2
  65. data/lib/solargraph/parser/parser_gem/node_processors/casgn_node.rb +1 -21
  66. data/lib/solargraph/parser/parser_gem/node_processors/if_node.rb +2 -0
  67. data/lib/solargraph/parser/parser_gem/node_processors/masgn_node.rb +7 -1
  68. data/lib/solargraph/parser/parser_gem/node_processors/namespace_node.rb +0 -22
  69. data/lib/solargraph/parser/parser_gem/node_processors/opasgn_node.rb +1 -0
  70. data/lib/solargraph/parser/parser_gem/node_processors/orasgn_node.rb +1 -0
  71. data/lib/solargraph/parser/parser_gem/node_processors/resbody_node.rb +1 -0
  72. data/lib/solargraph/parser/parser_gem/node_processors/send_node.rb +35 -14
  73. data/lib/solargraph/parser/parser_gem/node_processors/sym_node.rb +1 -0
  74. data/lib/solargraph/parser/parser_gem/node_processors.rb +4 -0
  75. data/lib/solargraph/parser/region.rb +3 -0
  76. data/lib/solargraph/parser/snippet.rb +2 -0
  77. data/lib/solargraph/pin/base.rb +65 -8
  78. data/lib/solargraph/pin/base_variable.rb +1 -2
  79. data/lib/solargraph/pin/callable.rb +9 -0
  80. data/lib/solargraph/pin/closure.rb +2 -0
  81. data/lib/solargraph/pin/common.rb +6 -2
  82. data/lib/solargraph/pin/constant.rb +2 -0
  83. data/lib/solargraph/pin/delegated_method.rb +1 -0
  84. data/lib/solargraph/pin/local_variable.rb +4 -1
  85. data/lib/solargraph/pin/method.rb +12 -7
  86. data/lib/solargraph/pin/method_alias.rb +3 -0
  87. data/lib/solargraph/pin/parameter.rb +18 -8
  88. data/lib/solargraph/pin/proxy_type.rb +1 -0
  89. data/lib/solargraph/pin/reference/override.rb +15 -1
  90. data/lib/solargraph/pin/reference/superclass.rb +5 -0
  91. data/lib/solargraph/pin/reference.rb +26 -0
  92. data/lib/solargraph/pin/search.rb +3 -1
  93. data/lib/solargraph/pin/signature.rb +2 -0
  94. data/lib/solargraph/pin/symbol.rb +5 -0
  95. data/lib/solargraph/pin_cache.rb +64 -4
  96. data/lib/solargraph/position.rb +2 -0
  97. data/lib/solargraph/range.rb +1 -0
  98. data/lib/solargraph/rbs_map/conversions.rb +47 -18
  99. data/lib/solargraph/rbs_map/core_map.rb +3 -0
  100. data/lib/solargraph/rbs_map.rb +15 -2
  101. data/lib/solargraph/shell.rb +3 -0
  102. data/lib/solargraph/source/chain/link.rb +10 -1
  103. data/lib/solargraph/source/chain.rb +9 -2
  104. data/lib/solargraph/source/change.rb +2 -2
  105. data/lib/solargraph/source/cursor.rb +2 -3
  106. data/lib/solargraph/source/source_chainer.rb +1 -1
  107. data/lib/solargraph/source.rb +5 -2
  108. data/lib/solargraph/source_map/clip.rb +1 -1
  109. data/lib/solargraph/source_map/data.rb +4 -0
  110. data/lib/solargraph/source_map/mapper.rb +4 -2
  111. data/lib/solargraph/source_map.rb +21 -14
  112. data/lib/solargraph/type_checker/param_def.rb +2 -0
  113. data/lib/solargraph/type_checker/rules.rb +8 -0
  114. data/lib/solargraph/type_checker.rb +173 -120
  115. data/lib/solargraph/version.rb +1 -1
  116. data/lib/solargraph/workspace/config.rb +1 -3
  117. data/lib/solargraph/workspace/require_paths.rb +98 -0
  118. data/lib/solargraph/workspace.rb +16 -48
  119. data/lib/solargraph/yard_map/helpers.rb +29 -1
  120. data/lib/solargraph/yard_map/mapper/to_constant.rb +5 -5
  121. data/lib/solargraph/yard_map/mapper/to_method.rb +3 -8
  122. data/lib/solargraph/yard_map/mapper/to_namespace.rb +7 -7
  123. data/lib/solargraph/yardoc.rb +16 -3
  124. data/lib/solargraph.rb +15 -0
  125. data/rbs/fills/tuple.rbs +2 -3
  126. data/sig/shims/parser/3.2.0.1/builders/default.rbs +195 -0
  127. data/sig/shims/thor/1.2.0.1/.rbs_meta.yaml +9 -0
  128. data/sig/shims/thor/1.2.0.1/manifest.yaml +7 -0
  129. data/sig/shims/thor/1.2.0.1/thor.rbs +17 -0
  130. data/solargraph.gemspec +14 -4
  131. metadata +126 -9
  132. data/lib/.rubocop.yml +0 -22
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solargraph
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.56.1
4
+ version: 0.57.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fred Snyder
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-07-13 00:00:00.000000000 Z
10
+ date: 2025-09-16 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: backport
@@ -187,16 +187,22 @@ dependencies:
187
187
  name: rbs
188
188
  requirement: !ruby/object:Gem::Requirement
189
189
  requirements:
190
- - - "~>"
190
+ - - ">="
191
191
  - !ruby/object:Gem::Version
192
192
  version: 3.6.1
193
+ - - "<="
194
+ - !ruby/object:Gem::Version
195
+ version: 4.0.0.dev.4
193
196
  type: :runtime
194
197
  prerelease: false
195
198
  version_requirements: !ruby/object:Gem::Requirement
196
199
  requirements:
197
- - - "~>"
200
+ - - ">="
198
201
  - !ruby/object:Gem::Version
199
202
  version: 3.6.1
203
+ - - "<="
204
+ - !ruby/object:Gem::Version
205
+ version: 4.0.0.dev.4
200
206
  - !ruby/object:Gem::Dependency
201
207
  name: reverse_markdown
202
208
  requirement: !ruby/object:Gem::Requirement
@@ -217,14 +223,14 @@ dependencies:
217
223
  requirements:
218
224
  - - "~>"
219
225
  - !ruby/object:Gem::Version
220
- version: '1.38'
226
+ version: '1.76'
221
227
  type: :runtime
222
228
  prerelease: false
223
229
  version_requirements: !ruby/object:Gem::Requirement
224
230
  requirements:
225
231
  - - "~>"
226
232
  - !ruby/object:Gem::Version
227
- version: '1.38'
233
+ version: '1.76'
228
234
  - !ruby/object:Gem::Dependency
229
235
  name: thor
230
236
  requirement: !ruby/object:Gem::Requirement
@@ -287,6 +293,20 @@ dependencies:
287
293
  - - "~>"
288
294
  - !ruby/object:Gem::Version
289
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'
290
310
  - !ruby/object:Gem::Dependency
291
311
  name: pry
292
312
  requirement: !ruby/object:Gem::Requirement
@@ -343,20 +363,104 @@ dependencies:
343
363
  - - "~>"
344
364
  - !ruby/object:Gem::Version
345
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'
346
408
  - !ruby/object:Gem::Dependency
347
409
  name: simplecov
348
410
  requirement: !ruby/object:Gem::Requirement
349
411
  requirements:
350
412
  - - "~>"
351
413
  - !ruby/object:Gem::Version
352
- 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
353
457
  type: :development
354
458
  prerelease: false
355
459
  version_requirements: !ruby/object:Gem::Requirement
356
460
  requirements:
357
461
  - - "~>"
358
462
  - !ruby/object:Gem::Version
359
- version: '0.14'
463
+ version: 0.68.0
360
464
  - !ruby/object:Gem::Dependency
361
465
  name: webmock
362
466
  requirement: !ruby/object:Gem::Requirement
@@ -393,11 +497,15 @@ extensions: []
393
497
  extra_rdoc_files: []
394
498
  files:
395
499
  - ".github/FUNDING.yml"
500
+ - ".github/workflows/linting.yml"
396
501
  - ".github/workflows/plugins.yml"
397
502
  - ".github/workflows/rspec.yml"
398
503
  - ".github/workflows/typecheck.yml"
399
504
  - ".gitignore"
505
+ - ".overcommit.yml"
400
506
  - ".rspec"
507
+ - ".rubocop.yml"
508
+ - ".rubocop_todo.yml"
401
509
  - ".yardopts"
402
510
  - CHANGELOG.md
403
511
  - Gemfile
@@ -406,10 +514,10 @@ files:
406
514
  - Rakefile
407
515
  - SPONSORS.md
408
516
  - bin/solargraph
409
- - lib/.rubocop.yml
410
517
  - lib/solargraph.rb
411
518
  - lib/solargraph/api_map.rb
412
519
  - lib/solargraph/api_map/cache.rb
520
+ - lib/solargraph/api_map/constants.rb
413
521
  - lib/solargraph/api_map/index.rb
414
522
  - lib/solargraph/api_map/source_to_yard.rb
415
523
  - lib/solargraph/api_map/store.rb
@@ -418,7 +526,11 @@ files:
418
526
  - lib/solargraph/complex_type/type_methods.rb
419
527
  - lib/solargraph/complex_type/unique_type.rb
420
528
  - lib/solargraph/convention.rb
529
+ - lib/solargraph/convention/active_support_concern.rb
421
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
422
534
  - lib/solargraph/convention/gemfile.rb
423
535
  - lib/solargraph/convention/gemspec.rb
424
536
  - lib/solargraph/convention/rakefile.rb
@@ -634,6 +746,7 @@ files:
634
746
  - lib/solargraph/views/search.erb
635
747
  - lib/solargraph/workspace.rb
636
748
  - lib/solargraph/workspace/config.rb
749
+ - lib/solargraph/workspace/require_paths.rb
637
750
  - lib/solargraph/yard_map.rb
638
751
  - lib/solargraph/yard_map/cache.rb
639
752
  - lib/solargraph/yard_map/helpers.rb
@@ -646,6 +759,10 @@ files:
646
759
  - lib/solargraph/yardoc.rb
647
760
  - rbs/fills/tuple.rbs
648
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
649
766
  - solargraph.gemspec
650
767
  homepage: https://solargraph.org
651
768
  licenses:
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