我们有一个 swiftlint 规则,它基本上在我们的结构、类和协议(DC、DB 或 DM 取决于功能)上强制执行前缀。TopLevel
我们只想将其与顶级对象匹配,例如在下面的示例中,我只想SecondTopLevel
抛出错误:
class TopLevel {
struct NotTopLevel {
var test
}
}
class SecondTopLevel {
}
我们当前的正则表达式如下:(struct|class|protocol)\s(?!(func|DB|DC|DM))[^\n\r]+\{
,这将匹配TopLevel
和NotTopLevel
。我想以某种方式给一些正则表达式(或其他一些 swiftlint 工具)不匹配NotTopLevel
,但仍然匹配TopLevel
和SecondTopLevel
。这可能吗?关于如何做到这一点的任何想法?
我一直在尝试模仿的方法是在检查前缀之前查找 0 个或多个以前的类定义,但是,在检查前缀之前尝试匹配整个类一次或多次时遇到了问题。