Swift 格式化工具的主要特性
- **一键清理** Swift 代码中的缩进、间距和大括号
- **可配置的缩进大小**,通过*缩进大小*滑块调整(1–8 个空格)
- **换行/行长度**控制,将长表达式保持在您偏好的列宽内
- 支持标准的 `.swift` 源文件和粘贴的代码片段
- 适用于 **iOS、macOS、watchOS、tvOS 和服务器端 Swift** 项目
- 幕后使用 SwiftFormat 风格引擎,输出地道的 Swift 代码
- 幂等格式化 – 多次运行保持相同输出
- 无需账户 – 只需粘贴、格式化并复制清理后的结果
🛠️ 如何使用 Swift 格式化工具 for swift-formatter
1. 粘贴或上传 Swift 代码
📥 直接将 Swift 代码粘贴到编辑器中,或拖放 `.swift` 文件。该工具针对典型的 Xcode 风格 Swift 源码进行了优化。
2. 设置缩进和行长度
📏 使用**缩进大小**滑块选择每个缩进级别应使用的空格数,并配置**换行/行长度**以控制长行的换行位置(或设置为 `0` 以禁用基于换行的格式化)。
3. 点击“格式化”
⚡ 按下**格式化**按钮以应用 SwiftFormat 风格规则。格式化器会根据您的设置规范化缩进、`:` 和运算符周围的空格,并换行长行。
4. 审查并复制结果
🔍 比较原始版本和格式化版本。当您对结果满意时,将格式化后的 Swift 代码复制回 Xcode、Swift Playground 或您的 Git 提交中。
技术规格
格式化引擎与风格
该工具遵循常见的 SwiftFormat 约定,以保持代码库在文件和贡献者之间的一致性。
| 方面 | 行为 | 备注 |
|---|---|---|
| 语言 | Swift | 最适合 Swift 5+ 源文件。 |
| 缩进 | 每级可配置空格数 | 由**缩进大小**选项控制(1–8)。 |
| 行换行 | 可选换行列 | 由**换行/行长度**控制(0–120;`0` = 不换行)。 |
| 空白 | 规范化 `:` 和运算符周围的空格 | 提高代码审查的可读性和一致性。 |
| 幂等输出 | 相同输入 → 相同输出 | 可安全多次运行,不会导致格式化漂移。 |
支持的输入与限制
专注于 Apple 平台和服务器端 Swift 项目中使用的实际 Swift 源文件。
| 参数 | 值/行为 | 备注 |
|---|---|---|
| 文件扩展名 | .swift | 标准Swift源文件。 |
| MIME类型 | text/x-swift | 内部用于编辑器和拖放区检测。 |
| 最大输入大小 | ≈ 2 MB 源代码 | 非常大的文件最好通过本地SwiftFormat在CI中格式化。 |
| 输出扩展名 | .swift | 格式化内容最好保存为Swift源文件。 |
验证与错误
格式化程序期望语法有效的Swift代码。如果输入不完整或包含重大语法错误,可能会失败或返回错误信息而非格式化输出。
使用SwiftFormat的命令行替代方案
想在Xcode、CI或预提交钩子中使用相同样式吗?直接使用SwiftFormat:
macOS (Homebrew)
通过Homebrew安装SwiftFormat
brew install swiftformat将`swiftformat` CLI添加到您的系统中。
格式化单个Swift文件
swiftformat MyViewController.swift使用默认SwiftFormat规则重写文件。
格式化整个Xcode项目
swiftformat .递归格式化当前目录中的所有`.swift`文件。
项目级配置
使用自定义配置
swiftformat . --config .swiftformat应用存储在`.swiftformat`配置文件中的团队特定规则。
与Git预提交集成
swiftformat . && git commit每次提交前运行SwiftFormat,保持主分支整洁。
Swift格式化程序的实用用例
iOS与macOS应用开发
保持UIKit、SwiftUI和Combine密集型代码在功能分支间的可读性和一致性。
- 在代码审查前标准化视图控制器、视图模型和服务的格式化。
- 在将草稿或原型Swift代码复制到生产目标前进行清理。
- 对齐复杂SwiftUI视图层次结构的缩进和换行。
struct ContentView: View {
var body: some View {
VStack {
Text("Hello")
Button("Tap me") {
print("Tapped")
}
}
}
}
服务器端Swift(Vapor、Hummingbird等)
使API处理程序和路由代码更易于扫描和审查。
- 重新格式化路由和中间件声明,使复杂链易于跟踪。
- 清理具有长属性列表的JSON编码/解码结构体。
- 确保Swift代码中长SQL或HTTP客户端调用的换行一致性。
app.get("hello") { req async throws -> String in
"Hello, world!"
}
Swift教学与学习
向学生展示地道的Swift代码样式,并减少练习中的“风格噪音”。
- 在幻灯片或文档中分享示例前规范化Swift代码。
- 清理学生提交的代码,专注于逻辑而非间距和缩进。
- 演示良好格式化如何在不改变行为的情况下提高可读性。
func fibonacci(_ n: Int) -> Int {
if n < 2 { return n }
return fibonacci(n - 1) + fibonacci(n - 2)
}
❓ Frequently Asked Questions
❓这个Swift格式化工具实际会改变什么?
📏我应该为换行/行长度选择什么值?
🧹这是SwiftLint的替代品吗?
🔒将生产Swift代码粘贴到这里安全吗?
⚡我可以在每次提交时自动运行此格式化工具吗?
Pro Tips
与团队商定统一的**缩进大小**和**换行/行长度**,然后在此工具和您的`.swiftformat`配置中同步这些值。
在拉取请求时运行格式化器,使代码审查专注于逻辑和架构而非间距争议。
对生成的 Swift 代码(如来自代码生成工具)使用格式化器,使其看起来与手写代码一样整洁。
将此格式化器与 Xcode 的“重新缩进”结合仅用于快速本地调整;在 CI 中使用 SwiftFormat 以保持真正一致的风格。
Additional Resources
Other Tools
- CSS 美化器
- HTML 美化器
- JavaScript 美化器
- PHP 美化器
- 颜色选择器
- 精灵图提取器
- Base64 解码器
- Base64 编码器
- C# 格式化器
- CSV 格式化器
- Dockerfile Formatter
- Elm 格式化器
- ENV 格式化器
- Go 格式化器
- GraphQL 格式化器
- HCL 格式化器
- INI 格式化器
- JSON 格式化器
- LaTeX 格式化器
- Markdown 格式化器
- Objective-C 格式化器
- Php Formatter
- Proto 格式化器
- Python 格式化器
- Ruby 格式化器
- Rust 格式化器
- Scala 格式化器
- Shell 脚本格式化器
- SQL 格式化器
- SVG 格式化工具
- TOML 格式化工具
- Typescript Formatter
- XML 格式化工具
- YAML 格式化工具
- Yarn 格式化工具
- CSS 压缩器
- Html Minifier
- Javascript Minifier
- JSON 压缩器
- XML 压缩器
- HTTP 头部查看器
- PDF 转文本
- 正则表达式测试器
- 搜索引擎排名检查器
- Whois 查询