From 6078b36c9cd4b63faa3d5ae4b59a19cae84bfc47 Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Thu, 8 Jul 2010 08:35:12 +0200 Subject: C++ indenter: Enable class, struct, enum, namespace, using in functions. Fixes incorrect indentation we got previously when they were used in a statement context. --- src/plugins/cpptools/cppcodeformatter.cpp | 41 +++++++++++++++---------------- 1 file changed, 20 insertions(+), 21 deletions(-) (limited to 'src/plugins/cpptools/cppcodeformatter.cpp') diff --git a/src/plugins/cpptools/cppcodeformatter.cpp b/src/plugins/cpptools/cppcodeformatter.cpp index 89915daef5..1c84bae4b8 100644 --- a/src/plugins/cpptools/cppcodeformatter.cpp +++ b/src/plugins/cpptools/cppcodeformatter.cpp @@ -72,16 +72,8 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block) switch (m_currentState.top().type) { case topmost_intro: - if (tryDeclaration()) - break; - switch (kind) { - case T_NAMESPACE: enter(namespace_start); break; - case T_STRUCT: - case T_UNION: - case T_CLASS: enter(class_start); break; - case T_ENUM: enter(enum_start); break; - case T_USING: enter(using_start); break; - } break; + tryDeclaration(); + break; case namespace_start: switch (kind) { @@ -93,13 +85,7 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block) if (tryDeclaration()) break; switch (kind) { - case T_NAMESPACE: enter(namespace_start); break; case T_RBRACE: leave(); continue; // always nested in namespace_start - case T_STRUCT: - case T_UNION: - case T_CLASS: enter(class_start); break; - case T_ENUM: enter(enum_start); break; - case T_USING: enter(using_start); break; } break; case class_start: @@ -113,11 +99,6 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block) break; switch (kind) { case T_RBRACE: leave(); continue; // always nested in class_start - case T_STRUCT: - case T_UNION: - case T_CLASS: enter(class_start); break; - case T_ENUM: enter(enum_start); break; - case T_USING: enter(using_start); break; } break; case enum_start: @@ -704,6 +685,24 @@ bool CodeFormatter::tryDeclaration() enter(template_start); return true; + case T_NAMESPACE: + enter(namespace_start); + return true; + + case T_STRUCT: + case T_UNION: + case T_CLASS: + enter(class_start); + return true; + + case T_ENUM: + enter(enum_start); + return true; + + case T_USING: + enter(using_start); + return true; + default: return false; } -- cgit v1.2.1