in Sources/TwitterTextEditor/EditingContent.swift [54:73]
func update(with request: UpdateRequest) throws -> EditingContent {
let updatedText: String
let updatedSelectedRange: NSRange
if let replacingText = request.replacingText {
let textRange = text.range
let replacingRange = request.replacingRange ?? textRange
guard textRange.contains(replacingRange) else {
throw UpdateError.outOfReplacingRange(validRange: textRange)
}
updatedText = text.replacingCharacters(in: replacingRange, with: replacingText)
updatedSelectedRange = request.selectedRange ?? selectedRange.movedByReplacing(range: replacingRange, length: replacingText.length)
} else {
updatedText = text
updatedSelectedRange = request.selectedRange ?? selectedRange
}
return try EditingContent(text: updatedText, selectedRange: updatedSelectedRange)
}