From 1aed32d86677b435eada4f8718bab3356630d74f Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Mon, 17 Sep 2012 13:14:45 +0200 Subject: C++11: Fix indent of brace initializers in ctor lists. Change-Id: Ib784df9e17ff2fe6bb249dcf8c2fee7310340f50 Reviewed-by: hjk --- src/plugins/cpptools/cppcodeformatter.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'src/plugins/cpptools/cppcodeformatter.cpp') diff --git a/src/plugins/cpptools/cppcodeformatter.cpp b/src/plugins/cpptools/cppcodeformatter.cpp index f1b50a2481..6c7efca2f6 100644 --- a/src/plugins/cpptools/cppcodeformatter.cpp +++ b/src/plugins/cpptools/cppcodeformatter.cpp @@ -300,6 +300,13 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block) default: tryExpression(); break; } break; + case braceinit_open: + switch (kind) { + case T_RBRACE: leave(); break; + case T_RPAREN: leave(); continue; // recover? + default: tryExpression(); break; + } break; + case ternary_op: switch (kind) { case T_RPAREN: @@ -340,14 +347,16 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block) case member_init: switch (kind) { - case T_LPAREN: enter(member_init_paren_open); break; - case T_RPAREN: leave(); break; case T_LBRACE: + case T_LPAREN: enter(member_init_nest_open); break; + case T_RBRACE: + case T_RPAREN: leave(); break; case T_SEMICOLON: leave(); continue; // try to recover } break; - case member_init_paren_open: + case member_init_nest_open: switch (kind) { + case T_RBRACE: case T_RPAREN: leave(); continue; case T_SEMICOLON: leave(); continue; // try to recover default: tryExpression(); break; @@ -765,6 +774,7 @@ bool CodeFormatter::tryExpression(bool alsoExpression) switch (kind) { case T_LPAREN: newState = arglist_open; break; case T_QUESTION: newState = ternary_op; break; + case T_LBRACE: newState = braceinit_open; break; case T_EQUAL: case T_AMPER_EQUAL: @@ -1235,7 +1245,7 @@ void QtStyleCodeFormatter::onEnter(int newState, int *indentDepth, int *savedInd case arglist_open: case condition_paren_open: - case member_init_paren_open: + case member_init_nest_open: if (!lastToken) *paddingDepth = nextTokenPosition-*indentDepth; else -- cgit v1.2.1