summaryrefslogtreecommitdiffstats
path: root/src/render/repl.rs
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2023-03-11 18:53:36 +0800
committerGitHub <noreply@github.com>2023-03-11 18:53:36 +0800
commitcfb6ce6958751da5e13683ea07f42a5dbc4eae01 (patch)
treec7ec60ba7c1d2e37225ae6b1476057a18e2eb987 /src/render/repl.rs
parentdc09cb38d480342c9fe781a19fe72d2bb892b70c (diff)
downloadaichat-cfb6ce6958751da5e13683ea07f42a5dbc4eae01.tar.gz
feat: support light theme (#65)
There are two ways to enable the light theme: - add `light_theme: true` to config.yaml - use `AICHAT_LIGHT_THEME=true` env var
Diffstat (limited to 'src/render/repl.rs')
-rw-r--r--src/render/repl.rs11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/render/repl.rs b/src/render/repl.rs
index d7ccbc1..04dee73 100644
--- a/src/render/repl.rs
+++ b/src/render/repl.rs
@@ -16,11 +16,15 @@ use std::{
};
use unicode_width::UnicodeWidthStr;
-pub fn repl_render_stream(rx: Receiver<ReplyStreamEvent>, abort: SharedAbortSignal) -> Result<()> {
+pub fn repl_render_stream(
+ rx: Receiver<ReplyStreamEvent>,
+ light_theme: bool,
+ abort: SharedAbortSignal,
+) -> Result<()> {
enable_raw_mode()?;
let mut stdout = io::stdout();
- let ret = repl_render_stream_inner(rx, abort, &mut stdout);
+ let ret = repl_render_stream_inner(rx, light_theme, abort, &mut stdout);
disable_raw_mode()?;
@@ -29,13 +33,14 @@ pub fn repl_render_stream(rx: Receiver<ReplyStreamEvent>, abort: SharedAbortSign
fn repl_render_stream_inner(
rx: Receiver<ReplyStreamEvent>,
+ light_theme: bool,
abort: SharedAbortSignal,
writer: &mut Stdout,
) -> Result<()> {
let mut last_tick = Instant::now();
let tick_rate = Duration::from_millis(100);
let mut buffer = String::new();
- let mut markdown_render = MarkdownRender::new();
+ let mut markdown_render = MarkdownRender::new(light_theme);
let terminal_columns = terminal::size()?.0;
loop {
if abort.aborted() {