diff options
-rw-r--r-- | doc/ScintillaHistory.html | 4 | ||||
-rw-r--r-- | include/SciLexer.h | 1 | ||||
-rw-r--r-- | include/Scintilla.iface | 1 | ||||
-rw-r--r-- | lexers/LexCPP.cxx | 10 |
4 files changed, 14 insertions, 2 deletions
diff --git a/doc/ScintillaHistory.html b/doc/ScintillaHistory.html index e2f9aa4d4..6b9098979 100644 --- a/doc/ScintillaHistory.html +++ b/doc/ScintillaHistory.html @@ -458,6 +458,10 @@ <a href="http://sourceforge.net/p/scintilla/feature-requests/987/">Feature #987.</a> </li> <li> + C++ lexer adds style for preprocessor doc comment. + <a href="http://sourceforge.net/p/scintilla/feature-requests/990/">Feature #990.</a> + </li> + <li> Haskell folder improved. <a href="http://sourceforge.net/p/scintilla/bugs/1459/">Bug #1459 </a>. </li> diff --git a/include/SciLexer.h b/include/SciLexer.h index ef92c9433..506848a1c 100644 --- a/include/SciLexer.h +++ b/include/SciLexer.h @@ -161,6 +161,7 @@ #define SCE_C_TRIPLEVERBATIM 21 #define SCE_C_HASHQUOTEDSTRING 22 #define SCE_C_PREPROCESSORCOMMENT 23 +#define SCE_C_PREPROCESSORCOMMENTDOC 24 #define SCE_D_DEFAULT 0 #define SCE_D_COMMENT 1 #define SCE_D_COMMENTLINE 2 diff --git a/include/Scintilla.iface b/include/Scintilla.iface index f98cbdff4..a4c8c29f6 100644 --- a/include/Scintilla.iface +++ b/include/Scintilla.iface @@ -2628,6 +2628,7 @@ val SCE_C_STRINGRAW=20 val SCE_C_TRIPLEVERBATIM=21 val SCE_C_HASHQUOTEDSTRING=22 val SCE_C_PREPROCESSORCOMMENT=23 +val SCE_C_PREPROCESSORCOMMENTDOC=24 # Lexical states for SCLEX_D lex D=SCLEX_D SCE_D_ val SCE_D_DEFAULT=0 diff --git a/lexers/LexCPP.cxx b/lexers/LexCPP.cxx index 9b56641e6..03e8ff990 100644 --- a/lexers/LexCPP.cxx +++ b/lexers/LexCPP.cxx @@ -672,7 +672,7 @@ void SCI_METHOD LexerCPP::Lex(unsigned int startPos, int length, int initStyle, sc.SetState(SCE_C_DEFAULT|activitySet); } break; - case SCE_C_PREPROCESSOR: + case SCE_C_PREPROCESSOR: if (options.stylingWithinPreprocessor) { if (IsASpace(sc.ch)) { sc.SetState(SCE_C_DEFAULT|activitySet); @@ -683,7 +683,12 @@ void SCI_METHOD LexerCPP::Lex(unsigned int startPos, int length, int initStyle, if ((isIncludePreprocessor && sc.Match('<')) || sc.Match('\"')) { isStringInPreprocessor = true; } else if (sc.Match('/', '*')) { - sc.SetState(SCE_C_PREPROCESSORCOMMENT|activitySet); + if (sc.Match("/**") || sc.Match("/*!")) { + sc.SetState(SCE_C_PREPROCESSORCOMMENTDOC|activitySet); + sc.Forward(); + } else { + sc.SetState(SCE_C_PREPROCESSORCOMMENT|activitySet); + } sc.Forward(); // Eat the * } else if (sc.Match('/', '/')) { sc.SetState(SCE_C_DEFAULT|activitySet); @@ -691,6 +696,7 @@ void SCI_METHOD LexerCPP::Lex(unsigned int startPos, int length, int initStyle, } break; case SCE_C_PREPROCESSORCOMMENT: + case SCE_C_PREPROCESSORCOMMENTDOC: if (sc.Match('*', '/')) { sc.Forward(); sc.ForwardSetState(SCE_C_PREPROCESSOR|activitySet); |