summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Lewis <dmlewis@g.clemson.edu>2014-03-17 15:54:34 -0400
committerErik Verbruggen <erik.verbruggen@digia.com>2014-03-25 15:29:08 +0100
commit5510ec0552001e12706e20ab6919a57ac2717726 (patch)
treeda5a82cc39129c239f66f4e4692c84576873ffff
parent61f18e6fc2707439dcbe378dd137c7c9aeb7be18 (diff)
downloadqt-creator-5510ec0552001e12706e20ab6919a57ac2717726.tar.gz
CppTools: Fix indent after template params
Add case for ">>" token when in template_param state. Task-number: QTCREATORBUG-9640 Change-Id: Icc5fc868202d6503d2afd954aa739cd2634cdff1 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
-rw-r--r--src/plugins/cpptools/cppcodeformatter.cpp1
-rw-r--r--tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp2
2 files changed, 3 insertions, 0 deletions
diff --git a/src/plugins/cpptools/cppcodeformatter.cpp b/src/plugins/cpptools/cppcodeformatter.cpp
index d63fc49f43..dc01741e84 100644
--- a/src/plugins/cpptools/cppcodeformatter.cpp
+++ b/src/plugins/cpptools/cppcodeformatter.cpp
@@ -169,6 +169,7 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block)
switch (kind) {
case T_LESS: enter(template_param); break;
case T_GREATER: leave(); break;
+ case T_GREATER_GREATER: leave(); leave(); break; // call leave twice to pop both template_param states
} break;
case operator_declaration:
diff --git a/tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp b/tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp
index 8528d8e433..03220c9bb8 100644
--- a/tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp
+++ b/tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp
@@ -1177,6 +1177,8 @@ void tst_CodeFormatter::templates()
<< Line("~ class F, class D>,")
<< Line("~ typename F>")
<< Line("class Foo { };")
+ << Line("template <class A = std::vector<int>>")
+ << Line("")
;
checkIndent(data);
}