aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/utils/textutils.cpp
diff options
context:
space:
mode:
authorDavid Schulz <[email protected]>2019-11-18 10:38:35 +0100
committerDavid Schulz <[email protected]>2020-01-22 06:00:11 +0000
commit4070d6a289ef27bb1629024782c71c7cbcd68db9 (patch)
treedad0b3c49f18a90d9b4c71f1650f5e18feca7206 /src/libs/utils/textutils.cpp
parentcadb00cdf3bdcf7bc6744c72b90db1e56650f903 (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.cpp20
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 *&current)
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