diff --git a/crates/language/src/outline.rs b/crates/language/src/outline.rs index 7bcbcc6bc32ce51a70cd768e7b0b5d7d9b307c95..6819e5c807fe9fbfaa86a0bd2e64b4e88ad98588 100644 --- a/crates/language/src/outline.rs +++ b/crates/language/src/outline.rs @@ -88,16 +88,18 @@ impl Outline { pub fn find_most_similar(&self, query: &str) -> Option<&OutlineItem> { const SIMILARITY_THRESHOLD: f64 = 0.6; - let (item, similarity) = self - .items + let (position, similarity) = self + .path_candidates .iter() - .map(|item| { - let similarity = strsim::normalized_levenshtein(&item.text, query); - (item, similarity) + .enumerate() + .map(|(index, candidate)| { + let similarity = strsim::normalized_levenshtein(&candidate.string, query); + (index, similarity) }) .max_by(|(_, a), (_, b)| a.partial_cmp(b).unwrap())?; if similarity >= SIMILARITY_THRESHOLD { + let item = self.items.get(position)?; Some(item) } else { None