diff options
| author | Martin Haug <mhaug@live.de> | 2021-11-09 13:07:55 +0100 |
|---|---|---|
| committer | Martin Haug <mhaug@live.de> | 2021-11-09 13:07:55 +0100 |
| commit | 7a631d8b09bbffa8c7d90a1038d986876370ea7a (patch) | |
| tree | 04a495fd42c8fd9fa01c56d8277a52bd4e875796 /src/source.rs | |
| parent | 9141cba6a9db6ae3106e39d92508cb91c390049b (diff) | |
Simplify node mode management
Diffstat (limited to 'src/source.rs')
| -rw-r--r-- | src/source.rs | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/src/source.rs b/src/source.rs index 2bba86a9..3117f5b6 100644 --- a/src/source.rs +++ b/src/source.rs @@ -286,22 +286,15 @@ impl SourceFile { .extend(newlines(&self.src[start ..]).map(|idx| start + idx)); // Update the root node. - let insertion_span = Span::new(self.id, replace.start, replace.end); - let source = self.src().to_string(); - if Rc::make_mut(&mut self.root).incremental(&source, insertion_span, with.len()) { + let span = Span::new(self.id, replace.start, replace.end); + if Rc::make_mut(&mut self.root).incremental(&self.src, span, with.len()) { self.was_incremental = true; } else { - self.root = parse(self.src()); + self.root = parse(&self.src); self.was_incremental = false; } } - /// Forces a non-incremental reparsing of the source file. - fn force_reparse(&mut self) { - self.root = parse(self.src()); - self.was_incremental = false; - } - /// Provide highlighting categories for the given range of the source file. pub fn highlight<F>(&self, range: Range<usize>, mut f: F) where @@ -499,8 +492,7 @@ mod tests { if incr { assert!(source.was_incremental); let incr_tree = source.root.clone(); - source.force_reparse(); - assert_eq!(source.root, incr_tree); + assert_eq!(parse(source.src()), incr_tree); } else { assert!(!source.was_incremental); } |
