diff options
-rw-r--r-- | src/libs/qmljs/qmljsreformatter.cpp | 6 | ||||
-rw-r--r-- | tests/auto/qml/reformatter/comments.qml | 8 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/libs/qmljs/qmljsreformatter.cpp b/src/libs/qmljs/qmljsreformatter.cpp index deea5d9404..6ac55b2cce 100644 --- a/src/libs/qmljs/qmljsreformatter.cpp +++ b/src/libs/qmljs/qmljsreformatter.cpp @@ -96,6 +96,7 @@ class Rewriter : protected Visitor int _lastNewlineOffset = -1; bool _hadEmptyLine = false; int _binaryExpDepth = 0; + bool _hasOpenComment = false; public: Rewriter(Document::Ptr doc) @@ -201,6 +202,9 @@ protected: void out(const QString &str, const SourceLocation &lastLoc = SourceLocation()) { + if (_hasOpenComment) { + newLine(); + } if (lastLoc.isValid()) { QList<SourceLocation> comments = _doc->engine()->comments(); for (; _nextComment < comments.size(); ++_nextComment) { @@ -371,6 +375,7 @@ protected: { // if preceded by a newline, it's an empty line! _hadEmptyLine = _line.trimmed().isEmpty(); + _hasOpenComment = false; // if the preceding line wasn't empty, reindent etc. if (!_hadEmptyLine) { @@ -524,6 +529,7 @@ protected: out(" "); out(toString(nextCommentLoc)); + _hasOpenComment = true; } } } diff --git a/tests/auto/qml/reformatter/comments.qml b/tests/auto/qml/reformatter/comments.qml index 4ced7eb0e8..d2caa1b555 100644 --- a/tests/auto/qml/reformatter/comments.qml +++ b/tests/auto/qml/reformatter/comments.qml @@ -21,5 +21,13 @@ Item { { console.log("test") } + + var a = 1 + if (a > 0) { + console.log("positive") + } // Final condition + else { + console.log("negative or zero") + } } } |