SwiftLint是一个Realm Inc 创建和维护的,用于强制检查Swift代码风格和规定的一个工具,基本上以GitHub’s Swift 代码风格指南为基础。git
这里记录我的的使用,详细见官方中文文档。github
/注:Mac/swift
使用Homebrew安装全局配置,打开终端输入如下命令:bash
brew install swiftlint
markdown
SwiftLint安装完成后,须要在工程中设置相关脚本,才能自动检测代码规范。 配置步骤以下图:ide
脚本:函数
if which swiftlint >/dev/null; then swiftlint else echo “warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint” fi 复制代码
配置完成后,项目编译时SwiftLint会进行规范检查,并给出黄色警告或者红色错误提示。工具
支持为项目制定自定义的规则,也支持针对特定文件制定规则。oop
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>
spa
在该文件结束以前或者在定义以下格式的匹配注释以前,这条规则都会被禁用: // swiftlint:enable <rule>