Report the edits per transform summary generated

Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
This commit is contained in:
Kirill Bulatov 2023-06-09 11:04:36 +03:00
parent 2ba3262f29
commit 4d76162da8

View file

@ -297,12 +297,12 @@ impl InlayMap {
transform_end += cursor.end(&()) - suggestion_edit.old.end;
cursor.next(&());
}
new_transforms.push(
Transform::Isomorphic(suggestion_snapshot.text_summary_for_range(
push_isomorphic(
&mut new_transforms,
suggestion_snapshot.text_summary_for_range(
suggestion_snapshot.to_point(transform_start)
..suggestion_snapshot.to_point(transform_end),
)),
&(),
),
);
}
@ -549,7 +549,7 @@ impl InlaySnapshot {
match bias {
Bias::Left => cursor.end(&()),
Bias::Right => cursor.start(),
Bias::Right => *cursor.start(),
}
}
@ -664,6 +664,22 @@ impl InlaySnapshot {
}
}
fn push_isomorphic(sum_tree: &mut SumTree<Transform>, summary: TextSummary) {
let mut summary = Some(summary);
sum_tree.update_last(
|transform| {
if let Transform::Isomorphic(transform) = transform {
*transform += summary.take().unwrap();
}
},
&(),
);
if let Some(summary) = summary {
sum_tree.push(Transform::Isomorphic(summary), &());
}
}
#[cfg(test)]
mod tests {
use super::*;