A simple CPU rendered GUI IDE experience.
Diffstat (limited to 'src/edi/st.rs')
| -rw-r--r-- | src/edi/st.rs | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/edi/st.rs b/src/edi/st.rs index de25b1b..a8f5b0a 100644 --- a/src/edi/st.rs +++ b/src/edi/st.rs @@ -75,9 +75,27 @@ Command(_) => K(Key::Named(Escape)) => Default, Command(t) => K(Key::Named(Enter)) => Default [ProcessCommand(Commands => t)], Command(mut t) => K(Key::Named(Tab) if shift()) => Command({ t.back();t }), Command(mut t) => K(Key::Named(Tab)) => Command({ t.next(); t }), -Command(mut t) => K(k) => Command({ handle2(&k, &mut t.tedit, None); t }), +Command(mut t) => K(k) => Command({ if let Some(_) = handle2(&k, &mut t.tedit, None) { + t.selection = 0; t.vo = 0; +}; t }), Command(t) => C(_) => _, Command(t) => K(_) => _, +Runnables(_x) => { + K(Key::Named(Escape)) => Default, +}, +Runnables(RqS::<crate::runnables::Runnables, rust_analyzer::lsp::ext::Runnables> => Rq { result: Some(mut x), request }) => { + K(Key::Named(Tab) if shift()) => Runnables({ x.next(); Rq { result: Some(x), request }}), + K(Key::Named(ArrowDown)) => Runnables({ x.next(); Rq { result: Some(x), request }}), + K(Key::Named(ArrowUp | Tab)) => Runnables({ x.back(); Rq { result: Some(x), request }}), + K(k) => Runnables({ + if let Some(_) = handle2(&k, &mut x.tedit, None) { + x.selection = 0; x.vo = 0; +}; Rq { result: Some(x), request } }), +}, +Runnables(_x) => { + C(_) => _, + M(_) => _, +}, Symbols(Rq { result: Some(_x), request: _rq }) => { K(Key::Named(Tab) if shift()) => _ [SymbolsSelectNext], K(Key::Named(ArrowDown)) => _ [SymbolsSelectNext], |