diff options
Diffstat (limited to 'src/LexCSS.cxx')
-rw-r--r-- | src/LexCSS.cxx | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/LexCSS.cxx b/src/LexCSS.cxx index 25f974e63..f63103de3 100644 --- a/src/LexCSS.cxx +++ b/src/LexCSS.cxx @@ -141,9 +141,9 @@ static void ColouriseCssDoc(unsigned int startPos, int length, int initStyle, Wo sc.SetState(SCE_CSS_TAG); break; case '{': - if (lastState == SCE_CSS_DIRECTIVE) + if (lastState == SCE_CSS_MEDIA) sc.SetState(SCE_CSS_DEFAULT); - else if (lastState == SCE_CSS_TAG) + else if (lastState == SCE_CSS_TAG || lastState == SCE_CSS_DIRECTIVE) sc.SetState(SCE_CSS_IDENTIFIER); break; case '}': @@ -220,7 +220,8 @@ static void ColouriseCssDoc(unsigned int startPos, int length, int initStyle, Wo sc.state == SCE_CSS_PSEUDOCLASS || sc.state == SCE_CSS_PSEUDOELEMENT || sc.state == SCE_CSS_EXTENDED_PSEUDOCLASS || sc.state == SCE_CSS_EXTENDED_PSEUDOELEMENT || sc.state == SCE_CSS_UNKNOWN_PSEUDOCLASS || - sc.state == SCE_CSS_IMPORTANT + sc.state == SCE_CSS_IMPORTANT || + sc.state == SCE_CSS_DIRECTIVE )) { char s[100]; sc.GetCurrentLowered(s, sizeof(s)); @@ -264,6 +265,10 @@ static void ColouriseCssDoc(unsigned int startPos, int length, int initStyle, Wo if (strcmp(s2, "important") != 0) sc.ChangeState(SCE_CSS_VALUE); break; + case SCE_CSS_DIRECTIVE: + if (op == '@' && strcmp(s2, "media") == 0) + sc.ChangeState(SCE_CSS_MEDIA); + break; } } @@ -288,7 +293,7 @@ static void ColouriseCssDoc(unsigned int startPos, int length, int initStyle, Wo } else if (IsCssOperator(sc.ch) && (sc.state != SCE_CSS_ATTRIBUTE || sc.ch == ']') && (sc.state != SCE_CSS_VALUE || sc.ch == ';' || sc.ch == '}' || sc.ch == '!') - && (sc.state != SCE_CSS_DIRECTIVE || sc.ch == ';' || sc.ch == '{') + && ((sc.state != SCE_CSS_DIRECTIVE && sc.state != SCE_CSS_MEDIA) || sc.ch == ';' || sc.ch == '{') ) { if (sc.state != SCE_CSS_OPERATOR) lastState = sc.state; |