@@ -26,23 +26,27 @@ def initialize
2626
2727 # We first initialize the client as a NullClient, so that we can start the server in a background thread. Until
2828 # the real client is initialized, features that depend on it will not be blocked by using the NullClient
29- @client = T . let ( NullClient . new , RunnerClient )
29+ @rails_runner_client = T . let ( NullClient . new , RunnerClient )
30+ @global_state = T . let ( nil , T . nilable ( GlobalState ) )
3031 end
3132
33+ sig { returns ( RunnerClient ) }
34+ attr_reader :rails_runner_client
35+
3236 sig { override . params ( global_state : GlobalState , message_queue : Thread ::Queue ) . void }
3337 def activate ( global_state , message_queue )
34- @global_state = T . let ( global_state , T . nilable ( RubyLsp :: GlobalState ) )
38+ @global_state = global_state
3539 $stderr. puts ( "Activating Ruby LSP Rails addon v#{ VERSION } " )
3640 # Start booting the real client in a background thread. Until this completes, the client will be a NullClient
37- Thread . new { @client = RunnerClient . create_client }
41+ Thread . new { @rails_runner_client = RunnerClient . create_client }
3842 register_additional_file_watchers ( global_state : global_state , message_queue : message_queue )
3943
40- T . must ( @global_state ) . index . register_enhancement ( IndexingEnhancement . new )
44+ @global_state . index . register_enhancement ( IndexingEnhancement . new )
4145 end
4246
4347 sig { override . void }
4448 def deactivate
45- @client . shutdown
49+ @rails_runner_client . shutdown
4650 end
4751
4852 # Creates a new CodeLens listener. This method is invoked on every CodeLens request
@@ -54,7 +58,7 @@ def deactivate
5458 ) . void
5559 end
5660 def create_code_lens_listener ( response_builder , uri , dispatcher )
57- CodeLens . new ( @client , T . must ( @global_state ) , response_builder , uri , dispatcher )
61+ CodeLens . new ( @rails_runner_client , T . must ( @global_state ) , response_builder , uri , dispatcher )
5862 end
5963
6064 sig do
@@ -65,7 +69,7 @@ def create_code_lens_listener(response_builder, uri, dispatcher)
6569 ) . void
6670 end
6771 def create_hover_listener ( response_builder , node_context , dispatcher )
68- Hover . new ( @client , response_builder , node_context , T . must ( @global_state ) , dispatcher )
72+ Hover . new ( @rails_runner_client , response_builder , node_context , T . must ( @global_state ) , dispatcher )
6973 end
7074
7175 sig do
@@ -90,15 +94,15 @@ def create_document_symbol_listener(response_builder, dispatcher)
9094 end
9195 def create_definition_listener ( response_builder , uri , node_context , dispatcher )
9296 index = T . must ( @global_state ) . index
93- Definition . new ( @client , response_builder , node_context , index , dispatcher )
97+ Definition . new ( @rails_runner_client , response_builder , node_context , index , dispatcher )
9498 end
9599
96100 sig { params ( changes : T ::Array [ { uri : String , type : Integer } ] ) . void }
97101 def workspace_did_change_watched_files ( changes )
98102 if changes . any? do |change |
99103 change [ :uri ] . end_with? ( "db/schema.rb" ) || change [ :uri ] . end_with? ( "structure.sql" )
100104 end
101- @client . trigger_reload
105+ @rails_runner_client . trigger_reload
102106 end
103107 end
104108
0 commit comments