From afbddc1bcde8543dee73a818c4a660e3116a7efe Mon Sep 17 00:00:00 2001 From: Keith Simmons Date: Thu, 31 Mar 2022 18:22:55 -0700 Subject: [PATCH] Address panic when completions requested and returned to outdated buffer --- crates/project/src/project.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/crates/project/src/project.rs b/crates/project/src/project.rs index 65c943c888247b5c02badc3e3b59c603f325a290..856405d620a0e00741b8e7976d4e560db6e3d6c5 100644 --- a/crates/project/src/project.rs +++ b/crates/project/src/project.rs @@ -2331,6 +2331,13 @@ impl Project { }; cx.spawn(|_, cx| async move { + let clipped_position = source_buffer_handle + .read_with(&cx, |this, _| this.clip_point_utf16(position, Bias::Left)); + if clipped_position != position { + log::info!("Completion position out of date"); + return Ok(Default::default()); + } + let completions = lang_server .request::(lsp::CompletionParams { text_document_position: lsp::TextDocumentPositionParams::new(