diff options
| -rw-r--r-- | src/LexCSS.cxx | 14 | 
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); | 
