func update()

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)
    }