solargraph 0.55.4 → 0.55.5

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 (52) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/plugins.yml +2 -0
  3. data/.github/workflows/typecheck.yml +2 -0
  4. data/.gitignore +2 -0
  5. data/CHANGELOG.md +3 -0
  6. data/README.md +13 -3
  7. data/lib/solargraph/api_map/index.rb +23 -15
  8. data/lib/solargraph/api_map/store.rb +2 -1
  9. data/lib/solargraph/api_map.rb +53 -27
  10. data/lib/solargraph/complex_type/type_methods.rb +5 -1
  11. data/lib/solargraph/complex_type/unique_type.rb +7 -0
  12. data/lib/solargraph/convention/base.rb +3 -3
  13. data/lib/solargraph/convention.rb +3 -3
  14. data/lib/solargraph/doc_map.rb +189 -43
  15. data/lib/solargraph/gem_pins.rb +53 -38
  16. data/lib/solargraph/language_server/host.rb +9 -1
  17. data/lib/solargraph/language_server/message/extended/check_gem_version.rb +1 -0
  18. data/lib/solargraph/language_server/message/extended/document.rb +5 -2
  19. data/lib/solargraph/language_server/message/extended/document_gems.rb +3 -3
  20. data/lib/solargraph/library.rb +7 -4
  21. data/lib/solargraph/location.rb +13 -0
  22. data/lib/solargraph/parser/parser_gem/class_methods.rb +5 -8
  23. data/lib/solargraph/parser/parser_gem/node_processors/casgn_node.rb +2 -2
  24. data/lib/solargraph/parser/parser_gem/node_processors/namespace_node.rb +2 -2
  25. data/lib/solargraph/pin/base.rb +268 -24
  26. data/lib/solargraph/pin/base_variable.rb +9 -8
  27. data/lib/solargraph/pin/callable.rb +69 -0
  28. data/lib/solargraph/pin/closure.rb +12 -0
  29. data/lib/solargraph/pin/local_variable.rb +8 -5
  30. data/lib/solargraph/pin/method.rb +134 -17
  31. data/lib/solargraph/pin/parameter.rb +43 -6
  32. data/lib/solargraph/pin/signature.rb +38 -0
  33. data/lib/solargraph/pin_cache.rb +185 -0
  34. data/lib/solargraph/position.rb +9 -0
  35. data/lib/solargraph/range.rb +9 -0
  36. data/lib/solargraph/rbs_map/conversions.rb +19 -8
  37. data/lib/solargraph/rbs_map/core_map.rb +31 -9
  38. data/lib/solargraph/rbs_map/stdlib_map.rb +15 -5
  39. data/lib/solargraph/rbs_map.rb +74 -17
  40. data/lib/solargraph/shell.rb +11 -15
  41. data/lib/solargraph/source_map.rb +0 -17
  42. data/lib/solargraph/version.rb +1 -1
  43. data/lib/solargraph/views/_method.erb +10 -10
  44. data/lib/solargraph/views/_namespace.erb +3 -3
  45. data/lib/solargraph/views/document.erb +10 -10
  46. data/lib/solargraph/workspace.rb +15 -5
  47. data/lib/solargraph/yardoc.rb +3 -11
  48. data/lib/solargraph.rb +10 -12
  49. data/rbs_collection.yaml +19 -0
  50. data/solargraph.gemspec +1 -0
  51. metadata +19 -7
  52. data/lib/solargraph/cache.rb +0 -77
data/solargraph.gemspec CHANGED
@@ -34,6 +34,7 @@ Gem::Specification.new do |s|
34
34
  s.add_runtime_dependency 'observer', '~> 0.1'
35
35
  s.add_runtime_dependency 'ostruct', '~> 0.6'
36
36
  s.add_runtime_dependency 'parser', '~> 3.0'
37
+ s.add_runtime_dependency 'prism', '~> 1.4'
37
38
  s.add_runtime_dependency 'rbs', '~> 3.3'
38
39
  s.add_runtime_dependency 'reverse_markdown', '~> 3.0'
39
40
  s.add_runtime_dependency 'rubocop', '~> 1.38'
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.55.4
4
+ version: 0.55.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fred Snyder
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2025-06-27 00:00:00.000000000 Z
10
+ date: 2025-07-01 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: backport
@@ -170,6 +169,20 @@ dependencies:
170
169
  - - "~>"
171
170
  - !ruby/object:Gem::Version
172
171
  version: '3.0'
172
+ - !ruby/object:Gem::Dependency
173
+ name: prism
174
+ requirement: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - "~>"
177
+ - !ruby/object:Gem::Version
178
+ version: '1.4'
179
+ type: :runtime
180
+ prerelease: false
181
+ version_requirements: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - "~>"
184
+ - !ruby/object:Gem::Version
185
+ version: '1.4'
173
186
  - !ruby/object:Gem::Dependency
174
187
  name: rbs
175
188
  requirement: !ruby/object:Gem::Requirement
@@ -401,7 +414,6 @@ files:
401
414
  - lib/solargraph/api_map/source_to_yard.rb
402
415
  - lib/solargraph/api_map/store.rb
403
416
  - lib/solargraph/bench.rb
404
- - lib/solargraph/cache.rb
405
417
  - lib/solargraph/complex_type.rb
406
418
  - lib/solargraph/complex_type/type_methods.rb
407
419
  - lib/solargraph/complex_type/unique_type.rb
@@ -568,6 +580,7 @@ files:
568
580
  - lib/solargraph/pin/symbol.rb
569
581
  - lib/solargraph/pin/until.rb
570
582
  - lib/solargraph/pin/while.rb
583
+ - lib/solargraph/pin_cache.rb
571
584
  - lib/solargraph/position.rb
572
585
  - lib/solargraph/range.rb
573
586
  - lib/solargraph/rbs_map.rb
@@ -632,6 +645,7 @@ files:
632
645
  - lib/solargraph/yard_tags.rb
633
646
  - lib/solargraph/yardoc.rb
634
647
  - rbs/fills/tuple.rbs
648
+ - rbs_collection.yaml
635
649
  - solargraph.gemspec
636
650
  homepage: https://solargraph.org
637
651
  licenses:
@@ -641,7 +655,6 @@ metadata:
641
655
  bug_tracker_uri: https://github.com/castwide/solargraph/issues
642
656
  changelog_uri: https://github.com/castwide/solargraph/blob/master/CHANGELOG.md
643
657
  source_code_uri: https://github.com/castwide/solargraph
644
- post_install_message:
645
658
  rdoc_options: []
646
659
  require_paths:
647
660
  - lib
@@ -656,8 +669,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
656
669
  - !ruby/object:Gem::Version
657
670
  version: '0'
658
671
  requirements: []
659
- rubygems_version: 3.5.22
660
- signing_key:
672
+ rubygems_version: 3.6.7
661
673
  specification_version: 4
662
674
  summary: A Ruby language server
663
675
  test_files: []
@@ -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