aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorXavier BESSON <developer@xavi-b.fr>2022-11-06 21:40:50 +0100
committerXavier BESSON <developer@xavi-b.fr>2022-11-14 13:11:49 +0100
commitc016ab30c9c1932936424d22a0e62d3f1f2bfc48 (patch)
tree5192bb025c04b9fbefb60570ffffffa3af718acf /tools
parent1d3d7437bab7c3a0c3222de3a00bcf2c9437ae76 (diff)
qmlformat: add 'ensure new line between objects' option
This option allows to format files into more 'refreshing' ones. It improves readability thanks to a clearer visualization of objects inside files. Change-Id: Ic3592e87ae16d14d70317d09d819cc5d331be822 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'tools')
-rw-r--r--tools/qmlformat/qmlformat.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/tools/qmlformat/qmlformat.cpp b/tools/qmlformat/qmlformat.cpp
index 2e99dd3110..0da477af82 100644
--- a/tools/qmlformat/qmlformat.cpp
+++ b/tools/qmlformat/qmlformat.cpp
@@ -33,6 +33,7 @@ struct Options
bool normalize = false;
bool ignoreSettings = false;
bool writeDefaultSettings = false;
+ bool objectsSpacing = false;
int indentWidth = 4;
bool indentWidthSet = false;
@@ -118,6 +119,8 @@ bool parseFile(const QString &filename, const Options &options)
if (options.force || qmlFilePtr->code().size() > 32000)
checks = WriteOutCheck::None;
+ lwOptions.objectsSpacing = options.objectsSpacing;
+
MutableDomItem res;
if (options.inplace) {
if (options.verbose)
@@ -185,6 +188,8 @@ Options buildCommandLineOptions(const QCoreApplication &app)
QStringLiteral("Override the new line format to use (native macos unix windows)."),
"newline", "native"));
+ parser.addOption(QCommandLineOption(QStringList() << "objects-spacing", QStringLiteral("Ensure spaces between objects (only works with normalize option).")));
+
parser.addPositionalArgument("filenames", "files to be processed by qmlformat");
parser.process(app);
@@ -228,6 +233,7 @@ Options buildCommandLineOptions(const QCoreApplication &app)
options.tabs = parser.isSet("tabs");
options.normalize = parser.isSet("normalize");
options.ignoreSettings = parser.isSet("ignore-settings");
+ options.objectsSpacing = parser.isSet("objects-spacing");
options.valid = true;
options.indentWidth = indentWidth;
@@ -261,6 +267,9 @@ int main(int argc, char *argv[])
const QString &newlineSetting = QStringLiteral("NewlineType");
settings.addOption(newlineSetting, QStringLiteral("native"));
+ const QString &objectsSpacingSetting = QStringLiteral("ObjectsSpacing");
+ settings.addOption(objectsSpacingSetting);
+
const auto options = buildCommandLineOptions(app);
if (!options.valid) {
for (const auto &error : options.errors) {
@@ -293,6 +302,9 @@ int main(int argc, char *argv[])
if (settings.isSet(newlineSetting))
perFileOptions.newline = settings.value(newlineSetting).toString();
+ if (settings.isSet(objectsSpacingSetting))
+ perFileOptions.objectsSpacing = settings.value(objectsSpacingSetting).toBool();
+
return perFileOptions;
};