diff --git a/src/plugins/cpptools/cppcodeformatter.cpp b/src/plugins/cpptools/cppcodeformatter.cpp index 4eb3a3ac84a0857894631a05cec7abd3574e63e2..97db194e70a40f06bd0f1307fb0603b037ccb0d8 100644 --- a/src/plugins/cpptools/cppcodeformatter.cpp +++ b/src/plugins/cpptools/cppcodeformatter.cpp @@ -1006,6 +1006,8 @@ void QtStyleCodeFormatter::onEnter(int newState, int *indentDepth, int *savedInd while (isBracelessState(state(outermostBraceless).type)) ++outermostBraceless; *indentDepth = state(outermostBraceless - 1).savedIndentDepth; + // this is where the else should go, if one appears - aligned to if_statement + *savedIndentDepth = state().savedIndentDepth; } break; case for_statement_paren_open: diff --git a/tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp b/tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp index 8e9b5d3fec8acf08c9267ed391145f308a04cbe5..7c49cc4c236d7e49460e8ed71d5506d3e6a1d876 100644 --- a/tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp +++ b/tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp @@ -713,6 +713,13 @@ void tst_CodeFormatter::gnuStyle() << Line(" {") << Line(" fpp;") << Line(" }") + << Line(" else if (b)") + << Line(" {") + << Line(" fpp;") + << Line(" }") + << Line(" else") + << Line(" {") + << Line(" }") << Line(" if (b) {") << Line(" fpp;") << Line(" }")