@@ -730,6 +730,12 @@ impl EditorView {
731 let mut completion =
731 let mut completion =
732 Completion::new(editor, items, offset_encoding, start_offset, trigger_offset);
732 Completion::new(editor, items, offset_encoding, start_offset, trigger_offset);
734+ if completion.is_empty() {
735+ // skip if we got no completion results
733 // TODO : propagate required size on resize to completion too
739 // TODO : propagate required size on resize to completion too
734 completion.required_size((size.width, size.height));
740 completion.required_size((size.width, size.height));
735 self.completion = Some(completion);
741 self.completion = Some(completion);
@@ -939,6 +945,7 @@ impl Component for EditorView {
939 if callback.is_some() {
945 if callback.is_some() {
940 // assume close_fn
946 // assume close_fn
941 self.completion = None;
947 self.completion = None;
948+ cxt.editor.clear_idle_timer(); // don't retrigger
@@ -952,6 +959,7 @@ impl Component for EditorView {
952 completion.update(&mut cxt);
959 completion.update(&mut cxt);
953 if completion.is_empty() {
960 if completion.is_empty() {
954 self.completion = None;
961 self.completion = None;
962+ cxt.editor.clear_idle_timer(); // don't retrigger