aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authornyamatongwe <devnull@localhost>2001-08-08 12:08:11 +0000
committernyamatongwe <devnull@localhost>2001-08-08 12:08:11 +0000
commitbbc25f15a4fa9c8bcae5d001897b73b783b14ad6 (patch)
tree4d83666dcd66beaf3538d25d82d06129e080b402
parentfeb80a2c787c3d9b46557acb3b8317e6e3dc5d22 (diff)
downloadscintilla-mirror-bbc25f15a4fa9c8bcae5d001897b73b783b14ad6.tar.gz
Patch from Steve Lhomme to correct folding of XML files.
-rw-r--r--src/LexHTML.cxx12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/LexHTML.cxx b/src/LexHTML.cxx
index 44ac25d61..b7e8c69b7 100644
--- a/src/LexHTML.cxx
+++ b/src/LexHTML.cxx
@@ -527,24 +527,32 @@ static void ColouriseHyperTextDoc(unsigned int startPos, int length, int initSty
/////////////////////////////////////
// handle the start of PHP pre-processor = Non-HTML
else if ((state != SCE_H_ASPAT) &&
- !isPHPStringState(state) && (state != SCE_HPHP_COMMENT) &&
- (ch == '<') && (chNext == '?')) {
+ !isPHPStringState(state) &&
+ (state != SCE_HPHP_COMMENT) &&
+ (ch == '<') &&
+ (chNext == '?')) {
styler.ColourTo(i - 1, StateToPrint);
beforePreProc = state;
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)
+ levelCurrent--; // no folding of the XML first tag (all XML-like tags in this case)
// should be better
ch = styler.SafeGetCharAt(i);
continue;