Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'helix-core/src/syntax.rs')
| -rw-r--r-- | helix-core/src/syntax.rs | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/helix-core/src/syntax.rs b/helix-core/src/syntax.rs index 852a9752..3f1853b0 100644 --- a/helix-core/src/syntax.rs +++ b/helix-core/src/syntax.rs @@ -2502,15 +2502,17 @@ impl Iterator for HighlightIter<'_> { } } - // Once a highlighting pattern is found for the current node, skip over - // any later highlighting patterns that also match this node. Captures + // Use the last capture found for the current node, skipping over any + // highlight patterns that also match this node. Captures // for a given node are ordered by pattern index, so these subsequent // captures are guaranteed to be for highlighting, not injections or // local variables. while let Some((next_match, next_capture_index)) = captures.peek() { let next_capture = next_match.captures[*next_capture_index]; if next_capture.node == capture.node { - captures.next(); + match_.remove(); + capture = next_capture; + match_ = captures.next().unwrap().0; } else { break; } |