SwiftLint Rule for Braces 在下一行,但有一些例外
SwiftLint Rule for Braces on next line but with some exceptions
我想修改 .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 }
}
如何更改我的正则表达式以允许一行为同一行 getters/setters?
我建议使用
regex: '^(?![ \t]*[sg]et[ \t]+\{.*\}).*\S[ \t]*\{'
或者,它的替代方案 \h
匹配水平空白:
regex: '^(?!\h*[sg]et\h+\{.*\}).*\S\h*\{'
参见 regex demo (or this one)。
详情
^
- 字符串开头
(?!\h*[sg]et\h+\{.*\})
- 字符串中不应紧跟的位置
\h*
- 0+ 水平空格
[sg]et
- set
或 get
\h+
- 1+ 水平空格
\{.*\}
- {
,任何 0+ 个字符,尽可能多,以及 }
.*
- 任何 0+ 个字符,尽可能多
\S
- 一个 non-whitespace 字符
\h*
- 0+ 水平空格
\{
- 一个 {
字符。
我想修改 .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 }
}
如何更改我的正则表达式以允许一行为同一行 getters/setters?
我建议使用
regex: '^(?![ \t]*[sg]et[ \t]+\{.*\}).*\S[ \t]*\{'
或者,它的替代方案 \h
匹配水平空白:
regex: '^(?!\h*[sg]et\h+\{.*\}).*\S\h*\{'
参见 regex demo (or this one)。
详情
^
- 字符串开头(?!\h*[sg]et\h+\{.*\})
- 字符串中不应紧跟的位置\h*
- 0+ 水平空格[sg]et
-set
或get
\h+
- 1+ 水平空格\{.*\}
-{
,任何 0+ 个字符,尽可能多,以及}
.*
- 任何 0+ 个字符,尽可能多\S
- 一个 non-whitespace 字符\h*
- 0+ 水平空格\{
- 一个{
字符。