A little cli tool to help you fill your variables type.
And add private final attribute to @IBAction, @IBOutlet, and @objc.(Rewriting ...)
brew install make
make installswift build -c release
cp .build/release/typefill /usr/local/binbrew install mint
mint install yume190/TypeFilltypefill single    --sdk macosx         --file PATH/TO/sample.swift 
typefill spm       --module TypeFillKit --file .       
typefill project   --module YOUR_SCHEME --file PATH/TO/YOUR.xcodeproj 
typefill workspace --module YOUR_SCHEME --file PATH/TO/YOUR.xcworkspace-  typefill variables like 
let a = 1orvar a = "1". -  typefill keyword like 
let ``default`` = 1. -  typefill 
guard letandif let. -  typefill some closure input.
{ a, b in }{ (a, b) in }
 -  typefill binding tuple 
let (aa, bb) = (1, 2) -  typefill 
inout - typefill closure output.
 -  
addprivate finalattribute to@IBAction/@IBOutlet/@objcby using--ibaction/--iboutlet/--objc.(Rewriting) 
private lazy var chartHeight: [CGFloat] = {
    return self.status.sensorData?.compactMap { sensor -> CGFloat in
        guard let _chartType = sensor.chart?.type else { return 0 }
    }
}()let a = 1
var b = a
let (c, d) = (1, 2)
struct Test {
    let a, b: Int
    let c = 1, d = 2
}let a: Int = 1
var b: Int = a
let (c, d): (Int, Int) = (1, 2)
struct Test {
    let a: Int, b: Int
    let c: Int = 1, d: Int = 2
}let a: Int? = nil
if let aa = a {}
guard let aa = a else {return}let a: Int? = nil
if let aa: Int = a {}
guard let aa: Int = a else {return}let a: (Int, Int) -> String = { a, b -> String in
    return ""
}
let b: (Int, Int) -> String = { (a, b) -> String in
    return ""
}let a: (Int, Int) -> String = { (a: Int, b: Int) -> String in
    return ""
}
let b: (Int, Int) -> String = { (a: Int, b: Int) -> String in
    return ""
}let a: (inout Int) -> Int = { i in
    return i
}MIT licensed.
