Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/syntax/src/syntax_editor.rs')
-rw-r--r--crates/syntax/src/syntax_editor.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/crates/syntax/src/syntax_editor.rs b/crates/syntax/src/syntax_editor.rs
index 124ac5c072..18f5015e9e 100644
--- a/crates/syntax/src/syntax_editor.rs
+++ b/crates/syntax/src/syntax_editor.rs
@@ -83,6 +83,16 @@ impl SyntaxEditor {
self.changes.push(Change::Replace(element.syntax_element(), None));
}
+ pub fn delete_all(&mut self, range: RangeInclusive<SyntaxElement>) {
+ if range.start() == range.end() {
+ self.delete(range.start());
+ return;
+ }
+
+ debug_assert!(is_ancestor_or_self_of_element(range.start(), &self.root));
+ self.changes.push(Change::ReplaceAll(range, Vec::new()))
+ }
+
pub fn replace(&mut self, old: impl Element, new: impl Element) {
let old = old.syntax_element();
debug_assert!(is_ancestor_or_self_of_element(&old, &self.root));