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 5c423e9..11e3cca 100644
--- a/src/edi/st.rs
+++ b/src/edi/st.rs
@@ -1,5 +1,4 @@
#![allow(dead_code, unused)]
-
use Default::default;
use NamedKey::*;
use lsp_types::*;
@@ -11,6 +10,7 @@ use winit::keyboard::{Key, NamedKey, SmolStr};
use crate::commands::Commands;
use crate::edi::handle2;
use crate::lsp::{AQErr, Rq, RqS};
+use crate::menu::generic::{GenericMenu, MenuData};
use crate::sym::{Symbols, SymbolsList};
use crate::text::TextArea;
use crate::{
@@ -73,12 +73,13 @@ Default => {
M(_) => _,
},
Command(_) => K(Key::Named(Escape)) => Default,
-Command(t) => K(Key::Named(Enter)) => Default [ProcessCommand(Commands => t)],
+Command(t) => K(Key::Named(Enter) if let Some(Ok(x)) = t.sel()) => Default [ProcessCommand((Commands, crate::commands::Cmd) => (t, x))],
+Command(t) => K(Key::Named(Enter)) => _,
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({ if let Some(_) = handle2(&k, &mut t.tedit, None) {
t.selection = 0; t.vo = 0;
-}; t }),
+}; t }) [CmdTyped],
Command(t) => C(_) => _,
Command(t) => K(_) => _,
Runnables(_x) => {
@@ -88,7 +89,7 @@ Runnables(RqS::<crate::runnables::Runnables, rust_analyzer::lsp::ext::Runnables>
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(Key::Named(Enter)) => Default [Run(Runnable => x.sel().clone())],
+ K(Key::Named(Enter) if let Some(Ok(x_)) = x.clone().sel()) => Default [Run(Runnable => x_.clone())],
K(k) => Runnables({
if let Some(_) = handle2(&k, &mut x.tedit, None) {
x.selection = 0; x.vo = 0;