diff options
author | David Schulz <[email protected]> | 2019-11-18 10:38:35 +0100 |
---|---|---|
committer | David Schulz <[email protected]> | 2020-01-22 06:00:11 +0000 |
commit | 4070d6a289ef27bb1629024782c71c7cbcd68db9 (patch) | |
tree | dad0b3c49f18a90d9b4c71f1650f5e18feca7206 /src/libs/utils/textutils.cpp | |
parent | cadb00cdf3bdcf7bc6744c72b90db1e56650f903 (diff) |
Editor: add formatter support
Change-Id: I65590273b2541e08a39970cd9bb4739a5634b2f7
Reviewed-by: Christian Stenger <[email protected]>
Diffstat (limited to 'src/libs/utils/textutils.cpp')
-rw-r--r-- | src/libs/utils/textutils.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/libs/utils/textutils.cpp b/src/libs/utils/textutils.cpp index ad6aa2242a2..bc818677686 100644 --- a/src/libs/utils/textutils.cpp +++ b/src/libs/utils/textutils.cpp @@ -215,5 +215,25 @@ bool utf8AdvanceCodePoint(const char *¤t) return true; } +void applyReplacements(QTextDocument *doc, const Replacements &replacements) +{ + if (replacements.empty()) + return; + + int fullOffsetShift = 0; + QTextCursor editCursor(doc); + editCursor.beginEditBlock(); + for (const Utils::Text::Replacement &replacement : replacements) { + editCursor.setPosition(replacement.offset + fullOffsetShift); + editCursor.movePosition(QTextCursor::NextCharacter, + QTextCursor::KeepAnchor, + replacement.length); + editCursor.removeSelectedText(); + editCursor.insertText(replacement.text); + fullOffsetShift += replacement.text.length() - replacement.length; + } + editCursor.endEditBlock(); +} + } // Text } // Utils |