on master help sign in
fix: Skip modifying the root layer range, it always covers 0..max
9508684Blaž Hrastnik
helix-core/src/syntax.rs+6
@@ -494,7 +494,13 @@ impl Syntax {
494 }
494 }
495
495
496 for layer in &mut self.layers.values_mut() {
496 for layer in &mut self.layers.values_mut() {
497+ // The root layer always covers the whole range (0..usize::MAX)
498+ if layer.depth == 0 {
499+ continue;
500+ }
501+
497 for range in &mut layer.ranges {
502 for range in &mut layer.ranges {
503+ // Roughly based on https://github.com/tree-sitter/tree-sitter/blob/ddeaa0c7f534268b35b4f6cb39b52df082754413/lib/src/subtree.c#L691-L720
498 for edit in edits.iter().rev() {
504 for edit in edits.iter().rev() {
499 let is_pure_insertion = edit.old_end_byte == edit.start_byte;
505 let is_pure_insertion = edit.old_end_byte == edit.start_byte;
500
506