A simple CPU rendered GUI IDE experience.
| -rw-r--r-- | src/complete.rs | 16 | ||||
| -rw-r--r-- | src/edi/input_handlers/cursor.rs | 6 | ||||
| -rw-r--r-- | src/edi/input_handlers/keyboard.rs | 1 | ||||
| -rw-r--r-- | src/edi/st.rs | 2 | ||||
| -rw-r--r-- | src/main.rs | 1 |
5 files changed, 20 insertions, 6 deletions
diff --git a/src/complete.rs b/src/complete.rs index bdc5866..fc652c3 100644 --- a/src/complete.rs +++ b/src/complete.rs @@ -159,20 +159,30 @@ fn r( })) .for_each(|(a, b)| *a = b); } + let s = if let Some(ref ft) = x.filter_text + && &x.label != ft + // l = &x + // ft = x + && let Some(e) = x.label.find(ft) + { + -(e as i32) + } else { + 0 + }; i.iter_mut() .zip( - x.label.chars().map(|x| ds.basic(x)).zip(0..).chain( + x.label.chars().map(|x| ds.basic(x)).zip(s..).chain( label_details .map(|x| { Style { bg, fg: color_("#858685"), ..default() } .basic(x) }) - .zip(repeat(u32::MAX)), + .zip(repeat(i32::MAX)), ), ) .for_each(|(a, (b, i))| { *a = b; - if indices.contains(&i) { + if indices.contains(&(i as u32)) { a.style |= (Style::BOLD, color_("#ffcc66")); } }); diff --git a/src/edi/input_handlers/cursor.rs b/src/edi/input_handlers/cursor.rs index ce44657..089a4a7 100644 --- a/src/edi/input_handlers/cursor.rs +++ b/src/edi/input_handlers/cursor.rs @@ -107,8 +107,10 @@ impl Editor { // let l = &mut self.requests.hovering.result; } Some(Do::Hover) => { - self.state.consume(Action::HOnNothing).unwrap(); - w.request_redraw(); + match self.state.consume(Action::HOnNothing).unwrap() { + Some(st::Do::R(false)) => {} + _ => w.request_redraw(), + } } None => {} x => unreachable!("{x:?}"), diff --git a/src/edi/input_handlers/keyboard.rs b/src/edi/input_handlers/keyboard.rs index 549cb83..f76cd18 100644 --- a/src/edi/input_handlers/keyboard.rs +++ b/src/edi/input_handlers/keyboard.rs @@ -607,6 +607,7 @@ impl Editor { if let Some(Ok(x)) = x.sel(Some(freq)) { self.paste_m(x.iter()) }, + Do::R(_) => {} } ControlFlow::Continue(()) } diff --git a/src/edi/st.rs b/src/edi/st.rs index b0a38a8..db98b9a 100644 --- a/src/edi/st.rs +++ b/src/edi/st.rs @@ -86,7 +86,7 @@ Default => { // }, Hovered => { HOnSomething(((usize, usize)) => pos) => Hovering(Rq<Hovring, Option<Hovr>, ((usize, usize), TextDocumentPositionParams), RequestError<HoverRequest>> => default()) [SetHovering], - HOnNothing => Default, + HOnNothing => Default [R(bool => false)], }, Hovering(x) => { // now hovering over something else, cancel existing hover diff --git a/src/main.rs b/src/main.rs index 43e4d0b..de0fcb9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -8,6 +8,7 @@ unsized_const_params, inherent_associated_types, never_type, random, + substr_range, btree_set_entry, associated_type_defaults, array_try_map, |