iOS代码规范工具 SwiftLint SwiftFormat

5,154 阅读3分钟

SwiftLint

强制检查 Swift 代码风格和规定的工具,以 Ray Wenderlich's Swift 代码风格指南为基础。

官方文档中文版

安装

Swift支持全局安装和项目安装,全局安装详见官方文档,下面只贴用到的方式。

1、CocoaPods安装

pod 'SwiftLint'

2、添加脚本

"${PODS_ROOT}/SwiftLint/swiftlint"

3、配置 .swiftlint.yml 文件

创建一个命名为 .swiftlint.yml 的配置文件,放在 根目录 即可,执行会递归子文件夹

现有的配置文件里大部分有注解和说明,默认配置详见官方链接,规则明细在这里

4、在代码内控制规则开关

当前文件忽略指定规则,在文件顶部加入注释

// swiftlint:disable xxxx

xxxx 替换规则名,exmple:
// swiftlint:disable file_length

通过注释开关指定规则

// swiftlint:disable function_body_length
func testFunction() {
    // swiftlint:enable function_body_length
}

通过添加参数指定代码行,开关指定规则

  • :previous,前一行
  • :this ,当前行
  • :next ,后一行
// swiftlint:disable:next cyclomatic_complexity
func testFunc() {
    …… ……
}

使用

执行检查

./Pods/SwiftLint/swiftlint lint

自动修复

./Pods/SwiftLint/swiftlint --fix

SwiftFormat

SwfitFormat 是快捷格式化 Swift 代码的工具。

官方文档

可支持格式化规则

安装

官方给出了多种安装和使用的方式,最终决定使用全局安装的方式,考虑如下:

  • SwiftFormat 其实具备 Lint 功能,但是规则覆盖度和知名度上不如 SwiftLint;

所以规则选择使用SwiftLint 限制。

  • 但是 SwiftLint的自动修复不能覆盖所有问题修复(例如单行长度的限制)

Format 正好可以方便的解决这部分问题,所以选择双管齐下

  • Format作为 Lint 的补充和修复工具,所以轻量配置使用一下就行。

全局安装

brew install swiftformat

安装 Xcode 插件

brew install --cask swiftformat-for-xcode
open "/Applications/SwiftFormat For Xcode.app"

打开 SwiftFormat For Xcode.app 后,

会自动安装到 Xcode,重启Xcode生效。

重启后在 Editor 菜单下能看到 SwiftFormat,安装成功。

配置自动格式化

最简单的使用就是通过上图的菜单点击即可,官方文档里还有各种不同的触发方式。

而作为开发者更希望在日常开发中,可以不知不觉地实现格式化。

使用Automator 可以实现这个操作,这是一款系统软件。

中文名是自动操作,搜一下就出来了。

工作流程选没有输入,位于选择Xcode

复制脚本替换

on run {input, parameters}
        tell application "System Events"
                tell process "Xcode"
                        set frontmost to true
                        if menu item "Format File" of menu of menu item "SwiftFormat" of menu "Editor" of menu bar 1 exists then
                                click menu item "Format File" of menu of menu item "SwiftFormat" of menu "Editor" of menu bar 1
                        end if
                        click menu item "Save" of menu "File" of menu bar 1
                end tell
        end tell
        return input
end run

点击build之后代码会高亮,接下来保存下来

回到XcodeServices 菜单下看到刚刚保存填写的名字SwiftFormat

iShot_2022-11-30_16.41.18.png

系统偏好设置 -> 安全性与隐私 -> 辅助功能 ,添加Xcode控制权限

系统设置里面给Xcode添加一个和保存一样的快捷键,这样就可以在每次保存的时候自动触发。

导出 / 导入规则文件

command + S 就可以导出配置文件

导入的时候如果出现找不到可配置的规则,就在配置文件里面搜索关键字,然后删掉