diff --git a/src/plugins/cpptools/cppdoxygen.cpp b/src/plugins/cpptools/cppdoxygen.cpp index 5f0031571459b84426e0fb7a240b29ed23d162a3..c98441a249203952fdb44c3f6d966a8fcedce23a 100644 --- a/src/plugins/cpptools/cppdoxygen.cpp +++ b/src/plugins/cpptools/cppdoxygen.cpp @@ -163,9 +163,28 @@ static const char *doxy_token_spell[] = { "skipline", "typedef", "until", - "var" + "var", + + // qdoc + "endlist", + "endtable", + "header", + "i", + "l", + "list", + "mainclass", + "newcode", + "o", + "oldcode", + "property", + "row", + "section1", + "table" }; +const char *CppTools::doxygenTagSpell(int index) +{ return doxy_token_spell[index]; } + static inline int classify1(const QChar *s) { if (s[0].unicode() == 'a') { return T_DOXY_A; @@ -179,9 +198,18 @@ static inline int classify1(const QChar *s) { else if (s[0].unicode() == 'e') { return T_DOXY_E; } + else if (s[0].unicode() == 'i') { + return T_DOXY_I; + } + else if (s[0].unicode() == 'l') { + return T_DOXY_L; + } else if (s[0].unicode() == 'n') { return T_DOXY_N; } + else if (s[0].unicode() == 'o') { + return T_DOXY_O; + } else if (s[0].unicode() == 'p') { return T_DOXY_P; } @@ -262,6 +290,11 @@ static inline int classify3(const QChar *s) { return T_DOXY_REF; } } + else if (s[1].unicode() == 'o') { + if (s[2].unicode() == 'w') { + return T_DOXY_ROW; + } + } } else if (s[0].unicode() == 's') { if (s[1].unicode() == 'e') { @@ -339,6 +372,11 @@ static inline int classify4(const QChar *s) { return T_DOXY_LINK; } } + else if (s[2].unicode() == 's') { + if (s[3].unicode() == 't') { + return T_DOXY_LIST; + } + } } } else if (s[0].unicode() == 'n') { @@ -496,7 +534,16 @@ static inline int classify5(const QChar *s) { } } else if (s[0].unicode() == 't') { - if (s[1].unicode() == 'h') { + if (s[1].unicode() == 'a') { + if (s[2].unicode() == 'b') { + if (s[3].unicode() == 'l') { + if (s[4].unicode() == 'e') { + return T_DOXY_TABLE; + } + } + } + } + else if (s[1].unicode() == 'h') { if (s[2].unicode() == 'r') { if (s[3].unicode() == 'o') { if (s[4].unicode() == 'w') { @@ -576,6 +623,19 @@ static inline int classify6(const QChar *s) { } } } + else if (s[0].unicode() == 'h') { + if (s[1].unicode() == 'e') { + if (s[2].unicode() == 'a') { + if (s[3].unicode() == 'd') { + if (s[4].unicode() == 'e') { + if (s[5].unicode() == 'r') { + return T_DOXY_HEADER; + } + } + } + } + } + } else if (s[0].unicode() == 'r') { if (s[1].unicode() == 'e') { if (s[2].unicode() == 't') { @@ -680,6 +740,11 @@ static inline int classify7(const QChar *s) { return T_DOXY_ENDLINK; } } + else if (s[5].unicode() == 's') { + if (s[6].unicode() == 't') { + return T_DOXY_ENDLIST; + } + } } } } @@ -739,6 +804,36 @@ static inline int classify7(const QChar *s) { } } } + else if (s[0].unicode() == 'n') { + if (s[1].unicode() == 'e') { + if (s[2].unicode() == 'w') { + if (s[3].unicode() == 'c') { + if (s[4].unicode() == 'o') { + if (s[5].unicode() == 'd') { + if (s[6].unicode() == 'e') { + return T_DOXY_NEWCODE; + } + } + } + } + } + } + } + else if (s[0].unicode() == 'o') { + if (s[1].unicode() == 'l') { + if (s[2].unicode() == 'd') { + if (s[3].unicode() == 'c') { + if (s[4].unicode() == 'o') { + if (s[5].unicode() == 'd') { + if (s[6].unicode() == 'e') { + return T_DOXY_OLDCODE; + } + } + } + } + } + } + } else if (s[0].unicode() == 'p') { if (s[1].unicode() == 'a') { if (s[2].unicode() == 'c') { @@ -904,6 +999,23 @@ static inline int classify8(const QChar *s) { } } } + else if (s[0].unicode() == 'e') { + if (s[1].unicode() == 'n') { + if (s[2].unicode() == 'd') { + if (s[3].unicode() == 't') { + if (s[4].unicode() == 'a') { + if (s[5].unicode() == 'b') { + if (s[6].unicode() == 'l') { + if (s[7].unicode() == 'e') { + return T_DOXY_ENDTABLE; + } + } + } + } + } + } + } + } else if (s[0].unicode() == 'h') { if (s[1].unicode() == 't') { if (s[2].unicode() == 'm') { @@ -972,8 +1084,40 @@ static inline int classify8(const QChar *s) { } } } + else if (s[0].unicode() == 'p') { + if (s[1].unicode() == 'r') { + if (s[2].unicode() == 'o') { + if (s[3].unicode() == 'p') { + if (s[4].unicode() == 'e') { + if (s[5].unicode() == 'r') { + if (s[6].unicode() == 't') { + if (s[7].unicode() == 'y') { + return T_DOXY_PROPERTY; + } + } + } + } + } + } + } + } else if (s[0].unicode() == 's') { - if (s[1].unicode() == 'k') { + if (s[1].unicode() == 'e') { + if (s[2].unicode() == 'c') { + if (s[3].unicode() == 't') { + if (s[4].unicode() == 'i') { + if (s[5].unicode() == 'o') { + if (s[6].unicode() == 'n') { + if (s[7].unicode() == '1') { + return T_DOXY_SECTION1; + } + } + } + } + } + } + } + else if (s[1].unicode() == 'k') { if (s[2].unicode() == 'i') { if (s[3].unicode() == 'p') { if (s[4].unicode() == 'l') { @@ -1137,6 +1281,25 @@ static inline int classify9(const QChar *s) { } } } + else if (s[0].unicode() == 'm') { + if (s[1].unicode() == 'a') { + if (s[2].unicode() == 'i') { + if (s[3].unicode() == 'n') { + if (s[4].unicode() == 'c') { + if (s[5].unicode() == 'l') { + if (s[6].unicode() == 'a') { + if (s[7].unicode() == 's') { + if (s[8].unicode() == 's') { + return T_DOXY_MAINCLASS; + } + } + } + } + } + } + } + } + } else if (s[0].unicode() == 'n') { if (s[1].unicode() == 'a') { if (s[2].unicode() == 'm') { @@ -1608,9 +1771,6 @@ static inline int classify15(const QChar *s) { return T_DOXY_IDENTIFIER; } -const char *CppTools::doxygenTagSpell(int index) -{ return doxy_token_spell[index]; } - int CppTools::classifyDoxygenTag(const QChar *s, int n) { switch (n) { case 1: return classify1(s); @@ -1630,4 +1790,3 @@ int CppTools::classifyDoxygenTag(const QChar *s, int n) { default: return T_DOXY_IDENTIFIER; } // switch } - diff --git a/src/plugins/cpptools/cppdoxygen.h b/src/plugins/cpptools/cppdoxygen.h index 9c70420f519c7fb230a3266d07a268a7b18fc33b..70eff7c3a858656df872fe79e147b56016ba1986 100644 --- a/src/plugins/cpptools/cppdoxygen.h +++ b/src/plugins/cpptools/cppdoxygen.h @@ -152,6 +152,22 @@ enum DoxygenReservedWord { T_DOXY_UNTIL, T_DOXY_VAR, + // qdoc + T_DOXY_ENDLIST, + T_DOXY_ENDTABLE, + T_DOXY_HEADER, + T_DOXY_I, + T_DOXY_L, + T_DOXY_LIST, + T_DOXY_MAINCLASS, + T_DOXY_NEWCODE, + T_DOXY_O, + T_DOXY_OLDCODE, + T_DOXY_PROPERTY, + T_DOXY_ROW, + T_DOXY_SECTION1, + T_DOXY_TABLE, + T_DOXY_LAST_TAG };