diff options
author | Ivan Donchevskii <ivan.donchevskii@qt.io> | 2019-03-12 11:55:43 +0100 |
---|---|---|
committer | Ivan Donchevskii <ivan.donchevskii@qt.io> | 2019-03-12 12:37:01 +0000 |
commit | 7f0589ef591f6ff08a86ec6bca02248dc40443ef (patch) | |
tree | ef4378bdc77a2408dd6f00d4502c6e9107523363 /src/plugins/clangformat | |
parent | 1e28a66bb52c0920aa790f9f21ff4bb425ee1e1a (diff) |
ClangFormat: Extract switch statement into function
Clarifies the logic and improves readability.
Change-Id: I42668c65d73fb455996fa3a9bc5384f0b204a778
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Diffstat (limited to 'src/plugins/clangformat')
-rw-r--r-- | src/plugins/clangformat/clangformatbaseindenter.cpp | 44 |
1 files changed, 24 insertions, 20 deletions
diff --git a/src/plugins/clangformat/clangformatbaseindenter.cpp b/src/plugins/clangformat/clangformatbaseindenter.cpp index 7c035792c0..dcb5edaeb1 100644 --- a/src/plugins/clangformat/clangformatbaseindenter.cpp +++ b/src/plugins/clangformat/clangformatbaseindenter.cpp @@ -29,11 +29,11 @@ #include <utils/algorithm.h> #include <utils/fileutils.h> -#include <utils/textutils.h> #include <utils/qtcassert.h> +#include <utils/textutils.h> -#include <QTextDocument> #include <QDebug> +#include <QTextDocument> 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); |