aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/LexCSS.cxx14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/LexCSS.cxx b/src/LexCSS.cxx
index c5e5b2ffa..fdf53efba 100644
--- a/src/LexCSS.cxx
+++ b/src/LexCSS.cxx
@@ -135,7 +135,11 @@ static void ColouriseCssDoc(unsigned int startPos, int length, int initStyle, Wo
continue;
}
- if (IsAWordChar(sc.chPrev) && (sc.state == SCE_CSS_IDENTIFIER || sc.state == SCE_CSS_PSEUDOCLASS || sc.state == SCE_CSS_IMPORTANT)) {
+ if (IsAWordChar(sc.chPrev) && (
+ sc.state == SCE_CSS_IDENTIFIER || sc.state == SCE_CSS_UNKNOWN_IDENTIFIER
+ || sc.state == SCE_CSS_PSEUDOCLASS || sc.state == SCE_CSS_UNKNOWN_PSEUDOCLASS
+ || sc.state == SCE_CSS_IMPORTANT
+ )) {
char s[100];
sc.GetCurrentLowered(s, sizeof(s));
char *s2 = s;
@@ -146,10 +150,18 @@ static void ColouriseCssDoc(unsigned int startPos, int length, int initStyle, Wo
if (!keywords.InList(s2))
sc.ChangeState(SCE_CSS_UNKNOWN_IDENTIFIER);
break;
+ case SCE_CSS_UNKNOWN_IDENTIFIER:
+ if (keywords.InList(s2))
+ sc.ChangeState(SCE_CSS_IDENTIFIER);
+ break;
case SCE_CSS_PSEUDOCLASS:
if (!pseudoClasses.InList(s2))
sc.ChangeState(SCE_CSS_UNKNOWN_PSEUDOCLASS);
break;
+ case SCE_CSS_UNKNOWN_PSEUDOCLASS:
+ if (pseudoClasses.InList(s2))
+ sc.ChangeState(SCE_CSS_PSEUDOCLASS);
+ break;
case SCE_CSS_IMPORTANT:
if (strcmp(s2, "important") != 0)
sc.ChangeState(SCE_CSS_VALUE);