private compareLSPServerVersions()

in src/extension/src/lspclient.ts [559:576]


  private compareLSPServerVersions(a: string, b: string): number {
    if (!a && b) return -1
    if (a && !b) return 1
    if (!a && !b) return 0

    // Version format is <base>-<pseudo>.
    // Base is standard semantic version (e.g., 0.1.2).
    // Pseudo version includes timestamp/hash (e.g., 20250515195750-abcdef).
    const [baseA, pseudoA = ''] = a.split('-', 2)
    const [baseB, pseudoB = ''] = b.split('-', 2)

    if (semver.gt(baseA, baseB)) return 1
    if (semver.lt(baseA, baseB)) return -1

    if (pseudoA > pseudoB) return 1
    if (pseudoA < pseudoB) return -1
    return 0
  }