Operator Usage Whitespace

Operators should be surrounded by a single whitespace when they are being used

  • Identifier: operator_usage_whitespace
  • Enabled by default: No
  • Supports autocorrection: Yes
  • Kind: style
  • Analyzer rule: No
  • Minimum Swift compiler version: 5.0.0
  • Default configuration:
    KeyValue
    severity warning
    lines_look_around 2
    skip_aligned_constants true
    allowed_no_space_operators [“…”, “..<”]

Non Triggering Examples

let foo = 1 + 2
let foo = 1 > 2
let foo = !false
let foo: Int?
let foo: Array<String>
let model = CustomView<Container<Button>, NSAttributedString>()
let foo: [String]
let foo = 1 + 
  2
let range = 1...3
let range = 1 ... 3
let range = 1..<3
#if swift(>=3.0)
    foo()
#endif
array.removeAtIndex(-200)
let name = "image-1"
button.setImage(#imageLiteral(resourceName: "image-1"), for: .normal)
let doubleValue = -9e-11
let foo = GenericType<(UIViewController) -> Void>()
let foo = Foo<Bar<T>, Baz>()
let foo = SignalProducer<Signal<Value, Error>, Error>([ self.signal, next ]).flatten(.concat)
"let foo =  1"
enum Enum {
case hello   = 1
case hello2  = 1
}
let something = Something<GenericParameter1,
                          GenericParameter2>()
return path.flatMap { path in
    return compileCommands[path] ??
        compileCommands[path.path(relativeTo: FileManager.default.currentDirectoryPath)]
}
internal static func == (lhs: Vertex, rhs: Vertex) -> Bool {
    return lhs.filePath == rhs.filePath
        && lhs.originalRemoteString == rhs.originalRemoteString
        && lhs.rootDirectory == rhs.rootDirectory
}
internal static func == (lhs: Vertex, rhs: Vertex) -> Bool {
    return lhs.filePath == rhs.filePath &&
        lhs.originalRemoteString == rhs.originalRemoteString &&
        lhs.rootDirectory == rhs.rootDirectory
}
private static let pattern =
    "\\S\(mainPatternGroups)" + // Regexp will match if expression not begin with comma
    "|" +                       // or
    "\(mainPatternGroups)"      // Regexp will match if expression begins with comma
private static let pattern =
    "\\S\(mainPatternGroups)" + // Regexp will match if expression not begin with comma
    "|"                       + // or
    "\(mainPatternGroups)"      // Regexp will match if expression begins with comma
typealias Foo = Bar
protocol A {
    associatedtype B = C
}
tabbedViewController.title = nil

Triggering Examples

let foo = 1+2
let foo = 1   + 2
let foo = 1   +    2
let foo = 1 +    2
let foo=1+2
let foo=1 + 2
let foo=bar
let range = 1 ..<  3
let foo = bar   ?? 0
let foo = bar !=  0
let foo = bar !==  bar2
let v8 = Int8(1)  << 6
let v8 = 1 <<  (6)
let v8 = 1 <<  (6)
 let foo = 1 > 2
let foo  = [1]
let foo  = "1"
let foo =  "1"
enum Enum {
case one  =  1
case two  = 1
}
enum Enum {
case one  = 1
case two  =  1
}
enum Enum {
case one   = 1
case two  = 1
}
typealias Foo =  Bar
protocol A {
    associatedtype B  = C
}
tabbedViewController.title  = nil
let foo = bar ? 0:1
let foo = bar ?   0 : 1