summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppcodeformatter.cpp
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2020-08-13 17:58:40 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2020-08-20 08:10:22 +0000
commitddf7f5f232d70c8598654fdad08af3064f95903f (patch)
treef3267c7d5d2c34636fdb088cd93bfe75809bb1b9 /src/plugins/cpptools/cppcodeformatter.cpp
parentd6c3846ab1c26ba6a1e6aea7df6e2119d50e9d4b (diff)
downloadqt-creator-ddf7f5f232d70c8598654fdad08af3064f95903f.tar.gz
CppTools: Do not indent within string literals
Multi-line strings must be kept as the user wrote them. Fixes: QTCREATORBUG-20180 Change-Id: I141eff52b55d31215e6f5c6c5a0e026689db877a Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src/plugins/cpptools/cppcodeformatter.cpp')
-rw-r--r--src/plugins/cpptools/cppcodeformatter.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/plugins/cpptools/cppcodeformatter.cpp b/src/plugins/cpptools/cppcodeformatter.cpp
index dc81915227..c8ba07fbe0 100644
--- a/src/plugins/cpptools/cppcodeformatter.cpp
+++ b/src/plugins/cpptools/cppcodeformatter.cpp
@@ -635,7 +635,6 @@ void CodeFormatter::updateStateUntil(const QTextBlock &endBlock)
break;
if (loadLexerState(it) == -1)
break;
-
previousState = blockData.m_endState;
}
@@ -673,6 +672,16 @@ void CodeFormatter::updateLineStateChange(const QTextBlock &block)
saveBlockData(&next, BlockData());
}
+bool CodeFormatter::isInStringLiteral(const QTextBlock &block) const
+{
+ if (!block.previous().isValid())
+ return false;
+ BlockData blockData;
+ if (!loadBlockData(block.previous(), &blockData))
+ return false;
+ return !blockData.m_endState.isEmpty() && blockData.m_endState.top().type == string_open;
+}
+
CodeFormatter::State CodeFormatter::state(int belowTop) const
{
if (belowTop < m_currentState.size())