diff --git a/src/comment.rs b/src/comment.rs index 6f229414e0d6..89f9258fd7a8 100644 --- a/src/comment.rs +++ b/src/comment.rs @@ -1304,7 +1304,13 @@ impl<'a> Iterator for LineClasses<'a> { None => FullCodeCharKind::Normal, }; - while let Some((kind, c)) = self.base.next() { + while let Some((kind, mut c)) = self.base.next() { + // If \r\n newline appears, consume one more character. + // Then do the same process with the single \n case. + if c == '\r' && self.base.peek().map_or(false, |(_, c2)| *c2 == '\n') { + self.base.next(); + c = '\n'; + } if c == '\n' { self.kind = match (start_class, kind) { (FullCodeCharKind::Normal, FullCodeCharKind::InString) => {