Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Because of the memoized
client
method, we had a race condition. Every time someone hovered over something while the runner was still booting it would try to boot another server, since the@client
variable was not yet set.This PR changes the way we use client to begin initializing it with a
NullClient
. That way, features that depend on the client like hover continue to operate normally.On
activate
, we spawn a thread that will initialize the real client concurrently. Once the thread finishes, then subsequent requests will get the information coming from the real server, without blocking any hover requests during the process.We also need to bump the requirement on
ruby-lsp
to get Shopify/ruby-lsp#1400 or else theinitialize
method is not invoked properly.