diff options
author | Fawzi Mohamed <fawzi.mohamed@digia.com> | 2014-02-13 13:42:11 +0100 |
---|---|---|
committer | Fawzi Mohamed <fawzi.mohamed@digia.com> | 2014-02-18 05:40:34 +0100 |
commit | 1ff5faacea584d371e5265da3ff5e172a5514475 (patch) | |
tree | 2456bbf5a8c4391fc8f8f9e4ce51eabfac095196 /src | |
parent | 91def5a8ff91818ad623d3400e70f57717a1b78a (diff) |
qmljs: improve qmltype parsing error messages
add filename to each error message.
Change-Id: I2b9f550147acfe6993f1e7d878fdda863182a2a0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/libs/qmljs/qmljsinterpreter.cpp | 2 | ||||
-rw-r--r-- | src/libs/qmljs/qmljstypedescriptionreader.cpp | 19 | ||||
-rw-r--r-- | src/libs/qmljs/qmljstypedescriptionreader.h | 3 |
3 files changed, 15 insertions, 9 deletions
diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp index efb606de28..8b81a55c70 100644 --- a/src/libs/qmljs/qmljsinterpreter.cpp +++ b/src/libs/qmljs/qmljsinterpreter.cpp @@ -1298,7 +1298,7 @@ void CppQmlTypesLoader::parseQmlTypeDescriptions(const QByteArray &contents, errorMessage->clear(); warningMessage->clear(); - TypeDescriptionReader reader(QString::fromUtf8(contents)); + TypeDescriptionReader reader(fileName, QString::fromUtf8(contents)); if (!reader(newObjects, newModuleApis)) { if (reader.errorMessage().isEmpty()) *errorMessage = QLatin1String("unknown error"); diff --git a/src/libs/qmljs/qmljstypedescriptionreader.cpp b/src/libs/qmljs/qmljstypedescriptionreader.cpp index 245488ad9e..73315dbeb9 100644 --- a/src/libs/qmljs/qmljstypedescriptionreader.cpp +++ b/src/libs/qmljs/qmljstypedescriptionreader.cpp @@ -36,13 +36,14 @@ #include "qmljsinterpreter.h" #include "qmljsutils.h" +#include <QDir> + using namespace QmlJS; using namespace QmlJS::AST; using namespace LanguageUtils; -TypeDescriptionReader::TypeDescriptionReader(const QString &data) - : _source(data) - , _objects(0) +TypeDescriptionReader::TypeDescriptionReader(const QString &fileName, const QString &data) + : _fileName (fileName), _source(data), _objects(0) { } @@ -162,7 +163,8 @@ void TypeDescriptionReader::readModule(UiObjectDefinition *ast) void TypeDescriptionReader::addError(const SourceLocation &loc, const QString &message) { - _errorMessage += QString::fromLatin1("%1:%2: %3\n").arg( + _errorMessage += QString::fromLatin1("%1:%2:%3: %4\n").arg( + QDir::toNativeSeparators(_fileName), QString::number(loc.startLine), QString::number(loc.startColumn), message); @@ -170,7 +172,8 @@ void TypeDescriptionReader::addError(const SourceLocation &loc, const QString &m void TypeDescriptionReader::addWarning(const SourceLocation &loc, const QString &message) { - _warningMessage += QString::fromLatin1("%1:%2: %3\n").arg( + _warningMessage += QString::fromLatin1("%1:%2:%3: %4\n").arg( + QDir::toNativeSeparators(_fileName), QString::number(loc.startLine), QString::number(loc.startColumn), message); @@ -193,7 +196,9 @@ void TypeDescriptionReader::readComponent(UiObjectDefinition *ast) else if (name == QLatin1String("Enum")) readEnum(component, fmo); else - addWarning(component->firstSourceLocation(), tr("Expected only Property, Method, Signal and Enum object definitions.")); + addWarning(component->firstSourceLocation(), + tr("Expected only Property, Method, Signal and Enum object definitions, not '%1'.") + .arg(name)); } else if (script) { QString name = toString(script->qualifiedId); if (name == QLatin1String("name")) { @@ -211,7 +216,7 @@ void TypeDescriptionReader::readComponent(UiObjectDefinition *ast) } else { addWarning(script->firstSourceLocation(), tr("Expected only name, prototype, defaultProperty, attachedType, exports " - "and exportMetaObjectRevisions script bindings.")); + "and exportMetaObjectRevisions script bindings, not '%1'.").arg(name)); } } else { addWarning(member->firstSourceLocation(), tr("Expected only script bindings and object definitions.")); diff --git a/src/libs/qmljs/qmljstypedescriptionreader.h b/src/libs/qmljs/qmljstypedescriptionreader.h index 4660dfb23e..8133b77327 100644 --- a/src/libs/qmljs/qmljstypedescriptionreader.h +++ b/src/libs/qmljs/qmljstypedescriptionreader.h @@ -54,7 +54,7 @@ class QMLJS_EXPORT TypeDescriptionReader Q_DECLARE_TR_FUNCTIONS(QmlJS::TypeDescriptionReader) public: - explicit TypeDescriptionReader(const QString &data); + explicit TypeDescriptionReader(const QString &fileName, const QString &data); ~TypeDescriptionReader(); bool operator()( @@ -85,6 +85,7 @@ private: void addError(const AST::SourceLocation &loc, const QString &message); void addWarning(const AST::SourceLocation &loc, const QString &message); + QString _fileName; QString _source; QString _errorMessage; QString _warningMessage; |