SwiftLint —实现代码库一致和样式约定的方法
SwiftLint是用于实施Swift样式和约定的开源工具。 它是由Realm开发的。
您可以设置不同的编码样式规则,并在新项目和现有项目的开发过程中强制使用它们。
SwiftLint具有命令行工具,Xcode插件,AppCode和Atom集成。 因此,它始终适合您的开发环境。 如果您违反棉绒规则,它将向您显示警告和/或错误。
步骤1.安装工具
将快速线添加到Pod文件并执行Pod安装。
吊舱“ SwiftLint”
步骤2.在构建中运行脚本
“ $ {PODS_ROOT} / SwiftLint / swiftlint”
现在,无论何时构建目标,Swiftlint都会自动运行。
如果使用现有项目运行,则可能会有警告/错误。 这是因为使用了默认规则。
步骤3.自定义规则
您可以找到所有规则。 默认情况下,启用约70%。
您可以使用项目根文件夹中的.swiftlint.yml文件来自定义规则。
让我们看一下如何创建.swiftlint.yml文件以及配置文件如何工作:
#您可以禁用默认情况下已启用的规则
disabled_rules:
-标识符名
-force_cast
#同样,您可以启用默认情况下已禁用的规则
opt_in_rules:
-first_where
#排除您不想掉线的目录
排除:
-豆荚
- 快车道
#使用“ xcode”,以便在构建时,结果将显示在Xcode中
记者:“ xcode” #其他记者:json,csv,checkstyle,junit,html,表情符号
#默认情况下,“ function_body_length”规则在40时触发警告,在100时触发错误
#这个例子增加了3倍
function_body_length:
警告:120
错误:300
为您的项目创建.Swiftlint.yml
1 —打开终端:
CD ...到您的项目路径
2-创建文件:
触摸.swiftlint.yml
3 —打开文件:
vi .swiftlint.yml
启用/禁用规则…
有时,您想深入研究每个规则的代码以了解其工作原理。 您还可以创建自定义规则。
步骤4.是…。 与Fastlane集成
在Xcode中进行构建时,您已经可以看到警告。
与Fastlane集成的另一个目的是生成HTML报告。 那很棒 !
#在Fastfile中添加通道
desc“运行皮棉”
泳道:lint do
swiftlint(
模式::lint,
可执行文件:“ Pods / SwiftLint / swiftlint”,
记者:“ html”,
output_file:“ swiftlint-results.html”,
ignore_exit_status: 是
)
结束
您可以在终端中手动运行fastlane lint,然后打开swiftlint-results.html查看所有违规行为。
步骤5.自动更正
好吧……斯威夫林特有魔力。
对于某些规则,该工具可以自动修复您的代码! 如果规则支持自动更正,您将很幸运。
#添加另一个运行自动更正模式的车道
desc“运行皮棉自动更正”
车道:lint_autocorrect 做
swiftlint(
模式::autocorrect,
可执行文件:“ Pods / SwiftLint / swiftlint”,
config_file:“。swiftlint-autocorrect.yml”
)
恩
请注意,我们使用其他配置文件.swiftlint-autocorrect.yml。 在此文件中,我们使用另一种方法来指定规则-白名单。
运行fastlane lint_autocorrect并根据您的配置观察魔术发生的情况。
步骤6:禁用代码中的规则
开发人员喜欢破坏规则..因此,让我们做吧…您可以根据情况在代码中禁用规则。
// swiftlint:disable force_cast
//现在禁用了force_cast规则
让 noWarning = NSNumber () 为! 整数
//重新启用规则
// swiftlint:启用force_cast
//禁用“ this”(内联),“ next”(下一行)或“ previous”
让 noWarning = NSNumber () 为! Int // swiftlint:disable:this force_cast
步骤7:现有项目的方法
- 使用默认规则
- 建立
通过以下任一方法来修正规则:
- 自动更正(如果可能)
- 通过添加到disabled_rules将其删除
- 自订
- 禁用代码
当所有默认规则均已“修复”时,请检查默认情况下禁用的规则。 如果有用和需要,请将它们添加到opt_in_rules中 。
额外:规则trailing_whitespace
“项目中的行不应包含尾随空格。”
默认情况下,Xcode在缩进之后将留有空白行。 这是不必要的,默认设置很差,可以更改。
在Xcode偏好设置>文本编辑>包括仅空白行中启用。