diff --git a/crates/assistant/src/context.rs b/crates/assistant/src/context.rs index 445eec8fe5b03df215163b6158ca53e685fda7a0..0fa5a894d6ef83f1213fe4bfa8fda66a65507481 100644 --- a/crates/assistant/src/context.rs +++ b/crates/assistant/src/context.rs @@ -532,7 +532,21 @@ impl EditOperation { .path_candidates .iter() .find(|item| item.string == symbol) - .context("symbol not found")?; + .with_context(|| { + format!( + "symbol {:?} not found in path {:?}.\ncandidates: {:?}.\nparse status: {:?}. text:\n{}", + symbol, + path, + outline + .path_candidates + .iter() + .map(|candidate| &candidate.string) + .collect::>(), + *parse_status.borrow(), + buffer.read_with(&cx, |buffer, _| buffer.text()).unwrap_or_else(|_| "error".to_string()) + ) + })?; + buffer.update(&mut cx, |buffer, _| { let outline_item = &outline.items[candidate.id]; let symbol_range = outline_item.range.to_point(buffer);