SwiftLint是一个Realm Inc 创建和维护的,用于强制检查Swift代码风格和规定的一个工具,基本上以GitHub’s Swift 代码风格指南为基础。git
这里记录我的的使用,详细见官方中文文档。github
/注:Mac/swift
使用Homebrew安装全局配置,打开终端输入如下命令:bash
brew install swiftlint
ide
SwiftLint安装完成后,须要在工程中设置相关脚本,才能自动检测代码规范。 配置步骤以下图:函数
脚本:工具
if which swiftlint >/dev/null; then
swiftlint
else
echo “warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint”
fi
复制代码
配置完成后,项目编译时SwiftLint会进行规范检查,并给出黄色警告或者红色错误提示。ui
支持为项目制定自定义的规则,也支持针对特定文件制定规则。spa
touch .swiftlint.yml
open .swiftlint.yml
excluded: # 执行 linting 时忽略的路径。 优先级比 `included` 更高。
- Pods # 忽略经过CocoaPods倒入的第三方库
#- Source/ExcludedFolder # 指定精确路径下的目录
#- Source/ExcludedFile.swift # 指定精确路径下的文件
disabled_rules: # 执行时排除掉的规则
- identifier_name # 命名规则必须按照驼峰原则,与后台传的Json字段命名冲突,建议排除掉
- trailing_whitespace # 每个空行不能有空格,会与Xcode换行后自动对齐生成的空格冲突,建议排除掉
force_cast: warning # 类型判断
force_try: warning # try语句判断
cyclomatic_complexity: 20 #代码复杂度,默认为10
line_length: # 单行代码长度,默认error 120
warning: 120
error: 200
file_length: # 文件长度
warning: 500
error: 1200
function_body_length: # 函数体长度
warning: 100
error: 300
复制代码
能够经过在一个源文件中定义一个以下格式的注释来关闭某个规则: // swiftlint:disable <rule>
代码规范
在该文件结束以前或者在定义以下格式的匹配注释以前,这条规则都会被禁用: // swiftlint:enable <rule>