From 43f385fc335b4a4b68a2b81637b7fda82c773a9b Mon Sep 17 00:00:00 2001 From: Neil Date: Sun, 17 Nov 2013 10:12:19 +1100 Subject: Bug [#1551]. Doxygen keywords @code{.fileExtension} and @param[in,out] are split. From Alpha. --- lexers/LexCPP.cxx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'lexers/LexCPP.cxx') diff --git a/lexers/LexCPP.cxx b/lexers/LexCPP.cxx index c1765f6f3..40a6ae212 100644 --- a/lexers/LexCPP.cxx +++ b/lexers/LexCPP.cxx @@ -515,6 +515,7 @@ void SCI_METHOD LexerCPP::Lex(unsigned int startPos, int length, int initStyle, bool isIncludePreprocessor = false; bool isStringInPreprocessor = false; bool inRERange = false; + bool seenDocKeyBrace = false; int lineCurrent = styler.GetLine(startPos); if ((MaskActive(initStyle) == SCE_C_PREPROCESSOR) || @@ -757,7 +758,11 @@ void SCI_METHOD LexerCPP::Lex(unsigned int startPos, int length, int initStyle, sc.ChangeState(SCE_C_COMMENTDOCKEYWORDERROR); sc.Forward(); sc.ForwardSetState(SCE_C_DEFAULT|activitySet); - } else if (!setDoxygen.Contains(sc.ch)) { + seenDocKeyBrace = false; + } else if (sc.ch == '[' || sc.ch == '{') { + seenDocKeyBrace = true; + } else if (!setDoxygen.Contains(sc.ch) + && !(seenDocKeyBrace && (sc.ch == ',' || sc.ch == '.'))) { char s[100]; if (caseSensitive) { sc.GetCurrent(s, sizeof(s)); @@ -775,6 +780,7 @@ void SCI_METHOD LexerCPP::Lex(unsigned int startPos, int length, int initStyle, } } sc.SetState(styleBeforeDCKeyword|activitySet); + seenDocKeyBrace = false; } break; case SCE_C_STRING: -- cgit v1.2.3