in modules/core/src/main/scala/org/scalasteward/core/edit/update/package.scala [32:65]
def findOffRegions(s: String): List[(Int, Int)] = {
var off = false
var start = 0
var end = 0
val buffer = mutable.ListBuffer.empty[(Int, Int)]
s.linesWithSeparators.foreach { line =>
if (off) {
if (line.contains(onMarker)) {
buffer.addOne((start, end + line.indexOf(onMarker)))
off = false
start = end + line.length
end = start
} else {
end = end + line.length
}
} else {
if (line.contains(offMarker)) {
if (regexIgnoreMultiLinesBegins.findPrefixOf(line).isDefined) { // region off
off = true
end = end + line.length
} else { // single line off
buffer.addOne((start, start + line.indexOf(offMarker)))
start = start + line.length
end = start
}
} else {
start = start + line.length
end = start
}
}
}
if (end > start) buffer.addOne((start, end))
buffer.toList
}