aboutsummaryrefslogtreecommitdiffstats
path: root/tools/qmllint/main.cpp
diff options
context:
space:
mode:
authorMaximilian Goldstein <max.goldstein@qt.io>2020-04-24 15:10:53 +0200
committerMaximilian Goldstein <max.goldstein@qt.io>2020-04-30 18:56:19 +0200
commitac5c765f29106837da717ca7c2e1f266f39d5843 (patch)
treed27d13f5349ac7b217acd14a61ea1eab54f20d89 /tools/qmllint/main.cpp
parent50cd8cf97aa89a48a9fbaaeb2515e529e66c7d43 (diff)
qmllint: Add flags for toggling warnings
Enables all warnings by default and makes it possible to toggle individual ones using command line flags. Change-Id: Ie55f32f646fd9422313977969f9f00b59ee9ad99 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'tools/qmllint/main.cpp')
-rw-r--r--tools/qmllint/main.cpp36
1 files changed, 26 insertions, 10 deletions
diff --git a/tools/qmllint/main.cpp b/tools/qmllint/main.cpp
index 05519fc8d8..100af4cd81 100644
--- a/tools/qmllint/main.cpp
+++ b/tools/qmllint/main.cpp
@@ -26,7 +26,7 @@
**
****************************************************************************/
-#include "findunqualified.h"
+#include "findwarnings.h"
#include <QtQml/private/qqmljslexer_p.h>
#include <QtQml/private/qqmljsparser_p.h>
@@ -47,7 +47,8 @@
#include <QtCore/qlibraryinfo.h>
#endif
-static bool lint_file(const QString &filename, const bool silent, const bool warnUnqualied,
+static bool lint_file(const QString &filename, const bool silent, const bool warnUnqualified,
+ const bool warnWithStatement, const bool warnInheritanceCycle,
const QStringList &qmltypeDirs, const QStringList &qmltypeFiles)
{
QFile file(filename);
@@ -82,9 +83,10 @@ static bool lint_file(const QString &filename, const bool silent, const bool war
}
}
- if (success && !isJavaScript && warnUnqualied) {
+ if (success && !isJavaScript) {
auto root = parser.rootNode();
- FindUnqualifiedIDVisitor v { qmltypeDirs, qmltypeFiles, code, filename, silent };
+ FindWarningVisitor v { qmltypeDirs, qmltypeFiles, code, filename, silent,
+ warnUnqualified, warnWithStatement, warnInheritanceCycle };
root->accept(&v);
success = v.check();
}
@@ -107,9 +109,18 @@ int main(int argv, char *argc[])
QLatin1String("Don't output syntax errors"));
parser.addOption(silentOption);
- QCommandLineOption checkUnqualified(QStringList() << "U" << "check-unqualified",
- QLatin1String("Warn about unqualified identifiers"));
- parser.addOption(checkUnqualified);
+ QCommandLineOption disableCheckUnqualified(QStringList() << "no-unqualified-id",
+ QLatin1String("Don't warn about unqualified identifiers"));
+ parser.addOption(disableCheckUnqualified);
+
+ QCommandLineOption disableCheckWithStatement(QStringList() << "no-with-statement",
+ QLatin1String("Don't warn about with statement"));
+ parser.addOption(disableCheckWithStatement);
+
+ QCommandLineOption disableCheckInheritanceCycle(QStringList() << "no-inheritance-cycle",
+ QLatin1String("Don't warn about inheritance cycles"));
+
+ parser.addOption(disableCheckInheritanceCycle);
QCommandLineOption qmltypesDirsOption(
QStringList() << "I"
@@ -136,7 +147,10 @@ int main(int argv, char *argc[])
}
bool silent = parser.isSet(silentOption);
- bool warnUnqualified = parser.isSet(checkUnqualified);
+ bool warnUnqualified = !parser.isSet(disableCheckUnqualified);
+ bool warnWithStatement = !parser.isSet(disableCheckWithStatement);
+ bool warnInheritanceCycle = !parser.isSet(disableCheckInheritanceCycle);
+
// use host qml import path as a sane default if nothing else has been provided
QStringList qmltypeDirs = parser.isSet(qmltypesDirsOption)
? parser.values(qmltypesDirsOption)
@@ -152,7 +166,9 @@ int main(int argv, char *argc[])
QStringList qmltypeFiles = parser.isSet(qmltypesFilesOption) ? parser.values(qmltypesFilesOption) : QStringList {};
#else
bool silent = false;
- bool warnUnqualified = false;
+ bool warnUnqualified = true;
+ bool warnWithStatement = true;
+ bool warnInheritanceCycle = true;
QStringList qmltypeDirs {};
QStringList qmltypeFiles {};
#endif
@@ -163,7 +179,7 @@ int main(int argv, char *argc[])
const auto arguments = app.arguments();
for (const QString &filename : arguments)
#endif
- success &= lint_file(filename, silent, warnUnqualified, qmltypeDirs, qmltypeFiles);
+ success &= lint_file(filename, silent, warnUnqualified, warnWithStatement, warnInheritanceCycle, qmltypeDirs, qmltypeFiles);
return success ? 0 : -1;
}