From 7679654c5710d08f626f164731b9b929b93957d8 Mon Sep 17 00:00:00 2001 From: Jonas Maier <> Date: Sun, 24 May 2026 20:40:27 +0200 Subject: allow highlighting to be disabled, once again --- src/lib.rs | 5 +---- src/line/mod.rs | 19 ++++++++++--------- 2 files changed, 11 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/lib.rs b/src/lib.rs index 314f12c..5b44621 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -404,6 +404,7 @@ pub fn event_loop() { 'repl: loop { let mut se = session.lock().unwrap(); + let _ = se.cohere(); let Some(key) = se.terminal_input.as_mut().unwrap().read() else { break; @@ -418,7 +419,6 @@ pub fn event_loop() { drop(se); // not sure if/how to report this error - would be strange to print something to console every time a keybind command returns nonzero exit code. let _ = run::run_quiet(session.clone(), cmd); - session.lock().unwrap().cohere().unwrap(); continue 'repl; } @@ -431,15 +431,12 @@ pub fn event_loop() { drop(se); // not sure if/how to report this error - would be strange to print something to console every time a keybind command returns nonzero exit code. let _ = run::run_quiet(session.clone(), cmd); - session.lock().unwrap().cohere().unwrap(); continue 'repl; } } } ansi::KbInput::InvalidEscape(_) => continue, } - - se.cohere().unwrap(); } session.lock().unwrap().raw_disable(); diff --git a/src/line/mod.rs b/src/line/mod.rs index 510c480..6e24f14 100644 --- a/src/line/mod.rs +++ b/src/line/mod.rs @@ -41,19 +41,20 @@ impl Line { } self.dirty = false; - // TODO this is currently needed to reprint the prompt upon modification so we can't skip it. - // if !h.enabled { - // return Ok(()); - // } + let buf = self.into_bytes(); - use crate::parse::{self, Parse}; + let highlights = if h.enabled { + use crate::parse::{self, Parse}; + let mut parser = parse::Cursor::new(&buf, parse::ParseMode::Completion); + let _ = parse::Ast::parse(&mut parser); + parser.highlights + } else { + Vec::new() + }; - let buf = self.into_bytes(); - let mut parser = parse::Cursor::new(&buf, parse::ParseMode::Completion); - let _ = parse::Ast::parse(&mut parser); let mut stdout = io::stdout().lock(); self.line_start.f_go_to(&mut stdout)?; - h.pretty_print(&buf, self.left_len(), parser.highlights, &mut stdout)?; + h.pretty_print(&buf, self.left_len(), highlights, &mut stdout)?; stdout.flush()?; Ok(()) -- cgit v1.2.3