Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
00eb93c
Add PinCache: unified gem pin caching engine
apiology Aug 2, 2026
1b0e740
Wire PinCache into DocMap, ApiMap, Workspace, and Library
apiology Aug 2, 2026
1731f09
Update CLI cache/uncache/gems to use PinCache via Workspace
apiology Aug 2, 2026
8ac4062
Widen time_limit_seconds margins after a near-miss in CI
apiology Aug 2, 2026
dca3690
Fix gem_pins_spec.rb to use the renamed DocMap#cache_doc_map_gems!
apiology Aug 2, 2026
2d45fa5
Fix Pin::Method#== and Pin::Parameter#type_arity_decl overload bugs
apiology Aug 4, 2026
8495f53
Fix Gemspecs#resolve_require double-prefixing lib/ before find_by_path
apiology Aug 5, 2026
44cbfe1
Give stdlib-resolved gems a fallback for an uncached combined pin
apiology Aug 21, 2026
27ba6dc
Queue a fallback-answered gemspec for its real combined cache too
apiology Aug 21, 2026
24fa7be
Address review: retag sg-ignore, move timeout tags to a new PR
apiology Aug 25, 2026
046db57
Fix build_docs test to actually stub the checked method
apiology Aug 26, 2026
c89290e
Add specs for Workspace#gemfile? and cache core CLI path
apiology Aug 26, 2026
b5dcfb9
Merge remote-tracking branch 'origin/master' into pin-caching-3-pinca…
apiology Sep 1, 2026
f3e5822
Cover gems rescue clauses in shell_spec
apiology Sep 1, 2026
e89a895
Merge remote-tracking branch 'apiology/pin-caching-3-pincache-core' i…
apiology Sep 1, 2026
3c3d60b
Merge master into pin-caching-3-pincache-core
apiology Sep 2, 2026
c2a4246
Cover PinCache.uncache_by_prefix and .exist?
apiology Sep 1, 2026
743b69e
Delete unreachable rbs_pin nil branch in combine
apiology Sep 4, 2026
59e0f7a
Take implicit_nil as a keyword argument
apiology Sep 5, 2026
ca0d554
Move the file local down to its only use
apiology Sep 5, 2026
ad549c1
Merge remote-tracking branch 'apiology/pin-caching-3-pincache-core' i…
apiology Sep 5, 2026
379453a
Key type_arity on rooted tags
apiology Sep 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 4 additions & 14 deletions lib/solargraph/api_map.rb
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ def catalog bench
recreate_docmap = @unresolved_requires != unresolved_requires ||
# @sg-ignore Unresolved call to rbs_collection_path on Solargraph::Workspace, nil
workspace.rbs_collection_path != bench.workspace.rbs_collection_path ||
@doc_map.uncached_gemspecs.any?
@doc_map.any_uncached?

if recreate_docmap
@doc_map = DocMap.new(unresolved_requires, bench.workspace, out: nil) # @todo Implement gem preferences
Expand Down Expand Up @@ -170,16 +170,6 @@ def uncached_gemspecs
doc_map.uncached_gemspecs || []
end

# @return [::Array<Gem::Specification>]
def uncached_rbs_collection_gemspecs
@doc_map.uncached_rbs_collection_gemspecs
end

# @return [::Array<Gem::Specification>]
def uncached_yard_gemspecs
@doc_map.uncached_yard_gemspecs
end

# @return [Enumerable<Pin::Base>]
def core_pins
@@core_map.pins
Expand Down Expand Up @@ -241,7 +231,7 @@ def self.load directory, loose_unions: true
# @param rebuild [Boolean] whether to rebuild the pins even if they are cached
# @return [void]
def cache_all_for_doc_map! out: $stderr, rebuild: false
doc_map.cache_all!(out, rebuild: rebuild)
doc_map.cache_doc_map_gems!(out, rebuild: rebuild)
end

# @param gemspec [Gem::Specification]
Expand Down Expand Up @@ -750,10 +740,10 @@ def resolve_method_aliases pins, visibility = %i[public private protected]
logger.debug do
"ApiMap#resolve_method_aliases(pins=#{pins.map(&:name)}, visibility=#{visibility}) => #{with_resolved_aliases.map(&:name)}"
end
with_resolved_aliases
GemPins.combine_method_pins_by_path(with_resolved_aliases)
end

# @return [Workspace, nil]
# @return [Workspace]
def workspace
doc_map.workspace
end
Expand Down
Loading
Loading