From 97ce9f88ac5e5f5880c6c2edea8a05e42b7fc991 Mon Sep 17 00:00:00 2001 From: Hanno Braun Date: Wed, 11 Dec 2024 20:55:46 +0100 Subject: [PATCH] Prepare to support nested operations --- experiments/2024-12-09/src/render/text.rs | 7 ++++++- experiments/2024-12-09/src/ui.rs | 5 +++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/experiments/2024-12-09/src/render/text.rs b/experiments/2024-12-09/src/render/text.rs index ae2b8db99..9ae93d11f 100644 --- a/experiments/2024-12-09/src/render/text.rs +++ b/experiments/2024-12-09/src/render/text.rs @@ -78,7 +78,7 @@ impl TextRenderer { }, ); - for (op, selected) in operations.operations().into_iter() { + for (op, selected, indent) in operations.operations().into_iter() { let mut attrs = glyphon::Attrs::new(); if selected { @@ -86,6 +86,11 @@ impl TextRenderer { } let mut line = String::new(); + + for _ in 0..indent { + write!(line, "\t")?; + } + write!(line, "{op}")?; buffer.lines.push(glyphon::BufferLine::new( diff --git a/experiments/2024-12-09/src/ui.rs b/experiments/2024-12-09/src/ui.rs index 28c8c1d36..ee26eaa64 100644 --- a/experiments/2024-12-09/src/ui.rs +++ b/experiments/2024-12-09/src/ui.rs @@ -16,7 +16,7 @@ impl OperationView { } } - pub fn operations(&self) -> Vec<(Self, bool)> { + pub fn operations(&self) -> Vec<(Self, bool, usize)> { self.operation .children() .into_iter() @@ -28,6 +28,7 @@ impl OperationView { selected: None, }, Some(i) == self.selected, + 0, ) }) .collect() @@ -55,7 +56,7 @@ impl OperationView { self.operations() .into_iter() .nth(selected) - .map(|(op, _)| op) + .map(|(op, _, _)| op) }) .unwrap_or(self.clone()) }