fix crash when encountering overlapping injections
This commit is contained in:
parent
79a8fd6249
commit
2d5ff9ec8f
1 changed files with 5 additions and 0 deletions
|
@ -1136,6 +1136,7 @@ impl Syntax {
|
|||
RopeProvider(source_slice),
|
||||
);
|
||||
let mut injections = Vec::new();
|
||||
let mut last_injection_end = 0;
|
||||
for mat in matches {
|
||||
let (injection_capture, content_node, included_children) = layer
|
||||
.config
|
||||
|
@ -1155,6 +1156,10 @@ impl Syntax {
|
|||
intersect_ranges(&layer.ranges, &[content_node], included_children);
|
||||
|
||||
if !ranges.is_empty() {
|
||||
if content_node.start_byte() < last_injection_end {
|
||||
continue;
|
||||
}
|
||||
last_injection_end = content_node.end_byte();
|
||||
injections.push((config, ranges));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue