diff options
author | Ivan Donchevskii <[email protected]> | 2019-02-19 14:30:52 +0100 |
---|---|---|
committer | Ivan Donchevskii <[email protected]> | 2019-02-20 06:49:47 +0000 |
commit | 118c126f984debd3a39ea034179622da4d33fe7a (patch) | |
tree | ad65963f909984334a5180c24fb3fd241f799668 /src/libs/utils/textutils.cpp | |
parent | 064f43fecf99c30666256764f7a9d61162f74f48 (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.cpp | 22 |
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 |