aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorMaximilian Goldstein <max.goldstein@qt.io>2022-04-11 17:48:36 +0200
committerMaximilian Goldstein <max.goldstein@qt.io>2022-04-21 21:04:01 +0200
commit1552b00d1e17d774929f2aa35fff58afff409b17 (patch)
tree7b687adc191b49682550e90168a0acbf5868a212 /tools
parent28fd6bd25c1241acdaabc2f81f1d3e39c083396e (diff)
qmllint: Add option to disable individual plugins
Adds a command line option and settings entry in order to disable individual plugins. Previously you could only disable all of them. Fixes: QTBUG-102420 Change-Id: I5a35093c32f5f86eef1e31dd42b77c95e38bb01f Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'tools')
-rw-r--r--tools/qmllint/main.cpp35
1 files changed, 27 insertions, 8 deletions
diff --git a/tools/qmllint/main.cpp b/tools/qmllint/main.cpp
index 45252245f5..791a29f839 100644
--- a/tools/qmllint/main.cpp
+++ b/tools/qmllint/main.cpp
@@ -163,11 +163,14 @@ All warnings can be set to three levels:
QLatin1String("List all available plugins"));
parser.addOption(listPluginsOption);
- QCommandLineOption pluginsDisable(QStringList() << "disable-plugins",
- QLatin1String("Disable all qmllint plugins"));
+ QCommandLineOption pluginsDisable(
+ QStringList() << "D"
+ << "disable-plugins",
+ QLatin1String("List of qmllint plugins to disable (all to disable all plugins)"),
+ QLatin1String("plugins"));
parser.addOption(pluginsDisable);
- const QString pluginsDisableSettings = QLatin1String("DisablePlugins");
- settings.addOption(pluginsDisableSettings, false);
+ const QString pluginsDisableSetting = QLatin1String("DisablePlugins");
+ settings.addOption(pluginsDisableSetting);
QCommandLineOption pluginPathsOption(
QStringList() << "P"
@@ -310,11 +313,27 @@ All warnings can be set to three levels:
addAbsolutePaths(qmlImportPaths, settings.value(qmlImportPathsSetting).toStringList());
- const bool disablePlugins = parser.isSet(pluginsDisable)
- || (settings.isSet(pluginsDisableSettings)
- && settings.value(pluginsDisableSettings).toBool());
+ QSet<QString> disabledPlugins;
- linter.setPluginsEnabled(!disablePlugins);
+ if (parser.isSet(pluginsDisable)) {
+ for (const QString &plugin : parser.values(pluginsDisable))
+ disabledPlugins << plugin.toLower();
+ }
+
+ if (settings.isSet(pluginsDisableSetting)) {
+ for (const QString &plugin : settings.value(pluginsDisableSetting).toStringList())
+ disabledPlugins << plugin.toLower();
+ }
+
+ linter.setPluginsEnabled(!disabledPlugins.contains("all"));
+
+ if (!linter.pluginsEnabled())
+ continue;
+
+ auto &plugins = linter.plugins();
+
+ for (auto &plugin : plugins)
+ plugin.setEnabled(!disabledPlugins.contains(plugin.name().toLower()));
}
const bool isFixing = parser.isSet(fixFile);