A simple CPU rendered GUI IDE experience.
Diffstat (limited to 'src/rnd.rs')
-rw-r--r--src/rnd.rs36
1 files changed, 23 insertions, 13 deletions
diff --git a/src/rnd.rs b/src/rnd.rs
index a401009..2f458ad 100644
--- a/src/rnd.rs
+++ b/src/rnd.rs
@@ -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");
}