class RuboCop::Lsp::Server

@api private
Language Server Protocol of RuboCop.

def configure(safe_autocorrect: true)

def configure(safe_autocorrect: true)
  @runtime.safe_autocorrect = safe_autocorrect
end

def format(path, text)

def format(path, text)
  @runtime.format(path, text)
end

def initialize(config_store)

def initialize(config_store)
  @reader = LanguageServer::Protocol::Transport::Io::Reader.new($stdin)
  @writer = LanguageServer::Protocol::Transport::Io::Writer.new($stdout)
  @runtime = RuboCop::Lsp::Runtime.new(config_store)
  @routes = Routes.new(self)
end

def offenses(path, text)

def offenses(path, text)
  @runtime.offenses(path, text)
end

def start

def start
  @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 StandardError => e
    Logger.log("Error #{e.class} #{e.message[0..100]}")
    Logger.log(e.backtrace.inspect)
  end
end

def stop(&block)

def stop(&block)
  at_exit(&block) if block
  exit
end

def write(response)

def write(response)
  @writer.write(response)
end