diff options
author | nyamatongwe <unknown> | 2004-08-24 00:51:34 +0000 |
---|---|---|
committer | nyamatongwe <unknown> | 2004-08-24 00:51:34 +0000 |
commit | 9f6be89c18414c9282d7adf8a1fae9a21cde8b82 (patch) | |
tree | af913f6236c127cfd818e634bdcd6d95a94b8eab | |
parent | 65548a49e401c4e5ff2d706323640dbce195eb71 (diff) | |
download | scintilla-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.
-rw-r--r-- | include/SciLexer.h | 1 | ||||
-rw-r--r-- | include/Scintilla.iface | 1 | ||||
-rw-r--r-- | src/LexCSS.cxx | 23 |
3 files changed, 19 insertions, 6 deletions
diff --git a/include/SciLexer.h b/include/SciLexer.h index 23d2b2161..666ad09fe 100644 --- a/include/SciLexer.h +++ b/include/SciLexer.h @@ -500,6 +500,7 @@ #define SCE_CSS_DIRECTIVE 12 #define SCE_CSS_DOUBLESTRING 13 #define SCE_CSS_SINGLESTRING 14 +#define SCE_CSS_IDENTIFIER2 15 #define SCE_POV_DEFAULT 0 #define SCE_POV_COMMENT 1 #define SCE_POV_COMMENTLINE 2 diff --git a/include/Scintilla.iface b/include/Scintilla.iface index ee50968df..a31148270 100644 --- a/include/Scintilla.iface +++ b/include/Scintilla.iface @@ -2250,6 +2250,7 @@ val SCE_CSS_IMPORTANT=11 val SCE_CSS_DIRECTIVE=12 val SCE_CSS_DOUBLESTRING=13 val SCE_CSS_SINGLESTRING=14 +val SCE_CSS_IDENTIFIER2=15 # Lexical states for SCLEX_POV lex POV=SCLEX_POV SCE_POV_ val SCE_POV_DEFAULT=0 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 }; |