aboutsummaryrefslogtreecommitdiffstats
path: root/src/line
diff options
context:
space:
mode:
authorJonas Maier <>2026-05-24 20:40:27 +0200
committerJonas Maier <>2026-05-24 20:40:27 +0200
commit7679654c5710d08f626f164731b9b929b93957d8 (patch)
tree5dff925ecf44517ce4b9622ab3e547dda7900758 /src/line
parent76ce59936d6d1c03ea291e6631db26339d310c19 (diff)
downloadpish-7679654c5710d08f626f164731b9b929b93957d8.tar.gz
allow highlighting to be disabled, once again
Diffstat (limited to 'src/line')
-rw-r--r--src/line/mod.rs19
1 files changed, 10 insertions, 9 deletions
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(())