on master help sign in
fix: Don't crash on empty completion, don't retrigger on close
commitf692ede2b7af9ee3c0a83642c0e169ac2db90ca5 authorBlaž Hrastnik <blaz@mxxn.io> dateThu 7 Oct 2021, 10:37 (5 years ago) parent8ca9189
1 file changed+8
helix-term/src/ui/editor.rs+8
helix-term/src/ui/editor.rs+8
@@ -730,6 +730,12 @@ impl EditorView {
730730 ) {
731731 let mut completion =
732732 Completion::new(editor, items, offset_encoding, start_offset, trigger_offset);
733+
734+ if completion.is_empty() {
735+ // skip if we got no completion results
736+ return;
737+ }
738+
733739 // TODO : propagate required size on resize to completion too
734740 completion.required_size((size.width, size.height));
735741 self.completion = Some(completion);
@@ -939,6 +945,7 @@ impl Component for EditorView {
939945 if callback.is_some() {
940946 // assume close_fn
941947 self.completion = None;
948+ cxt.editor.clear_idle_timer(); // don't retrigger
942949 }
943950 }
944951 }
@@ -952,6 +959,7 @@ impl Component for EditorView {
952959 completion.update(&mut cxt);
953960 if completion.is_empty() {
954961 self.completion = None;
962+ cxt.editor.clear_idle_timer(); // don't retrigger
955963 }
956964 }
957965 }