Skip char and string literals when highlighting comments

This commit is contained in:
Josh Crisp 2022-02-15 16:52:08 -08:00
parent f3aabd6b7c
commit e38278d2a5

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;