aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/clangformat
diff options
context:
space:
mode:
authorIvan Donchevskii <ivan.donchevskii@qt.io>2019-03-12 11:55:43 +0100
committerIvan Donchevskii <ivan.donchevskii@qt.io>2019-03-12 12:37:01 +0000
commit7f0589ef591f6ff08a86ec6bca02248dc40443ef (patch)
treeef4378bdc77a2408dd6f00d4502c6e9107523363 /src/plugins/clangformat
parent1e28a66bb52c0920aa790f9f21ff4bb425ee1e1a (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.cpp44
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 &currentBlock)
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);