From f752a7ab6cb022c136f91d471616edda0c55a612 Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Mon, 4 Aug 2014 14:26:04 +0200 Subject: qdoc: Report error in square bracket parameter MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This update makes qdoc report an error, when it can't recognize a parameter in square brackets. Change-Id: I45d31ec875ac533736ee4a565ff3f217353068dd Task-number: QTBUG-39221 Reviewed-by: Topi Reiniƶ --- src/tools/qdoc/atom.cpp | 9 +++++++-- src/tools/qdoc/atom.h | 4 ++++ src/tools/qdoc/doc.cpp | 10 ++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/tools/qdoc/atom.cpp b/src/tools/qdoc/atom.cpp index 0c17a38e51..de99dc4d5a 100644 --- a/src/tools/qdoc/atom.cpp +++ b/src/tools/qdoc/atom.cpp @@ -146,6 +146,8 @@ QT_BEGIN_NAMESPACE \value UnknownCommand */ +QString Atom::noError_ = QString(); + static const struct { const char *english; int no; @@ -399,6 +401,7 @@ LinkAtom::LinkAtom(const QString& p1, const QString& p2) genus_ = Node::CPP; continue; } + error_ = p2; break; } } @@ -410,7 +413,8 @@ LinkAtom::LinkAtom(const LinkAtom& t) : Atom(Link, t.string()), genus_(t.genus_), goal_(t.goal_), - domain_(t.domain_) + domain_(t.domain_), + error_(t.error_) { // nothing } @@ -424,7 +428,8 @@ LinkAtom::LinkAtom(Atom* previous, const LinkAtom& t) : Atom(previous, Link, t.string()), genus_(t.genus_), goal_(t.goal_), - domain_(t.domain_) + domain_(t.domain_), + error_(t.error_) { previous->next_ = this; } diff --git a/src/tools/qdoc/atom.h b/src/tools/qdoc/atom.h index 65ba2a9b5c..e4ef7e06a7 100644 --- a/src/tools/qdoc/atom.h +++ b/src/tools/qdoc/atom.h @@ -203,8 +203,10 @@ public: virtual bool specifiesDomain() const { return false; } virtual Tree* domain() const { return 0; } virtual Node::Type goal() const { return Node::NoType; } + virtual const QString& error() { return noError_; } protected: + static QString noError_; Atom* next_; Type type_; QStringList strs; @@ -223,11 +225,13 @@ class LinkAtom : public Atom virtual bool specifiesDomain() const { return (domain_ != 0); } virtual Tree* domain() const { return domain_; } virtual Node::Type goal() const { return goal_; } + virtual const QString& error() { return error_; } protected: Node::Genus genus_; Node::Type goal_; Tree* domain_; + QString error_; }; #define ATOM_FORMATTING_BOLD "bold" diff --git a/src/tools/qdoc/doc.cpp b/src/tools/qdoc/doc.cpp index 5745b094d5..fcf5add514 100644 --- a/src/tools/qdoc/doc.cpp +++ b/src/tools/qdoc/doc.cpp @@ -975,6 +975,11 @@ void DocParser::parse(const QString& source, if (isLeftBraceAhead()) { p1 = getArgument(); append(p1, p2); + if (!p2.isEmpty() && !(priv->text.lastAtom()->error().isEmpty())) { + location().warning(tr("Check parameter in '[ ]' of '\\l' command: '%1', " + "possible misspelling, or unrecognized module name") + .arg(priv->text.lastAtom()->error())); + } if (isLeftBraceAhead()) { currentLinkAtom = priv->text.lastAtom(); startFormat(ATOM_FORMATTING_LINK, cmd); @@ -988,6 +993,11 @@ void DocParser::parse(const QString& source, else { p1 = getArgument(); append(p1, p2); + if (!p2.isEmpty() && !(priv->text.lastAtom()->error().isEmpty())) { + location().warning(tr("Check parameter in '[ ]' of '\\l' command: '%1', " + "possible misspelling, or unrecognized module name") + .arg(priv->text.lastAtom()->error())); + } append(Atom::FormattingLeft, ATOM_FORMATTING_LINK); append(Atom::String, cleanLink(p1)); append(Atom::FormattingRight, ATOM_FORMATTING_LINK); -- cgit v1.2.3