module Solargraph::LanguageServer::Transport::Adapter

A common module for running language servers in Backport.

Public Instance Methods

closing() click to toggle source
# File lib/solargraph/language_server/transport/adapter.rb, line 21
def closing
  @host.stop
end
opening() click to toggle source
# File lib/solargraph/language_server/transport/adapter.rb, line 11
def opening
  @host = Solargraph::LanguageServer::Host.new
  @host.add_observer self
  @host.start
  @data_reader = Solargraph::LanguageServer::Transport::DataReader.new
  @data_reader.set_message_handler do |message|
    process message
  end
end
receiving(data) click to toggle source

@param data [String]

# File lib/solargraph/language_server/transport/adapter.rb, line 26
def receiving data
  @data_reader.receive data
end
update() click to toggle source
# File lib/solargraph/language_server/transport/adapter.rb, line 30
def update
  if @host.stopped?
    shutdown
  else
    tmp = @host.flush
    write tmp unless tmp.empty?
  end
end

Private Instance Methods

process(request) click to toggle source

@param request [String] @return [void]

# File lib/solargraph/language_server/transport/adapter.rb, line 43
def process request
  message = @host.receive(request)
  message.send_response
  # tmp = @host.flush
  # write tmp unless tmp.empty?
end
shutdown() click to toggle source
# File lib/solargraph/language_server/transport/adapter.rb, line 50
def shutdown
  Backport.stop unless @host.options['transport'] == 'external'
end