SwiftLint 函数定义后的强制空行

Posted

技术标签:

【中文标题】SwiftLint 函数定义后的强制空行【英文标题】:Mandatory empty line after function definition SwiftLint 【发布时间】:2021-07-14 17:19:58 【问题描述】:

我正在我的 xcode 项目中集成 swiftlint 并设置它的配置。但我无法获得在函数定义后强制空行的规则

func test1() 

func test2() 

如果我在两个函数之间添加多个空格,则有一个规则。

是否有任何规则可用于在两个函数之间启用空行或者我需要编写自定义一个

【问题讨论】:

【参考方案1】:

执行 swiftlint 规则将为您提供可用规则列表。为了找到适用的规则,我通常会做的是更改 yaml 文件中的不同规则,直到找到符合我要求的规则。

如果您的规则不存在,我建议使用正则表达式编写自定义规则,例如:

 custom_rules:
  pirates_beat_ninjas: # rule identifier
    included: ".*\\.swift" # regex that defines paths to include during linting. optional.
    excluded: ".*Test\\.swift" # regex that defines paths to exclude during linting. optional
    name: "Pirates Beat Ninjas" # rule name. optional.
    regex: "([nN]inja)" # matching pattern
    capture_group: 0 # number of regex capture group to highlight the rule violation at. optional.
    match_kinds: # SyntaxKinds to match. optional.
      - comment
      - identifier
    message: "Pirates are better than ninjas." # violation message. optional.
    severity: error # violation severity. optional.
  no_hiding_in_strings:
    regex: "([nN]inja)"
    match_kinds: string

这条规则使得每次你看到忍者这个词都会导致违规

【讨论】:

以上是关于SwiftLint 函数定义后的强制空行的主要内容,如果未能解决你的问题,请参考以下文章

如何在使用 swiftlint 声明时强制一个人使​​用数据类型的类型

slass/struct/enum/extension 之后的 SwiftLint 自定义间距规则

如何在fastreport中添加我的自定义函数

代码规范

仅为新文件启用 SwiftLint

尝试调用外部 VBA 函数时,只能强制在公共对象模块中定义的用户定义类型