diff options
author | Christian Kamm <christian.d.kamm@nokia.com> | 2010-09-27 10:12:50 +0200 |
---|---|---|
committer | Christian Kamm <christian.d.kamm@nokia.com> | 2010-09-27 10:12:50 +0200 |
commit | b4bd5449f6e11a1efaf543ac2cdb6dca3eab32ff (patch) | |
tree | de79980e99c8fffc61d55677b75b31fd89ac1ae0 /src/libs/qmljs/qmljscodeformatter.cpp | |
parent | 19abd0f2d37058bc5d9c9586696e895cd738a205 (diff) | |
download | qt-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.cpp | 11 |
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; } |