跳到主要内容
本页目录

代码补全

Swift、SwiftUI、Objective-C 的补全、跳转定义和实时报错,第三方库补全,补全不对时怎么办。

打开 iOS 项目后,Swift、SwiftUI、Objective-C、C、C++ 都有代码补全、跳转定义、悬停文档、查找引用和实时报错,结果按项目的真实设置计算,和在 Xcode 里写代码时一样准确。

第一次打开工程

第一次打开时,插件会在项目根目录放一个 buildServer.json,代码补全要靠它,可以加进 .gitignore。用过 xcode-build-server 等工具、目录里已经有这个文件的,插件不会覆盖它;想改用快蝎的补全,删掉它再重新加载窗口。

Swift Package、CocoaPods 等第三方库要构建过才有补全。项目还没构建过时,插件会在后台自动构建一次,通常几秒后补全就出来了;你自己点构建时,后台构建会立即让路。不想要后台构建,关掉设置 kxapp.build.prepareForCodeCompletion。

切换 Scheme 与运行目标

补全按当前选中的 Scheme、构建配置和运行设备计算,切换后自动更新。构建前报的「No such module」,构建完成后会自动消失。

补全不对时

命令什么时候用
kxapp: 重启代码提示补全卡住、诊断明显过期
kxapp: 重建项目索引跳转或查找引用找不到明明存在的符号

VS Code 默认把 .h 文件当成 C++,补全不受影响,但 Objective-C 语法高亮不对。在设置里加上:

"files.associations": { "*.h": "objective-c" }

相关设置

设置说明
kxapp.swiftSourcekitLspSupportedLanguages由 SourceKit-LSP 处理的语言。想让 clangd 等其它扩展负责 C / C++,就把它们从列表里删掉
kxapp.swiftSourcekitLspBackgroundIndexing后台索引:auto / on / off
kxapp.swiftPath换用别的 Swift 工具链;留空用 xcode-select 选中的 Xcode
kxapp.swiftSourcekitLspDisable完全关掉代码补全

全部设置见设置参考。

接下来