A simple CPU rendered GUI IDE experience.
Diffstat (limited to 'src/rnd.rs')
| -rw-r--r-- | src/rnd.rs | 36 |
1 files changed, 23 insertions, 13 deletions
@@ -102,7 +102,27 @@ pub fn render( ), _ => None, }; - + let sym_sel = + if let State::Symbols(Rq { result: Some(menu), .. }) = + &ed.state + && let Some(Ok(UsedSI { + at: GoTo { at: At::R(x), .. }, + .. + })) = menu.sel(None) + { + Some(x) + } else { + None + }; + let gen_sel = if let State::GoToL(menu) = &ed.state + && let Some(Ok((GoTo { at: At::R(r), path }, _))) = + menu.sel(None) + && Some(&*path) == ed.origin.as_deref() + { + Some(r) + } else { + None + }; text.line_numbers( (c, r - 1), [67, 76, 87], @@ -110,22 +130,12 @@ pub fn render( (cells, (c, r)), (1, 0), |_text, mut f, y| { - if let State::GoToL(menu) = &ed.state - && let Some(Ok((GoTo { at: At::R(r), path }, _))) = - menu.sel(None) - && Some(&*path) == ed.origin.as_deref() - { + if let Some(r) = gen_sel { if (r.start.line..=r.end.line).contains(&(y as _)) { f.style.fg = col!("#FFCC66"); } } - if let State::Symbols(Rq { result: Some(menu), .. }) = - &ed.state - && let Some(Ok(UsedSI { - at: GoTo { at: At::R(x), .. }, - .. - })) = menu.sel(None) - { + if let Some(x) = sym_sel { if (x.start.line..=x.end.line).contains(&(y as _)) { f.style.fg = col!("#FFCC66"); } |