SwiftLint使用

4,352 阅读2分钟

SwiftLint是一个Realm Inc 建立和维护的,用于强制检查Swift代码风格和规定的一个工具,基本上以GitHub’s Swift 代码风格指南为基础。

这里记录个人的使用,详细见官方中文文档

/注:Mac/

一、安装SwiftLint

使用Homebrew安装全局配置,打开终端输入以下命令:

brew install swiftlint

二、在项目中使用

SwiftLint安装完成后,需要在工程中设置相关脚本,才能自动检测代码规范。 配置步骤如下图:

lk0TTf.png

脚本:

if which swiftlint >/dev/null; then
  swiftlint
else
  echo “warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint”
fi

配置完成后,项目编译时SwiftLint会进行规范检查,并给出黄色警告或者红色错误提示。

三、自定义配置

支持为项目制定自定义的规则,也支持针对特定文件制定规则。

1、为项目创建配置文件

  • 终端中进入到项目目录
  • 新建规则文件: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

  • 保存

2、针对某个文件、函数应用规则

可以通过在一个源文件中定义一个如下格式的注释来关闭某个规则: // swiftlint:disable <rule>

在该文件结束之前或者在定义如下格式的匹配注释之前,这条规则都会被禁用: // swiftlint:enable <rule>