Merge pull request #463 from cascade256/comment-highlighting-fix

Skip char and string literals when highlighting comments
This commit is contained in:
Auguste Rame 2022-03-01 21:18:34 -05:00 committed by GitHub
commit 706413e468
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -138,6 +138,30 @@ const Builder = struct {
var i: usize = from; var i: usize = from;
while (i < to - 1) : (i += 1) { while (i < to - 1) : (i += 1) {
// Skip multi-line string literals
if (source[i] == '\\' and source[i + 1] == '\\') {
while (i < to - 1 and source[i] != '\n') : (i += 1) {}
continue;
}
// Skip normal string literals
if (source[i] == '"') {
i += 1;
while (i < to - 1 and
source[i] != '\n' and
!(source[i] == '"' and source[i - 1] != '\\')) : (i += 1)
{}
continue;
}
// Skip char literals
if (source[i] == '\'') {
i += 1;
while (i < to - 1 and
source[i] != '\n' and
!(source[i] == '\'' and source[i - 1] != '\\')) : (i += 1)
{}
continue;
}
if (source[i] != '/' or source[i + 1] != '/') if (source[i] != '/' or source[i + 1] != '/')
continue; continue;