Skip to content

Commit 81df6b2

Browse files
ctrl/alt enter to query
1 parent 79aff6c commit 81df6b2

File tree

1 file changed

+19
-8
lines changed

1 file changed

+19
-8
lines changed

src/components/editor.rs

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -78,15 +78,26 @@ impl<'a> Component for Editor<'a> {
7878
}
7979
if let Some(Event::Key(key)) = event {
8080
if app_state.query_task.is_none() {
81-
let new_vim_state = self.vim_state.clone();
82-
self.vim_state = match new_vim_state.transition(Input::from(key), &mut self.textarea) {
83-
Transition::Mode(mode) if new_vim_state.mode != mode => {
84-
self.cursor_style = mode.cursor_style();
85-
Vim::new(mode)
81+
let input = Input::from(key);
82+
log::info!("{:?}", input);
83+
match input {
84+
Input { key: Key::Enter, ctrl: true, .. } | Input { key: Key::Enter, alt: true, .. } => {
85+
if let Some(sender) = &self.command_tx {
86+
sender.send(Action::Query(self.textarea.lines().join(" ")))?;
87+
}
8688
},
87-
Transition::Nop | Transition::Mode(_) => new_vim_state,
88-
Transition::Pending(input) => new_vim_state.with_pending(input),
89-
};
89+
_ => {
90+
let new_vim_state = self.vim_state.clone();
91+
self.vim_state = match new_vim_state.transition(input, &mut self.textarea) {
92+
Transition::Mode(mode) if new_vim_state.mode != mode => {
93+
self.cursor_style = mode.cursor_style();
94+
Vim::new(mode)
95+
},
96+
Transition::Nop | Transition::Mode(_) => new_vim_state,
97+
Transition::Pending(input) => new_vim_state.with_pending(input),
98+
};
99+
},
100+
}
90101
}
91102
};
92103
Ok(None)

0 commit comments

Comments
 (0)