Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-db/src/text_edit.rs')
-rw-r--r--crates/ide-db/src/text_edit.rs8
1 files changed, 6 insertions, 2 deletions
diff --git a/crates/ide-db/src/text_edit.rs b/crates/ide-db/src/text_edit.rs
index d2a73710d5..2dd558b0b7 100644
--- a/crates/ide-db/src/text_edit.rs
+++ b/crates/ide-db/src/text_edit.rs
@@ -133,9 +133,9 @@ impl TextEdit {
let mut res = offset;
for indel in &self.indels {
if indel.delete.start() >= offset {
- break;
+ continue;
}
- if offset < indel.delete.end() {
+ if indel.delete.contains(offset) {
return None;
}
res += TextSize::of(&indel.insert);
@@ -151,6 +151,10 @@ impl TextEdit {
pub fn change_annotation(&self) -> Option<ChangeAnnotationId> {
self.annotation
}
+
+ pub fn cancel_edits_touching(&mut self, touching: TextRange) {
+ self.indels.retain(|indel| indel.delete.intersect(touching).is_none());
+ }
}
impl IntoIterator for TextEdit {