From 5ac981a0aceeb688656453731dee191be251853f Mon Sep 17 00:00:00 2001 From: Christian Kamm <christian.d.kamm@nokia.com> Date: Tue, 19 Oct 2010 12:49:09 +0200 Subject: [PATCH] C++ indenter: Fix indentation after namespace aliases. Task-number: QTCREATORBUG-2574 Reviewed-by: Roberto Raggi --- src/plugins/cpptools/cppcodeformatter.cpp | 1 + .../cplusplus/codeformatter/tst_codeformatter.cpp | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/plugins/cpptools/cppcodeformatter.cpp b/src/plugins/cpptools/cppcodeformatter.cpp index 3c13d10f589..b733277dd41 100644 --- a/src/plugins/cpptools/cppcodeformatter.cpp +++ b/src/plugins/cpptools/cppcodeformatter.cpp @@ -93,6 +93,7 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block) case namespace_start: switch (kind) { case T_LBRACE: enter(namespace_open); break; + case T_SEMICOLON: case T_RBRACE: leave(); break; } break; diff --git a/tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp b/tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp index 0b240fa107c..541f5c4e4d9 100644 --- a/tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp +++ b/tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp @@ -51,6 +51,7 @@ private Q_SLOTS: void forStatement(); void templateSingleline(); void macrosNoSemicolon2(); + void renamedNamespace(); }; struct Line { @@ -985,6 +986,20 @@ void tst_CodeFormatter::macrosNoSemicolon2() checkIndent(data); } +void tst_CodeFormatter::renamedNamespace() +{ + QList<Line> data; + data + << Line("namespace X = Y;") + << Line("void foo()") + << Line("{") + << Line(" return;") + << Line("}") + << Line("int i;") + ; + checkIndent(data); +} + QTEST_APPLESS_MAIN(tst_CodeFormatter) #include "tst_codeformatter.moc" -- GitLab