diff --git a/input/src/input_dsl.rs b/input/src/input_dsl.rs index cde5a15..4575e24 100644 --- a/input/src/input_dsl.rs +++ b/input/src/input_dsl.rs @@ -51,19 +51,19 @@ impl<'state, S, C: DslCommand<'state, S>, I: DslInput> KeyMap<'state, S, C, I> f while let Some(next) = iter.next() { match next { Token { value: Value::Exp(0, exp_iter), .. } => { - let mut exp_iter = exp_iter.clone(); - match exp_iter.next() { + let mut e = exp_iter.clone(); + match e.next() { Some(Token { value: Value::Sym(binding), .. }) => { if input.matches_dsl(binding) { - if let Some(command) = C::try_from_expr(state, &mut exp_iter) { + if let Some(command) = C::try_from_expr(state, &mut e) { return Some(command) } } }, - _ => panic!("invalid config (expected symbol)") + _ => panic!("invalid config (expected symbol, got: {exp_iter:?})") } }, - _ => panic!("invalid config (expected expression)") + _ => panic!("invalid config (expected expression, got: {next:?})") } } None diff --git a/output/src/ops/stack.rs b/output/src/ops/stack.rs new file mode 100644 index 0000000..ba8b949 --- /dev/null +++ b/output/src/ops/stack.rs @@ -0,0 +1,18 @@ +/*Stack::down(|add|{ + let mut i = 0; + for (_, name) in self.dirs.iter() { + if i >= self.scroll { + add(&Tui::bold(i == self.index, name.as_str()))?; + } + i += 1; + } + for (_, name) in self.files.iter() { + if i >= self.scroll { + add(&Tui::bold(i == self.index, name.as_str()))?; + } + i += 1; + } + add(&format!("{}/{i}", self.index))?; + Ok(()) +}));*/ + diff --git a/output/src/space/measure.rs b/output/src/space/measure.rs index 9ea4765..a894b60 100644 --- a/output/src/space/measure.rs +++ b/output/src/space/measure.rs @@ -7,7 +7,7 @@ pub trait HasSize { self.size().w() } fn height (&self) -> usize { - self.size().w() + self.size().h() } } diff --git a/output/src/view.rs b/output/src/view.rs index f2e9ef4..484194d 100644 --- a/output/src/view.rs +++ b/output/src/view.rs @@ -54,7 +54,7 @@ pub trait ViewContext<'state, E: Output + 'state>: Send + Sync match value { Value::Sym(_) => self.get_content_sym(value), Value::Exp(_, _) => self.get_content_exp(value), - _ => panic!("only :symbols and (expressions) accepted here") + _ => panic!("only :symbols and (expressions) accepted here, got: {value:?}") } } fn get_content_sym <'source: 'state> (&'state self, value: &Value<'source>) diff --git a/tui/src/tui_content/tui_field.rs b/tui/src/tui_content/tui_field.rs index 7c83950..fa3f123 100644 --- a/tui/src/tui_content/tui_field.rs +++ b/tui/src/tui_content/tui_field.rs @@ -17,10 +17,13 @@ pub struct FieldV(pub ItemTheme, pub T, pub U); impl, U: Content> Content for FieldV { fn content (&self) -> impl Render { let Self(ItemTheme { darkest, dark, lighter, lightest, .. }, title, value) = self; - let sep1 = Tui::bg(darkest.rgb, Tui::fg(dark.rgb, "▐")); - let sep2 = Tui::bg(darkest.rgb, Tui::fg(dark.rgb, "▌")); - let title = Tui::bg(dark.rgb, Tui::fg(lighter.rgb, Tui::bold(true, title))); + let sep1 = Tui::bg(darkest.rgb, Tui::fg(dark.rgb, "▐")); + let sep2 = Tui::bg(darkest.rgb, Tui::fg(dark.rgb, "▌")); + let title = Tui::bg(dark.rgb, Tui::fg(lighter.rgb, Tui::bold(true, title))); let value = Tui::bg(darkest.rgb, Tui::fg(lightest.rgb, value)); - Bsp::e(Bsp::s(row!(sep1, title, sep2), value), " ") + Bsp::n( + Align::w(value), + Fill::x(Align::w(row!(sep1, title, sep2))) + ) } }