forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/4.0'
Conflicts: qtcreator.pri qtcreator.qbs src/plugins/debugger/debuggerruncontrol.cpp Change-Id: I81b43480a1369e3d7be60ae26e812dda6b962b0b
This commit is contained in:
@@ -24,6 +24,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
#include "cppcompletionassist.h"
|
||||
#include "cppdoxygen.h"
|
||||
#include "cppmodelmanager.h"
|
||||
#include "cpptoolsplugin.h"
|
||||
#include "cpptoolstestcase.h"
|
||||
@@ -110,6 +111,8 @@ public:
|
||||
ExplicitlyInvoked, m_snapshot,
|
||||
ProjectPartHeaderPaths(),
|
||||
languageFeatures);
|
||||
ai->prepareForAsyncUse();
|
||||
ai->recreateTextDocument();
|
||||
InternalCppCompletionAssistProcessor processor;
|
||||
|
||||
const Tests::IAssistProposalScopedPointer proposal(processor.perform(ai));
|
||||
@@ -171,6 +174,17 @@ bool isProbablyGlobalCompletion(const QStringList &list)
|
||||
&& list.contains(QLatin1String("bool"));
|
||||
}
|
||||
|
||||
bool isDoxygenTagCompletion(const QStringList &list)
|
||||
{
|
||||
for (int i = 1; i < T_DOXY_LAST_TAG; ++i) {
|
||||
const QString doxygenTag = QString::fromLatin1(doxygenTagSpell(i));
|
||||
if (!list.contains(doxygenTag))
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
void CppToolsPlugin::test_completion_basic_1()
|
||||
@@ -384,6 +398,34 @@ void CppToolsPlugin::test_global_completion()
|
||||
QVERIFY(completions.toSet().contains(requiredCompletionItems.toSet()));
|
||||
}
|
||||
|
||||
void CppToolsPlugin::test_doxygen_tag_completion_data()
|
||||
{
|
||||
QTest::addColumn<QByteArray>("code");
|
||||
|
||||
QTest::newRow("C++ comment")
|
||||
<< _("/// @");
|
||||
|
||||
QTest::newRow("C comment single line")
|
||||
<< _("/*! @ */");
|
||||
|
||||
QTest::newRow("C comment multi line")
|
||||
<< _("/*! text\n"
|
||||
" * @\n"
|
||||
" */\n");
|
||||
}
|
||||
|
||||
void CppToolsPlugin::test_doxygen_tag_completion()
|
||||
{
|
||||
QFETCH(QByteArray, code);
|
||||
|
||||
const QByteArray prefix = "\\";
|
||||
|
||||
CompletionTestCase test(code, prefix);
|
||||
QVERIFY(test.succeededSoFar());
|
||||
const QStringList completions = test.getCompletions();
|
||||
QVERIFY(isDoxygenTagCompletion(completions));
|
||||
}
|
||||
|
||||
static void enumTestCase(const QByteArray &tag, const QByteArray &source,
|
||||
const QByteArray &prefix = QByteArray())
|
||||
{
|
||||
|
||||
@@ -941,118 +941,35 @@ IAssistProposal *InternalCppCompletionAssistProcessor::createHintProposal(
|
||||
return proposal;
|
||||
}
|
||||
|
||||
int InternalCppCompletionAssistProcessor::startOfOperator(int pos,
|
||||
int InternalCppCompletionAssistProcessor::startOfOperator(int positionInDocument,
|
||||
unsigned *kind,
|
||||
bool wantFunctionCall) const
|
||||
{
|
||||
const QChar ch = pos > -1 ? m_interface->characterAt(pos - 1) : QChar();
|
||||
const QChar ch2 = pos > 0 ? m_interface->characterAt(pos - 2) : QChar();
|
||||
const QChar ch3 = pos > 1 ? m_interface->characterAt(pos - 3) : QChar();
|
||||
const QChar ch = m_interface->characterAt(positionInDocument - 1);
|
||||
const QChar ch2 = m_interface->characterAt(positionInDocument - 2);
|
||||
const QChar ch3 = m_interface->characterAt(positionInDocument - 3);
|
||||
|
||||
int start = pos - CppCompletionAssistProvider::activationSequenceChar(ch, ch2, ch3, kind,
|
||||
wantFunctionCall, /*wantQt5SignalSlots*/ true);
|
||||
if (start != pos) {
|
||||
QTextCursor tc(m_interface->textDocument());
|
||||
tc.setPosition(pos);
|
||||
int start = positionInDocument
|
||||
- CppCompletionAssistProvider::activationSequenceChar(ch, ch2, ch3, kind,
|
||||
wantFunctionCall,
|
||||
/*wantQt5SignalSlots*/ true);
|
||||
|
||||
// Include completion: make sure the quote character is the first one on the line
|
||||
if (*kind == T_STRING_LITERAL) {
|
||||
QTextCursor s = tc;
|
||||
s.movePosition(QTextCursor::StartOfLine, QTextCursor::KeepAnchor);
|
||||
QString sel = s.selectedText();
|
||||
if (sel.indexOf(QLatin1Char('"')) < sel.length() - 1) {
|
||||
*kind = T_EOF_SYMBOL;
|
||||
start = pos;
|
||||
}
|
||||
}
|
||||
|
||||
if (*kind == T_COMMA) {
|
||||
ExpressionUnderCursor expressionUnderCursor(m_interface->languageFeatures());
|
||||
if (expressionUnderCursor.startOfFunctionCall(tc) == -1) {
|
||||
*kind = T_EOF_SYMBOL;
|
||||
start = pos;
|
||||
}
|
||||
}
|
||||
|
||||
SimpleLexer tokenize;
|
||||
tokenize.setLanguageFeatures(m_interface->languageFeatures());
|
||||
tokenize.setSkipComments(false);
|
||||
const Tokens &tokens = tokenize(tc.block().text(), BackwardsScanner::previousBlockState(tc.block()));
|
||||
const int tokenIdx = SimpleLexer::tokenBefore(tokens, qMax(0, tc.positionInBlock() - 1)); // get the token at the left of the cursor
|
||||
const Token tk = (tokenIdx == -1) ? Token() : tokens.at(tokenIdx);
|
||||
|
||||
if (*kind == T_AMPER && tokenIdx > 0) {
|
||||
const Token &previousToken = tokens.at(tokenIdx - 1);
|
||||
if (previousToken.kind() == T_COMMA)
|
||||
start = pos - (tk.utf16charOffset - previousToken.utf16charOffset) - 1;
|
||||
} else if (*kind == T_DOXY_COMMENT && !(tk.is(T_DOXY_COMMENT) || tk.is(T_CPP_DOXY_COMMENT))) {
|
||||
*kind = T_EOF_SYMBOL;
|
||||
start = pos;
|
||||
}
|
||||
// Don't complete in comments or strings, but still check for include completion
|
||||
else if (tk.is(T_COMMENT) || tk.is(T_CPP_COMMENT)
|
||||
|| tk.is(T_CPP_DOXY_COMMENT) || tk.is(T_DOXY_COMMENT)
|
||||
|| (tk.isLiteral() && (*kind != T_STRING_LITERAL
|
||||
&& *kind != T_ANGLE_STRING_LITERAL
|
||||
&& *kind != T_SLASH
|
||||
&& *kind != T_DOT))) {
|
||||
*kind = T_EOF_SYMBOL;
|
||||
start = pos;
|
||||
// Include completion: can be triggered by slash, but only in a string
|
||||
} else if (*kind == T_SLASH && (tk.isNot(T_STRING_LITERAL) && tk.isNot(T_ANGLE_STRING_LITERAL))) {
|
||||
*kind = T_EOF_SYMBOL;
|
||||
start = pos;
|
||||
} else if (*kind == T_LPAREN) {
|
||||
if (tokenIdx > 0) {
|
||||
const Token &previousToken = tokens.at(tokenIdx - 1); // look at the token at the left of T_LPAREN
|
||||
switch (previousToken.kind()) {
|
||||
case T_IDENTIFIER:
|
||||
case T_GREATER:
|
||||
case T_SIGNAL:
|
||||
case T_SLOT:
|
||||
break; // good
|
||||
|
||||
default:
|
||||
// that's a bad token :)
|
||||
*kind = T_EOF_SYMBOL;
|
||||
start = pos;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Check for include preprocessor directive
|
||||
else if (*kind == T_STRING_LITERAL || *kind == T_ANGLE_STRING_LITERAL|| *kind == T_SLASH
|
||||
|| (*kind == T_DOT && (tk.is(T_STRING_LITERAL) || tk.is(T_ANGLE_STRING_LITERAL)))) {
|
||||
bool include = false;
|
||||
if (tokens.size() >= 3) {
|
||||
if (tokens.at(0).is(T_POUND) && tokens.at(1).is(T_IDENTIFIER) && (tokens.at(2).is(T_STRING_LITERAL) ||
|
||||
tokens.at(2).is(T_ANGLE_STRING_LITERAL))) {
|
||||
const Token &directiveToken = tokens.at(1);
|
||||
QString directive = tc.block().text().mid(directiveToken.utf16charsBegin(),
|
||||
directiveToken.utf16chars());
|
||||
if (directive == QLatin1String("include") ||
|
||||
directive == QLatin1String("include_next") ||
|
||||
directive == QLatin1String("import")) {
|
||||
include = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!include) {
|
||||
*kind = T_EOF_SYMBOL;
|
||||
start = pos;
|
||||
} else {
|
||||
if (*kind == T_DOT) {
|
||||
start = findStartOfName(start);
|
||||
const QChar ch4 = start > -1 ? m_interface->characterAt(start - 1) : QChar();
|
||||
const QChar ch5 = start > 0 ? m_interface->characterAt(start - 2) : QChar();
|
||||
const QChar ch6 = start > 1 ? m_interface->characterAt(start - 3) : QChar();
|
||||
start = start - CppCompletionAssistProvider::activationSequenceChar(
|
||||
ch4, ch5, ch6, kind, wantFunctionCall, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
const auto dotAtIncludeCompletionHandler = [this](int &start, unsigned *kind) {
|
||||
start = findStartOfName(start);
|
||||
const QChar ch4 = m_interface->characterAt(start - 1);
|
||||
const QChar ch5 = m_interface->characterAt(start - 2);
|
||||
const QChar ch6 = m_interface->characterAt(start - 3);
|
||||
start = start - CppCompletionAssistProvider::activationSequenceChar(
|
||||
ch4, ch5, ch6, kind, false, false);
|
||||
};
|
||||
|
||||
CppCompletionAssistProcessor::startOfOperator(m_interface->textDocument(),
|
||||
positionInDocument,
|
||||
kind,
|
||||
start,
|
||||
m_interface->languageFeatures(),
|
||||
/*adjustForQt5SignalSlotCompletion=*/ true,
|
||||
dotAtIncludeCompletionHandler);
|
||||
return start;
|
||||
}
|
||||
|
||||
|
||||
@@ -105,7 +105,7 @@ private:
|
||||
TextEditor::IAssistProposal *createHintProposal(QList<CPlusPlus::Function *> symbols) const;
|
||||
bool accepts() const;
|
||||
|
||||
int startOfOperator(int pos, unsigned *kind, bool wantFunctionCall) const;
|
||||
int startOfOperator(int positionInDocument, unsigned *kind, bool wantFunctionCall) const;
|
||||
int findStartOfName(int pos = -1) const;
|
||||
int startCompletionHelper();
|
||||
bool tryObjCCompletion();
|
||||
|
||||
@@ -27,6 +27,17 @@
|
||||
|
||||
#include <cppeditor/cppeditorconstants.h>
|
||||
|
||||
#include <cplusplus/BackwardsScanner.h>
|
||||
#include <cplusplus/ExpressionUnderCursor.h>
|
||||
#include <cplusplus/SimpleLexer.h>
|
||||
#include <cplusplus/Token.h>
|
||||
|
||||
#include <QTextBlock>
|
||||
#include <QTextCursor>
|
||||
#include <QTextDocument>
|
||||
|
||||
using namespace CPlusPlus;
|
||||
|
||||
namespace CppTools {
|
||||
|
||||
CppCompletionAssistProcessor::CppCompletionAssistProcessor()
|
||||
@@ -70,4 +81,118 @@ void CppCompletionAssistProcessor::addSnippets()
|
||||
m_completions.append(m_snippetCollector.collect());
|
||||
}
|
||||
|
||||
static bool isDoxygenTagCompletionCharacter(const QChar &character)
|
||||
{
|
||||
return character == QLatin1Char('\\')
|
||||
|| character == QLatin1Char('@') ;
|
||||
}
|
||||
|
||||
void CppCompletionAssistProcessor::startOfOperator(QTextDocument *textDocument,
|
||||
int positionInDocument,
|
||||
unsigned *kind,
|
||||
int &start,
|
||||
const CPlusPlus::LanguageFeatures &languageFeatures,
|
||||
bool adjustForQt5SignalSlotCompletion,
|
||||
DotAtIncludeCompletionHandler dotAtIncludeCompletionHandler)
|
||||
{
|
||||
if (start != positionInDocument) {
|
||||
QTextCursor tc(textDocument);
|
||||
tc.setPosition(positionInDocument);
|
||||
|
||||
// Include completion: make sure the quote character is the first one on the line
|
||||
if (*kind == T_STRING_LITERAL) {
|
||||
QTextCursor s = tc;
|
||||
s.movePosition(QTextCursor::StartOfLine, QTextCursor::KeepAnchor);
|
||||
QString sel = s.selectedText();
|
||||
if (sel.indexOf(QLatin1Char('"')) < sel.length() - 1) {
|
||||
*kind = T_EOF_SYMBOL;
|
||||
start = positionInDocument;
|
||||
}
|
||||
}
|
||||
|
||||
if (*kind == T_COMMA) {
|
||||
ExpressionUnderCursor expressionUnderCursor(languageFeatures);
|
||||
if (expressionUnderCursor.startOfFunctionCall(tc) == -1) {
|
||||
*kind = T_EOF_SYMBOL;
|
||||
start = positionInDocument;
|
||||
}
|
||||
}
|
||||
|
||||
SimpleLexer tokenize;
|
||||
tokenize.setLanguageFeatures(languageFeatures);
|
||||
tokenize.setSkipComments(false);
|
||||
const Tokens &tokens = tokenize(tc.block().text(), BackwardsScanner::previousBlockState(tc.block()));
|
||||
const int tokenIdx = SimpleLexer::tokenBefore(tokens, qMax(0, tc.positionInBlock() - 1)); // get the token at the left of the cursor
|
||||
const Token tk = (tokenIdx == -1) ? Token() : tokens.at(tokenIdx);
|
||||
const QChar characterBeforePositionInDocument
|
||||
= textDocument->characterAt(positionInDocument - 1);
|
||||
|
||||
if (adjustForQt5SignalSlotCompletion && *kind == T_AMPER && tokenIdx > 0) {
|
||||
const Token &previousToken = tokens.at(tokenIdx - 1);
|
||||
if (previousToken.kind() == T_COMMA)
|
||||
start = positionInDocument - (tk.utf16charOffset - previousToken.utf16charOffset) - 1;
|
||||
} else if (*kind == T_DOXY_COMMENT && !(tk.is(T_DOXY_COMMENT) || tk.is(T_CPP_DOXY_COMMENT))) {
|
||||
*kind = T_EOF_SYMBOL;
|
||||
start = positionInDocument;
|
||||
// Do not complete in comments, except in doxygen comments for doxygen commands.
|
||||
// Do not complete in strings, except it is for include completion.
|
||||
} else if (tk.is(T_COMMENT) || tk.is(T_CPP_COMMENT)
|
||||
|| ((tk.is(T_CPP_DOXY_COMMENT) || tk.is(T_DOXY_COMMENT))
|
||||
&& !isDoxygenTagCompletionCharacter(characterBeforePositionInDocument))
|
||||
|| (tk.isLiteral() && (*kind != T_STRING_LITERAL
|
||||
&& *kind != T_ANGLE_STRING_LITERAL
|
||||
&& *kind != T_SLASH
|
||||
&& *kind != T_DOT))) {
|
||||
*kind = T_EOF_SYMBOL;
|
||||
start = positionInDocument;
|
||||
// Include completion: can be triggered by slash, but only in a string
|
||||
} else if (*kind == T_SLASH && (tk.isNot(T_STRING_LITERAL) && tk.isNot(T_ANGLE_STRING_LITERAL))) {
|
||||
*kind = T_EOF_SYMBOL;
|
||||
start = positionInDocument;
|
||||
} else if (*kind == T_LPAREN) {
|
||||
if (tokenIdx > 0) {
|
||||
const Token &previousToken = tokens.at(tokenIdx - 1); // look at the token at the left of T_LPAREN
|
||||
switch (previousToken.kind()) {
|
||||
case T_IDENTIFIER:
|
||||
case T_GREATER:
|
||||
case T_SIGNAL:
|
||||
case T_SLOT:
|
||||
break; // good
|
||||
|
||||
default:
|
||||
// that's a bad token :)
|
||||
*kind = T_EOF_SYMBOL;
|
||||
start = positionInDocument;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Check for include preprocessor directive
|
||||
else if (*kind == T_STRING_LITERAL || *kind == T_ANGLE_STRING_LITERAL || *kind == T_SLASH
|
||||
|| (*kind == T_DOT
|
||||
&& (tk.is(T_STRING_LITERAL) || tk.is(T_ANGLE_STRING_LITERAL)))) {
|
||||
bool include = false;
|
||||
if (tokens.size() >= 3) {
|
||||
if (tokens.at(0).is(T_POUND) && tokens.at(1).is(T_IDENTIFIER) && (tokens.at(2).is(T_STRING_LITERAL) ||
|
||||
tokens.at(2).is(T_ANGLE_STRING_LITERAL))) {
|
||||
const Token &directiveToken = tokens.at(1);
|
||||
QString directive = tc.block().text().mid(directiveToken.utf16charsBegin(),
|
||||
directiveToken.utf16chars());
|
||||
if (directive == QLatin1String("include") ||
|
||||
directive == QLatin1String("include_next") ||
|
||||
directive == QLatin1String("import")) {
|
||||
include = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!include) {
|
||||
*kind = T_EOF_SYMBOL;
|
||||
start = positionInDocument;
|
||||
} else if (*kind == T_DOT && dotAtIncludeCompletionHandler){
|
||||
dotAtIncludeCompletionHandler(start, kind);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace CppTools
|
||||
|
||||
@@ -32,6 +32,16 @@
|
||||
|
||||
#include <cplusplus/Icons.h>
|
||||
|
||||
#include <functional>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QTextDocument;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
namespace CPlusPlus {
|
||||
struct LanguageFeatures;
|
||||
}
|
||||
|
||||
namespace CppTools {
|
||||
|
||||
class CPPTOOLS_EXPORT CppCompletionAssistProcessor : public TextEditor::IAssistProcessor
|
||||
@@ -42,6 +52,16 @@ public:
|
||||
protected:
|
||||
void addSnippets();
|
||||
|
||||
using DotAtIncludeCompletionHandler = std::function<void(int &startPosition, unsigned *kind)>;
|
||||
static void startOfOperator(QTextDocument *textDocument,
|
||||
int positionInDocument,
|
||||
unsigned *kind,
|
||||
int &start,
|
||||
const CPlusPlus::LanguageFeatures &languageFeatures,
|
||||
bool adjustForQt5SignalSlotCompletion = false,
|
||||
DotAtIncludeCompletionHandler dotAtIncludeCompletionHandler
|
||||
= DotAtIncludeCompletionHandler());
|
||||
|
||||
int m_positionForProposal;
|
||||
QList<TextEditor::AssistProposalItemInterface *> m_completions;
|
||||
QStringList m_preprocessorCompletions;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -33,222 +33,287 @@ namespace CppTools {
|
||||
|
||||
enum DoxygenReservedWord {
|
||||
T_DOXY_IDENTIFIER,
|
||||
|
||||
T_DOXY_A,
|
||||
T_DOXY_ABSTRACT,
|
||||
T_DOXY_ADDINDEX,
|
||||
T_DOXY_ADDTOGROUP,
|
||||
T_DOXY_ANCHOR,
|
||||
T_DOXY_ANNOTATEDLIST,
|
||||
T_DOXY_ARG,
|
||||
T_DOXY_ATTENTION,
|
||||
T_DOXY_AUTHOR,
|
||||
T_DOXY_CALLGRAPH,
|
||||
T_DOXY_CODE,
|
||||
T_DOXY_DOT,
|
||||
T_DOXY_ELSE,
|
||||
T_DOXY_ENDCODE,
|
||||
T_DOXY_ENDCOND,
|
||||
T_DOXY_ENDDOT,
|
||||
T_DOXY_ENDHTMLONLY,
|
||||
T_DOXY_ENDIF,
|
||||
T_DOXY_ENDLATEXONLY,
|
||||
T_DOXY_ENDLINK,
|
||||
T_DOXY_ENDMANONLY,
|
||||
T_DOXY_ENDVERBATIM,
|
||||
T_DOXY_ENDXMLONLY,
|
||||
T_DOXY_HIDEINITIALIZER,
|
||||
T_DOXY_HTMLONLY,
|
||||
T_DOXY_INTERFACE,
|
||||
T_DOXY_INTERNAL,
|
||||
T_DOXY_INVARIANT,
|
||||
T_DOXY_LATEXONLY,
|
||||
T_DOXY_LI,
|
||||
T_DOXY_MANONLY,
|
||||
T_DOXY_N,
|
||||
T_DOXY_NOSUBGROUPING,
|
||||
T_DOXY_NOTE,
|
||||
T_DOXY_ONLY,
|
||||
T_DOXY_POST,
|
||||
T_DOXY_PRE,
|
||||
T_DOXY_REMARKS,
|
||||
T_DOXY_RETURN,
|
||||
T_DOXY_RETURNS,
|
||||
T_DOXY_SA,
|
||||
T_DOXY_SEE,
|
||||
T_DOXY_SHOWINITIALIZER,
|
||||
T_DOXY_SINCE,
|
||||
T_DOXY_TEST,
|
||||
T_DOXY_TODO,
|
||||
T_DOXY_VERBATIM,
|
||||
T_DOXY_WARNING,
|
||||
T_DOXY_XMLONLY,
|
||||
T_DOXY_A,
|
||||
T_DOXY_ADDTOGROUP,
|
||||
T_DOXY_ANCHOR,
|
||||
T_DOXY_AUTHORS,
|
||||
T_DOXY_B,
|
||||
T_DOXY_C,
|
||||
T_DOXY_CLASS,
|
||||
T_DOXY_COND,
|
||||
T_DOXY_COPYDOC,
|
||||
T_DOXY_DEF,
|
||||
T_DOXY_DONTINCLUDE,
|
||||
T_DOXY_DOTFILE,
|
||||
T_DOXY_E,
|
||||
T_DOXY_ELSEIF,
|
||||
T_DOXY_EM,
|
||||
T_DOXY_ENUM,
|
||||
T_DOXY_EXAMPLE,
|
||||
T_DOXY_EXCEPTION,
|
||||
T_DOXY_EXCEPTIONS,
|
||||
T_DOXY_FILE,
|
||||
T_DOXY_HTMLINCLUDE,
|
||||
T_DOXY_IF,
|
||||
T_DOXY_IFNOT,
|
||||
T_DOXY_INCLUDE,
|
||||
T_DOXY_LINK,
|
||||
T_DOXY_NAMESPACE,
|
||||
T_DOXY_P,
|
||||
T_DOXY_PACKAGE,
|
||||
T_DOXY_REF,
|
||||
T_DOXY_RELATES,
|
||||
T_DOXY_RELATESALSO,
|
||||
T_DOXY_RETVAL,
|
||||
T_DOXY_THROW,
|
||||
T_DOXY_THROWS,
|
||||
T_DOXY_VERBINCLUDE,
|
||||
T_DOXY_VERSION,
|
||||
T_DOXY_XREFITEM,
|
||||
T_DOXY_PARAM,
|
||||
T_DOXY_IMAGE,
|
||||
T_DOXY_DEFGROUP,
|
||||
T_DOXY_PAGE,
|
||||
T_DOXY_PARAGRAPH,
|
||||
T_DOXY_SECTION,
|
||||
T_DOXY_STRUCT,
|
||||
T_DOXY_SUBSECTION,
|
||||
T_DOXY_SUBSUBSECTION,
|
||||
T_DOXY_UNION,
|
||||
T_DOXY_WEAKGROUP,
|
||||
T_DOXY_ADDINDEX,
|
||||
T_DOXY_BRIEF,
|
||||
T_DOXY_BUG,
|
||||
T_DOXY_DATE,
|
||||
T_DOXY_DEPRECATED,
|
||||
T_DOXY_FN,
|
||||
T_DOXY_INGROUP,
|
||||
T_DOXY_LINE,
|
||||
T_DOXY_MAINPAGE,
|
||||
T_DOXY_NAME,
|
||||
T_DOXY_OVERLOAD,
|
||||
T_DOXY_PAR,
|
||||
T_DOXY_SHORT,
|
||||
T_DOXY_SKIP,
|
||||
T_DOXY_SKIPLINE,
|
||||
T_DOXY_TYPEDEF,
|
||||
T_DOXY_UNTIL,
|
||||
T_DOXY_VAR,
|
||||
|
||||
T_FIRST_QDOC_TAG,
|
||||
|
||||
T_DOXY_ABSTRACT = T_FIRST_QDOC_TAG,
|
||||
T_DOXY_BADCODE,
|
||||
T_DOXY_BASENAME,
|
||||
T_DOXY_BOLD,
|
||||
T_DOXY_BRIEF,
|
||||
T_DOXY_BUG,
|
||||
T_DOXY_C,
|
||||
T_DOXY_CALLERGRAPH,
|
||||
T_DOXY_CALLGRAPH,
|
||||
T_DOXY_CAPTION,
|
||||
T_DOXY_CATEGORY,
|
||||
T_DOXY_CHAPTER,
|
||||
T_DOXY_CITE,
|
||||
T_DOXY_CLASS,
|
||||
T_DOXY_CODE,
|
||||
T_DOXY_CODELINE,
|
||||
T_DOXY_COMPAT,
|
||||
T_DOXY_COND,
|
||||
T_DOXY_CONTENTSPAGE,
|
||||
T_DOXY_COPYBRIEF,
|
||||
T_DOXY_COPYDETAILS,
|
||||
T_DOXY_COPYDOC,
|
||||
T_DOXY_COPYRIGHT,
|
||||
T_DOXY_CORELIB,
|
||||
T_DOXY_DATE,
|
||||
T_DOXY_DEF,
|
||||
T_DOXY_DEFAULT,
|
||||
T_DOXY_DEFGROUP,
|
||||
T_DOXY_DEPRECATED,
|
||||
T_DOXY_DETAILS,
|
||||
T_DOXY_DIAFILE,
|
||||
T_DOXY_DIR,
|
||||
T_DOXY_DIV,
|
||||
T_DOXY_DOCBOOKONLY,
|
||||
T_DOXY_DONTINCLUDE,
|
||||
T_DOXY_DOT,
|
||||
T_DOXY_DOTFILE,
|
||||
T_DOXY_DOTS,
|
||||
T_DOXY_E,
|
||||
T_DOXY_ELSE,
|
||||
T_DOXY_ELSEIF,
|
||||
T_DOXY_EM,
|
||||
T_DOXY_ENDABSTRACT,
|
||||
T_DOXY_ENDCHAPTER,
|
||||
T_DOXY_ENDCODE,
|
||||
T_DOXY_ENDCOND,
|
||||
T_DOXY_ENDDOCBOOKONLY,
|
||||
T_DOXY_ENDDOT,
|
||||
T_DOXY_ENDFOOTNOTE,
|
||||
T_DOXY_ENDHTMLONLY,
|
||||
T_DOXY_ENDIF,
|
||||
T_DOXY_ENDINTERNAL,
|
||||
T_DOXY_ENDLATEXONLY,
|
||||
T_DOXY_ENDLEGALESE,
|
||||
T_DOXY_ENDLINK,
|
||||
T_DOXY_ENDLIST,
|
||||
T_DOXY_ENDMANONLY,
|
||||
T_DOXY_ENDMSC,
|
||||
T_DOXY_ENDOMIT,
|
||||
T_DOXY_ENDPARBLOCK,
|
||||
T_DOXY_ENDPART,
|
||||
T_DOXY_ENDQUOTATION,
|
||||
T_DOXY_ENDRAW,
|
||||
T_DOXY_ENDRTFONLY,
|
||||
T_DOXY_ENDSECREFLIST,
|
||||
T_DOXY_ENDSECTION1,
|
||||
T_DOXY_ENDSECTION2,
|
||||
T_DOXY_ENDSECTION3,
|
||||
T_DOXY_ENDSECTION4,
|
||||
T_DOXY_ENDSIDEBAR,
|
||||
T_DOXY_ENDTABLE,
|
||||
T_DOXY_ENDUML,
|
||||
T_DOXY_ENDVERBATIM,
|
||||
T_DOXY_ENDXMLONLY,
|
||||
T_DOXY_ENUM,
|
||||
T_DOXY_EXAMPLE,
|
||||
T_DOXY_EXCEPTION,
|
||||
T_DOXY_EXCEPTIONS,
|
||||
T_DOXY_EXPIRE,
|
||||
T_DOXY_EXTENDS,
|
||||
T_DOXY_EXTERNALPAGE,
|
||||
T_DOXY_FILE,
|
||||
T_DOXY_FN,
|
||||
T_DOXY_FOOTNOTE,
|
||||
T_DOXY_GENERATELIST,
|
||||
T_DOXY_GRANULARITY,
|
||||
T_DOXY_GROUP,
|
||||
T_DOXY_GUI,
|
||||
T_DOXY_HEADER,
|
||||
T_DOXY_HEADERFILE,
|
||||
T_DOXY_HIDECALLERGRAPH,
|
||||
T_DOXY_HIDECALLGRAPH,
|
||||
T_DOXY_HIDEINITIALIZER,
|
||||
T_DOXY_HTMLINCLUDE,
|
||||
T_DOXY_HTMLONLY,
|
||||
T_DOXY_I,
|
||||
T_DOXY_IDLEXCEPT,
|
||||
T_DOXY_IF,
|
||||
T_DOXY_IFNOT,
|
||||
T_DOXY_IMAGE,
|
||||
T_DOXY_IMPLEMENTS,
|
||||
T_DOXY_INCLUDE,
|
||||
T_DOXY_INCLUDELINENO,
|
||||
T_DOXY_INDEX,
|
||||
T_DOXY_INDEXPAGE,
|
||||
T_DOXY_INGROUP,
|
||||
T_DOXY_INHEADERFILE,
|
||||
T_DOXY_INHERITS,
|
||||
T_DOXY_INLINEIMAGE,
|
||||
T_DOXY_INMODULE,
|
||||
T_DOXY_INPUBLICGROUP,
|
||||
T_DOXY_INQMLMODULE,
|
||||
T_DOXY_INSTANTIATES,
|
||||
T_DOXY_INTERFACE,
|
||||
T_DOXY_INTERNAL,
|
||||
T_DOXY_INVARIANT,
|
||||
T_DOXY_KEYWORD,
|
||||
T_DOXY_L,
|
||||
T_DOXY_LATEXINCLUDE,
|
||||
T_DOXY_LATEXONLY,
|
||||
T_DOXY_LEGALESE,
|
||||
T_DOXY_LI,
|
||||
T_DOXY_LINE,
|
||||
T_DOXY_LINK,
|
||||
T_DOXY_LIST,
|
||||
T_DOXY_MACRO,
|
||||
T_DOXY_MAINCLASS,
|
||||
T_DOXY_MAINPAGE,
|
||||
T_DOXY_MANONLY,
|
||||
T_DOXY_MEMBEROF,
|
||||
T_DOXY_META,
|
||||
T_DOXY_MODULE,
|
||||
T_DOXY_MSC,
|
||||
T_DOXY_MSCFILE,
|
||||
T_DOXY_N,
|
||||
T_DOXY_NAME,
|
||||
T_DOXY_NAMESPACE,
|
||||
T_DOXY_NETWORK,
|
||||
T_DOXY_NEWCODE,
|
||||
T_DOXY_NEXTPAGE,
|
||||
T_DOXY_NOAUTOLIST,
|
||||
T_DOXY_NONREENTRANT,
|
||||
T_DOXY_NOSUBGROUPING,
|
||||
T_DOXY_NOTE,
|
||||
T_DOXY_O,
|
||||
T_DOXY_OBSOLETE,
|
||||
T_DOXY_OLDCODE,
|
||||
T_DOXY_OMIT,
|
||||
T_DOXY_OMITVALUE,
|
||||
T_DOXY_ONLY,
|
||||
T_DOXY_OPENGL,
|
||||
T_DOXY_OVERLOAD,
|
||||
T_DOXY_P,
|
||||
T_DOXY_PACKAGE,
|
||||
T_DOXY_PAGE,
|
||||
T_DOXY_PAR,
|
||||
T_DOXY_PARAGRAPH,
|
||||
T_DOXY_PARAM,
|
||||
T_DOXY_PARBLOCK,
|
||||
T_DOXY_PART,
|
||||
T_DOXY_POST,
|
||||
T_DOXY_PRE,
|
||||
T_DOXY_PRELIMINARY,
|
||||
T_DOXY_PREVIOUSPAGE,
|
||||
T_DOXY_PRINTLINE,
|
||||
T_DOXY_PRINTTO,
|
||||
T_DOXY_PRINTUNTIL,
|
||||
T_DOXY_PRIVATE,
|
||||
T_DOXY_PRIVATESECTION,
|
||||
T_DOXY_PROPERTY,
|
||||
T_DOXY_PROTECTED,
|
||||
T_DOXY_PROTECTEDSECTION,
|
||||
T_DOXY_PROTOCOL,
|
||||
T_DOXY_PUBLIC,
|
||||
T_DOXY_PUBLICSECTION,
|
||||
T_DOXY_PURE,
|
||||
T_DOXY_QMLABSTRACT,
|
||||
T_DOXY_QMLATTACHEDPROPERTY,
|
||||
T_DOXY_QMLATTACHEDSIGNAL,
|
||||
T_DOXY_QMLBASICTYPE,
|
||||
T_DOXY_QMLCLASS,
|
||||
T_DOXY_QMLMETHOD,
|
||||
T_DOXY_QMLMODULE,
|
||||
T_DOXY_QMLPROPERTY,
|
||||
T_DOXY_QMLSIGNAL,
|
||||
T_DOXY_QMLTYPE,
|
||||
T_DOXY_QT3SUPPORT,
|
||||
T_DOXY_QTESTLIB,
|
||||
T_DOXY_QUOTATION,
|
||||
T_DOXY_QUOTEFILE,
|
||||
T_DOXY_QUOTEFROMFILE,
|
||||
T_DOXY_QUOTEFUNCTION,
|
||||
T_DOXY_RAW,
|
||||
T_DOXY_REENTRANT,
|
||||
T_DOXY_REF,
|
||||
T_DOXY_REFITEM,
|
||||
T_DOXY_REIMP,
|
||||
T_DOXY_RELATED,
|
||||
T_DOXY_RELATEDALSO,
|
||||
T_DOXY_RELATES,
|
||||
T_DOXY_RELATESALSO,
|
||||
T_DOXY_REMARK,
|
||||
T_DOXY_REMARKS,
|
||||
T_DOXY_RESULT,
|
||||
T_DOXY_RETURN,
|
||||
T_DOXY_RETURNS,
|
||||
T_DOXY_RETVAL,
|
||||
T_DOXY_ROW,
|
||||
T_DOXY_RTFONLY,
|
||||
T_DOXY_SA,
|
||||
T_DOXY_SECREFLIST,
|
||||
T_DOXY_SECTION,
|
||||
T_DOXY_SECTION1,
|
||||
T_DOXY_SECTION2,
|
||||
T_DOXY_SECTION3,
|
||||
T_DOXY_SECTION4,
|
||||
T_DOXY_SEE,
|
||||
T_DOXY_SERVICE,
|
||||
T_DOXY_SHORT,
|
||||
T_DOXY_SHOWINITIALIZER,
|
||||
T_DOXY_SIDEBAR,
|
||||
T_DOXY_SINCE,
|
||||
T_DOXY_SKIP,
|
||||
T_DOXY_SKIPLINE,
|
||||
T_DOXY_SKIPTO,
|
||||
T_DOXY_SKIPUNTIL,
|
||||
T_DOXY_SNIPPET,
|
||||
T_DOXY_SPAN,
|
||||
T_DOXY_SQL,
|
||||
T_DOXY_STARTPAGE,
|
||||
T_DOXY_STARTUML,
|
||||
T_DOXY_STRUCT,
|
||||
T_DOXY_SUB,
|
||||
T_DOXY_SUBPAGE,
|
||||
T_DOXY_SUBSECTION,
|
||||
T_DOXY_SUBSUBSECTION,
|
||||
T_DOXY_SUBTITLE,
|
||||
T_DOXY_SUP,
|
||||
T_DOXY_SVG,
|
||||
T_DOXY_TABLE,
|
||||
T_DOXY_TABLEOFCONTENTS,
|
||||
T_DOXY_TARGET,
|
||||
T_DOXY_TEST,
|
||||
T_DOXY_THREADSAFE,
|
||||
T_DOXY_THROW,
|
||||
T_DOXY_THROWS,
|
||||
T_DOXY_TITLE,
|
||||
T_DOXY_TODO,
|
||||
T_DOXY_TPARAM,
|
||||
T_DOXY_TT,
|
||||
T_DOXY_TYPEDEF,
|
||||
T_DOXY_UICONTROL,
|
||||
T_DOXY_UITOOLS,
|
||||
T_DOXY_UNDERLINE,
|
||||
T_DOXY_UNICODE,
|
||||
T_DOXY_UNION,
|
||||
T_DOXY_UNTIL,
|
||||
T_DOXY_VALUE,
|
||||
T_DOXY_CONTENTSPAGE,
|
||||
T_DOXY_EXTERNALPAGE,
|
||||
T_DOXY_GROUP,
|
||||
T_DOXY_HEADERFILE,
|
||||
T_DOXY_INDEXPAGE,
|
||||
T_DOXY_INHEADERFILE,
|
||||
T_DOXY_MACRO,
|
||||
T_DOXY_MODULE,
|
||||
T_DOXY_NEXTPAGE,
|
||||
T_DOXY_PREVIOUSPAGE,
|
||||
T_DOXY_PROPERTY,
|
||||
T_DOXY_REIMP,
|
||||
T_DOXY_SERVICE,
|
||||
T_DOXY_STARTPAGE,
|
||||
T_DOXY_VAR,
|
||||
T_DOXY_VARIABLE,
|
||||
T_DOXY_COMPAT,
|
||||
T_DOXY_INMODULE,
|
||||
T_DOXY_MAINCLASS,
|
||||
T_DOXY_NONREENTRANT,
|
||||
T_DOXY_OBSOLETE,
|
||||
T_DOXY_PRELIMINARY,
|
||||
T_DOXY_INPUBLICGROUP,
|
||||
T_DOXY_REENTRANT,
|
||||
T_DOXY_SUBTITLE,
|
||||
T_DOXY_THREADSAFE,
|
||||
T_DOXY_TITLE,
|
||||
T_DOXY_CORELIB,
|
||||
T_DOXY_UITOOLS,
|
||||
T_DOXY_GUI,
|
||||
T_DOXY_NETWORK,
|
||||
T_DOXY_OPENGL,
|
||||
T_DOXY_QT3SUPPORT,
|
||||
T_DOXY_SVG,
|
||||
T_DOXY_SQL,
|
||||
T_DOXY_QTESTLIB,
|
||||
T_DOXY_VERBATIM,
|
||||
T_DOXY_VERBINCLUDE,
|
||||
T_DOXY_VERSION,
|
||||
T_DOXY_VHDLFLOW,
|
||||
T_DOXY_WARNING,
|
||||
T_DOXY_WEAKGROUP,
|
||||
T_DOXY_WEBKIT,
|
||||
T_DOXY_XML,
|
||||
T_DOXY_XMLONLY,
|
||||
T_DOXY_XREFITEM,
|
||||
|
||||
T_DOXY_LAST_TAG
|
||||
};
|
||||
|
||||
286
src/plugins/cpptools/cppdoxygen.kwgen
Normal file
286
src/plugins/cpptools/cppdoxygen.kwgen
Normal file
@@ -0,0 +1,286 @@
|
||||
%token-prefix=T_DOXY_
|
||||
%toupper
|
||||
%char-type=QChar
|
||||
%unicode-function=.unicode()
|
||||
|
||||
%%
|
||||
a
|
||||
abstract
|
||||
addindex
|
||||
addtogroup
|
||||
anchor
|
||||
annotatedlist
|
||||
arg
|
||||
attention
|
||||
author
|
||||
authors
|
||||
b
|
||||
badcode
|
||||
basename
|
||||
bold
|
||||
brief
|
||||
bug
|
||||
c
|
||||
callergraph
|
||||
callgraph
|
||||
caption
|
||||
category
|
||||
chapter
|
||||
cite
|
||||
class
|
||||
code
|
||||
codeline
|
||||
compat
|
||||
cond
|
||||
contentspage
|
||||
copybrief
|
||||
copydetails
|
||||
copydoc
|
||||
copyright
|
||||
corelib
|
||||
date
|
||||
def
|
||||
default
|
||||
defgroup
|
||||
deprecated
|
||||
details
|
||||
diafile
|
||||
dir
|
||||
div
|
||||
docbookonly
|
||||
dontinclude
|
||||
dot
|
||||
dotfile
|
||||
dots
|
||||
e
|
||||
else
|
||||
elseif
|
||||
em
|
||||
endabstract
|
||||
endchapter
|
||||
endcode
|
||||
endcond
|
||||
enddocbookonly
|
||||
enddot
|
||||
endfootnote
|
||||
endhtmlonly
|
||||
endif
|
||||
endinternal
|
||||
endlatexonly
|
||||
endlegalese
|
||||
endlink
|
||||
endlist
|
||||
endmanonly
|
||||
endmsc
|
||||
endomit
|
||||
endparblock
|
||||
endpart
|
||||
endquotation
|
||||
endraw
|
||||
endrtfonly
|
||||
endsecreflist
|
||||
endsection1
|
||||
endsection2
|
||||
endsection3
|
||||
endsection4
|
||||
endsidebar
|
||||
endtable
|
||||
enduml
|
||||
endverbatim
|
||||
endxmlonly
|
||||
enum
|
||||
example
|
||||
exception
|
||||
exceptions
|
||||
expire
|
||||
extends
|
||||
externalpage
|
||||
file
|
||||
fn
|
||||
footnote
|
||||
generatelist
|
||||
granularity
|
||||
group
|
||||
gui
|
||||
header
|
||||
headerfile
|
||||
hidecallergraph
|
||||
hidecallgraph
|
||||
hideinitializer
|
||||
htmlinclude
|
||||
htmlonly
|
||||
i
|
||||
idlexcept
|
||||
if
|
||||
ifnot
|
||||
image
|
||||
implements
|
||||
include
|
||||
includelineno
|
||||
index
|
||||
indexpage
|
||||
ingroup
|
||||
inheaderfile
|
||||
inherits
|
||||
inlineimage
|
||||
inmodule
|
||||
inpublicgroup
|
||||
inqmlmodule
|
||||
instantiates
|
||||
interface
|
||||
internal
|
||||
invariant
|
||||
keyword
|
||||
l
|
||||
latexinclude
|
||||
latexonly
|
||||
legalese
|
||||
li
|
||||
line
|
||||
link
|
||||
list
|
||||
macro
|
||||
mainclass
|
||||
mainpage
|
||||
manonly
|
||||
memberof
|
||||
meta
|
||||
module
|
||||
msc
|
||||
mscfile
|
||||
n
|
||||
name
|
||||
namespace
|
||||
network
|
||||
newcode
|
||||
nextpage
|
||||
noautolist
|
||||
nonreentrant
|
||||
nosubgrouping
|
||||
note
|
||||
o
|
||||
obsolete
|
||||
oldcode
|
||||
omit
|
||||
omitvalue
|
||||
only
|
||||
opengl
|
||||
overload
|
||||
p
|
||||
package
|
||||
page
|
||||
par
|
||||
paragraph
|
||||
param
|
||||
parblock
|
||||
part
|
||||
post
|
||||
pre
|
||||
preliminary
|
||||
previouspage
|
||||
printline
|
||||
printto
|
||||
printuntil
|
||||
private
|
||||
privatesection
|
||||
property
|
||||
protected
|
||||
protectedsection
|
||||
protocol
|
||||
public
|
||||
publicsection
|
||||
pure
|
||||
qmlabstract
|
||||
qmlattachedproperty
|
||||
qmlattachedsignal
|
||||
qmlbasictype
|
||||
qmlclass
|
||||
qmlmethod
|
||||
qmlmodule
|
||||
qmlproperty
|
||||
qmlsignal
|
||||
qmltype
|
||||
qt3support
|
||||
qtestlib
|
||||
quotation
|
||||
quotefile
|
||||
quotefromfile
|
||||
quotefunction
|
||||
raw
|
||||
reentrant
|
||||
ref
|
||||
refitem
|
||||
reimp
|
||||
related
|
||||
relatedalso
|
||||
relates
|
||||
relatesalso
|
||||
remark
|
||||
remarks
|
||||
result
|
||||
return
|
||||
returns
|
||||
retval
|
||||
row
|
||||
rtfonly
|
||||
sa
|
||||
secreflist
|
||||
section
|
||||
section1
|
||||
section2
|
||||
section3
|
||||
section4
|
||||
see
|
||||
service
|
||||
short
|
||||
showinitializer
|
||||
sidebar
|
||||
since
|
||||
skip
|
||||
skipline
|
||||
skipto
|
||||
skipuntil
|
||||
snippet
|
||||
span
|
||||
sql
|
||||
startpage
|
||||
startuml
|
||||
struct
|
||||
sub
|
||||
subpage
|
||||
subsection
|
||||
subsubsection
|
||||
subtitle
|
||||
sup
|
||||
svg
|
||||
table
|
||||
tableofcontents
|
||||
target
|
||||
test
|
||||
threadsafe
|
||||
throw
|
||||
throws
|
||||
title
|
||||
todo
|
||||
tparam
|
||||
tt
|
||||
typedef
|
||||
uicontrol
|
||||
uitools
|
||||
underline
|
||||
unicode
|
||||
union
|
||||
until
|
||||
value
|
||||
var
|
||||
variable
|
||||
verbatim
|
||||
verbinclude
|
||||
version
|
||||
vhdlflow
|
||||
warning
|
||||
weakgroup
|
||||
webkit
|
||||
xml
|
||||
xmlonly
|
||||
xrefitem
|
||||
@@ -115,7 +115,6 @@ struct Result
|
||||
} // anonymous namespace
|
||||
|
||||
Q_DECLARE_METATYPE(Result)
|
||||
Q_DECLARE_METATYPE(QList<Result>)
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
namespace QTest {
|
||||
|
||||
@@ -48,8 +48,6 @@ using namespace CppTools::Internal;
|
||||
using namespace ExtensionSystem;
|
||||
using namespace Utils;
|
||||
|
||||
Q_DECLARE_METATYPE(ILocatorFilter *)
|
||||
|
||||
namespace {
|
||||
|
||||
enum { debug = 0 };
|
||||
|
||||
@@ -67,8 +67,6 @@
|
||||
#include <sstream>
|
||||
#endif
|
||||
|
||||
Q_DECLARE_METATYPE(QSet<QString>)
|
||||
|
||||
static const bool DumpProjectInfo = qgetenv("QTC_DUMP_PROJECT_INFO") == "1";
|
||||
|
||||
using namespace CppTools;
|
||||
|
||||
@@ -57,7 +57,7 @@ using namespace ProjectExplorer;
|
||||
|
||||
typedef CPlusPlus::Document Document;
|
||||
|
||||
Q_DECLARE_METATYPE(QVector<ProjectFile>)
|
||||
Q_DECLARE_METATYPE(ProjectFile)
|
||||
|
||||
namespace {
|
||||
|
||||
|
||||
@@ -108,6 +108,9 @@ private slots:
|
||||
void test_global_completion_data();
|
||||
void test_global_completion();
|
||||
|
||||
void test_doxygen_tag_completion_data();
|
||||
void test_doxygen_tag_completion();
|
||||
|
||||
void test_completion_member_access_operator_data();
|
||||
void test_completion_member_access_operator();
|
||||
|
||||
|
||||
@@ -175,8 +175,6 @@ typedef QList<Virtuality> VirtualityList;
|
||||
} // CppTools namespace
|
||||
|
||||
Q_DECLARE_METATYPE(CppTools::Internal::Virtuality)
|
||||
Q_DECLARE_METATYPE(CppTools::Internal::VirtualityList)
|
||||
Q_DECLARE_METATYPE(QList<int>)
|
||||
|
||||
namespace CppTools {
|
||||
namespace Internal {
|
||||
|
||||
@@ -33,8 +33,6 @@
|
||||
|
||||
#include <cassert>
|
||||
|
||||
Q_DECLARE_METATYPE(QSet<QString>)
|
||||
|
||||
using namespace CppTools::Internal;
|
||||
using namespace CppTools::Tests;
|
||||
|
||||
|
||||
@@ -126,7 +126,6 @@ private:
|
||||
} // anonymous namespace
|
||||
|
||||
Q_DECLARE_METATYPE(ResultData)
|
||||
Q_DECLARE_METATYPE(ResultDataList)
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
namespace QTest {
|
||||
|
||||
Reference in New Issue
Block a user