A simple CPU rendered GUI IDE experience.
Diffstat (limited to 'src/edi/st.rs')
-rw-r--r--src/edi/st.rs9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/edi/st.rs b/src/edi/st.rs
index 17da088..3d0f282 100644
--- a/src/edi/st.rs
+++ b/src/edi/st.rs
@@ -65,7 +65,7 @@ Default => {
K(Key::Named(ArrowUp | ArrowLeft | ArrowDown | ArrowRight | Home | End) if shift()) => Selection [StartSelection],
M(MouseButton::Left if shift()) => Selection [StartSelection],
M(MouseButton::Left if alt()) => _ [InsertCursorAtMouse],
- M(MouseButton::Left if ctrl()) => _ [GoToDefinition],
+ M(MouseButton::Left if ctrl()) => _ [GoToDefinition(Option<TextDocumentPositionParams> => None)],
M(MouseButton::Left) => _ [MoveCursor],
K(Key::Character("=") if ctrl()) => _ [NavForward],
K(Key::Character("-") if ctrl()) => _ [NavBack],
@@ -79,20 +79,21 @@ Default => {
M(_) => _,
},
Hovered => {
- HOnSomething(((usize, usize)) => pos) => Hovering(Rq<Hovr, Option<Hovr>, (usize, usize), RequestError<HoverRequest>> => default()) [SetHovering],
+ HOnSomething(((usize, usize)) => pos) => Hovering(Rq<Hovr, Option<Hovr>, ((usize, usize), TextDocumentPositionParams), RequestError<HoverRequest>> => default()) [SetHovering],
HOnNothing => Default,
},
Hovering(x) => {
// now hovering over something else, cancel existing hover
- HOnSomething(pos if let Some((_, c)) = x.request && dbg!(c != pos)) => _ [SetHovering],
+ HOnSomething(pos if let Some((_, (c, _))) = x.request && (c != pos)) => _ [SetHovering],
HOnSomething(_) => _ [SetHovering],
HOnNothing => Default,
SetHovering((tokio::task::JoinHandle<
Result<Option<Hovr>, RequestError<HoverRequest>>,
- >, (usize, usize)) => (h, d)) => Hovering({ let mut x = x; x.request_d(h, d); x }),
+ >, ((usize, usize), TextDocumentPositionParams)) => (h, d)) => Hovering({ let mut x = x; x.request_d(h, d); x }),
C(_) => _ [Hover],
MovedOut => Default,
K(_) => _,
+ M(MouseButton::Left if ctrl()) => Default [GoToDefinition(x.request.map(|x| x.1.1).or(x.result.map(|x| x.tdpp)))],
M(_) => _ [ClickedHover],
},
Command(_) => K(Key::Named(Escape)) => Default,