public static int compare()

in ideaSupport/src/main/scala/org/jetbrains/sbtidea/download/VersionComparatorUtil.java [116:154]


  public static int compare(String ver1, String ver2, Function<? super String, Integer> tokenPriorityProvider) {
    // todo duplicates com.intellij.openapi.util.text.StringUtil.compareVersionNumbers()
    // todo please refactor next time you make changes here
    if (ver1 == null) {
      return (ver2 == null) ? 0 : -1;
    } else if (ver2 == null) {
      return 1;
    }

    ver1 = ver1.toLowerCase(Locale.ENGLISH);
    ver2 = ver2.toLowerCase(Locale.ENGLISH);

    final List<String> s1 = splitVersionString(ver1);
    final List<String> s2 = splitVersionString(ver2);

    padWithNulls(s1, s2);

    int res;
    for (int i = 0; i < s1.size(); i++) {
      final String e1 = s1.get(i);
      final String e2 = s2.get(i);
      final VersionTokenType t1 = VersionTokenType.lookup(e1);

      res = comparePriorities(e1, e2, tokenPriorityProvider);
      if (res != 0) {
        return res;
      } else if (t1 == VersionTokenType._WORD) {
        res = e1.compareTo(e2);
      } else if (t1 == VersionTokenType._DIGITS) {
        res = compareNumbers(e1, e2);
      }

      if (res != 0) {
        return res;
      }
    }

    return 0;
  }