Module: Solargraph::LanguageServer::Transport::Socket

Defined in:
lib/solargraph/language_server/transport/socket.rb

Overview

A module for running language servers in EventMachine.

Instance Method Summary collapse

Instance Method Details

#post_initObject



9
10
11
12
13
14
15
16
# File 'lib/solargraph/language_server/transport/socket.rb', line 9

def post_init
  @host = Solargraph::LanguageServer::Host.new
  @data_reader = Solargraph::LanguageServer::Transport::DataReader.new
  @data_reader.set_message_handler do |message|
    process message
  end
  start_timers
end

#process(request) ⇒ Object



18
19
20
21
22
23
# File 'lib/solargraph/language_server/transport/socket.rb', line 18

def process request
  message = @host.start(request)
  message.send_response
  tmp = @host.flush
  send_data tmp unless tmp.empty?
end

#receive_data(data) ⇒ Object

Parameters:

  • data (String)


26
27
28
# File 'lib/solargraph/language_server/transport/socket.rb', line 26

def receive_data data
  @data_reader.receive data
end