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
之后代码会高亮,接下来保存下来
回到Xcode
,Services
菜单下看到刚刚保存填写的名字SwiftFormat
系统偏好设置 -> 安全性与隐私 -> 辅助功能
,添加Xcode
控制权限
系统设置里面给Xcode
添加一个和保存一样的快捷键,这样就可以在每次保存的时候自动触发。
导出 / 导入规则文件
command + S
就可以导出配置文件
导入的时候如果出现找不到可配置的规则,就在配置文件里面搜索关键字,然后删掉