A simple CPU rendered GUI IDE experience.
improve
bendn 6 weeks ago
parent 8e8fc2a · commit 47e447c
-rw-r--r--src/complete.rs16
-rw-r--r--src/edi/input_handlers/cursor.rs6
-rw-r--r--src/edi/input_handlers/keyboard.rs1
-rw-r--r--src/edi/st.rs2
-rw-r--r--src/main.rs1
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,