From 0765ef802c592f30d9f0dbfc80c1086da502c12d Mon Sep 17 00:00:00 2001 From: nyamatongwe Date: Wed, 15 May 2013 10:24:08 +1000 Subject: Feature: [feature-requests:#990]. Style added for preprocessor doc comment. From Alpha. --- doc/ScintillaHistory.html | 4 ++++ include/SciLexer.h | 1 + include/Scintilla.iface | 1 + 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 @@ Feature #987.
  • + C++ lexer adds style for preprocessor doc comment. + Feature #990. +
  • +
  • Haskell folder improved. Bug #1459 .
  • 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); -- cgit v1.2.3