class Steep::Server::WorkerProcess
def self.spawn_worker(type, name:, steepfile:)
def self.spawn_worker(type, name:, steepfile:) log_level = %w(debug info warn error fatal unknown)[Steep.logger.level] command = case type when :code ["steep", "worker", "--code", "--name=#{name}", "--log-level=#{log_level}", "--steepfile=#{steepfile}"] when :signature ["steep", "worker", "--signature", "--name=#{name}", "--log-level=#{log_level}", "--steepfile=#{steepfile}"] when :interaction ["steep", "worker", "--interaction", "--name=#{name}", "--log-level=#{log_level}", "--steepfile=#{steepfile}"] else raise end stdin, stdout, thread = Open3.popen2(*command, pgroup: true) stderr = nil writer = LanguageServer::Protocol::Transport::Io::Writer.new(stdin) reader = LanguageServer::Protocol::Transport::Io::Reader.new(stdout) new(reader: reader, writer: writer, stderr: stderr, wait_thread: thread) end