solargraph 0.55.5 → 0.56.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9e015963ad868b3671d88892483ec3c06a3e7c96757f2013ba56c514af35eb0e
4
- data.tar.gz: 22a6383d6f179ec708a930fbf8cb81bea8cbbee694de559f43208c859240a0cd
3
+ metadata.gz: 6f8c351394fab745041193e5d33cd582f0131e6d0f2d30f210767bd273376f24
4
+ data.tar.gz: 9d7a3c46740bd9fa040190d00f0e17cab638bde681da5998337dd41e6a924ff6
5
5
  SHA512:
6
- metadata.gz: cd7b151efc8a584829cdc5c4424c81dd3703dd22f8287c8edfcfc32d65b8409e8be9d8354ed5369c6fa0955cc1ccd534014f6782aa71ca7b0a89c5df8a0d9b06
7
- data.tar.gz: 818390cee111c7948e40904e1eb48dd407dd8f15045a29b96881e6bb520022438d9fca6a7ec678dbc6d793f74b3bcdaf17d4b152e86bb5b1f563f1703423a7ed
6
+ metadata.gz: 0fefbe369014891f339463c19a198ab0b9c1d918fb70662b496d90f79871e7ab03d3b4e7bf853fee19f7bbd467817690b29e506ca340518156667e986685c92e
7
+ data.tar.gz: e92af09e57129e47e6c4b685642460c514bc7c26a015f93c7eb81d917b12717cfac0621181fc36dcc481770ce6b3d93a611f5acd5aee64b1730c8dde4b63b949
data/CHANGELOG.md CHANGED
@@ -1,4 +1,18 @@
1
+ ## 0.56.0 - July 1, 2025
2
+ - [regression] Gem caching perf and logging fixes #983
3
+
1
4
  ## 0.55.5 - July 1, 2025
5
+ - Flatten results of DocMap external bundle query (#981)
6
+ - [breaking] Reimplement global conventions (#877)
7
+ - GemPins pin merging improvements (#946)
8
+ - Support class-scoped aliases and attributes from RBS (#952)
9
+ - Restructure ComplexType specs towards YARD doc compliance (#969)
10
+ - Use Prism (#974)
11
+ - Document pages (#977)
12
+ - Enable disabled-but-working specs (#978)
13
+ - Map RBS 'untyped' type (RBS::Types::Bases::Any) to 'undefined' (#979)
14
+ - Re-enable support for .gem_rbs_collection directories (#942)
15
+ - [breaking] Comply with YARD documentation on Hash tag format (#968)
2
16
  - Ignore directory paths in Workspace#would_require? (#988)
3
17
 
4
18
  ## 0.55.4 - June 27, 2025
@@ -90,9 +90,16 @@ module Solargraph
90
90
 
91
91
  # @param gemspec [Gem::Specification]
92
92
  def cache(gemspec, rebuild: false, out: nil)
93
- out.puts("Caching pins for gem #{gemspec.name}:#{gemspec.version}") if out
94
- cache_yard_pins(gemspec, out) if uncached_yard_gemspecs.include?(gemspec) || rebuild
95
- cache_rbs_collection_pins(gemspec, out) if uncached_rbs_collection_gemspecs.include?(gemspec) || rebuild
93
+ build_yard = uncached_yard_gemspecs.include?(gemspec) || rebuild
94
+ build_rbs_collection = uncached_rbs_collection_gemspecs.include?(gemspec) || rebuild
95
+ if build_yard || build_rbs_collection
96
+ type = []
97
+ type << 'YARD' if build_yard
98
+ type << 'RBS collection' if build_rbs_collection
99
+ out.puts("Caching #{type.join(' and ')} pins for gem #{gemspec.name}:#{gemspec.version}") if out
100
+ end
101
+ cache_yard_pins(gemspec, out) if build_yard
102
+ cache_rbs_collection_pins(gemspec, out) if build_rbs_collection
96
103
  end
97
104
 
98
105
  # @return [Array<Gem::Specification>]
@@ -121,10 +128,14 @@ module Solargraph
121
128
  self.class.all_rbs_collection_gems_in_memory[rbs_collection_path] ||= {}
122
129
  end
123
130
 
124
- def combined_pins_in_memory
131
+ def self.all_combined_pins_in_memory
125
132
  @combined_pins_in_memory ||= {}
126
133
  end
127
134
 
135
+ def combined_pins_in_memory
136
+ self.class.all_combined_pins_in_memory
137
+ end
138
+
128
139
  # @return [Set<Gem::Specification>]
129
140
  def dependencies
130
141
  @dependencies ||= (gemspecs.flat_map { |spec| fetch_dependencies(spec) } - gemspecs).to_set
@@ -587,7 +587,7 @@ module Solargraph
587
587
 
588
588
  # @return [void]
589
589
  def cache_next_gemspec
590
- return if @cache_progres
590
+ return if @cache_progress
591
591
  spec = (api_map.uncached_yard_gemspecs + api_map.uncached_rbs_collection_gemspecs).
592
592
  find { |spec| !cache_errors.include?(spec) }
593
593
  return end_cache_progress unless spec
@@ -137,15 +137,18 @@ module Solargraph
137
137
  # @param names [Array<String>]
138
138
  # @return [void]
139
139
  def gems *names
140
+ api_map = ApiMap.load('.')
140
141
  if names.empty?
141
- Gem::Specification.to_a.each { |spec| do_cache spec }
142
+ Gem::Specification.to_a.each { |spec| do_cache spec, api_map }
143
+ STDERR.puts "Documentation cached for all #{Gem::Specification.count} gems."
142
144
  else
143
145
  names.each do |name|
144
146
  spec = Gem::Specification.find_by_name(*name.split('='))
145
- do_cache spec
147
+ do_cache spec, api_map
146
148
  rescue Gem::MissingSpecError
147
149
  warn "Gem '#{name}' not found"
148
150
  end
151
+ STDERR.puts "Documentation cached for #{names.count} gems."
149
152
  end
150
153
  end
151
154
 
@@ -256,8 +259,7 @@ module Solargraph
256
259
 
257
260
  # @param gemspec [Gem::Specification]
258
261
  # @return [void]
259
- def do_cache gemspec
260
- api_map = ApiMap.load('.')
262
+ def do_cache gemspec, api_map
261
263
  # @todo if the rebuild: option is passed as a positional arg,
262
264
  # typecheck doesn't complain on the below line
263
265
  api_map.cache_gem(gemspec, rebuild: options.rebuild, out: $stdout)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Solargraph
4
- VERSION = '0.55.5'
4
+ VERSION = '0.56.0'
5
5
  end
@@ -30,6 +30,11 @@ module Solargraph
30
30
  File.exist?(yardoc)
31
31
  end
32
32
 
33
+ def processing?(gemspec)
34
+ yardoc = File.join(PinCache.yardoc_path(gemspec), 'processing')
35
+ File.exist?(yardoc)
36
+ end
37
+
33
38
  # Load a gem's yardoc and return its code objects.
34
39
  #
35
40
  # @note This method modifies the global YARD registry.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solargraph
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.55.5
4
+ version: 0.56.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fred Snyder