aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/LexCSS.cxx
diff options
context:
space:
mode:
authornyamatongwe <unknown>2004-08-24 00:51:34 +0000
committernyamatongwe <unknown>2004-08-24 00:51:34 +0000
commit9f6be89c18414c9282d7adf8a1fae9a21cde8b82 (patch)
treeaf913f6236c127cfd818e634bdcd6d95a94b8eab /src/LexCSS.cxx
parent65548a49e401c4e5ff2d706323640dbce195eb71 (diff)
downloadscintilla-mirror-9f6be89c18414c9282d7adf8a1fae9a21cde8b82.tar.gz
Patch from Philippe Lhoste to support second set of keywords for
CSS 2. Removal of css settings from html.properties where they duplicated settings from css.properties.
Diffstat (limited to 'src/LexCSS.cxx')
-rw-r--r--src/LexCSS.cxx23
1 files changed, 17 insertions, 6 deletions
diff --git a/src/LexCSS.cxx b/src/LexCSS.cxx
index 73d5b07d9..f45ce1cda 100644
--- a/src/LexCSS.cxx
+++ b/src/LexCSS.cxx
@@ -2,6 +2,7 @@
/** @file LexCSS.cxx
** Lexer for Cascading Style Sheets
** Written by Jakub Vrána
+ ** Improved by Philippe Lhoste (CSS2)
**/
// Copyright 1998-2002 by Neil Hodgson <neilh@scintilla.org>
// The License.txt file describes the conditions under which this software may be distributed.
@@ -113,14 +114,15 @@ static void ColouriseCssDoc(unsigned int startPos, int length, int initStyle, Wo
sc.SetState(SCE_CSS_IDENTIFIER);
break;
case '}':
- if (lastState == SCE_CSS_DEFAULT || lastState == SCE_CSS_VALUE || lastState == SCE_CSS_IMPORTANT || lastState == SCE_CSS_IDENTIFIER)
+ if (lastState == SCE_CSS_DEFAULT || lastState == SCE_CSS_VALUE || lastState == SCE_CSS_IMPORTANT ||
+ lastState == SCE_CSS_IDENTIFIER || lastState == SCE_CSS_IDENTIFIER2)
sc.SetState(SCE_CSS_DEFAULT);
break;
case ':':
if (lastState == SCE_CSS_TAG || lastState == SCE_CSS_PSEUDOCLASS || lastState == SCE_CSS_DEFAULT ||
lastState == SCE_CSS_CLASS || lastState == SCE_CSS_ID || lastState == SCE_CSS_UNKNOWN_PSEUDOCLASS)
sc.SetState(SCE_CSS_PSEUDOCLASS);
- else if (lastState == SCE_CSS_IDENTIFIER || lastState == SCE_CSS_UNKNOWN_IDENTIFIER)
+ else if (lastState == SCE_CSS_IDENTIFIER || lastState == SCE_CSS_IDENTIFIER2 || lastState == SCE_CSS_UNKNOWN_IDENTIFIER)
sc.SetState(SCE_CSS_VALUE);
break;
case '.':
@@ -155,7 +157,8 @@ static void ColouriseCssDoc(unsigned int startPos, int length, int initStyle, Wo
}
if (IsAWordChar(sc.chPrev) && (
- sc.state == SCE_CSS_IDENTIFIER || sc.state == SCE_CSS_UNKNOWN_IDENTIFIER
+ sc.state == SCE_CSS_IDENTIFIER || sc.state == SCE_CSS_IDENTIFIER2
+ || sc.state == SCE_CSS_UNKNOWN_IDENTIFIER
|| sc.state == SCE_CSS_PSEUDOCLASS || sc.state == SCE_CSS_UNKNOWN_PSEUDOCLASS
|| sc.state == SCE_CSS_IMPORTANT
)) {
@@ -166,12 +169,19 @@ static void ColouriseCssDoc(unsigned int startPos, int length, int initStyle, Wo
s2++;
switch (sc.state) {
case SCE_CSS_IDENTIFIER:
- if (!keywords.InList(s2) && !keywords2.InList(s2))
- sc.ChangeState(SCE_CSS_UNKNOWN_IDENTIFIER);
+ if (!keywords.InList(s2)) {
+ if (keywords2.InList(s2)) {
+ sc.ChangeState(SCE_CSS_IDENTIFIER2);
+ } else {
+ sc.ChangeState(SCE_CSS_UNKNOWN_IDENTIFIER);
+ }
+ }
break;
case SCE_CSS_UNKNOWN_IDENTIFIER:
if (keywords.InList(s2))
sc.ChangeState(SCE_CSS_IDENTIFIER);
+ else if (keywords2.InList(s2))
+ sc.ChangeState(SCE_CSS_IDENTIFIER2);
break;
case SCE_CSS_PSEUDOCLASS:
if (!pseudoClasses.InList(s2))
@@ -262,8 +272,9 @@ static void FoldCSSDoc(unsigned int startPos, int length, int, WordList *[], Acc
}
static const char * const cssWordListDesc[] = {
- "Keywords",
+ "CSS1 Keywords",
"Pseudo classes",
+ "CSS2 Keywords",
0
};