
文章目录SwiftFormatSwift 项目的代码格式化利器不只是调整空格装法多到离谱配置灵活实际体验值不值得用SwiftFormatSwift 项目的代码格式化利器做 Swift 开发的人大概都有过这种经历团队里每个人写的代码风格都不一样有人缩进用 4 空格有人用 Tab有人喜欢把self写出来有人从来不写。Code Review 的时候格式问题占了一半的讨论时间。SwiftFormat 就是专门解决这个问题的。它是 Nick Lockwood 开发的 Swift 代码格式化工具拿到 GitHub 上已经积累了 8800 多颗 Star基本成了 Swift 项目的标配工具之一。不只是调整空格很多人以为代码格式化工具就是统一缩进和换行SwiftFormat 远不止这些。它内置了 50 多条规则能做的事情包括自动插入或移除隐式的self关键字去掉多余的括号统一尾随闭包的写法修正各种偏离 Swift 惯用写法的代码简单说它不光管排版还管写法。跑一遍 SwiftFormat代码看起来就像是同一个人写的。装法多到离谱SwiftFormat 的一个特点是接入方式极其灵活。不管你的工作流是什么样的总能找到合适的集成方式命令行brew install swiftformat装完终端里跑swiftformat .就能格式化当前目录下所有 Swift 文件。Xcode 插件装一个 SwiftFormat for Xcode 应用重启 Xcode 后 Editor 菜单里就会多出 SwiftFormat 选项一键格式化当前文件。Xcode Build Phase在项目的 Build Phases 里加一段 Run Script每次编译自动格式化。适合强制统一团队代码风格。SwiftPM 插件如果你的项目用 Swift Package Manager可以直接把 SwiftFormat 加为依赖然后通过swift package plugin swiftformat调用。编辑器集成VSCode 通过 Run on Save 扩展可以实现保存时自动格式化Sublime Text 和 Nova 也有对应的插件。Git Hook配合 git-format-staged可以在git commit时自动格式化暂存区的代码。Docker官方提供了 Docker 镜像docker run一行命令搞定适合 CI 环境。配置灵活SwiftFormat 的配置分为规则和选项两部分。你可以在项目根目录放一个.swiftformat文件写上团队约定的格式参数--allman true --indent tab --disable elseOnSameLine,semicolons子目录里也可以放.swiftformat覆盖上层的配置。不同目录用不同的格式规则对大型项目很实用。如果不想手动配置--infer-options参数能扫描现有代码自动推断出一套匹配当前风格的参数。还能在代码里用注释指令临时启用或禁用某条规则// swiftformat:disable:next redundantSelfletfoobar实际体验SwiftFormat 支持 macOS、Linux 和 Windows 三个平台。用 Homebrew 或 Mint 装都是一行命令的事。GitHub Actions 的 macOS Runner 上已经预装了 SwiftFormatCI 配置也省了。项目用 MIT 协议开源代码量不小但结构清晰。规则列表在 Rules.md 里有完整文档每条规则都能通过--rule-info查看详细说明。有一点需要注意SwiftFormat 会直接覆盖源文件。建议在 Git 管理的项目里用格式化后检查一下 diff确认没问题再提交。值不值得用如果你是一个人的小项目代码风格全靠自觉用不用都行。但只要团队超过两个人或者项目要长期维护SwiftFormat 基本是必需品。它把代码风格从口头约定变成了自动执行省下来的 Review 时间可以聊点更有价值的事。MIT 协议免费用直接上手。是必需品。它把代码风格从口头约定变成了自动执行省下来的 Review 时间可以聊点更有价值的事。MIT 协议免费用直接上手。