mirror of
https://github.com/realm/SwiftLint.git
synced 2026-05-07 20:12:49 +00:00
483 lines
11 KiB
Swift
483 lines
11 KiB
Swift
// swiftlint:disable file_length
|
|
|
|
// swiftlint:disable:next type_body_length
|
|
struct ContrastedOpeningBraceRuleExamples {
|
|
static let nonTriggeringExamples = [
|
|
Example("""
|
|
func abc()
|
|
{
|
|
}
|
|
"""),
|
|
Example("""
|
|
[].map()
|
|
{
|
|
$0
|
|
}
|
|
"""),
|
|
Example("""
|
|
[].map(
|
|
{
|
|
}
|
|
)
|
|
"""),
|
|
Example("""
|
|
if let a = b
|
|
{
|
|
}
|
|
"""),
|
|
Example("""
|
|
while a == b
|
|
{
|
|
}
|
|
"""),
|
|
Example("""
|
|
guard let a = b else
|
|
{
|
|
}
|
|
"""),
|
|
Example("""
|
|
struct Rule
|
|
{
|
|
}
|
|
"""),
|
|
Example("""
|
|
struct Parent
|
|
{
|
|
struct Child
|
|
{
|
|
let foo: Int
|
|
}
|
|
}
|
|
"""),
|
|
Example("""
|
|
func f(rect: CGRect)
|
|
{
|
|
{
|
|
let centre = CGPoint(x: rect.midX, y: rect.midY)
|
|
print(centre)
|
|
}()
|
|
}
|
|
"""),
|
|
Example("""
|
|
func f(rect: CGRect) -> () -> Void
|
|
{
|
|
{
|
|
let centre = CGPoint(x: rect.midX, y: rect.midY)
|
|
print(centre)
|
|
}
|
|
}
|
|
"""),
|
|
Example("""
|
|
func f() -> () -> Void
|
|
{
|
|
{}
|
|
}
|
|
"""),
|
|
Example("""
|
|
@MyProperty class Rule:
|
|
NSObject
|
|
{
|
|
var a: String
|
|
{
|
|
return ""
|
|
}
|
|
}
|
|
"""),
|
|
Example("""
|
|
self.foo(
|
|
(
|
|
"String parameter",
|
|
{ "Do something here" }
|
|
)
|
|
)
|
|
"""),
|
|
Example(##"let pattern = #/(\{(?<key>\w+)\})/#"##),
|
|
Example("""
|
|
if c
|
|
{}
|
|
else
|
|
{}
|
|
"""),
|
|
Example("""
|
|
if c /* comment */
|
|
{
|
|
return
|
|
}
|
|
"""),
|
|
Example("""
|
|
if c1
|
|
{
|
|
return
|
|
} else if c2
|
|
{
|
|
return
|
|
} else if c3
|
|
{
|
|
return
|
|
}
|
|
"""),
|
|
Example("""
|
|
let a = f.map
|
|
{ a in
|
|
a
|
|
}
|
|
"""),
|
|
]
|
|
|
|
static let triggeringExamples = [
|
|
Example("""
|
|
func abc()↓{
|
|
}
|
|
"""),
|
|
Example("""
|
|
func abc() { }
|
|
"""),
|
|
Example("""
|
|
func abc(a: A,
|
|
b: B) {}
|
|
"""),
|
|
Example("""
|
|
[].map { $0 }
|
|
"""),
|
|
Example("""
|
|
struct OldContentView: View ↓{
|
|
@State private var showOptions = false
|
|
|
|
var body: some View ↓{
|
|
Button(action: {
|
|
self.showOptions.toggle()
|
|
})↓{
|
|
Image(systemName: "gear")
|
|
} label: ↓{
|
|
Image(systemName: "gear")
|
|
}
|
|
}
|
|
}
|
|
"""),
|
|
Example("""
|
|
class Rule
|
|
{
|
|
var a: String↓{
|
|
return ""
|
|
}
|
|
}
|
|
"""),
|
|
Example("""
|
|
@MyProperty class Rule
|
|
{
|
|
var a: String
|
|
{
|
|
willSet↓{
|
|
|
|
}
|
|
didSet ↓{
|
|
|
|
}
|
|
}
|
|
}
|
|
"""),
|
|
Example("""
|
|
precedencegroup Group ↓{
|
|
assignment: true
|
|
}
|
|
"""),
|
|
Example("""
|
|
class TestFile
|
|
{
|
|
func problemFunction() ↓{
|
|
#if DEBUG
|
|
#endif
|
|
}
|
|
|
|
func openingBraceViolation()
|
|
{
|
|
print("Brackets")
|
|
}
|
|
}
|
|
""", excludeFromDocumentation: true),
|
|
Example("""
|
|
if
|
|
"test".isEmpty ↓{
|
|
// code here
|
|
}
|
|
"""),
|
|
Example("""
|
|
if c ↓{}
|
|
else /* comment */ ↓{}
|
|
"""),
|
|
Example("""
|
|
if c
|
|
↓{
|
|
// code here
|
|
}
|
|
"""),
|
|
Example("""
|
|
if c1 ↓{
|
|
return
|
|
} else if c2↓{
|
|
return
|
|
} else if c3
|
|
↓{
|
|
return
|
|
}
|
|
"""),
|
|
Example("""
|
|
func f()
|
|
{
|
|
return a.map
|
|
↓{ $0 }
|
|
}
|
|
"""),
|
|
Example("""
|
|
a ↓{
|
|
$0
|
|
} b: ↓{
|
|
$1
|
|
}
|
|
"""),
|
|
]
|
|
|
|
static let corrections = [
|
|
Example("""
|
|
struct Rule{}
|
|
"""): Example("""
|
|
struct Rule
|
|
{}
|
|
"""),
|
|
Example("""
|
|
struct Parent {
|
|
struct Child {
|
|
let foo: Int
|
|
}
|
|
}
|
|
"""): Example("""
|
|
struct Parent
|
|
{
|
|
struct Child
|
|
{
|
|
let foo: Int
|
|
}
|
|
}
|
|
"""),
|
|
Example("""
|
|
[].map(){ $0 }
|
|
"""): Example("""
|
|
[].map()
|
|
{ $0 }
|
|
"""),
|
|
Example("""
|
|
if a == b{ }
|
|
"""): Example("""
|
|
if a == b
|
|
{ }
|
|
"""),
|
|
Example("""
|
|
@MyProperty actor MyActor<T> {
|
|
|
|
}
|
|
"""): Example("""
|
|
@MyProperty actor MyActor<T>
|
|
{
|
|
|
|
}
|
|
"""),
|
|
Example("""
|
|
actor MyActor<T> where T: U {
|
|
|
|
}
|
|
"""): Example("""
|
|
actor MyActor<T> where T: U
|
|
{
|
|
|
|
}
|
|
"""),
|
|
Example("""
|
|
do {
|
|
|
|
} catch {
|
|
|
|
}
|
|
"""): Example("""
|
|
do
|
|
{
|
|
|
|
} catch
|
|
{
|
|
|
|
}
|
|
"""),
|
|
Example("""
|
|
do {
|
|
|
|
} catch MyError.unknown {
|
|
|
|
}
|
|
"""): Example("""
|
|
do
|
|
{
|
|
|
|
} catch MyError.unknown
|
|
{
|
|
|
|
}
|
|
"""),
|
|
Example("""
|
|
defer {
|
|
|
|
}
|
|
"""): Example("""
|
|
defer
|
|
{
|
|
|
|
}
|
|
"""),
|
|
Example("""
|
|
for a in b where a == c {
|
|
|
|
}
|
|
"""): Example("""
|
|
for a in b where a == c
|
|
{
|
|
|
|
}
|
|
"""),
|
|
Example("""
|
|
if varDecl.parent?.is(CodeBlockItemSyntax.self) == true // Local variable declaration
|
|
|| varDecl.bindings.onlyElement?.accessor != nil // Computed property
|
|
|| !node.type.is(SimpleTypeIdentifierSyntax.self) { // Complex or collection type
|
|
return .visitChildren
|
|
}
|
|
"""): Example("""
|
|
if varDecl.parent?.is(CodeBlockItemSyntax.self) == true // Local variable declaration
|
|
|| varDecl.bindings.onlyElement?.accessor != nil // Computed property
|
|
|| !node.type.is(SimpleTypeIdentifierSyntax.self)
|
|
{ // Complex or collection type
|
|
return .visitChildren
|
|
}
|
|
"""),
|
|
Example("""
|
|
@MyProperty class Rule
|
|
{
|
|
var a: String {
|
|
didSet {
|
|
|
|
}
|
|
}
|
|
}
|
|
"""): Example("""
|
|
@MyProperty class Rule
|
|
{
|
|
var a: String
|
|
{
|
|
didSet
|
|
{
|
|
|
|
}
|
|
}
|
|
}
|
|
"""),
|
|
Example("""
|
|
precedencegroup Group{
|
|
assignment: true
|
|
}
|
|
"""): Example("""
|
|
precedencegroup Group
|
|
{
|
|
assignment: true
|
|
}
|
|
"""),
|
|
Example("""
|
|
if c /* comment */ {
|
|
return
|
|
}
|
|
"""): Example("""
|
|
if c /* comment */
|
|
{
|
|
return
|
|
}
|
|
"""),
|
|
Example("""
|
|
func foo() {
|
|
if q1, q2 {
|
|
do1()
|
|
} else if q3, q4 {
|
|
do2()
|
|
}
|
|
}
|
|
"""): Example("""
|
|
func foo()
|
|
{
|
|
if q1, q2
|
|
{
|
|
do1()
|
|
} else if q3, q4
|
|
{
|
|
do2()
|
|
}
|
|
}
|
|
"""),
|
|
Example("""
|
|
if
|
|
"test".isEmpty
|
|
// swiftlint:disable:next contrasted_opening_brace
|
|
{
|
|
// code here
|
|
}
|
|
"""): Example("""
|
|
if
|
|
"test".isEmpty
|
|
// swiftlint:disable:next contrasted_opening_brace
|
|
{
|
|
// code here
|
|
}
|
|
"""),
|
|
Example("""
|
|
private func f()
|
|
// comment
|
|
{
|
|
let a = 1
|
|
}
|
|
"""): Example("""
|
|
private func f()
|
|
// comment
|
|
{
|
|
let a = 1
|
|
}
|
|
"""),
|
|
Example("""
|
|
while true /* endless loop */ {
|
|
// nothing
|
|
}
|
|
"""): Example("""
|
|
while true /* endless loop */
|
|
{
|
|
// nothing
|
|
}
|
|
"""),
|
|
Example("""
|
|
a.b { $0 }
|
|
.c { $1 }
|
|
"""): Example("""
|
|
a.b
|
|
{ $0 }
|
|
.c
|
|
{ $1 }
|
|
"""),
|
|
Example("""
|
|
a {
|
|
$0
|
|
} b: {
|
|
$1
|
|
}
|
|
"""): Example("""
|
|
a
|
|
{
|
|
$0
|
|
} b:
|
|
{
|
|
$1
|
|
}
|
|
"""),
|
|
]
|
|
}
|