@@ -786,6 +786,14 @@ impl EditorView {
786 completion.required_size((size.width, size.height));
786 completion.required_size((size.width, size.height));
787 self.completion = Some(completion);
787 self.completion = Some(completion);
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
791impl EditorView {
799impl EditorView {
@@ -990,11 +998,7 @@ impl Component for EditorView {
991 if callback.is_some() {
999 if callback.is_some() {
992 // assume close_fn
1000 // assume close_fn
993− self.completion = None;
1001+ self.clear_completion(cxt.editor);
994− // Clear any savepoints
995− let (_, doc) = current!(cxt.editor);
996− doc.savepoint = None;
997− cxt.editor.clear_idle_timer(); // don't retrigger
@@ -1007,11 +1011,7 @@ impl Component for EditorView {
1007 if let Some(completion) = &mut self.completion {
1011 if let Some(completion) = &mut self.completion {
1008 completion.update(&mut cxt);
1012 completion.update(&mut cxt);
1009 if completion.is_empty() {
1013 if completion.is_empty() {
1010− self.completion = None;
1014+ self.clear_completion(cxt.editor);
1011− // Clear any savepoints
1012− let (_, doc) = current!(cxt.editor);
1013− doc.savepoint = None;
1014− cxt.editor.clear_idle_timer(); // don't retrigger