override fun compare()

in intellij-plugin-structure/structure-base/src/main/kotlin/com/jetbrains/plugin/structure/base/utils/CharSequenceComparator.kt [11:33]


  override fun compare(cs1: CharSequence, cs2: CharSequence): Int {
    if (cs1 === cs2) return 0

    if (cs1 is CharBuffer && cs2 is CharBuffer) {
      return cs1.compareTo(cs2)
    }

    if (cs1 is String && cs2 is String) {
      return cs1.compareTo(cs2)
    }

    val len1 = cs1.length
    val len2 = cs2.length
    val shorterLen = min(len1, len2)

    for (i in 0 until shorterLen) {
      val comparison = cs1[i].compareTo(cs2[i])
      if (comparison != 0) {
        return comparison
      }
    }
    return len1 - len2
  }