From: Christian Kamm Date: Thu, 9 Dec 2010 12:20:13 +0000 (+0100) Subject: QmlJS indenter: Fix for expressions starting with numbers or strings. X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=5f04fbba1a8616c43a863fa3468b98f32f1be22c;p=qt-creator-jp%2Fqt-creator-jp.git QmlJS indenter: Fix for expressions starting with numbers or strings. Reviewed-by: Roberto Raggi --- diff --git a/src/libs/qmljs/qmljscodeformatter.cpp b/src/libs/qmljs/qmljscodeformatter.cpp index 7ec947b452..07047983a6 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 6464c16bb4..54797eb7ea 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 9b0d05d12e..a8b0c42240 100644 --- a/tests/auto/qml/qmleditor/qmlcodeformatter/tst_qmlcodeformatter.cpp +++ b/tests/auto/qml/qmleditor/qmlcodeformatter/tst_qmlcodeformatter.cpp @@ -4,9 +4,9 @@ #include #include -#include +#include -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 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 data;