Hey, it’s worth separating two things here: what Cursor does, and what extensions do.
Cursor ships only with TextMate grammars for Swift and Objective-C, so syntax highlighting and brackets. All LSP features like go-to-definition, find-references, and completion come from Marketplace extensions, and for a mixed Swift and ObjC project you need to set them up correctly.
Swift extension sswg.swift-lang wraps SourceKit-LSP. You need a Swift toolchain installed, on macOS that means the full Xcode, not just Command Line Tools. Check:
xcrun --find sourcekit-lsp returns a path
The extension Output panel shows no errors when you open a .swift file
Main caveat: cross-language navigation Swift to Objective-C and back, via bridging headers, @objc APIs, and so on is poorly supported by both LSPs on their own. That’s a limitation of the language servers, not Cursor. In Xcode this is handled by a unified index, which SourceKit-LSP and clangd don’t have.
In practice, for a mixed codebase a good workflow is to edit and use AI features in Cursor, but build and do cross-language navigation in Xcode. Also worth checking Xcode | Cursor Docs, there’s a native plugin for integration.