diff options
| author | sigoden <sigoden@gmail.com> | 2023-05-04 22:42:50 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-04 22:42:50 +0800 |
| commit | 00ce1575715329a21726a506b13c0c2aef7f3f82 (patch) | |
| tree | 766da2bf873b8f37936e1f5a385fc19d191bc193 /src/repl/handler.rs | |
| parent | cf03952c7bd44a3ad94a675b846cdfafb2af1c75 (diff) | |
| download | aichat-00ce1575715329a21726a506b13c0c2aef7f3f82.tar.gz | |
feat: add `.copy` command (#119)
Diffstat (limited to 'src/repl/handler.rs')
| -rw-r--r-- | src/repl/handler.rs | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/repl/handler.rs b/src/repl/handler.rs index c38f607..495413c 100644 --- a/src/repl/handler.rs +++ b/src/repl/handler.rs @@ -2,6 +2,7 @@ use crate::client::ChatGptClient; use crate::config::SharedConfig; use crate::print_now; use crate::render::render_stream; +use crate::utils::copy; use super::abort::SharedAbortSignal; @@ -20,6 +21,7 @@ pub enum ReplCmd { ViewInfo, StartConversation, EndConversatoin, + Copy, } pub struct ReplCmdHandler { @@ -64,7 +66,9 @@ impl ReplCmdHandler { wg.wait(); let buffer = ret?; self.config.read().save_message(&input, &buffer)?; - let _ = self.config.read().copy_message(&buffer); + if self.config.read().auto_copy { + let _ = copy(&buffer); + } self.config.write().save_conversation(&input, &buffer)?; *self.reply.borrow_mut() = buffer; } @@ -100,6 +104,10 @@ impl ReplCmdHandler { self.config.write().end_conversation(); print_now!("\n"); } + ReplCmd::Copy => { + copy(&self.reply.borrow()).with_context(|| "Failed to copy the last output")?; + print_now!("\n"); + } } Ok(()) } |
