summaryrefslogtreecommitdiff
path: root/src/libs/qmljs/qmljscodeformatter.cpp
diff options
context:
space:
mode:
authorChristian Kamm <christian.d.kamm@nokia.com>2010-09-27 10:12:50 +0200
committerChristian Kamm <christian.d.kamm@nokia.com>2010-09-27 10:12:50 +0200
commitb4bd5449f6e11a1efaf543ac2cdb6dca3eab32ff (patch)
treede79980e99c8fffc61d55677b75b31fd89ac1ae0 /src/libs/qmljs/qmljscodeformatter.cpp
parent19abd0f2d37058bc5d9c9586696e895cd738a205 (diff)
downloadqt-creator-b4bd5449f6e11a1efaf543ac2cdb6dca3eab32ff.tar.gz
QmlJS indenter: Fix problem with object literals.
Reviewed-by: Roberto Raggi
Diffstat (limited to 'src/libs/qmljs/qmljscodeformatter.cpp')
-rw-r--r--src/libs/qmljs/qmljscodeformatter.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/libs/qmljs/qmljscodeformatter.cpp b/src/libs/qmljs/qmljscodeformatter.cpp
index 468d112cbc..0da48216b3 100644
--- a/src/libs/qmljs/qmljscodeformatter.cpp
+++ b/src/libs/qmljs/qmljscodeformatter.cpp
@@ -70,8 +70,9 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block)
for (; m_tokenIndex < m_tokens.size(); ) {
m_currentToken = tokenAt(m_tokenIndex);
const int kind = extendedTokenKind(m_currentToken);
- //dump();
+
//qDebug() << "Token" << m_currentLine.mid(m_currentToken.begin(), m_currentToken.length) << m_tokenIndex << "in line" << block.blockNumber() + 1;
+ //dump();
if (kind == Comment
&& state().type != multiline_comment_cont
@@ -285,6 +286,13 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block)
case RightBracket: leave(); break;
} break;
+ case objectliteral_open:
+ if (tryInsideExpression())
+ break;
+ switch (kind) {
+ case RightBrace: leave(); break;
+ } break;
+
case bracket_element_start:
switch (kind) {
case Identifier: turnInto(bracket_element_maybe_objectdefinition); break;
@@ -612,6 +620,7 @@ bool CodeFormatter::tryInsideExpression(bool alsoExpression)
switch (kind) {
case LeftParenthesis: newState = paren_open; break;
case LeftBracket: newState = bracket_open; break;
+ case LeftBrace: newState = objectliteral_open; break;
case Function: newState = function_start; break;
case Question: newState = ternary_op; break;
}