OSDN Git Service

QmlJS indenter: Fix for expressions starting with numbers or strings.
authorChristian Kamm <christian.d.kamm@nokia.com>
Thu, 9 Dec 2010 12:20:13 +0000 (13:20 +0100)
committerChristian Kamm <christian.d.kamm@nokia.com>
Thu, 9 Dec 2010 12:28:43 +0000 (13:28 +0100)
Reviewed-by: Roberto Raggi
src/libs/qmljs/qmljscodeformatter.cpp
tests/auto/qml/qmleditor/qmlcodeformatter/qmlcodeformatter.pro
tests/auto/qml/qmleditor/qmlcodeformatter/tst_qmlcodeformatter.cpp

index 7ec947b..0704798 100644 (file)
@@ -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;
index 6464c16..54797eb 100644 (file)
@@ -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
index 9b0d05d..a8b0c42 100644 (file)
@@ -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;