我想修改.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 }
}
如何更改我的正则表达式以允许单行获取者/设置者使用相同的行?
我建议使用
regex: '^(?![ t]*[sg]et[ t]+{.*}).*S[ t]*{'
或者,它的替代方案与h
匹配的水平空白:
regex: '^(?!h*[sg]eth+{.*}).*Sh*{'
请参阅正则表达式演示(或此演示(。
详
-
^
- 字符串的开头 -
(?!h*[sg]eth+{.*})
- 字符串中不应紧跟的位置-
h*
- 0+ 水平空格 -
[sg]et
-set
或get
-
h+
- 1+ 水平空格 -
{.*}
-{
、任何 0+ 字符,尽可能多的字符和}
-
-
.*
- 任何 0+ 字符,
尽可能多的 -
S
- 非空格字符 -
h*
- 0+ 水平空格 -
{
- 一个{
字符。