diff --git a/src/plugins/clangformat/clangformatbaseindenter.cpp b/src/plugins/clangformat/clangformatbaseindenter.cpp index 7c035792c0b..dcb5edaeb13 100644 --- a/src/plugins/clangformat/clangformatbaseindenter.cpp +++ b/src/plugins/clangformat/clangformatbaseindenter.cpp @@ -29,11 +29,11 @@ #include #include -#include #include +#include -#include #include +#include namespace ClangFormat { @@ -179,6 +179,27 @@ bool nextBlockExistsAndEmpty(const QTextBlock ¤tBlock) return nextBlock.text().trimmed().isEmpty(); } +QByteArray dummyTextForContext(CharacterContext context, bool closingBraceBlock) +{ + if (closingBraceBlock + && (context == CharacterContext::NewStatement + || context == CharacterContext::Continuation)) { + return QByteArray(); + } + + switch (context) { + case CharacterContext::Unknown: + QTC_ASSERT(false, return "";); + case CharacterContext::AfterComma: + return "a,"; + case CharacterContext::NewStatement: + return "a;"; + case CharacterContext::Continuation: + case CharacterContext::LastAfterComma: + return "& a &"; + } +} + // Add extra text in case of the empty line or the line starting with ')'. // Track such extra pieces of text in isInsideModifiedLine(). int forceIndentWithExtraText(QByteArray &buffer, @@ -220,24 +241,7 @@ int forceIndentWithExtraText(QByteArray &buffer, charContext = characterContext(block, lastBlock); } - switch (charContext) { - case CharacterContext::Unknown: - QTC_ASSERT(false, return 0;); - case CharacterContext::AfterComma: - dummyText = "a,"; - break; - case CharacterContext::NewStatement: - if (!closingBraceBlock) - dummyText = "a;"; - break; - case CharacterContext::Continuation: - if (closingBraceBlock) - break; - Q_FALLTHROUGH(); - case CharacterContext::LastAfterComma: - dummyText = "& a &"; - break; - } + dummyText = dummyTextForContext(charContext, closingBraceBlock); } buffer.insert(utf8Offset, dummyText);