From dab4877a0a6ad755483a8e47205112a247058fef Mon Sep 17 00:00:00 2001 From: Topi Reinio Date: Wed, 7 Oct 2015 12:07:22 +0200 Subject: qdoc: Improve formatting of function signatures MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is a continuation of the work started in commit 694d30035593addc377fea374d1dbe8e3f5ca503. Attach reference ('&') and pointer ('*') qualifiers to the parameter name, as per Qt coding style. Previously, function signatures were documented like this: QString & QString::append(const QString & str) After this change, they will appear like this: QString &QString::append(const QString &str) Change-Id: Ie103fc2929635bc32145e50469c600f9f378f97c Reviewed-by: Tor Arne Vestbø Reviewed-by: Martin Smith --- src/tools/qdoc/codemarker.cpp | 7 ++++++- src/tools/qdoc/codemarker.h | 2 +- src/tools/qdoc/cppcodemarker.cpp | 18 +++++++----------- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/tools/qdoc/codemarker.cpp b/src/tools/qdoc/codemarker.cpp index 458799fc27..a668205a66 100644 --- a/src/tools/qdoc/codemarker.cpp +++ b/src/tools/qdoc/codemarker.cpp @@ -210,7 +210,7 @@ void CodeMarker::appendProtectedString(QString *output, const QStringRef &str) } } -QString CodeMarker::typified(const QString &string) +QString CodeMarker::typified(const QString &string, bool trailingSpace) { QString result; QString pendingWord; @@ -254,6 +254,11 @@ QString CodeMarker::typified(const QString &string) } } } + if (trailingSpace && string.size()) { + if (!string.endsWith(QLatin1Char('*')) + && !string.endsWith(QLatin1Char('&'))) + result += QLatin1Char(' '); + } return result; } diff --git a/src/tools/qdoc/codemarker.h b/src/tools/qdoc/codemarker.h index 31a9f3a254..011c8623dd 100644 --- a/src/tools/qdoc/codemarker.h +++ b/src/tools/qdoc/codemarker.h @@ -159,7 +159,7 @@ public: static const Node *nodeForString(const QString& string); static QString stringForNode(const Node *node); - QString typified(const QString &string); + QString typified(const QString &string, bool trailingSpace = false); protected: virtual QString sortName(const Node *node, const QString* name = 0); diff --git a/src/tools/qdoc/cppcodemarker.cpp b/src/tools/qdoc/cppcodemarker.cpp index e299eae434..01ff827d58 100644 --- a/src/tools/qdoc/cppcodemarker.cpp +++ b/src/tools/qdoc/cppcodemarker.cpp @@ -150,8 +150,9 @@ QString CppCodeMarker::markedUpSynopsis(const Node *node, case Node::QmlSignalHandler: case Node::QmlMethod: func = (const FunctionNode *) node; + if (style != Subpage && !func->returnType().isEmpty()) - synopsis = typified(func->returnType()) + QLatin1Char(' '); + synopsis = typified(func->returnType(), true); synopsis += name; if (func->metaness() != FunctionNode::MacroWithoutParams) { synopsis += QLatin1Char('('); @@ -160,9 +161,7 @@ QString CppCodeMarker::markedUpSynopsis(const Node *node, while (p != func->parameters().constEnd()) { if (p != func->parameters().constBegin()) synopsis += ", "; - synopsis += typified((*p).dataType()); - if (!(*p).dataType().isEmpty()) - synopsis += QLatin1Char(' '); + synopsis += typified((*p).dataType(), true); if (style != Subpage && !(*p).name().isEmpty()) synopsis += "<@param>" + protect((*p).name()) + ""; @@ -273,7 +272,7 @@ QString CppCodeMarker::markedUpSynopsis(const Node *node, synopsis = name + " : " + typified(variable->dataType()); } else { - synopsis = typified(variable->leftType()) + QLatin1Char(' ') + + synopsis = typified(variable->leftType(), true) + name + protect(variable->rightType()); } break; @@ -323,7 +322,7 @@ QString CppCodeMarker::markedUpQmlItem(const Node* node, bool summary) (node->type() == Node::QmlSignalHandler)) { const FunctionNode* func = static_cast(node); if (!func->returnType().isEmpty()) - synopsis = typified(func->returnType()) + QLatin1Char(' ') + name; + synopsis = typified(func->returnType(), true) + name; else synopsis = name; synopsis += QLatin1Char('('); @@ -332,12 +331,9 @@ QString CppCodeMarker::markedUpQmlItem(const Node* node, bool summary) while (p != func->parameters().constEnd()) { if (p != func->parameters().constBegin()) synopsis += ", "; - synopsis += typified((*p).dataType()); - if (!(*p).name().isEmpty()) { - if (!(*p).dataType().isEmpty()) - synopsis += QLatin1Char(' '); + synopsis += typified((*p).dataType(), true); + if (!(*p).name().isEmpty()) synopsis += "<@param>" + protect((*p).name()) + ""; - } synopsis += protect((*p).rightType()); ++p; } -- cgit v1.2.3