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.cpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/plugins/cpptools/cppcodeformatter.cpp b/src/plugins/cpptools/cppcodeformatter.cpp
index 4d98a0c1c2..1923d976e9 100644
--- a/src/plugins/cpptools/cppcodeformatter.cpp
+++ b/src/plugins/cpptools/cppcodeformatter.cpp
@@ -1437,8 +1437,7 @@ void QtStyleCodeFormatter::onEnter(int newState, int *indentDepth, int *savedInd
break;
case string_open:
- *indentDepth = tokenPosition;
- *paddingDepth = 0;
+ *paddingDepth = tokenPosition - *indentDepth;
break;
}
@@ -1467,16 +1466,25 @@ void QtStyleCodeFormatter::adjustIndent(const QList<CPlusPlus::Token> &tokens, i
// adjusting the indentDepth here instead of in enter() gives 'else if' the correct indentation
// ### could be moved?
- if (topState.type == substatement)
+ switch (topState.type) {
+ case substatement:
*indentDepth += m_tabSettings.m_indentSize;
-
+ break;
// keep user-adjusted indent in multiline comments
- if (topState.type == multiline_comment_start
- || topState.type == multiline_comment_cont) {
+ case multiline_comment_start:
+ case multiline_comment_cont:
if (!tokens.isEmpty()) {
*indentDepth = column(tokens.at(0).bytesBegin());
return;
}
+ break;
+ case string_open:
+ if (!tokenAt(0).isStringLiteral()) {
+ *paddingDepth = topState.savedPaddingDepth;
+ topState = previousState;
+ previousState = state(2);
+ }
+ break;
}
const int kind = tokenAt(0).kind();