@@ -786,6 +786,14 @@ impl EditorView {
786786 completion.required_size((size.width, size.height));
787787 self.completion = Some(completion);
788788 }
789+
790+ pub fn clear_completion(&mut self, editor: &mut Editor) {
791+ self.completion = None;
792+ // Clear any savepoints
793+ let (_, doc) = current!(editor);
794+ doc.savepoint = None;
795+ editor.clear_idle_timer(); // don't retrigger
796+ }
789797}
790798
791799impl EditorView {
@@ -990,11 +998,7 @@ impl Component for EditorView {
990998
991999 if callback.is_some() {
9921000 // assume close_fn
993− self.completion = None;
994− // Clear any savepoints
995− let (_, doc) = current!(cxt.editor);
996− doc.savepoint = None;
997− cxt.editor.clear_idle_timer(); // don't retrigger
1001+ self.clear_completion(cxt.editor);
9981002 }
9991003 }
10001004 }
@@ -1007,11 +1011,7 @@ impl Component for EditorView {
10071011 if let Some(completion) = &mut self.completion {
10081012 completion.update(&mut cxt);
10091013 if completion.is_empty() {
1010− self.completion = None;
1011− // Clear any savepoints
1012− let (_, doc) = current!(cxt.editor);
1013− doc.savepoint = None;
1014− cxt.editor.clear_idle_timer(); // don't retrigger
1014+ self.clear_completion(cxt.editor);
10151015 }
10161016 }
10171017 }