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.rs | 8 |
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 { |