diff options
author | Maximilian Goldstein <max.goldstein@qt.io> | 2020-06-18 10:25:30 +0200 |
---|---|---|
committer | Maximilian Goldstein <max.goldstein@qt.io> | 2020-06-25 09:02:11 +0200 |
commit | d48b87450327e710f7b0a843627624aa67cae116 (patch) | |
tree | ff8102b970bec163e91ee9d540b22529a692b282 /tools/qmlformat | |
parent | eb90e8ee3313bee547e6721a2649bf9ba84e3e5c (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.cpp | 33 |
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 |