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:现有项目的方法

  • 使用默认规则
  • 建立

通过以下任一方法来修正规则:

  1. 自动更正(如果可能)
  2. 通过添加到disabled_rules将其删除
  3. 自订
  4. 禁用代码

当所有默认规则均已“修复”时,请检查默认情况下禁用的规则。 如果有用和需要,请将它们添加到opt_in_rules中

额外:规则trailing_whitespace

“项目中的行不应包含尾随空格。”

默认情况下,Xcode在缩进之后将留有空白行。 这是不必要的,默认设置很差,可以更改。

Xcode偏好设置>文本编辑>包括仅空白行中启用。

领域/ SwiftLint

SwiftLint –一种用于实施Swift样式和约定的工具。

github.com