summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppcodeformatter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/cpptools/cppcodeformatter.cpp')
-rw-r--r--src/plugins/cpptools/cppcodeformatter.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/plugins/cpptools/cppcodeformatter.cpp b/src/plugins/cpptools/cppcodeformatter.cpp
index 0eb40bf4e9..582293ff10 100644
--- a/src/plugins/cpptools/cppcodeformatter.cpp
+++ b/src/plugins/cpptools/cppcodeformatter.cpp
@@ -937,18 +937,23 @@ void QtStyleCodeFormatter::onEnter(int newState, int *indentDepth, int *savedInd
case class_open:
case enum_open:
- case defun_open:
+ case defun_open: {
// undo the continuation indent of the parent
*savedIndentDepth = parentState.savedIndentDepth;
- if (firstToken)
+ bool followedByData = (!lastToken && !tokenAt(tokenIndex() + 1).isComment());
+ if (firstToken || followedByData)
*savedIndentDepth = tokenPosition;
*indentDepth = *savedIndentDepth;
- if (m_indentDeclarationMembers)
+ if (followedByData) {
+ *indentDepth = column(tokenAt(tokenIndex() + 1).begin());
+ } else if (m_indentDeclarationMembers) {
*indentDepth += m_indentSize;
+ }
break;
+ }
case substatement_open:
if (firstToken) {