class Standard::Lsp::Server

def initialize(config)

def initialize(config)
  @writer = Proto::Transport::Io::Writer.new($stdout)
  @reader = Proto::Transport::Io::Reader.new($stdin)
  @logger = Logger.new
  @standardizer = Standard::Lsp::Standardizer.new(config)
  @routes = Routes.new(@writer, @logger, @standardizer)
end

def start

def start
  RuboCop::LSP.enable
  @reader.read do |request|
    if !request.key?(:method)
      @routes.handle_method_missing(request)
    elsif (route = @routes.for(request[:method]))
      route.call(request)
    else
      @routes.handle_unsupported_method(request)
    end
  rescue => e
    @logger.puts "Error #{e.class} #{e.message[0..100]}"
    @logger.puts e.backtrace.inspect
  end
end