swiftlin 开括号规则
swiftlint open brace rule
我正在使用 Swiftlint 在我们的代码库中实施一些实践。我想添加一个自定义规则,确保 {
始终出现在换行符之后。我以为我知道正则表达式,但似乎无法弄清楚。我只是检查一行是否包含 {
之前除空格以外的任何字符。 {
.
之后可以有内容
我现在拥有的:
invalid_open_brace:
name: "Open brace should start on its own line"
regex: "(\S+.*\{)"
message: "Open brace should start on its own line"
severity: warning
以下是一些应该匹配和不应该匹配的示例字符串:
// NO MATCH
else if let var1 = var1 as? String, !var1.isEmpty
{
//NO MATCH
class Person
{
// MATCH
int()
{
}
// NO MATCH
function()
{
}
}
// MATCH
function() {
}
您的 (\S+.*\{)
正则表达式匹配任何不是空格的字符(一个或多个重复 - \S+
),然后是换行符以外的任何字符(包括非空格 - 这是您问题的根本原因)和 {
.
您可以使用
\S[ \t]+\{
参见regex demo。
详情:
\S
- 任何非空白字符
[ \t]+
- 一个或多个 (+
) 水平 whiteapces(可以替换为 [\t\p{Zs}]+
其中 \p{Zs}
匹配所有没有制表符的水平 Unicode 空格)。
\{
- 文字 {
符号。
我正在使用 Swiftlint 在我们的代码库中实施一些实践。我想添加一个自定义规则,确保 {
始终出现在换行符之后。我以为我知道正则表达式,但似乎无法弄清楚。我只是检查一行是否包含 {
之前除空格以外的任何字符。 {
.
我现在拥有的:
invalid_open_brace:
name: "Open brace should start on its own line"
regex: "(\S+.*\{)"
message: "Open brace should start on its own line"
severity: warning
以下是一些应该匹配和不应该匹配的示例字符串:
// NO MATCH
else if let var1 = var1 as? String, !var1.isEmpty
{
//NO MATCH
class Person
{
// MATCH
int()
{
}
// NO MATCH
function()
{
}
}
// MATCH
function() {
}
您的 (\S+.*\{)
正则表达式匹配任何不是空格的字符(一个或多个重复 - \S+
),然后是换行符以外的任何字符(包括非空格 - 这是您问题的根本原因)和 {
.
您可以使用
\S[ \t]+\{
参见regex demo。
详情:
\S
- 任何非空白字符[ \t]+
- 一个或多个 (+
) 水平 whiteapces(可以替换为[\t\p{Zs}]+
其中\p{Zs}
匹配所有没有制表符的水平 Unicode 空格)。\{
- 文字{
符号。