diff options
author | nyamatongwe <unknown> | 2011-02-14 13:56:13 +1100 |
---|---|---|
committer | nyamatongwe <unknown> | 2011-02-14 13:56:13 +1100 |
commit | a0f3a975d38a8fdb5cbdefb80cd68dbaf6011b48 (patch) | |
tree | 87fcd46eeea9ee51da7171285883141ebf26ed13 /lexers/LexCPP.cxx | |
parent | 7bb3d317d0f8b53b2c002ec93607ab5ffe01f7bf (diff) | |
download | scintilla-mirror-a0f3a975d38a8fdb5cbdefb80cd68dbaf6011b48.tar.gz |
Addition of triple quoted strings for Vala. Feature #3177601.
From Colomban Wendling.
Diffstat (limited to 'lexers/LexCPP.cxx')
-rw-r--r-- | lexers/LexCPP.cxx | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/lexers/LexCPP.cxx b/lexers/LexCPP.cxx index 2e5fdd0d1..5331e33a4 100644 --- a/lexers/LexCPP.cxx +++ b/lexers/LexCPP.cxx @@ -591,7 +591,7 @@ void SCI_METHOD LexerCPP::Lex(unsigned int startPos, int length, int initStyle, const bool raw = literalString && sc.chPrev == 'R'; if (raw) s[lenS--] = '\0'; - bool valid = + bool valid = (lenS == 0) || ((lenS == 1) && ((s[0] == 'L') || (s[0] == 'u') || (s[0] == 'U'))) || ((lenS == 2) && literalString && (s[0] == 'u') && (s[1] == '8')); @@ -734,6 +734,14 @@ void SCI_METHOD LexerCPP::Lex(unsigned int startPos, int length, int initStyle, } } break; + case SCE_C_TRIPLEVERBATIM: + if (sc.Match ("\"\"\"")) { + while (sc.Match('"')) { + sc.Forward(); + } + sc.SetState(SCE_C_DEFAULT|activitySet); + } + break; case SCE_C_UUID: if (sc.ch == '\r' || sc.ch == '\n' || sc.ch == ')') { sc.SetState(SCE_C_DEFAULT|activitySet); @@ -751,6 +759,9 @@ void SCI_METHOD LexerCPP::Lex(unsigned int startPos, int length, int initStyle, if (sc.Match('@', '\"')) { sc.SetState(SCE_C_VERBATIM|activitySet); sc.Forward(); + } else if (sc.Match("\"\"\"")) { + sc.SetState(SCE_C_TRIPLEVERBATIM|activitySet); + sc.Forward(2); } else if (IsADigit(sc.ch) || (sc.ch == '.' && IsADigit(sc.chNext))) { if (lastWordWasUUID) { sc.SetState(SCE_C_UUID|activitySet); |