Skip to content

Commit e493dd3

Browse files
authored
Set RUBY_LSP_RAILS_RUNNER env variable on start-up (#655)
1 parent 677a7bf commit e493dd3

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

lib/ruby_lsp/ruby_lsp_rails/runner_client.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ def initialize(outgoing_queue, global_state)
6868

6969
stdin, stdout, stderr, wait_thread = Bundler.with_original_env do
7070
Open3.popen3(
71+
{ "RUBY_LSP_RAILS_RUNNER" => "true" },
7172
"bundle",
7273
"exec",
7374
"rails",

test/ruby_lsp_rails/runner_client_test.rb

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,27 @@ class RunnerClientTest < ActiveSupport::TestCase
149149
@client.delegate_request(server_addon_name: "My Add-on", request_name: "do_something", id: 5)
150150
end
151151

152+
test "RUBY_LSP_RAILS_RUNNER environment variable is accessible in spawned server process" do
153+
File.write("env_check_addon.rb", <<~RUBY)
154+
class EnvCheckAddon < RubyLsp::Rails::ServerAddon
155+
def name
156+
"EnvCheck"
157+
end
158+
159+
def execute(request, params)
160+
send_result({ env_var: ENV["RUBY_LSP_RAILS_RUNNER"] })
161+
end
162+
end
163+
RUBY
164+
165+
@client.register_server_addon(File.expand_path("env_check_addon.rb"))
166+
response = @client.delegate_request(server_addon_name: "EnvCheck", request_name: "check") #: as !nil
167+
168+
assert_equal("true", response[:env_var])
169+
ensure
170+
FileUtils.rm_f("env_check_addon.rb")
171+
end
172+
152173
test "server add-ons can log messages with the editor" do
153174
File.write("server_addon.rb", <<~RUBY)
154175
class TapiocaServerAddon < RubyLsp::Rails::ServerAddon

0 commit comments

Comments
 (0)