代码补全
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 | 完全关掉代码补全 |
全部设置见设置参考。