Add deleting in ex mode

embed
Manos Pitsidianakis 2018-08-07 16:14:06 +03:00
parent c30f77a312
commit f16fd889e4
Signed by: Manos Pitsidianakis
GPG Key ID: 73627C2F690DF710
2 changed files with 15 additions and 6 deletions

View File

@ -171,11 +171,10 @@ fn main() {
state.rcv_event(UIEvent { id: 0, event_type: UIEventType::ChangeMode(UIMode::Normal)});
state.redraw();
},
k @ Key::Char(_) => {
k => {
state.rcv_event(UIEvent { id: 0, event_type: UIEventType::ExInput(k)});
state.redraw();
},
_ => {},
}
},
UIMode::Fork => {

View File

@ -453,10 +453,12 @@ impl Component for StatusBar {
match m {
UIMode::Normal => {
self.height = 1;
context.replies.push_back(UIEvent {
id: 0,
event_type: UIEventType::Command(self.ex_buffer.clone()),
});
if !self.ex_buffer.is_empty() {
context.replies.push_back(UIEvent {
id: 0,
event_type: UIEventType::Command(self.ex_buffer.clone()),
});
}
self.ex_buffer.clear()
}
UIMode::Execute => {
@ -469,6 +471,14 @@ impl Component for StatusBar {
self.dirty = true;
self.ex_buffer.push(*c);
}
UIEventType::ExInput(Key::Ctrl('u')) => {
self.dirty = true;
self.ex_buffer.clear();
}
UIEventType::ExInput(Key::Backspace) | UIEventType::ExInput(Key::Ctrl('h')) => {
self.dirty = true;
self.ex_buffer.pop();
}
UIEventType::Resize => {
self.dirty = true;
}