diff options
author | Maximilian Goldstein <max.goldstein@qt.io> | 2020-04-24 15:10:53 +0200 |
---|---|---|
committer | Maximilian Goldstein <max.goldstein@qt.io> | 2020-04-30 18:56:19 +0200 |
commit | ac5c765f29106837da717ca7c2e1f266f39d5843 (patch) | |
tree | d27d13f5349ac7b217acd14a61ea1eab54f20d89 /tools/qmllint/main.cpp | |
parent | 50cd8cf97aa89a48a9fbaaeb2515e529e66c7d43 (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.cpp | 36 |
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; } |