diff --git a/crates/editor/src/multi_buffer.rs b/crates/editor/src/multi_buffer.rs index 11aec10d5c3865ec1ebe25306a1b794370e510cb..ccae93351707d7fc436216ff4341c153080410d2 100644 --- a/crates/editor/src/multi_buffer.rs +++ b/crates/editor/src/multi_buffer.rs @@ -856,13 +856,13 @@ impl MultiBuffer { where T: ToOffset, { - let snapshot = self.snapshot(cx); - let anchor = snapshot.anchor_before(position); + let anchor = self.read(cx).anchor_before(position); let buffer = self.buffers.borrow()[&anchor.buffer_id].buffer.clone(); let completions = buffer.update(cx, |buffer, cx| buffer.completions(anchor.text_anchor, cx)); - cx.foreground().spawn(async move { + cx.spawn(|this, cx| async move { completions.await.map(|completions| { + let snapshot = this.read_with(&cx, |buffer, cx| buffer.snapshot(cx)); completions .into_iter() .map(|completion| Completion {