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: 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: Vertix, rhs: Vertix) -> Bool {
    return lhs.filePath == rhs.filePath
        && lhs.originalRemoteString == rhs.originalRemoteString
        && lhs.rootDirectory == rhs.rootDirectory
}
internal static func == (lhs: Vertix, rhs: Vertix) -> 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