From 5f04fbba1a8616c43a863fa3468b98f32f1be22c Mon Sep 17 00:00:00 2001 From: Christian Kamm <christian.d.kamm@nokia.com> Date: Thu, 9 Dec 2010 13:20:13 +0100 Subject: [PATCH] QmlJS indenter: Fix for expressions starting with numbers or strings. Reviewed-by: Roberto Raggi --- src/libs/qmljs/qmljscodeformatter.cpp | 2 ++ .../qmlcodeformatter/qmlcodeformatter.pro | 6 ++-- .../qmlcodeformatter/tst_qmlcodeformatter.cpp | 35 +++++++++++++++++-- 3 files changed, 38 insertions(+), 5 deletions(-) diff --git a/src/libs/qmljs/qmljscodeformatter.cpp b/src/libs/qmljs/qmljscodeformatter.cpp index 7ec947b4525..07047983a6a 100644 --- a/src/libs/qmljs/qmljscodeformatter.cpp +++ b/src/libs/qmljs/qmljscodeformatter.cpp @@ -693,6 +693,8 @@ bool CodeFormatter::tryStatement() case List: case Property: case Function: + case Number: + case String: enter(expression); // look at the token again m_tokenIndex -= 1; diff --git a/tests/auto/qml/qmleditor/qmlcodeformatter/qmlcodeformatter.pro b/tests/auto/qml/qmleditor/qmlcodeformatter/qmlcodeformatter.pro index 6464c16bb4f..54797eb7eae 100644 --- a/tests/auto/qml/qmleditor/qmlcodeformatter/qmlcodeformatter.pro +++ b/tests/auto/qml/qmleditor/qmlcodeformatter/qmlcodeformatter.pro @@ -12,11 +12,11 @@ include($$SRCDIR/libs/utils/utils-lib.pri) SOURCES += \ tst_qmlcodeformatter.cpp \ - $$SRCDIR/plugins/qmljseditor/qmljseditorcodeformatter.cpp \ + $$SRCDIR/plugins/qmljstools/qmljsqtstylecodeformatter.cpp \ $$SRCDIR/plugins/texteditor/basetextdocumentlayout.cpp HEADERS += \ - $$SRCDIR/plugins/qmljseditor/qmljseditorcodeformatter.h \ - $$SRCDIR/plugins/texteditor/basetextdocumentlayout.h \ + $$SRCDIR/plugins/qmljstools/qmljseditorcodeformatter.h \ + $$SRCDIR/plugins/texteditor/basetextdocumentlayout.h INCLUDEPATH += $$SRCDIR/plugins $$SRCDIR/libs diff --git a/tests/auto/qml/qmleditor/qmlcodeformatter/tst_qmlcodeformatter.cpp b/tests/auto/qml/qmleditor/qmlcodeformatter/tst_qmlcodeformatter.cpp index 9b0d05d12e6..a8b0c422400 100644 --- a/tests/auto/qml/qmleditor/qmlcodeformatter/tst_qmlcodeformatter.cpp +++ b/tests/auto/qml/qmleditor/qmlcodeformatter/tst_qmlcodeformatter.cpp @@ -4,9 +4,9 @@ #include <QTextDocument> #include <QTextBlock> -#include <qmljseditor/qmljseditorcodeformatter.h> +#include <qmljstools/qmljsqtstylecodeformatter.h> -using namespace QmlJSEditor; +using namespace QmlJSTools; class tst_QMLCodeFormatter: public QObject { @@ -27,6 +27,7 @@ private Q_SLOTS: void signalDeclarations(); void ifBinding1(); void ifBinding2(); + void ifBinding3(); void ifStatementWithoutBraces1(); void ifStatementWithoutBraces2(); void ifStatementWithBraces1(); @@ -431,6 +432,36 @@ void tst_QMLCodeFormatter::ifBinding2() checkIndent(data); } +void tst_QMLCodeFormatter::ifBinding3() +{ + QList<Line> data; + data << Line("A.Rectangle {") + << Line(" foo: bar") + << Line(" x: if (a) 1") + << Line(" x: if (a)") + << Line(" 1") + << Line(" x: if (a) 1;") + << Line(" x: if (a)") + << Line(" 1;") + << Line(" x: if (a) 1; else 2") + << Line(" x: if (a) 1") + << Line(" else 2") + << Line(" x: if (a) 1;") + << Line(" else 2") + << Line(" x: if (a) 1;") + << Line(" else") + << Line(" 2") + << Line(" x: if (a)") + << Line(" 1") + << Line(" else") + << Line(" 2") + << Line(" x: if (a) 1; else 2;") + << Line(" x: 1") + << Line("}") + ; + checkIndent(data); +} + void tst_QMLCodeFormatter::ifStatementWithoutBraces1() { QList<Line> data; -- GitLab