A simple CPU rendered GUI IDE experience.
fix annoyancea
| -rw-r--r-- | src/com.rs | 11 | ||||
| -rw-r--r-- | src/edi.rs | 2 | ||||
| -rw-r--r-- | src/main.rs | 2 |
3 files changed, 12 insertions, 3 deletions
@@ -13,13 +13,22 @@ use serde::{Deserialize, Serialize}; use crate::FG; use crate::text::{col, color_, set_a}; -#[derive(Debug, Serialize, Deserialize)] +#[derive(Serialize, Deserialize)] pub struct Complete { pub r: CompletionResponse, pub start: usize, pub selection: usize, pub vo: usize, } +impl std::fmt::Debug for Complete { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("Complete") + .field("start", &self.start) + .field("selection", &self.selection) + .field("vo", &self.vo) + .finish() + } +} #[lower::apply(saturating)] pub fn next<const N: usize>(n: usize, sel: &mut usize, vo: &mut usize) { *sel += 1; @@ -834,6 +834,7 @@ impl Editor { } match o { Some(Do::MaybeRemoveSigHelp) => { + take(&mut self.requests.complete); take(&mut self.requests.sig_help); } Some(Do::Comment(x)) => { @@ -866,7 +867,6 @@ impl Editor { }, Some(Do::SwitchType) => if let Some((lsp, p)) = lsp!(self + p) { - dbg!("switch type"); let State::Symbols(Rq { result: Some(x), request }) = &mut self.state else { diff --git a/src/main.rs b/src/main.rs index da30c41..6443f46 100644 --- a/src/main.rs +++ b/src/main.rs @@ -583,7 +583,7 @@ rust_fsm::state_machine! { // exit cases Complete(_) => Click => None, Complete(_) => NoResult => None, - Complete(_) => K(Key::Named(Escape)) => None, + Complete(_) => K(Key::Named(Escape|ArrowDown|ArrowUp)) => None, Complete(_) => K(Key::Character(x) if !x.chars().all(is_word)) => None, Complete(Rq { result: None, request: _y }) => K(Key::Named(NamedKey::ArrowUp | NamedKey::ArrowUp)) => None, |