我想修改.swiftlint.yml
以添加一些自定义规则,以便在下一行执行大括号。这对我有用...
opening_braces:
name: "Opening Braces not on Next Line"
message: "Opening braces should be placed on the next line."
include: "*.swift"
regex: '\S[ \t]*\{'
severity: warning
但是,在某些情况下,我想在同一行上使用大括号,例如像这样的东西:
override var cornerRadius: CGFloat
{
get { return layer.cornerRadius }
set { layer.cornerRadius = newValue }
}
如何更改我的正则表达式以允许单行获取器/设置器使用同一行?
答案 0 :(得分:1)
我建议使用
regex: '^(?![ \t]*[sg]et[ \t]+\{.*\}).*\S[ \t]*\{'
或者,用\h
匹配水平空白的替代方法:
regex: '^(?!\h*[sg]et\h+\{.*\}).*\S\h*\{'
请参见regex demo(或this one)。
详细信息
^
-字符串的开头(?!\h*[sg]et\h+\{.*\})
-字符串中不应随即跟随的位置
\h*
-0+个水平空格[sg]et
-set
或get
\h+
-1个以上水平空格\{.*\}
-{
,尽可能多的0个字符和}
.*
-任意0个以上的字符,并且尽可能多\S
-非空格字符\h*
-0+个水平空格\{
-一个{
字符。