diff options
author | nyamatongwe <unknown> | 2001-08-09 23:51:48 +0000 |
---|---|---|
committer | nyamatongwe <unknown> | 2001-08-09 23:51:48 +0000 |
commit | 70f5ef78a1635b4425cb6203f01c3e665c597da6 (patch) | |
tree | ead135042b23c2b5b35ff66154605c09f92150d7 | |
parent | 30e34f8d7d63d336bbb37c5de561d0b4e26d52e7 (diff) | |
download | scintilla-mirror-70f5ef78a1635b4425cb6203f01c3e665c597da6.tar.gz |
Patch from Steve for recognising a SGML <! lexical state.
-rw-r--r-- | include/SciLexer.h | 1 | ||||
-rw-r--r-- | include/Scintilla.iface | 2 | ||||
-rw-r--r-- | src/LexHTML.cxx | 16 |
3 files changed, 15 insertions, 4 deletions
diff --git a/include/SciLexer.h b/include/SciLexer.h index e3c689404..54d3ace42 100644 --- a/include/SciLexer.h +++ b/include/SciLexer.h @@ -92,6 +92,7 @@ #define SCE_H_QUESTION 18 #define SCE_H_VALUE 19 #define SCE_H_XCCOMMENT 20 +#define SCE_H_SGML 21 #define SCE_HJ_START 40 #define SCE_HJ_DEFAULT 41 #define SCE_HJ_COMMENT 42 diff --git a/include/Scintilla.iface b/include/Scintilla.iface index c1d75623d..5baee89fc 100644 --- a/include/Scintilla.iface +++ b/include/Scintilla.iface @@ -1320,6 +1320,8 @@ val SCE_H_QUESTION=18 val SCE_H_VALUE=19 # X-Code val SCE_H_XCCOMMENT=20 +# SGML +val SCE_H_SGML=21 # Embedded Javascript val SCE_HJ_START=40 val SCE_HJ_DEFAULT=41 diff --git a/src/LexHTML.cxx b/src/LexHTML.cxx index b7e8c69b7..c28a43279 100644 --- a/src/LexHTML.cxx +++ b/src/LexHTML.cxx @@ -205,6 +205,8 @@ static int classifyTagHTML(unsigned int start, unsigned int end, chAttr = SCE_H_COMMENT; } else if (strcmp(s, "![cdata[") == 0) { // In lower case because already converted chAttr = SCE_H_CDATA; + } else if (s[0] == '!') { + chAttr = SCE_H_SGML; } else if (s[0] == '/') { // Closing tag if (keywords.InList(s + 1)) chAttr = SCE_H_TAG; @@ -536,19 +538,15 @@ static void ColouriseHyperTextDoc(unsigned int startPos, int length, int initSty scriptLanguage = segIsScriptingIndicator(styler, styler.GetStartSegment() + 2, i + 10, eScriptPHP); i++; i += PrintScriptingIndicatorOffset(styler, styler.GetStartSegment() + 2, i + 10); - if (scriptLanguage == eScriptXML) styler.ColourTo(i, SCE_H_XMLSTART); else styler.ColourTo(i, SCE_H_QUESTION); - state = StateForScript(scriptLanguage); - if (inScriptType == eNonHtmlScript) inScriptType = eNonHtmlScriptPreProc; else inScriptType = eNonHtmlPreProc; - // fold whole script levelCurrent++; if (scriptLanguage == eScriptXML) @@ -685,6 +683,14 @@ static void ColouriseHyperTextDoc(unsigned int startPos, int length, int initSty tagOpened = false; } break; + case SCE_H_SGML: + if (ch == '>') { + levelCurrent--; + styler.ColourTo(i, StateToPrint); + state = SCE_H_DEFAULT; + tagOpened = false; + } + break; case SCE_H_ENTITY: if (ch == ';') { styler.ColourTo(i, StateToPrint); @@ -731,6 +737,8 @@ static void ColouriseHyperTextDoc(unsigned int startPos, int length, int initSty if (eClass != SCE_H_TAGUNKNOWN) { if (eClass == SCE_H_CDATA) { state = SCE_H_CDATA; + } else if (eClass == SCE_H_SGML) { + state = SCE_H_SGML; } else { state = SCE_H_OTHER; } |