【发布时间】:2021-10-13 19:11:24
【问题描述】:
我有一个非常庞大的 iOS(遗留)项目,我想在其中添加 SwiftLint。我希望强制执行的所有规则,我只会对新创建的文件强制执行。这样我就不必回去解决所有可能出现的问题,因为过去没有遵循规则(因为没有使用 SwiftLint)。我不确定如何实现这一目标?
【问题讨论】:
-
Swiftlint 有包含/排除指令来选择文件。但是,通常最好至少修复旧代码中的基本问题。很多问题都可以自动解决,坦白说,没那么难。我已经用这种方法修复了大项目。
-
@Sulthan 不幸的是,有太多警告和错误需要修复。它们中的大多数都不容易修复,因为它们需要更改逻辑。使用排除指令也没有帮助,因为我无法排除文件夹(例如)。将来可能会向其中添加新文件。此外,将每个文件都添加到排除列表不是一种选择,因为它们太多了。
-
你必须选择。要么您在新旧代码之间创建明确的区别,例如使用文件夹,或者开始修复旧代码。
-
我明白了。所以没有简单的方法对 SwiftLint 说:嘿,我把你加到项目中了,请不要看旧文件,只看新文件?
-
也许创建一个 bash 脚本来循环使用最近 mtime 的文件(或 git 更改的文件),然后在该循环中执行
swiftlint lint --path "$filename"。