A simple CPU rendered GUI IDE experience.
handle selection exits properly
| -rw-r--r-- | src/edi.rs | 4 | ||||
| -rw-r--r-- | src/edi/st.rs | 2 |
2 files changed, 6 insertions, 0 deletions
@@ -1308,6 +1308,10 @@ impl Editor { change!(self); } Some(Do::Quit) => return ControlFlow::Break(()), + Some(Do::SetCursor(x)) => { + self.text.cursor = x; + self.text.setc(); + } Some(Do::StartSelection) => { let Key::Named(y) = event.logical_key else { panic!() }; *self.state.sel() = self.text.extend_selection( diff --git a/src/edi/st.rs b/src/edi/st.rs index ed149b8..8eac701 100644 --- a/src/edi/st.rs +++ b/src/edi/st.rs @@ -93,6 +93,8 @@ Selection(x) => { K(Key::Character(y) if y == "/" && ctrl()) => Default [Comment(Range<usize> => x)], K(Key::Character(y) if !ctrl()) => Default [Insert((Range<usize>, SmolStr) => (x, y))], + K(Key::Named(ArrowLeft)) => Default [SetCursor(usize => x.start)], + K(Key::Named(ArrowRight)) => Default [SetCursor(usize => x.end)], K(_) => Default [Edit], }, Save => { |