Skip to content

Commit 9a94247

Browse files
committed
Make instanec of RunnerClient accessible for addons
1 parent 4730303 commit 9a94247

File tree

1 file changed

+24
-3
lines changed

1 file changed

+24
-3
lines changed

lib/ruby_lsp/ruby_lsp_rails/runner_client.rb

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,29 @@
77
module RubyLsp
88
module Rails
99
class RunnerClient
10+
@instance = T.let(nil, T.nilable(RunnerClient))
11+
1012
class << self
1113
extend T::Sig
1214

15+
sig { returns(T.nilable(RunnerClient)) }
16+
attr_reader :instance
17+
1318
sig { returns(RunnerClient) }
1419
def create_client
1520
if File.exist?("bin/rails")
16-
new
21+
@instance = new
1722
else
1823
$stderr.puts(<<~MSG)
1924
Ruby LSP Rails failed to locate bin/rails in the current directory: #{Dir.pwd}"
2025
MSG
2126
$stderr.puts("Server dependent features will not be available")
22-
NullClient.new
27+
@instance = NullClient.new
2328
end
2429
rescue Errno::ENOENT, StandardError => e # rubocop:disable Lint/ShadowedException
2530
$stderr.puts("Ruby LSP Rails failed to initialize server: #{e.message}\n#{e.backtrace&.join("\n")}")
2631
$stderr.puts("Server dependent features will not be available")
27-
NullClient.new
32+
@instance = NullClient.new
2833
end
2934
end
3035

@@ -169,6 +174,22 @@ def stopped?
169174
[@stdin, @stdout, @stderr].all?(&:closed?) && !@wait_thread.alive?
170175
end
171176

177+
sig do
178+
params(
179+
server_addon_name: String,
180+
request_name: String,
181+
params: T.nilable(T::Hash[Symbol, T.untyped])
182+
).returns(T.nilable(T::Hash[Symbol, T.untyped]))
183+
end
184+
def make_addon_request(server_addon_name, request_name, **params)
185+
make_request(
186+
"server_addon/delegate",
187+
server_addon_name:,
188+
request_name:,
189+
**params
190+
)
191+
end
192+
172193
sig do
173194
params(
174195
request: String,

0 commit comments

Comments
 (0)