Extract a clear_completion method

This commit is contained in:
Blaž Hrastnik 2021-10-29 16:48:25 +09:00
parent 68697cb332
commit e5de103728

View file

@ -786,6 +786,14 @@ pub fn set_completion(
completion.required_size((size.width, size.height));
self.completion = Some(completion);
}
pub fn clear_completion(&mut self, editor: &mut Editor) {
self.completion = None;
// Clear any savepoints
let (_, doc) = current!(editor);
doc.savepoint = None;
editor.clear_idle_timer(); // don't retrigger
}
}
impl EditorView {
@ -990,11 +998,7 @@ fn handle_event(&mut self, event: Event, cx: &mut Context) -> EventResult {
if callback.is_some() {
// assume close_fn
self.completion = None;
// Clear any savepoints
let (_, doc) = current!(cxt.editor);
doc.savepoint = None;
cxt.editor.clear_idle_timer(); // don't retrigger
self.clear_completion(cxt.editor);
}
}
}
@ -1007,11 +1011,7 @@ fn handle_event(&mut self, event: Event, cx: &mut Context) -> EventResult {
if let Some(completion) = &mut self.completion {
completion.update(&mut cxt);
if completion.is_empty() {
self.completion = None;
// Clear any savepoints
let (_, doc) = current!(cxt.editor);
doc.savepoint = None;
cxt.editor.clear_idle_timer(); // don't retrigger
self.clear_completion(cxt.editor);
}
}
}