Switch and Case Statement Alignment
Case statements should vertically align with their closing brace, or indented if configured otherwise.
- Identifier:
switch_case_alignment
- Enabled by default: Yes
- Supports autocorrection: No
- Kind: style
- Analyzer rule: No
- Minimum Swift compiler version: 5.0.0
- Default configuration:
Key Value severity warning indented_cases false ignore_one_liners false
Non Triggering Examples
switch someBool {
case true: // case 1
print('red')
case false:
/*
case 2
*/
if case let .someEnum(val) = someFunc() {
print('blue')
}
}
enum SomeEnum {
case innocent
}
if aBool {
switch someBool {
case true:
print('red')
case false:
print('blue')
}
}
switch someInt {
// comments ignored
case 0:
// zero case
print('Zero')
case 1:
print('One')
default:
print('Some other number')
}
func f() -> Int {
return switch i {
case 1: 1
default: 2
}
}
//
// ignore_one_liners: true
//
switch i { case .x: 1 default: 0 }
//
// ignore_one_liners: true
//
let a = switch i { case .x: 1 default: 0 }
Triggering Examples
switch someBool {
↓case true:
print("red")
↓case false:
print("blue")
}
if aBool {
switch someBool {
↓case true:
print('red')
↓case false:
print('blue')
}
}
switch someInt {
↓case 0:
print('Zero')
↓case 1:
print('One')
↓default:
print('Some other number')
}
let a = switch i {
↓case 1: 1
↓default: 2
}
switch someBool {
case true:
print('red')
↓case false:
print('blue')
}
if aBool {
switch someBool {
↓case true:
print('red')
case false:
print('blue')
}
}
let a = switch i {
case 1: 1
↓default: 2
}
switch i { ↓case .x: 1 ↓default: 0 }
//
// ignore_one_liners: true
//
switch i {
↓case .x: 1 ↓default: 0 }
//
// ignore_one_liners: true
//
switch i { ↓case .x: 1 ↓default: 0
}
//
// ignore_one_liners: true
//
switch i
{ ↓case .x: 1 ↓default: 0 }
//
// ignore_one_liners: true
//
let a = switch i {
case .x: 1 ↓default: 0
}
//
// ignore_one_liners: true
//
let a = switch i {
↓case .x: 1 ↓default: 0 }