fun from()

in src/main/kotlin/com/compiler/server/model/TextInterval.kt [11:27]


    fun from(start: Int, end: Int, currentDocument: Document): TextInterval {
      val lineNumberForElementStart = currentDocument.getLineNumber(start)
      val lineNumberForElementEnd = currentDocument.getLineNumber(end)
      var charNumberForElementStart = start - currentDocument.getLineStartOffset(lineNumberForElementStart)
      var charNumberForElementEnd = end - currentDocument.getLineStartOffset(lineNumberForElementStart)
      if ((start == end) && (lineNumberForElementStart == lineNumberForElementEnd)) {
        charNumberForElementStart--
        if (charNumberForElementStart < 0) {
          charNumberForElementStart++
          charNumberForElementEnd++
        }
      }
      return TextInterval(
        TextPosition(lineNumberForElementStart, charNumberForElementStart),
        TextPosition(lineNumberForElementEnd, charNumberForElementEnd)
      )
    }