aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/utils/textutils.cpp
diff options
context:
space:
mode:
authorIvan Donchevskii <[email protected]>2019-02-19 14:30:52 +0100
committerIvan Donchevskii <[email protected]>2019-02-20 06:49:47 +0000
commit118c126f984debd3a39ea034179622da4d33fe7a (patch)
treead65963f909984334a5180c24fb3fd241f799668 /src/libs/utils/textutils.cpp
parent064f43fecf99c30666256764f7a9d61162f74f48 (diff)
ClangFormat: Refactor code
Reorder some functions, remove code duplication. Change-Id: I33e118e567dee7db622bbc99e6a7c500db54e5c5 Reviewed-by: Marco Bubke <[email protected]>
Diffstat (limited to 'src/libs/utils/textutils.cpp')
-rw-r--r--src/libs/utils/textutils.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/libs/utils/textutils.cpp b/src/libs/utils/textutils.cpp
index 21fb3caf511..0d8009fef89 100644
--- a/src/libs/utils/textutils.cpp
+++ b/src/libs/utils/textutils.cpp
@@ -165,5 +165,27 @@ int utf8NthLineOffset(const QTextDocument *textDocument, const QByteArray &buffe
return utf8Offset;
}
+LineColumn utf16LineColumn(const QByteArray &utf8Buffer, int utf8Offset)
+{
+ Utils::LineColumn lineColumn;
+ lineColumn.line = static_cast<int>(
+ std::count(utf8Buffer.begin(), utf8Buffer.begin() + utf8Offset, '\n'))
+ + 1;
+ const int startOfLineOffset = utf8Buffer.lastIndexOf('\n', utf8Offset - 1) + 1;
+ lineColumn.column = QString::fromUtf8(
+ utf8Buffer.mid(startOfLineOffset, utf8Offset - startOfLineOffset))
+ .length()
+ + 1;
+ return lineColumn;
+}
+
+QString utf16LineTextInUtf8Buffer(const QByteArray &utf8Buffer, int currentUtf8Offset)
+{
+ const int lineStartUtf8Offset = utf8Buffer.lastIndexOf('\n', currentUtf8Offset - 1) + 1;
+ const int lineEndUtf8Offset = utf8Buffer.indexOf('\n', currentUtf8Offset);
+ return QString::fromUtf8(
+ utf8Buffer.mid(lineStartUtf8Offset, lineEndUtf8Offset - lineStartUtf8Offset));
+}
+
} // Text
} // Utils