Opening Brace Spacing
The correct positioning of braces that introduce a block of code or member list is highly controversial. No matter which style is preferred, consistency is key. Apart from different tastes, the positioning of braces can also have a significant impact on the readability of the code, especially for visually impaired developers. This rule ensures that braces are preceded by a single space and on the same line as the declaration. Comments between the declaration and the opening brace are respected. Check out the contrasted_opening_brace
rule for a different style.
- Identifier:
opening_brace
- Enabled by default: Yes
- Supports autocorrection: Yes
- Kind: style
- Analyzer rule: No
- Minimum Swift compiler version: 5.0.0
- Default configuration:
Key Value severity warning ignore_multiline_type_headers false ignore_multiline_statement_conditions false ignore_multiline_function_signatures false allow_multiline_func false
Non Triggering Examples
func abc() {
}
[].map() { $0 }
[].map({ })
if let a = b { }
while a == b { }
guard let a = b else { }
struct Rule {}
struct Parent {
struct Child {
let foo: Int
}
}
func f(rect: CGRect) {
{
let centre = CGPoint(x: rect.midX, y: rect.midY)
print(centre)
}()
}
func f(rect: CGRect) -> () -> Void {
{
let centre = CGPoint(x: rect.midX, y: rect.midY)
print(centre)
}
}
func f() -> () -> Void {
{}
}
class Rule:
NSObject {
var a: String {
return ""
}
}
self.foo(
(
"String parameter",
{ "Do something here" }
)
)
let pattern = #/(\{(?<key>\w+)\})/#
if c {}
else {}
if c /* comment */ {
return
}
Triggering Examples
func abc()↓{
}
func abc()
↓{ }
func abc(a: A,
b: B)
↓{
[].map()↓{ $0 }
struct OldContentView: View {
@State private var showOptions = false
var body: some View {
Button(action: {
self.showOptions.toggle()
})↓{
Image(systemName: "gear")
}
}
}
struct OldContentView: View {
@State private var showOptions = false
var body: some View {
Button(action: {
self.showOptions.toggle()
})
↓{
Image(systemName: "gear")
}
}
}
struct OldContentView: View {
@State private var showOptions = false
var body: some View {
Button {
self.showOptions.toggle()
} label:↓{
Image(systemName: "gear")
}
}
}
if let a = b↓{ }
while a == b↓{ }
guard let a = b else↓{ }
if
let a = b,
let c = d
where a == c↓{ }
while
let a = b,
let c = d
where a == c↓{ }
guard
let a = b,
let c = d
where a == c else↓{ }
struct Rule↓{}
struct Rule
↓{
}
struct Rule
↓{
}
struct Parent {
struct Child
↓{
let foo: Int
}
}
switch a↓{}
if
let a = b,
let c = d,
a == c
↓{ }
while
let a = b,
let c = d,
a == c
↓{ }
guard
let a = b,
let c = d,
a == c else
↓{ }
class Rule↓{}
actor Rule↓{}
enum Rule↓{}
protocol Rule↓{}
extension Rule↓{}
class Rule {
var a: String↓{
return ""
}
}
class Rule {
var a: String {
willSet↓{
}
didSet ↓{
}
}
}
precedencegroup Group↓{
assignment: true
}
if
"test".isEmpty
↓{
// code here
}
func fooFun() {
let foo: String? = "foo"
let bar: String? = "bar"
if
let foo = foo,
let bar = bar
↓{
print(foo + bar)
}
}
if
let a = ["A", "B"].first,
let b = ["B"].first
↓{
print(a)
}
if c ↓{}
else /* comment */ ↓{}