class Steep::Drivers::Worker
def run()
def run() Steep.logger.tagged("#{worker_type}:#{worker_name}") do project = load_config() loader = Project::FileLoader.new(project: project) loader.load_sources([]) loader.load_signatures() reader = LanguageServer::Protocol::Transport::Io::Reader.new(stdin) writer = LanguageServer::Protocol::Transport::Io::Writer.new(stdout) worker = case worker_type when :code Server::CodeWorker.new(project: project, reader: reader, writer: writer) when :signature Server::SignatureWorker.new(project: project, reader: reader, writer: writer) when :interaction Server::InteractionWorker.new(project: project, reader: reader, writer: writer) else raise "Unknown worker type: #{worker_type}" end Steep.logger.info "Starting #{worker_type} worker..." worker.run() rescue Interrupt Steep.logger.info "Shutting down by interrupt..." end 0 end