aboutsummaryrefslogtreecommitdiffstats
path: root/tools/qmlformat
diff options
context:
space:
mode:
authorMaximilian Goldstein <max.goldstein@qt.io>2020-06-18 10:25:30 +0200
committerMaximilian Goldstein <max.goldstein@qt.io>2020-06-25 09:02:11 +0200
commitd48b87450327e710f7b0a843627624aa67cae116 (patch)
treeff8102b970bec163e91ee9d540b22529a692b282 /tools/qmlformat
parenteb90e8ee3313bee547e6721a2649bf9ba84e3e5c (diff)
qmlformat: Add files option
Adds a flag for formatting files listed in a file Fixes: QTBUG-85078 Change-Id: I235db3ad52291d2c211b092b8505340728be3949 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'tools/qmlformat')
-rw-r--r--tools/qmlformat/main.cpp33
1 files changed, 29 insertions, 4 deletions
diff --git a/tools/qmlformat/main.cpp b/tools/qmlformat/main.cpp
index 3c032d25d6..f9afd10a2c 100644
--- a/tools/qmlformat/main.cpp
+++ b/tools/qmlformat/main.cpp
@@ -28,6 +28,7 @@
#include <QCoreApplication>
#include <QFile>
+#include <QTextStream>
#include <QtQml/private/qqmljslexer_p.h>
#include <QtQml/private/qqmljsparser_p.h>
@@ -190,6 +191,9 @@ int main(int argc, char *argv[])
parser.addOption(QCommandLineOption({"f", "force"},
QStringLiteral("Continue even if an error has occurred.")));
+ parser.addOption(QCommandLineOption(
+ { "F", "files" }, QStringLiteral("Format all files listed in file, in-place"), "file"));
+
parser.addOption(QCommandLineOption({"l", "newline"},
QStringLiteral("Override the new line format to use (native macos unix windows)."),
"newline", "native"));
@@ -200,7 +204,7 @@ int main(int argc, char *argv[])
const auto positionalArguments = parser.positionalArguments();
- if (positionalArguments.isEmpty())
+ if (positionalArguments.isEmpty() && !parser.isSet("files"))
parser.showHelp(-1);
if (!parser.isSet("inplace") && parser.value("newline") != "native") {
@@ -208,9 +212,30 @@ int main(int argc, char *argv[])
return -1;
}
- for (const QString& file: parser.positionalArguments()) {
- if (!parseFile(file, parser.isSet("inplace"), parser.isSet("verbose"), !parser.isSet("no-sort"), parser.isSet("force"), parser.value("newline")))
- success = false;
+ if (parser.isSet("files")) {
+ if (!positionalArguments.isEmpty())
+ qWarning() << "Warning: Positional arguments are ignored when -F is used";
+
+ QFile file(parser.value("files"));
+ file.open(QIODevice::Text | QIODevice::ReadOnly);
+ QTextStream in(&file);
+ while (!in.atEnd()) {
+ QString file = in.readLine();
+
+ if (file.isEmpty())
+ continue;
+
+ if (!parseFile(file, true, parser.isSet("verbose"), !parser.isSet("no-sort"),
+ parser.isSet("force"), parser.value("newline")))
+ success = false;
+ }
+ } else {
+ for (const QString &file : parser.positionalArguments()) {
+ if (!parseFile(file, parser.isSet("inplace"), parser.isSet("verbose"),
+ !parser.isSet("no-sort"), parser.isSet("force"),
+ parser.value("newline")))
+ success = false;
+ }
}
#endif