@@ -78,15 +78,26 @@ impl<'a> Component for Editor<'a> {
78
78
}
79
79
if let Some ( Event :: Key ( key) ) = event {
80
80
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
+ }
86
88
} ,
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
+ }
90
101
}
91
102
} ;
92
103
Ok ( None )
0 commit comments