aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/LexCPP.cxx19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/LexCPP.cxx b/src/LexCPP.cxx
index 4f70e9bd3..b6358ab33 100644
--- a/src/LexCPP.cxx
+++ b/src/LexCPP.cxx
@@ -94,7 +94,13 @@ static void ColouriseCppDoc(unsigned int startPos, int length, int initStyle, Wo
}
if (state == SCE_C_DEFAULT) {
- if (iswordstart(ch)) {
+ if (ch == '@' && chNext == '\"') {
+ styler.ColourTo(i-1, state);
+ state = SCE_C_VERBATIM;
+ i++;
+ ch = chNext;
+ chNext = styler.SafeGetCharAt(i + 1);
+ } else if (iswordstart(ch) || (ch == '@')) {
styler.ColourTo(i-1, state);
if (lastWordWasUUID) {
state = SCE_C_UUID;
@@ -220,6 +226,17 @@ static void ColouriseCppDoc(unsigned int startPos, int length, int initStyle, Wo
styler.ColourTo(i, state);
state = SCE_C_DEFAULT;
}
+ } else if (state == SCE_C_VERBATIM) {
+ if (ch == '\"') {
+ if (chNext == '\"') {
+ i++;
+ ch = chNext;
+ chNext = styler.SafeGetCharAt(i + 1);
+ } else {
+ styler.ColourTo(i, state);
+ state = SCE_C_DEFAULT;
+ }
+ }
} else if (state == SCE_C_UUID) {
if (ch == '\r' || ch == '\n' || ch == ')') {
styler.ColourTo(i-1, state);