Loading…

关于 在线 Swift 格式化工具

编写能够**编译**的 Swift 代码很容易。编写**美观、一致且适合审查**的 Swift 代码则更难。这款在线 Swift 格式化工具使用 SwiftFormat 风格的规则来规范化缩进、间距和换行,让您的 `.swift` 文件在 Xcode、Swift Playgrounds 和 CI 流水线中保持整洁。

Swift 格式化工具的主要特性

  • **一键清理** Swift 代码中的缩进、间距和大括号
  • **可配置的缩进大小**,通过*缩进大小*滑块调整(1–8 个空格)
  • **换行/行长度**控制,将长表达式保持在您偏好的列宽内
  • 支持标准的 `.swift` 源文件和粘贴的代码片段
  • 适用于 **iOS、macOS、watchOS、tvOS 和服务器端 Swift** 项目
  • 幕后使用 SwiftFormat 风格引擎,输出地道的 Swift 代码
  • 幂等格式化 – 多次运行保持相同输出
  • 无需账户 – 只需粘贴、格式化并复制清理后的结果

🛠️ 如何使用 Swift 格式化工具 for swift-formatter

1

1. 粘贴或上传 Swift 代码

📥 直接将 Swift 代码粘贴到编辑器中,或拖放 `.swift` 文件。该工具针对典型的 Xcode 风格 Swift 源码进行了优化。

2

2. 设置缩进和行长度

📏 使用**缩进大小**滑块选择每个缩进级别应使用的空格数,并配置**换行/行长度**以控制长行的换行位置(或设置为 `0` 以禁用基于换行的格式化)。

3

3. 点击“格式化”

⚡ 按下**格式化**按钮以应用 SwiftFormat 风格规则。格式化器会根据您的设置规范化缩进、`:` 和运算符周围的空格,并换行长行。

4

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,保持主分支整洁。

使用此在线工具进行快速一次性清理,然后在您的仓库中使用SwiftFormat和共享的`.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格式化工具实际会改变什么?

格式化工具会调整**缩进、空格和换行**以遵循Swift风格约定。它不会有意改变代码的逻辑——只改变其布局方式。

📏我应该为换行/行长度选择什么值?

常见选择范围从**80到100个字符**,取决于您的团队和显示宽度。对于窄布局(如分屏Xcode)使用较小值,如果团队适应较宽行则使用较大值。如果不想基于行长换行,请将其设置为`0`。

🧹这是SwiftLint的替代品吗?

不是。格式化工具专注于**布局和样式**(缩进、换行、间距),而SwiftLint专注于**代码检查规则和潜在问题**(未使用代码、命名、复杂度)。许多团队同时使用两者。

🔒将生产Swift代码粘贴到这里安全吗?

作为一般规则,避免将高度敏感的代码(如专有算法或机密)粘贴到任何在线工具中。对于机密项目,建议在本地或CI系统中使用私有配置运行SwiftFormat。

我可以在每次提交时自动运行此格式化工具吗?

可以——在您的仓库中使用**SwiftFormat**(例如通过Git预提交钩子、Xcode构建阶段或CI作业)来自动强制执行相同样式。此在线工具适用于快速检查和小片段。

Pro Tips

Best Practice

与团队商定统一的**缩进大小**和**换行/行长度**,然后在此工具和您的`.swiftformat`配置中同步这些值。

Best Practice

在拉取请求时运行格式化器,使代码审查专注于逻辑和架构而非间距争议。

Best Practice

对生成的 Swift 代码(如来自代码生成工具)使用格式化器,使其看起来与手写代码一样整洁。

Best Practice

将此格式化器与 Xcode 的“重新缩进”结合仅用于快速本地调整;在 CI 中使用 SwiftFormat 以保持真正一致的风格。

Additional Resources

Other Tools