Reverse syntax highlighting query precedence ordering

This commit is contained in:
Michael Davis 2024-01-28 14:48:57 -05:00 committed by Blaž Hrastnik
parent 2301430e37
commit 0b5f0d606a

View File

@ -2475,15 +2475,17 @@ fn next(&mut self) -> Option<Self::Item> {
}
}
// 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;
}