mirror of
https://codeberg.org/unspeaker/tek.git
synced 2026-10-08 18:56:42 +02:00
fix config loading
This commit is contained in:
parent
a126d98f3c
commit
9e25564abb
4 changed files with 116 additions and 123 deletions
25
src/tek.rs
25
src/tek.rs
|
|
@ -856,7 +856,7 @@ mod device {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn view_device (state: &App) -> impl Draw<'_, Tui> {
|
||||
pub fn view_device <'a> (state: &'a App) -> impl Draw<'a, Tui> {
|
||||
let selected = state.dialog.device_kind().unwrap();
|
||||
south(
|
||||
bold(true, "Add device"),
|
||||
|
|
@ -917,7 +917,7 @@ mod draw {
|
|||
if let Some(mode) = self.mode.as_ref().and_then(|m|self.config.get_mode(m)) {
|
||||
let mut error = false;
|
||||
for (index, dsl) in mode.view.iter().enumerate() {
|
||||
match self.draw_mode(to, dsl) {
|
||||
match self.interpret(to, dsl) {
|
||||
Ok(None) => {},
|
||||
Ok(Some(XYWH(.., w, h))) => {
|
||||
self.size.0.store(w as usize, Relaxed);
|
||||
|
|
@ -942,11 +942,7 @@ mod draw {
|
|||
Ok(())
|
||||
}
|
||||
|
||||
fn draw_mode <'a, L: Language + 'a> (&'a self, to: &mut Tui, dsl: L) -> Drawn<'a, u16> {
|
||||
self.interpret(to, dsl)
|
||||
}
|
||||
|
||||
fn draw_debug (&self, to: &mut Tui) -> Drawn<u16> {
|
||||
#[allow(unused)] fn draw_debug (&self, to: &mut Tui) -> Drawn<'_, u16> {
|
||||
east(
|
||||
format!("{}x{} ", self.size.0.load(Relaxed), self.size.1.load(Relaxed)),
|
||||
format!("{}% {} ", self.perf.percentage().unwrap_or_default(), self.perf.clock.raw() / 1000000000),
|
||||
|
|
@ -957,7 +953,7 @@ mod draw {
|
|||
impl<'a> Interpret<'a, Tui, Option<XYWH<u16>>> for App {
|
||||
fn interpret <L: Language + 'a> (&'a self, to: &mut Tui, dsl: L) -> Drawn<'a, u16> {
|
||||
if let Some(expr) = dsl.expr()? {
|
||||
interpret_keyword!(self, to, expr, [
|
||||
interpret_keyword!(self, to, &expr, [
|
||||
kw_when, kw_either, kw_split, kw_align, kw_exact, kw_min, kw_max, kw_push, kw_full,
|
||||
kw_tui_text, kw_tui_fg, kw_tui_bg
|
||||
]);
|
||||
|
|
@ -993,15 +989,10 @@ mod draw {
|
|||
Some(":editor") => "TODO Editor".draw(to),
|
||||
Some(":transport") => view_transport(true, "", "", "").draw(to),
|
||||
Some(":debug") => format!("[{:?}]", to.area()).exact_h(1).draw(to),
|
||||
Some(_) => {
|
||||
let views = self.config.views.read().unwrap();
|
||||
if let Some(lang) = views.get(word.src()?.unwrap()) {
|
||||
let lang = lang.clone();
|
||||
std::mem::drop(views);
|
||||
self.draw_mode(to, lang)
|
||||
} else {
|
||||
fg(Color::Rgb(128, 32, 32), format!("undefined: {word:?}")).draw(to)
|
||||
}
|
||||
Some(_) => if let Some(lang) = self.config.get_view(word) {
|
||||
self.interpret(to, lang)
|
||||
} else {
|
||||
fg(Color::Rgb(128, 32, 32), format!("undefined: {word:?}")).draw(to)
|
||||
},
|
||||
_ => unreachable!()
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue