TypeFill

Quality gate Swift


一个帮助你填充变量类型的小型命令行工具。

并且添加 private final 属性到 @IBAction, @IBOutlet, 和 @objc。(重写中...)

安装


make

brew install make
make install

Swift 包管理器 (Swift Package Manager)

swift build -c release
cp .build/release/typefill /usr/local/bin

mint

brew install mint
mint install yume190/TypeFill

使用方法

typefill 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

支持的功能 & 待办事项

private lazy var chartHeight: [CGFloat] = {
    return self.status.sensorData?.compactMap { sensor -> CGFloat in
        guard let _chartType = sensor.chart?.type else { return 0 }
    }
}()

支持

let/var

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
}

可选绑定 (if let/guard let)

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 ""
}

不支持

闭包(inout)

let a: (inout Int) -> Int = { i in
    return i
}

参考

许可证

MIT 许可证。