diff options
| author | sigoden <sigoden@gmail.com> | 2023-03-11 18:53:36 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-11 18:53:36 +0800 |
| commit | cfb6ce6958751da5e13683ea07f42a5dbc4eae01 (patch) | |
| tree | c7ec60ba7c1d2e37225ae6b1476057a18e2eb987 /src/render/repl.rs | |
| parent | dc09cb38d480342c9fe781a19fe72d2bb892b70c (diff) | |
| download | aichat-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.rs | 11 |
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() { |
