aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorMaximilian Goldstein <max.goldstein@qt.io>2020-10-07 12:46:24 +0200
committerMaximilian Goldstein <max.goldstein@qt.io>2020-10-08 09:57:47 +0200
commit61417ad3525d33c41e7d8423103e876a922d5f8b (patch)
tree76568d9cfccbe25059e3c0f0e23a3894a5b9ffe6 /tools
parentb0652fe3d7a77d38ac2bd427fba6e542d363eec6 (diff)
qmlformat: Make arrow functions one liners
Fixes: QTBUG-87179 Change-Id: Ieb7dffab59923bcb2ce8745c499eff7de44134b1 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'tools')
-rw-r--r--tools/qmlformat/dumpastvisitor.cpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/tools/qmlformat/dumpastvisitor.cpp b/tools/qmlformat/dumpastvisitor.cpp
index 47ea76b119..24286ba69b 100644
--- a/tools/qmlformat/dumpastvisitor.cpp
+++ b/tools/qmlformat/dumpastvisitor.cpp
@@ -321,6 +321,7 @@ QString DumpAstVisitor::parseFunctionExpression(FunctionExpression *functExpr, b
{
m_indentLevel++;
QString result;
+ bool hasBraces = true;
if (!functExpr->isArrowFunction) {
result += omitFunction ? "" : "function";
@@ -343,12 +344,23 @@ QString DumpAstVisitor::parseFunctionExpression(FunctionExpression *functExpr, b
if (functExpr->typeAnnotation != nullptr)
result += " : " + parseType(functExpr->typeAnnotation->type);
- result += " => {\n" + parseStatementList(functExpr->body);
+ result += " => ";
+
+ if (functExpr->body == nullptr) {
+ result += "{}";
+ } else if (functExpr->body->next == nullptr && functExpr->body->statement->kind == Node::Kind_ReturnStatement) {
+ m_indentLevel--;
+ result += parseExpression(cast<ReturnStatement *>(functExpr->body->statement)->expression);
+ hasBraces = false;
+ } else {
+ result += "{\n" + parseStatementList(functExpr->body);
+ }
}
- m_indentLevel--;
-
- result += formatLine("}", false);
+ if (hasBraces) {
+ m_indentLevel--;
+ result += formatLine("}", false);
+ }
return result;