def findOffRegions()

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
  }