class Steep::Server::InteractionWorker
def handle_request(request)
def handle_request(request) case request[:method] when "initialize" # nop when "textDocument/didChange" update_source(request) when "textDocument/hover" id = request[:id] uri = URI.parse(request[:params][:textDocument][:uri]) path = project.relative_path(Pathname(uri.path)) line = request[:params][:position][:line] column = request[:params][:position][:character] queue << { id: id, result: response_to_hover(path: path, line: line, column: column) } when "textDocument/completion" id = request[:id] params = request[:params] uri = URI.parse(params[:textDocument][:uri]) path = project.relative_path(Pathname(uri.path)) line, column = params[:position].yield_self {|hash| [hash[:line]+1, hash[:character]] } trigger = params[:context][:triggerCharacter] queue << { id: id, result: response_to_completion(path: path, line: line, column: column, trigger: trigger) } end end