SwiftLint --如何允许这样的一行保护条件:
guard let x = true else { return false }并在其他情况下保留conditional_returns_on_newline功能?
编辑:
据我所知,SwiftLint定义了违规规则,因此我必须编写正则表达式,扫描行以搜索:
if[...]{[...]}还请注意以下情况:
if array1.sorted(by: { $0 > $1 }).first! > 0, array2.isEmpty { x = 1 }发布于 2020-09-11 14:44:03
默认情况下禁用SwifLint规则conditional_returns_on_newline。所以,
conditional_returns_on_newline规则。if_only设置为true不需要写任何自定义规则
.swiftlint.yml配置:
opt_in_rules: # some rules are only opt-in
- conditional_returns_on_newline
conditional_returns_on_newline:
if_only: true 这里是规则链接:
发布于 2020-05-15 11:30:24
实现这一目标有两种方法。
conditional_returns_on_newline规则。通过更新保存在项目代码文件夹中的规则文件,可以在代码块级别、源文件级别或项目级别禁用它。这样做将禁用每个这样的语句的规则(取决于禁用范围),如if true { return }或if true { return "YES" } else { return "NO" }等,这是解释,我认为您不想这样做。编辑
第2点的高级别实现,遵循以下步骤.
.swiftlint.yml并在项目级别禁用给定的规则conditional_returns_on_newline。ks_conditional_returns_on_newline)添加到.swiftlint.yml文件中,您可以根据需要决定rule name、message、severity和included等参数。示例
custom_rules:
ks_conditional_returns_on_newline:
included: ".*\\.swift"
name: "Custom Conditional Returns On New Line"
regex: "(if)[^\n]*return"
message: "Hey look at the the conditional returns on newline for if else"
severity: error我已经用Xcode验证了规则正则表达式,它运行得很好。不过,我还没有验证将它添加到.swiftlint.yml中。但我希望它能奏效。

发布于 2020-05-16 21:17:00
我想我能找到一个令人满意的解决办法:
conditional_returns_on_newline。custom_rules:
custom_conditional_returns_on_newline:
name: "Conditional returns on new line"
regex: '^[\h]*(if|else|while)[^\n]*\}$'
message: "If/else and while constructions should not be defined in one line"
severity: warningcustom_rules添加到whitelist_rules。https://stackoverflow.com/questions/61816307
复制相似问题