Create anchors with latest snapshot when completions are ready

Using the previous snapshot was panicking.
This commit is contained in:
Nathan Sobo 2022-01-31 18:33:25 -07:00
parent fde03b1b37
commit ae0237c21b

View file

@ -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 {