Atul Gupta
AnnotatedString
%PLACEHOLDER%
Mark
fun CharSequence.replaceAnnotated( regex: Regex, transform: (MatchResult) -> AnnotatedString?, ): AnnotatedString { val input = this var offset = 0 return buildAnnotatedString { regex.findAll(input).forEach { mr -> val replacement = transform(mr) ?: return@forEach val first = mr.range.first if (first > offset) { append(input.subSequence(offset, first)) } append(replacement) offset = mr.range.last + 1 } if (offset < input.length) { append(input.subSequence(offset, input.length)) } } }
A modern programming language that makes developers happier.