在 Xcode 的 Editor 菜单下,有一个使用 swift-format
格式化的选项,但是这个工具默认并没有包含在 Xcode 的工具链中。
swift-format
同样是开源项目:https://github.com/swiftlang/swift-format
我们可以自己从源码编译:
git clone https://github.com/swiftlang/swift-format.git
cd swift-format
git checkout "tags/601.0.0"
swift build --arch arm64 --arch x86_64 -c release
601.0.0
是当前 tags 中的最新稳定版本号,--arch arm64 --arch x86_64
表示编译 universal 版本。
编译好后就可以把 swift-format
拷贝到系统的路径下,就可以在 Xcode 的菜单中使用了。
$ sudo mv .build/apple/Products/Release/swift-format /usr/local/bin
Xcode 16
Xcode 16 开始,swift-format
已经内置在工具链里面了:
$ xcrun --find swift-format
虽然 swift-format
内置在工具链中,但是从 Xcode 菜单中调用swift-format
进行格式化仍然不会有效果,
因为 Xcode 只会从 $PATH
中寻找 swift-format
,要解决这个问题我们可以手动创建一个同名的 shell 脚本,
然后把参数转发到工具链中的 swift-format
:
新建一个 shell 脚本:
$ sudo vi /usr/local/bin/swift-format
内容很简单,就是转发命令参数:
#!/usr/bin/env zsh
$(xcrun --find swift-format) "$@"
最后别忘了加上可执行权限:
$ sudo chmod +x /usr/local/bin/swift-format
现在通过 Xcode 菜单可以正常格式化 Swift 源文件了。