28 lines · 1.1 KB · Swift
RawDownload
import CodexBarCoreimport Foundation @MainActorextension StatusItemController {    func runJetBrainsLoginFlow() async {        self.loginPhase = .idle        let detectedIDEs = JetBrainsIDEDetector.detectInstalledIDEs(includeMissingQuota: true)        if detectedIDEs.isEmpty {            let message = [                "Install a JetBrains IDE with AI Assistant enabled, then refresh CodexBar.",                "Alternatively, set a custom path in Settings.",            ].joined(separator: " ")            self.presentLoginAlert(                title: "No JetBrains IDE detected",                message: message)        } else {            let ideNames = detectedIDEs.prefix(3).map(\.displayName).joined(separator: ", ")            let hasQuotaFile = !JetBrainsIDEDetector.detectInstalledIDEs().isEmpty            let message = hasQuotaFile                ? String(format: L("jetbrains_detected_select"), ideNames)                : String(format: L("jetbrains_detected_generate"), ideNames)            self.presentLoginAlert(                title: L("JetBrains AI is ready"),                message: message)        }    }}