aboutsummaryrefslogtreecommitdiffhomepage
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
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.
-rw-r--r--include/SciLexer.h1
-rw-r--r--include/Scintilla.iface1
-rw-r--r--src/LexCSS.cxx23
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
};