class TypeProf::LSP::Server
Attributes
              open_texts[R]
            
            
              root_uri[RW]
            
            
              running_requests_from_client[R]
            
            
              signature_enabled[RW]
            
            
              sigs[R]
            
            
              typeprof_config[R]
            
            Public Class Methods
                              new(config, reader, writer)
                              click to toggle source
                            
                            # File typeprof-0.21.3/lib/typeprof/lsp.rb, line 835 def initialize(config, reader, writer) @typeprof_config = config @reader = reader @writer = writer @tx_mutex = Mutex.new @request_id = 0 @running_requests_from_client = {} @running_requests_from_server = {} @open_texts = {} @sigs = {} # tmp @signature_enabled = true end
Public Instance Methods
                              exclusive_write(**json)
                              click to toggle source
                            
                            # File typeprof-0.21.3/lib/typeprof/lsp.rb, line 881 def exclusive_write(**json) @tx_mutex.synchronize do @writer.write(**json) end end
                              run()
                              click to toggle source
                            
                            # File typeprof-0.21.3/lib/typeprof/lsp.rb, line 851 def run @reader.read do |json| if json[:method] # request or notification msg = Message.find(json[:method]).new(self, json) @running_requests_from_client[json[:id]] = msg if json[:id] msg.run else callback = @running_requests_from_server.delete(json[:id]) callback&.call(json[:params]) end end rescue Exit end
                              send_notification(method, params = nil)
                              click to toggle source
                            
                            # File typeprof-0.21.3/lib/typeprof/lsp.rb, line 871 def send_notification(method, params = nil) exclusive_write(method: method, params: params) end
                              send_request(method, **params, &blk)
                              click to toggle source
                            
                            # File typeprof-0.21.3/lib/typeprof/lsp.rb, line 875 def send_request(method, **params, &blk) id = @request_id += 1 @running_requests_from_server[id] = blk exclusive_write(id: id, method: method, params: params) end
                              send_response(**msg)
                              click to toggle source
                            
                            # File typeprof-0.21.3/lib/typeprof/lsp.rb, line 866 def send_response(**msg) @running_requests_from_client.delete(msg[:id]) exclusive_write(**msg) end