aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/KeyWords.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/KeyWords.cxx')
-rw-r--r--src/KeyWords.cxx465
1 files changed, 184 insertions, 281 deletions
diff --git a/src/KeyWords.cxx b/src/KeyWords.cxx
index 029db8064..cf5b3c0d6 100644
--- a/src/KeyWords.cxx
+++ b/src/KeyWords.cxx
@@ -113,7 +113,7 @@ static void classifyWordCpp(unsigned int start, unsigned int end, WordList &keyw
if (keywords.InList(s))
chAttr = SCE_C_WORD;
}
- styler.ColourSegment(start, end, chAttr);
+ styler.ColourTo(end, chAttr);
}
static void ColouriseCppDoc(int codePage, int startPos, int length,
@@ -127,9 +127,9 @@ static void ColouriseCppDoc(int codePage, int startPos, int length,
int state = initStyle;
char chPrev = ' ';
char chNext = styler[startPos];
- int startSeg = startPos;
unsigned int lengthDoc = startPos + length;
int visChars = 0;
+ styler.StartSegment(startPos);
for (unsigned int i = startPos; i <= lengthDoc; i++) {
char ch = chNext;
chNext = styler.SafeGetCharAt(i + 1);
@@ -157,52 +157,43 @@ static void ColouriseCppDoc(int codePage, int startPos, int length,
if (state == SCE_C_STRINGEOL) {
if (ch != '\r' && ch != '\n') {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i-1, state);
state = SCE_C_DEFAULT;
- startSeg = i;
}
}
if (state == SCE_C_DEFAULT) {
if (iswordstart(ch)) {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i-1, state);
state = SCE_C_WORD;
- startSeg = i;
} else if (ch == '/' && chNext == '*') {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i-1, state);
if (styler.SafeGetCharAt(i + 2) == '*')
state = SCE_C_COMMENTDOC;
else
state = SCE_C_COMMENT;
- startSeg = i;
} else if (ch == '/' && chNext == '/') {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i-1, state);
state = SCE_C_COMMENTLINE;
- startSeg = i;
} else if (ch == '\"') {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i-1, state);
state = SCE_C_STRING;
- startSeg = i;
} else if (ch == '\'') {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i-1, state);
state = SCE_C_CHARACTER;
- startSeg = i;
} else if (ch == '#') {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i-1, state);
state = SCE_C_PREPROCESSOR;
- startSeg = i;
} else if (isoperator(ch)) {
- styler.ColourSegment(startSeg, i - 1, state);
- styler.ColourSegment(i, i, SCE_C_OPERATOR);
- startSeg = i + 1;
+ styler.ColourTo(i-1, state);
+ styler.ColourTo(i, SCE_C_OPERATOR);
if ((ch == '{') || (ch == '}')) {
levelCurrent += (ch == '{') ? 1 : -1;
}
}
} else if (state == SCE_C_WORD) {
if (!iswordchar(ch)) {
- classifyWordCpp(startSeg, i - 1, keywords, styler);
+ classifyWordCpp(styler.GetStartSegment(), i - 1, keywords, styler);
state = SCE_C_DEFAULT;
- startSeg = i;
if (ch == '/' && chNext == '*') {
if (styler.SafeGetCharAt(i + 2) == '*')
state = SCE_C_COMMENTDOC;
@@ -217,8 +208,7 @@ static void ColouriseCppDoc(int codePage, int startPos, int length,
} else if (ch == '#') {
state = SCE_C_PREPROCESSOR;
} else if (isoperator(ch)) {
- styler.ColourSegment(startSeg, i, SCE_C_OPERATOR);
- startSeg = i + 1;
+ styler.ColourTo(i, SCE_C_OPERATOR);
if ((ch == '{') || (ch == '}')) {
levelCurrent += (ch == '{') ? 1 : -1;
}
@@ -227,35 +217,36 @@ static void ColouriseCppDoc(int codePage, int startPos, int length,
} else {
if (state == SCE_C_PREPROCESSOR) {
if ((ch == '\r' || ch == '\n') && (chPrev != '\\')) {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i-1, state);
state = SCE_C_DEFAULT;
- startSeg = i;
}
} else if (state == SCE_C_COMMENT) {
- if (ch == '/' && chPrev == '*' && (
- (i > startSeg + 2) || ((initStyle == SCE_C_COMMENT) && (startSeg == startPos)))) {
- styler.ColourSegment(startSeg, i, state);
- state = SCE_C_DEFAULT;
- startSeg = i + 1;
+ if (ch == '/' && chPrev == '*') {
+ if (((i > styler.GetStartSegment() + 2) || (
+ (initStyle == SCE_C_COMMENT) &&
+ (styler.GetStartSegment() == startPos)))) {
+ styler.ColourTo(i, state);
+ state = SCE_C_DEFAULT;
+ }
}
} else if (state == SCE_C_COMMENTDOC) {
- if (ch == '/' && chPrev == '*' && (
- (i > startSeg + 3) || ((initStyle == SCE_C_COMMENTDOC) && (startSeg == startPos)))) {
- styler.ColourSegment(startSeg, i, state);
- state = SCE_C_DEFAULT;
- startSeg = i + 1;
+ if (ch == '/' && chPrev == '*') {
+ if (((i > styler.GetStartSegment() + 3) || (
+ (initStyle == SCE_C_COMMENTDOC) &&
+ (styler.GetStartSegment() == startPos)))) {
+ styler.ColourTo(i, state);
+ state = SCE_C_DEFAULT;
+ }
}
} else if (state == SCE_C_COMMENTLINE) {
if (ch == '\r' || ch == '\n') {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i-1, state);
state = SCE_C_DEFAULT;
- startSeg = i;
}
} else if (state == SCE_C_STRING) {
if ((ch == '\r' || ch == '\n') && (chPrev != '\\')) {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i-1, state);
state = SCE_C_STRINGEOL;
- startSeg = i;
} else if (ch == '\\') {
if (chNext == '\"' || chNext == '\'' || chNext == '\\') {
i++;
@@ -263,18 +254,16 @@ static void ColouriseCppDoc(int codePage, int startPos, int length,
chNext = styler.SafeGetCharAt(i + 1);
}
} else if (ch == '\"') {
- styler.ColourSegment(startSeg, i, state);
+ styler.ColourTo(i, state);
state = SCE_C_DEFAULT;
i++;
ch = chNext;
chNext = styler.SafeGetCharAt(i + 1);
- startSeg = i;
}
} else if (state == SCE_C_CHARACTER) {
if ((ch == '\r' || ch == '\n') && (chPrev != '\\')) {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i-1, state);
state = SCE_C_STRINGEOL;
- startSeg = i;
} else if (ch == '\\') {
if (chNext == '\"' || chNext == '\'' || chNext == '\\') {
i++;
@@ -282,12 +271,11 @@ static void ColouriseCppDoc(int codePage, int startPos, int length,
chNext = styler.SafeGetCharAt(i + 1);
}
} else if (ch == '\'') {
- styler.ColourSegment(startSeg, i, state);
+ styler.ColourTo(i, state);
state = SCE_C_DEFAULT;
i++;
ch = chNext;
chNext = styler.SafeGetCharAt(i + 1);
- startSeg = i;
}
}
if (state == SCE_C_DEFAULT) { // One of the above succeeded
@@ -307,8 +295,7 @@ static void ColouriseCppDoc(int codePage, int startPos, int length,
} else if (iswordstart(ch)) {
state = SCE_C_WORD;
} else if (isoperator(ch)) {
- styler.ColourSegment(startSeg, i, SCE_C_OPERATOR);
- startSeg = i + 1;
+ styler.ColourTo(i, SCE_C_OPERATOR);
if ((ch == '{') || (ch == '}')) {
levelCurrent += (ch == '{') ? 1 : -1;
}
@@ -317,8 +304,8 @@ static void ColouriseCppDoc(int codePage, int startPos, int length,
}
chPrev = ch;
}
- if (startSeg < lengthDoc)
- styler.ColourSegment(startSeg, lengthDoc - 1, state);
+ styler.ColourTo(lengthDoc - 1, state);
+
// Fill in the real level of the next line, keeping the current flags as they will be filled in later
if (fold) {
int flagsNext = styler.LevelAt(lineCurrent) & ~SC_FOLDLEVELNUMBERMASK;
@@ -356,7 +343,7 @@ static int classifyWordPerl(unsigned int start, unsigned int end, WordList &keyw
if (keywords.InList(s))
chAttr = SCE_PL_WORD;
}
- styler.ColourSegment(start, end, chAttr);
+ styler.ColourTo(end, chAttr);
return chAttr;
}
@@ -423,7 +410,7 @@ static void ColourisePerlDoc(int codePage, int startPos, int length, int initSty
styler.StartAt(startPos);
char chPrev = ' ';
char chNext = styler[startPos];
- int startSeg = startPos;
+ styler.StartSegment(startPos);
for (int i = startPos; i <= lengthDoc; i++) {
char ch = chNext;
chNext = styler.SafeGetCharAt(i + 1);
@@ -438,33 +425,29 @@ static void ColourisePerlDoc(int codePage, int startPos, int length, int initSty
if (state == SCE_PL_DEFAULT) {
if (iswordstart(ch)) {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i - 1, state);
if (ch == 's' && !isalnum(chNext)) {
state = SCE_PL_REGSUBST;
quotes = 0;
quoteUp = '\0';
quoteDown = '\0';
quoteRep = 2;
- startSeg = i;
} else if (ch == 'm' && !isalnum(chNext)) {
state = SCE_PL_REGEX;
quotes = 0;
quoteUp = '\0';
quoteDown = '\0';
quoteRep = 1;
- startSeg = i;
} else if (ch == 't' && chNext == 'r' && !isalnum(chNext2)) {
state = SCE_PL_REGSUBST;
quotes = 0;
quoteUp = '\0';
quoteDown = '\0';
quoteRep = 2;
- startSeg = i;
i++;
chNext = chNext2;
} else if (ch == 'q' && (chNext == 'q' || chNext == 'r' || chNext == 'w' || chNext == 'x') && !isalnum(chNext2)) {
state = SCE_PL_LONGQUOTE;
- startSeg = i;
i++;
chNext = chNext2;
quotes = 0;
@@ -473,93 +456,75 @@ static void ColourisePerlDoc(int codePage, int startPos, int length, int initSty
quoteRep = 1;
} else {
state = SCE_PL_WORD;
- startSeg = i;
preferRE = false;
}
} else if (ch == '#') {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i - 1, state);
state = SCE_PL_COMMENTLINE;
- startSeg = i;
} else if (ch == '\"') {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i - 1, state);
state = SCE_PL_STRING;
- startSeg = i;
} else if (ch == '\'') {
if (chPrev == '&') {
// Archaic call
- styler.ColourSegment(i, i, state);
- startSeg = i + 1;
+ styler.ColourTo(i, state);
} else {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i - 1, state);
state = SCE_PL_CHARACTER;
- startSeg = i;
}
} else if (ch == '`') {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i - 1, state);
state = SCE_PL_BACKTICKS;
- startSeg = i;
} else if (ch == '$') {
preferRE = false;
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i - 1, state);
if (isalnum(chNext) || chNext == '#' || chNext == '$' || chNext == '_') {
state = SCE_PL_SCALAR;
- startSeg = i;
} else if (chNext != '{' && chNext != '[') {
- styler.ColourSegment(i - 1, i, SCE_PL_SCALAR);
+ styler.ColourTo(i, SCE_PL_SCALAR);
i++;
- startSeg = i + 1;
ch = ' ';
chNext = ' ';
} else {
- styler.ColourSegment(i, i, SCE_PL_SCALAR);
- startSeg = i + 1;
+ styler.ColourTo(i, SCE_PL_SCALAR);
}
} else if (ch == '@') {
preferRE = false;
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i - 1, state);
if (isalpha(chNext) || chNext == '#' || chNext == '$' || chNext == '_') {
state = SCE_PL_ARRAY;
- startSeg = i;
} else if (chNext != '{' && chNext != '[') {
- styler.ColourSegment(i - 1, i, SCE_PL_ARRAY);
+ styler.ColourTo(i, SCE_PL_ARRAY);
i++;
- startSeg = i + 1;
ch = ' ';
} else {
- styler.ColourSegment(i, i, SCE_PL_ARRAY);
- startSeg = i + 1;
+ styler.ColourTo(i, SCE_PL_ARRAY);
}
} else if (ch == '%') {
preferRE = false;
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i - 1, state);
if (isalpha(chNext) || chNext == '#' || chNext == '$' || chNext == '_') {
state = SCE_PL_HASH;
- startSeg = i;
} else if (chNext != '{' && chNext != '[') {
- styler.ColourSegment(i - 1, i, SCE_PL_HASH);
+ styler.ColourTo(i, SCE_PL_HASH);
i++;
- startSeg = i + 1;
ch = ' ';
} else {
- styler.ColourSegment(i, i, SCE_PL_HASH);
- startSeg = i + 1;
+ styler.ColourTo(i, SCE_PL_HASH);
}
} else if (ch == '*') {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i - 1, state);
state = SCE_PL_SYMBOLTABLE;
- startSeg = i;
} else if (ch == '/' && preferRE) {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i - 1, state);
state = SCE_PL_REGEX;
quoteUp = '/';
quoteDown = '/';
quotes = 1;
quoteRep = 1;
- startSeg = i;
} else if (ch == '<' && chNext == '<') {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i - 1, state);
state = SCE_PL_HERE;
- startSeg = i;
i++;
ch = chNext;
chNext = chNext2;
@@ -567,9 +532,8 @@ static void ColourisePerlDoc(int codePage, int startPos, int length, int initSty
sookedpos = 0;
sooked[sookedpos] = '\0';
} else if (ch == '=' && isalpha(chNext)) {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i - 1, state);
state = SCE_PL_POD;
- startSeg = i;
quotes = 0;
sookedpos = 0;
sooked[sookedpos] = '\0';
@@ -578,23 +542,21 @@ static void ColourisePerlDoc(int codePage, int startPos, int length, int initSty
preferRE = false;
else
preferRE = true;
- styler.ColourSegment(startSeg, i - 1, state);
- styler.ColourSegment(i, i, SCE_PL_OPERATOR);
- startSeg = i + 1;
+ styler.ColourTo(i - 1, state);
+ styler.ColourTo(i, SCE_PL_OPERATOR);
}
} else if (state == SCE_PL_WORD) {
if (!iswordchar(ch) && ch != '\'') { // Archaic Perl has quotes inside names
- if (isMatch(styler, lengthDoc, startSeg, "__DATA__")) {
- styler.ColourSegment(startSeg, i, SCE_PL_DATASECTION);
+ if (isMatch(styler, lengthDoc, styler.GetStartSegment(), "__DATA__")) {
+ styler.ColourTo(i, SCE_PL_DATASECTION);
state = SCE_PL_DATASECTION;
- } else if (isMatch(styler, lengthDoc, startSeg, "__END__")) {
- styler.ColourSegment(startSeg, i, SCE_PL_DATASECTION);
+ } else if (isMatch(styler, lengthDoc, styler.GetStartSegment(), "__END__")) {
+ styler.ColourTo(i, SCE_PL_DATASECTION);
state = SCE_PL_DATASECTION;
} else {
- if (classifyWordPerl(startSeg, i - 1, keywords, styler) == SCE_PL_WORD)
+ if (classifyWordPerl(styler.GetStartSegment(), i - 1, keywords, styler) == SCE_PL_WORD)
preferRE = true;
state = SCE_PL_DEFAULT;
- startSeg = i;
if (ch == '#') {
state = SCE_PL_COMMENTLINE;
} else if (ch == '\"') {
@@ -604,7 +566,6 @@ static void ColourisePerlDoc(int codePage, int startPos, int length, int initSty
} else if (ch == '<' && chNext == '<') {
state = SCE_PL_HERE;
quotes = 0;
- startSeg = i;
sookedpos = 0;
sooked[sookedpos] = '\0';
} else if (isPerlOperator(ch)) {
@@ -612,18 +573,16 @@ static void ColourisePerlDoc(int codePage, int startPos, int length, int initSty
preferRE = false;
else
preferRE = true;
- styler.ColourSegment(startSeg, i, SCE_PL_OPERATOR);
+ styler.ColourTo(i, SCE_PL_OPERATOR);
state = SCE_PL_DEFAULT;
- startSeg = i + 1;
}
}
}
} else {
if (state == SCE_PL_COMMENTLINE) {
if (ch == '\r' || ch == '\n') {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i - 1, state);
state = SCE_PL_DEFAULT;
- startSeg = i;
}
} else if (state == SCE_PL_HERE) {
if (isalnum(ch) && quotes < 2) {
@@ -636,10 +595,9 @@ static void ColourisePerlDoc(int codePage, int startPos, int length, int initSty
}
if (quotes > 1 && isMatch(styler, lengthDoc, i, sooked)) {
- styler.ColourSegment(startSeg, i + sookedpos - 1, SCE_PL_HERE);
+ styler.ColourTo(i + sookedpos - 1, SCE_PL_HERE);
state = SCE_PL_DEFAULT;
i += sookedpos;
- startSeg = i;
chNext = ' ';
}
} else if (state == SCE_PL_STRING) {
@@ -650,12 +608,11 @@ static void ColourisePerlDoc(int codePage, int startPos, int length, int initSty
chNext = styler.SafeGetCharAt(i + 1);
}
} else if (ch == '\"') {
- styler.ColourSegment(startSeg, i, state);
+ styler.ColourTo(i, state);
state = SCE_PL_DEFAULT;
i++;
ch = chNext;
chNext = styler.SafeGetCharAt(i + 1);
- startSeg = i;
}
} else if (state == SCE_PL_CHARACTER) {
if (ch == '\\') {
@@ -665,28 +622,25 @@ static void ColourisePerlDoc(int codePage, int startPos, int length, int initSty
chNext = styler.SafeGetCharAt(i + 1);
}
} else if (ch == '\'') {
- styler.ColourSegment(startSeg, i, state);
+ styler.ColourTo(i, state);
state = SCE_PL_DEFAULT;
i++;
ch = chNext;
chNext = styler.SafeGetCharAt(i + 1);
- startSeg = i;
}
} else if (state == SCE_PL_BACKTICKS) {
if (ch == '`') {
- styler.ColourSegment(startSeg, i, state);
+ styler.ColourTo(i, state);
state = SCE_PL_DEFAULT;
i++;
ch = chNext;
chNext = styler.SafeGetCharAt(i + 1);
- startSeg = i;
}
} else if (state == SCE_PL_POD) {
if (ch == '=') {
if (isMatch(styler, lengthDoc, i, "=cut")) {
- styler.ColourSegment(startSeg, i - 1 + 4, state);
+ styler.ColourTo(i - 1 + 4, state);
i += 4;
- startSeg = i;
state = SCE_PL_DEFAULT;
chNext = ' ';
ch = ' ';
@@ -694,32 +648,27 @@ static void ColourisePerlDoc(int codePage, int startPos, int length, int initSty
}
} else if (state == SCE_PL_SCALAR) {
if (isEndVar(ch)) {
- styler.ColourSegment(startSeg, i - 1, state);
- startSeg = i;
+ styler.ColourTo(i - 1, state);
state = SCE_PL_DEFAULT;
}
} else if (state == SCE_PL_ARRAY) {
if (isEndVar(ch)) {
- styler.ColourSegment(startSeg, i - 1, state);
- startSeg = i;
+ styler.ColourTo(i - 1, state);
state = SCE_PL_DEFAULT;
}
} else if (state == SCE_PL_HASH) {
if (isEndVar(ch)) {
- styler.ColourSegment(startSeg, i - 1, state);
- startSeg = i;
+ styler.ColourTo(i - 1, state);
state = SCE_PL_DEFAULT;
}
} else if (state == SCE_PL_SYMBOLTABLE) {
if (isEndVar(ch)) {
- styler.ColourSegment(startSeg, i - 1, state);
- startSeg = i;
+ styler.ColourTo(i - 1, state);
state = SCE_PL_DEFAULT;
}
} else if (state == SCE_PL_REF) {
if (isEndVar(ch)) {
- styler.ColourSegment(startSeg, i - 1, state);
- startSeg = i;
+ styler.ColourTo(i - 1, state);
state = SCE_PL_DEFAULT;
}
} else if (state == SCE_PL_REGEX) {
@@ -738,8 +687,7 @@ static void ColourisePerlDoc(int codePage, int startPos, int length, int initSty
}
if (!isalpha(chNext)) {
if (quoteRep <= 0) {
- styler.ColourSegment(startSeg, i, state);
- startSeg = i + 1;
+ styler.ColourTo(i, state);
state = SCE_PL_DEFAULT;
ch = ' ';
}
@@ -748,8 +696,7 @@ static void ColourisePerlDoc(int codePage, int startPos, int length, int initSty
quotes++;
} else if (!isalpha(chNext)) {
if (quoteRep <= 0) {
- styler.ColourSegment(startSeg, i, state);
- startSeg = i + 1;
+ styler.ColourTo(i, state);
state = SCE_PL_DEFAULT;
ch = ' ';
}
@@ -768,8 +715,7 @@ static void ColourisePerlDoc(int codePage, int startPos, int length, int initSty
}
if (!isalpha(chNext)) {
if (quoteRep <= 0) {
- styler.ColourSegment(startSeg, i, state);
- startSeg = i + 1;
+ styler.ColourTo(i, state);
state = SCE_PL_DEFAULT;
ch = ' ';
}
@@ -781,8 +727,7 @@ static void ColourisePerlDoc(int codePage, int startPos, int length, int initSty
quotes++;
} else if (!isalpha(chNext)) {
if (quoteRep <= 0) {
- styler.ColourSegment(startSeg, i, state);
- startSeg = i + 1;
+ styler.ColourTo(i, state);
state = SCE_PL_DEFAULT;
ch = ' ';
}
@@ -798,8 +743,7 @@ static void ColourisePerlDoc(int codePage, int startPos, int length, int initSty
if (quotes == 0) {
quoteRep--;
if (quoteRep <= 0) {
- styler.ColourSegment(startSeg, i, state);
- startSeg = i + 1;
+ styler.ColourTo(i, state);
state = SCE_PL_DEFAULT;
ch = ' ';
}
@@ -823,15 +767,13 @@ static void ColourisePerlDoc(int codePage, int startPos, int length, int initSty
state = SCE_PL_WORD;
preferRE = false;
} else if (isoperator(ch)) {
- styler.ColourSegment(startSeg, i, SCE_PL_OPERATOR);
- startSeg = i + 1;
+ styler.ColourTo(i, SCE_PL_OPERATOR);
}
}
}
chPrev = ch;
}
- if (startSeg < lengthDoc)
- styler.ColourSegment(startSeg, lengthDoc, state);
+ styler.ColourTo(lengthDoc, state);
}
@@ -852,7 +794,7 @@ static int classifyWordVB(unsigned int start, unsigned int end, WordList &keywor
chAttr = SCE_C_COMMENTLINE;
}
}
- styler.ColourSegment(start, end, chAttr);
+ styler.ColourTo(end, chAttr);
if (chAttr == SCE_C_COMMENTLINE)
return SCE_C_COMMENTLINE;
else
@@ -863,7 +805,7 @@ static void ColouriseVBDoc(int codePage, int startPos, int length, int initStyle
WordList &keywords, StylingContext &styler) {
int state = initStyle;
char chNext = styler[startPos];
- int startSeg = startPos;
+ styler.StartSegment(startPos);
int lengthDoc = startPos + length;
for (int i = startPos; i < lengthDoc; i++) {
char ch = chNext;
@@ -877,23 +819,19 @@ static void ColouriseVBDoc(int codePage, int startPos, int length, int initStyle
if (state == SCE_C_DEFAULT) {
if (iswordstart(ch)) {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i - 1, state);
state = SCE_C_WORD;
- startSeg = i;
} else if (ch == '\'') {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i - 1, state);
state = SCE_C_COMMENTLINE;
- startSeg = i;
} else if (ch == '\"') {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i - 1, state);
state = SCE_C_STRING;
- startSeg = i;
}
} else if (state == SCE_C_WORD) {
if (!iswordchar(ch)) {
- state = classifyWordVB(startSeg, i - 1, keywords, styler);
+ state = classifyWordVB(styler.GetStartSegment(), i - 1, keywords, styler);
if (state == SCE_C_DEFAULT) {
- startSeg = i;
if (ch == '\'') {
state = SCE_C_COMMENTLINE;
} else if (ch == '\"') {
@@ -904,19 +842,17 @@ static void ColouriseVBDoc(int codePage, int startPos, int length, int initStyle
} else {
if (state == SCE_C_COMMENTLINE) {
if (ch == '\r' || ch == '\n') {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i - 1, state);
state = SCE_C_DEFAULT;
- startSeg = i;
}
} else if (state == SCE_C_STRING) {
// VB doubles quotes to preserve them
if (ch == '\"') {
- styler.ColourSegment(startSeg, i, state);
+ styler.ColourTo(i, state);
state = SCE_C_DEFAULT;
i++;
ch = chNext;
chNext = styler.SafeGetCharAt(i + 1);
- startSeg = i;
}
}
if (state == SCE_C_DEFAULT) { // One of the above succeeded
@@ -930,8 +866,7 @@ static void ColouriseVBDoc(int codePage, int startPos, int length, int initStyle
}
}
}
- if (startSeg < lengthDoc)
- styler.ColourSegment(startSeg, lengthDoc, state);
+ styler.ColourTo(lengthDoc, state);
}
static void classifyWordPy(unsigned int start, unsigned int end, WordList &keywords, StylingContext &styler, char *prevWord) {
@@ -950,7 +885,7 @@ static void classifyWordPy(unsigned int start, unsigned int end, WordList &keywo
chAttr = SCE_P_NUMBER;
else if (keywords.InList(s))
chAttr = SCE_P_WORD;
- styler.ColourSegment(start, end, chAttr);
+ styler.ColourTo(end, chAttr);
strcpy(prevWord, s);
}
@@ -976,7 +911,7 @@ static void ColourisePyDoc(int codePage, int startPos, int length, int initStyle
char chPrev2 = ' ';
char chNext = styler[startPos];
char chNext2 = styler[startPos];
- int startSeg = startPos;
+ styler.StartSegment(startPos);
int lengthDoc = startPos + length;
bool atStartLine = true;
for (int i = startPos; i <= lengthDoc; i++) {
@@ -1002,8 +937,7 @@ static void ColourisePyDoc(int codePage, int startPos, int length, int initStyle
if ((state == SCE_P_DEFAULT) || (state == SCE_P_TRIPLE) || (state == SCE_P_TRIPLEDOUBLE)) {
// Perform colourisation of white space and triple quoted strings at end of each line to allow
// tab marking to work inside white space and triple quoted strings
- styler.ColourSegment(startSeg, i, state);
- startSeg = i + 1;
+ styler.ColourTo(i, state);
}
int lev = indentCurrent;
@@ -1032,23 +966,19 @@ static void ColourisePyDoc(int codePage, int startPos, int length, int initStyle
if (state == SCE_P_STRINGEOL) {
if (ch != '\r' && ch != '\n') {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i - 1, state);
state = SCE_P_DEFAULT;
- startSeg = i;
}
}
if (state == SCE_P_DEFAULT) {
if (iswordstart(ch)) {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i - 1, state);
state = SCE_P_WORD;
- startSeg = i;
} else if (ch == '#') {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i - 1, state);
state = chNext == '#' ? SCE_P_COMMENTBLOCK : SCE_P_COMMENTLINE;
- startSeg = i;
} else if (ch == '\"') {
- styler.ColourSegment(startSeg, i - 1, state);
- startSeg = i;
+ styler.ColourTo(i - 1, state);
if (chNext == '\"' && chNext2 == '\"') {
i += 2;
state = SCE_P_TRIPLEDOUBLE;
@@ -1059,8 +989,7 @@ static void ColourisePyDoc(int codePage, int startPos, int length, int initStyle
state = SCE_P_STRING;
}
} else if (ch == '\'') {
- styler.ColourSegment(startSeg, i - 1, state);
- startSeg = i;
+ styler.ColourTo(i - 1, state);
if (chNext == '\'' && chNext2 == '\'') {
i += 2;
state = SCE_P_TRIPLE;
@@ -1071,15 +1000,13 @@ static void ColourisePyDoc(int codePage, int startPos, int length, int initStyle
state = SCE_P_CHARACTER;
}
} else if (isoperator(ch)) {
- styler.ColourSegment(startSeg, i - 1, state);
- styler.ColourSegment(i, i, SCE_P_OPERATOR);
- startSeg = i + 1;
+ styler.ColourTo(i - 1, state);
+ styler.ColourTo(i, SCE_P_OPERATOR);
}
} else if (state == SCE_P_WORD) {
if (!iswordchar(ch)) {
- classifyWordPy(startSeg, i - 1, keywords, styler, prevWord);
+ classifyWordPy(styler.GetStartSegment(), i - 1, keywords, styler, prevWord);
state = SCE_P_DEFAULT;
- startSeg = i;
if (ch == '#') {
state = chNext == '#' ? SCE_P_COMMENTBLOCK : SCE_P_COMMENTLINE;
} else if (ch == '\"') {
@@ -1103,22 +1030,19 @@ static void ColourisePyDoc(int codePage, int startPos, int length, int initStyle
state = SCE_P_CHARACTER;
}
} else if (isoperator(ch)) {
- styler.ColourSegment(startSeg, i, SCE_P_OPERATOR);
- startSeg = i + 1;
+ styler.ColourTo(i, SCE_P_OPERATOR);
}
}
} else {
if (state == SCE_P_COMMENTLINE || state == SCE_P_COMMENTBLOCK) {
if (ch == '\r' || ch == '\n') {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i - 1, state);
state = SCE_P_DEFAULT;
- startSeg = i;
}
} else if (state == SCE_P_STRING) {
if ((ch == '\r' || ch == '\n') && (chPrev != '\\')) {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i - 1, state);
state = SCE_P_STRINGEOL;
- startSeg = i;
} else if (ch == '\\') {
if (chNext == '\"' || chNext == '\'' || chNext == '\\') {
i++;
@@ -1126,15 +1050,13 @@ static void ColourisePyDoc(int codePage, int startPos, int length, int initStyle
chNext = styler.SafeGetCharAt(i + 1);
}
} else if (ch == '\"') {
- styler.ColourSegment(startSeg, i, state);
+ styler.ColourTo(i, state);
state = SCE_P_DEFAULT;
- startSeg = i + 1;
}
} else if (state == SCE_P_CHARACTER) {
if ((ch == '\r' || ch == '\n') && (chPrev != '\\')) {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i - 1, state);
state = SCE_P_STRINGEOL;
- startSeg = i;
} else if (ch == '\\') {
if (chNext == '\"' || chNext == '\'' || chNext == '\\') {
i++;
@@ -1142,76 +1064,60 @@ static void ColourisePyDoc(int codePage, int startPos, int length, int initStyle
chNext = styler.SafeGetCharAt(i + 1);
}
} else if (ch == '\'') {
- styler.ColourSegment(startSeg, i, state);
+ styler.ColourTo(i, state);
state = SCE_P_DEFAULT;
- startSeg = i + 1;
}
} else if (state == SCE_P_TRIPLE) {
if (ch == '\'' && chPrev == '\'' && chPrev2 == '\'') {
- styler.ColourSegment(startSeg, i, state);
+ styler.ColourTo(i, state);
state = SCE_P_DEFAULT;
- startSeg = i + 1;
}
} else if (state == SCE_P_TRIPLEDOUBLE) {
if (ch == '\"' && chPrev == '\"' && chPrev2 == '\"') {
- styler.ColourSegment(startSeg, i, state);
+ styler.ColourTo(i, state);
state = SCE_P_DEFAULT;
- startSeg = i + 1;
}
}
}
chPrev2 = chPrev;
chPrev = ch;
}
- if (startSeg <= lengthDoc) {
- if (state == SCE_P_DEFAULT) {
- styler.ColourSegment(startSeg, lengthDoc, state);
- } else if (state == SCE_P_WORD) {
- classifyWordPy(startSeg, lengthDoc, keywords, styler, prevWord);
- } else if (state == SCE_P_COMMENTLINE) {
- styler.ColourSegment(startSeg, lengthDoc, state);
- } else if (state == SCE_P_COMMENTBLOCK) {
- styler.ColourSegment(startSeg, lengthDoc, state);
- } else if (state == SCE_P_STRING) {
- styler.ColourSegment(startSeg, lengthDoc, state);
- } else if (state == SCE_P_CHARACTER) {
- styler.ColourSegment(startSeg, lengthDoc, state);
- } else if (state == SCE_P_TRIPLE) {
- styler.ColourSegment(startSeg, lengthDoc, state);
- } else if (state == SCE_P_TRIPLEDOUBLE) {
- styler.ColourSegment(startSeg, lengthDoc, state);
- }
+ if (state == SCE_P_WORD) {
+ classifyWordPy(styler.GetStartSegment(), lengthDoc, keywords, styler, prevWord);
+ } else {
+ styler.ColourTo(lengthDoc, state);
}
}
-static void ColouriseBatchLine(char *lineBuffer, int lengthLine, StylingContext &styler) {
+static void ColouriseBatchLine(char *lineBuffer, int endLine, StylingContext &styler) {
if (0 == strncmp(lineBuffer, "REM", 3)) {
- styler.ColourSegment(0, lengthLine - 1, 1);
+ styler.ColourTo(endLine, 1);
} else if (0 == strncmp(lineBuffer, "rem", 3)) {
- styler.ColourSegment(0, lengthLine - 1, 1);
+ styler.ColourTo(endLine, 1);
} else if (0 == strncmp(lineBuffer, "SET", 3)) {
- styler.ColourSegment(0, lengthLine - 1, 2);
+ styler.ColourTo(endLine, 2);
} else if (0 == strncmp(lineBuffer, "set", 3)) {
- styler.ColourSegment(0, lengthLine - 1, 2);
+ styler.ColourTo(endLine, 2);
} else if (lineBuffer[0] == ':') {
- styler.ColourSegment(0, lengthLine - 1, 3);
+ styler.ColourTo(endLine, 3);
} else {
- styler.ColourSegment(0, lengthLine - 1, 0);
+ styler.ColourTo(endLine, 0);
}
}
static void ColouriseBatchDoc(int startPos, int length, int, StylingContext &styler) {
char lineBuffer[1024];
+ styler.StartSegment(startPos);
unsigned int linePos = 0;
for (int i = startPos; i < startPos + length; i++) {
lineBuffer[linePos++] = styler[i];
if (styler[i] == '\r' || styler[i] == '\n' || (linePos >= sizeof(lineBuffer) - 1)) {
- ColouriseBatchLine(lineBuffer, linePos, styler);
+ ColouriseBatchLine(lineBuffer, i, styler);
linePos = 0;
}
}
if (linePos > 0)
- ColouriseBatchLine(lineBuffer, linePos, styler);
+ ColouriseBatchLine(lineBuffer, startPos + length, styler);
}
enum { eScriptNone, eScriptJS, eScriptVBS, eScriptPython };
@@ -2327,85 +2233,90 @@ static void ColouriseHyperTextDoc(int codePage, int startPos, int length,
styler.ColourTo(lengthDoc - 1, state);
}
-static void ColourisePropsLine(char *lineBuffer, int lengthLine, StylingContext &styler) {
+static void ColourisePropsLine(char *lineBuffer, int lengthLine, int startLine, int endPos, StylingContext &styler) {
int i = 0;
while (isspace(lineBuffer[i]) && (i < lengthLine)) // Skip initial spaces
i++;
if (lineBuffer[i] == '#' || lineBuffer[i] == '!' || lineBuffer[i] == ';') {
- styler.ColourSegment(0, lengthLine - 1, 1);
+ styler.ColourTo(endPos, 1);
} else if (lineBuffer[i] == '[') {
- styler.ColourSegment(0, lengthLine - 1, 2);
+ styler.ColourTo(endPos, 2);
} else if (lineBuffer[i] == '@') {
- styler.ColourSegment(0, i, 4);
+ styler.ColourTo(startLine+i, 4);
if (lineBuffer[++i] == '=')
- styler.ColourSegment(i, i, 3);
- if (++i < lengthLine)
- styler.ColourSegment(i, lengthLine - 1, 0);
+ styler.ColourTo(startLine+i, 3);
+ styler.ColourTo(endPos, 0);
} else {
while (lineBuffer[i] != '=' && (i < lengthLine)) // Search the '=' character
i++;
if (lineBuffer[i] == '=') {
- styler.ColourSegment(0, i - 1, 0);
- styler.ColourSegment(i, i, 3);
- if (++i < lengthLine)
- styler.ColourSegment(i, lengthLine - 1, 0);
- } else
- styler.ColourSegment(0, lengthLine - 1, 0);
+ styler.ColourTo(startLine+i-1, 0);
+ styler.ColourTo(startLine+i, 3);
+ styler.ColourTo(endPos, 0);
+ } else {
+ styler.ColourTo(endPos, 0);
+ }
}
}
static void ColourisePropsDoc(int startPos, int length, int, StylingContext &styler) {
char lineBuffer[1024];
+ styler.StartSegment(startPos);
unsigned int linePos = 0;
+ int startLine = startPos;
for (int i = startPos; i <= startPos + length; i++) {
lineBuffer[linePos++] = styler[i];
- if (styler[i] == '\r' || styler[i] == '\n' || (linePos >= sizeof(lineBuffer) - 1)) {
+ if ((styler[i] == '\r' && styler.SafeGetCharAt(i+1) != '\n') ||
+ styler[i] == '\n' ||
+ (linePos >= sizeof(lineBuffer) - 1)) {
lineBuffer[linePos] = '\0';
- ColourisePropsLine(lineBuffer, linePos, styler);
+ ColourisePropsLine(lineBuffer, linePos, startLine, i, styler);
linePos = 0;
+ startLine = i+1;
}
}
if (linePos > 0)
- ColourisePropsLine(lineBuffer, linePos, styler);
+ ColourisePropsLine(lineBuffer, linePos, startLine, startPos + length, styler);
}
-static void ColouriseMakeLine(char *lineBuffer, int lengthLine, StylingContext &styler) {
+static void ColouriseMakeLine(char *lineBuffer, int lengthLine, int endPos, StylingContext &styler) {
int i = 0;
while (isspace(lineBuffer[i]) && (i < lengthLine))
i++;
if (lineBuffer[i] == '#' || lineBuffer[i] == '!') {
- styler.ColourSegment(0, lengthLine - 1, 1);
+ styler.ColourTo(endPos, 1);
} else {
- styler.ColourSegment(0, lengthLine - 1, 0);
+ styler.ColourTo(endPos, 0);
}
}
static void ColouriseMakeDoc(int startPos, int length, int, StylingContext &styler) {
char lineBuffer[1024];
+ styler.StartSegment(startPos);
unsigned int linePos = 0;
for (int i = startPos; i <= startPos + length; i++) {
lineBuffer[linePos++] = styler[i];
if (styler[i] == '\r' || styler[i] == '\n' || (linePos >= sizeof(lineBuffer) - 1)) {
- ColouriseMakeLine(lineBuffer, linePos, styler);
+ ColouriseMakeLine(lineBuffer, linePos, i, styler);
linePos = 0;
}
}
if (linePos > 0)
- ColouriseMakeLine(lineBuffer, linePos, styler);
+ ColouriseMakeLine(lineBuffer, linePos, startPos + length, styler);
}
-static void ColouriseErrorListLine(char *lineBuffer, int lengthLine, StylingContext &styler) {
+static void ColouriseErrorListLine(char *lineBuffer, int lengthLine, int endPos, StylingContext &styler) {
if (lineBuffer[0] == '>') {
// Command or return status
- styler.ColourSegment(0, lengthLine - 1, 4);
+ styler.ColourTo(endPos, 4);
} else if (strstr(lineBuffer, "File \"") && strstr(lineBuffer, ", line ")) {
- styler.ColourSegment(0, lengthLine - 1, 1);
+ styler.ColourTo(endPos, 1);
} else if (0 == strncmp(lineBuffer, "Error ", strlen("Error "))) {
// Borland error message
- styler.ColourSegment(0, lengthLine - 1, 5);
+ styler.ColourTo(endPos, 5);
} else if (0 == strncmp(lineBuffer, "Warning ", strlen("Warning "))) {
// Borland warning message
- styler.ColourSegment(0, lengthLine - 1, 5);
+ styler.ColourTo(endPos, 5);
} else {
// Look for <filename>:<line>:message
// Look for <filename>(line)message
@@ -2440,27 +2351,28 @@ static void ColouriseErrorListLine(char *lineBuffer, int lengthLine, StylingCont
}
}
if (state == 3) {
- styler.ColourSegment(0, lengthLine - 1, 2);
+ styler.ColourTo(endPos, 2);
} else if ((state == 14) || (state == 15)) {
- styler.ColourSegment(0, lengthLine - 1, 3);
+ styler.ColourTo(endPos, 3);
} else {
- styler.ColourSegment(0, lengthLine - 1, 0);
+ styler.ColourTo(endPos, 0);
}
}
}
static void ColouriseErrorListDoc(int startPos, int length, int, StylingContext &styler) {
char lineBuffer[1024];
+ styler.StartSegment(startPos);
unsigned int linePos = 0;
for (int i = startPos; i <= startPos + length; i++) {
lineBuffer[linePos++] = styler[i];
if (styler[i] == '\r' || styler[i] == '\n' || (linePos >= sizeof(lineBuffer) - 1)) {
- ColouriseErrorListLine(lineBuffer, linePos, styler);
+ ColouriseErrorListLine(lineBuffer, linePos, i, styler);
linePos = 0;
}
}
if (linePos > 0)
- ColouriseErrorListLine(lineBuffer, linePos, styler);
+ ColouriseErrorListLine(lineBuffer, linePos, startPos + length, styler);
}
static void classifyWordSQL(unsigned int start, unsigned int end, WordList &keywords, StylingContext &styler) {
@@ -2477,7 +2389,7 @@ static void classifyWordSQL(unsigned int start, unsigned int end, WordList &keyw
if (keywords.InList(s))
chAttr = SCE_C_WORD;
}
- styler.ColourSegment(start, end, chAttr);
+ styler.ColourTo(end, chAttr);
}
static void ColouriseSQLDoc(int codePage, int startPos, int length,
@@ -2491,7 +2403,7 @@ static void ColouriseSQLDoc(int codePage, int startPos, int length,
int state = initStyle;
char chPrev = ' ';
char chNext = styler[startPos];
- int startSeg = startPos;
+ styler.StartSegment(startPos);
int lengthDoc = startPos + length;
bool prevCr = false;
for (int i = startPos; i <= lengthDoc; i++) {
@@ -2522,31 +2434,25 @@ static void ColouriseSQLDoc(int codePage, int startPos, int length,
if (state == SCE_C_DEFAULT) {
if (iswordstart(ch)) {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i - 1, state);
state = SCE_C_WORD;
- startSeg = i;
} else if (ch == '/' && chNext == '*') {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i - 1, state);
state = SCE_C_COMMENT;
- startSeg = i;
} else if (ch == '-' && chNext == '-') {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i - 1, state);
state = SCE_C_COMMENTLINE;
- startSeg = i;
} else if (ch == '\'') {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i - 1, state);
state = SCE_C_STRING;
- startSeg = i;
} else if (isoperator(ch)) {
- styler.ColourSegment(startSeg, i - 1, state);
- styler.ColourSegment(i, i, SCE_C_OPERATOR);
- startSeg = i + 1;
+ styler.ColourTo(i - 1, state);
+ styler.ColourTo(i, SCE_C_OPERATOR);
}
} else if (state == SCE_C_WORD) {
if (!iswordchar(ch)) {
- classifyWordSQL(startSeg, i - 1, keywords, styler);
+ classifyWordSQL(styler.GetStartSegment(), i - 1, keywords, styler);
state = SCE_C_DEFAULT;
- startSeg = i;
if (ch == '/' && chNext == '*') {
state = SCE_C_COMMENT;
} else if (ch == '-' && chNext == '-') {
@@ -2554,33 +2460,31 @@ static void ColouriseSQLDoc(int codePage, int startPos, int length,
} else if (ch == '\'') {
state = SCE_C_STRING;
} else if (isoperator(ch)) {
- styler.ColourSegment(startSeg, i, SCE_C_OPERATOR);
- startSeg = i + 1;
+ styler.ColourTo(i, SCE_C_OPERATOR);
}
}
} else {
if (state == SCE_C_COMMENT) {
- if (ch == '/' && chPrev == '*' && (
- (i > startSeg + 2) || ((initStyle == SCE_C_COMMENT) && (startSeg == startPos)))) {
- state = SCE_C_DEFAULT;
- styler.ColourSegment(startSeg, i, state);
- startSeg = i + 1;
+ if (ch == '/' && chPrev == '*') {
+ if (((i > styler.GetStartSegment() + 2) || ((initStyle == SCE_C_COMMENT) &&
+ (styler.GetStartSegment() == startPos)))) {
+ state = SCE_C_DEFAULT;
+ styler.ColourTo(i, state);
+ }
}
} else if (state == SCE_C_COMMENTLINE) {
if (ch == '\r' || ch == '\n') {
- styler.ColourSegment(startSeg, i - 1, state);
+ styler.ColourTo(i - 1, state);
state = SCE_C_DEFAULT;
- startSeg = i;
}
} else if (state == SCE_C_STRING) {
if (ch == '\'') {
if ( chNext == '\'' ) {
i++;
} else {
- styler.ColourSegment(startSeg, i, state);
+ styler.ColourTo(i, state);
state = SCE_C_DEFAULT;
i++;
- startSeg = i;
}
ch = chNext;
chNext = styler.SafeGetCharAt(i + 1);
@@ -2596,15 +2500,13 @@ static void ColouriseSQLDoc(int codePage, int startPos, int length,
} else if (iswordstart(ch)) {
state = SCE_C_WORD;
} else if (isoperator(ch)) {
- styler.ColourSegment(startSeg, i, SCE_C_OPERATOR);
- startSeg = i + 1;
+ styler.ColourTo(i, SCE_C_OPERATOR);
}
}
}
chPrev = ch;
}
- if (startSeg < lengthDoc)
- styler.ColourSegment(startSeg, lengthDoc - 1, state);
+ styler.ColourTo(lengthDoc - 1, state);
}
void ColouriseDoc(int codePage, int startPos, int lengthDoc, int initStyle,
@@ -2642,7 +2544,8 @@ void ColouriseDoc(int codePage, int startPos, int lengthDoc, int initStyle,
} else {
// Null language means all style bytes are 0 so just mark the end - no need to fill in.
styler.StartAt(startPos + lengthDoc - 1);
- styler.ColourSegment(0, 0, 0);
+ styler.StartSegment(startPos + lengthDoc - 1);
+ styler.ColourTo(startPos + lengthDoc - 1, 0);
}
}
}