From 444f4ebe9de8aa68afdf8d39b734a8543b9b5c4b Mon Sep 17 00:00:00 2001 From: sigoden Date: Thu, 2 Nov 2023 09:53:54 +0800 Subject: refactor: improve code quanity (#196) - rewrite Repl, remove ReplHandler - move ReplyStreamHandler to repl/ and rename it to ReplyHandler - deprecate utils::print_now - refactor session info --- src/render/cmd.rs | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'src/render/cmd.rs') diff --git a/src/render/cmd.rs b/src/render/cmd.rs index 115170b..e09bd71 100644 --- a/src/render/cmd.rs +++ b/src/render/cmd.rs @@ -1,7 +1,6 @@ -use super::MarkdownRender; +use super::{MarkdownRender, ReplyEvent}; -use crate::print_now; -use crate::repl::{ReplyStreamEvent, SharedAbortSignal}; +use crate::repl::AbortSignal; use crate::utils::{spaces, split_line_sematic, split_line_tail}; use anyhow::Result; @@ -9,9 +8,9 @@ use crossbeam::channel::Receiver; use textwrap::core::display_width; pub fn cmd_render_stream( - rx: &Receiver, + rx: &Receiver, render: &mut MarkdownRender, - abort: &SharedAbortSignal, + abort: &AbortSignal, ) -> Result<()> { let mut buffer = String::new(); let mut col = 0; @@ -21,14 +20,14 @@ pub fn cmd_render_stream( } if let Ok(evt) = rx.try_recv() { match evt { - ReplyStreamEvent::Text(text) => { + ReplyEvent::Text(text) => { if text.contains('\n') { let text = format!("{buffer}{text}"); let (head, tail) = split_line_tail(&text); buffer = tail.to_string(); let input = format!("{}{head}", spaces(col)); let output = render.render(&input); - print_now!("{}\n", &output[col..]); + println!("{}", &output[col..]); col = 0; } else { buffer = format!("{buffer}{text}"); @@ -51,14 +50,14 @@ pub fn cmd_render_stream( col += display_width(output); } } - print_now!("{}", output); + print!("{}", output); } } } } - ReplyStreamEvent::Done => { + ReplyEvent::Done => { let input = format!("{}{buffer}", spaces(col)); - print_now!("{}\n", render.render(&input)); + println!("{}", render.render(&input)); break; } } -- cgit v1.2.3