diff options
Diffstat (limited to 'src/LexCPP.cxx')
-rw-r--r-- | src/LexCPP.cxx | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/LexCPP.cxx b/src/LexCPP.cxx index 632eeab36..917ac55c8 100644 --- a/src/LexCPP.cxx +++ b/src/LexCPP.cxx @@ -72,6 +72,8 @@ static void ColouriseCppDoc(unsigned int startPos, int length, int initStyle, Wo StyleContext sc(startPos, length, initStyle, styler); for (; sc.More(); sc.Forward()) { + + // Handle line continuation generically. if (sc.ch == '\\') { if (sc.Match("\\\n")) { sc.Forward(); @@ -86,6 +88,7 @@ static void ColouriseCppDoc(unsigned int startPos, int length, int initStyle, Wo } } + // Determine if the current state should terminate. if (sc.state == SCE_C_OPERATOR) { sc.SetState(SCE_C_DEFAULT); } else if (sc.state == SCE_C_NUMBER) { @@ -176,6 +179,7 @@ static void ColouriseCppDoc(unsigned int startPos, int length, int initStyle, Wo } } + // Determine if a new state should be entered. if (sc.state == SCE_C_DEFAULT) { if (sc.Match('@', '\"')) { sc.SetState(SCE_C_VERBATIM); @@ -226,6 +230,7 @@ static void ColouriseCppDoc(unsigned int startPos, int length, int initStyle, Wo sc.SetState(SCE_C_OPERATOR); } } + if (sc.atLineEnd) { // Reset states to begining of colourise so no surprises // if different sets of lines lexed. |