SwiftFormat简介

作者: 佐鼬_1282 | 来源:发表于2021-12-08 16:50 被阅读0次

    SwiftFormat可以帮助开发者自动的纠正一些代码规范问题,并且可以一定程度的帮助我们优化代码、统一代码风格。比如,帮助我们调整空格、缩紧,移除隐式的self调用等等。更加详细的规则可以参考这里

    一、可以通过以下几种方式进行安装

    1.1、命令行工具
    可以通过HomeBrew来安装

    brew install swiftformat
    

    也可以通过Mint来安装运行

    mint install nicklockwood/SwiftFormat
    mint run swiftformat
    

    当然,也可以通过clone代码,然后手动编译

    git clone https://github.com/nicklockwood/SwiftFormat
    cd SwiftFormat
    swift build -c release
    

    通过上述方法安装完成后,进入项目文件夹根目录,执行命令行:

    swiftformat .
    

    那么会重新编排该目录下的所有文件。当然,更为稳妥的方式是进入需要编排的文件目录并执行命令。

    1.2、扩展Xcode的source editor
    通过HomeBrew执行命令:

    brew install --cask swiftformat-for-xcode
    

    通过这种方式可以讲swiftformat扩展为Xcode的一项功能,可以在Xcode Editor menu中找到并运行。

    1.3、通过为Xcode添加运行脚本
    通过homebrew安装了swiftformat后,在Xcode的 Run Script build phase添加以下脚本

    if which swiftformat >/dev/null; then
    swiftformat .
    else
    echo "warning: SwiftFormat not installed, download from https://github.com/nicklockwood/SwiftFormat"
    fi
    

    或者也可通过Cocoapods进行安装并添加依赖脚本

    “${PODS_ROOT}/SwiftFormat/CommandLineTool/swiftformat” "$SRCROOT"
    
    二、规则添加

    同样的,我们也可以对规则进行添加和修改,通过 --disable--enable 标识。
    例如:

    --disable redundantSelf,trailingClosures
    --enable isEmpty
    

    或者针对多条规则:

    --disable indent
    --disable linebreaks
    --disable redundantSelf
    

    可以这样表示:

    --disable          \
        indent,        \
        linebreaks,    \
        redundantSelf
    

    或者有时我们只需要支持某些rules时:

    --rules indent,linebreaks
    

    除此之外,如果在代码中需要某些规则不对某段代码生效的话,可以做如下注释:

    // swiftformat:disable <rule1> [<rule2> [rule<3> ...]]
    
    三、规则自定义配置文件

    通过上面介绍的规则,我们可以实现自定义的需求,但是更为方便的办法是通过一个配置文件来统一管理我们的自定义规则。
    通过创建一个隐式文件 .swiftformat ,可以在里面根据需求自定义规则。
    注意:该文件的位置,一般建议放到项目文件夹的根目录。因为.swiftformat文件有相应的作用区间,如果未特别指明path时,则默认作用在当前父目录下的所有swift文件

    # format options
    --allman true
    --indent tab # tabs FTW!
    
    # file options
    --exclude Pods
    
    # rules
    --disable elseOnSameLine,semicolons
    

    相关文章

      网友评论

        本文标题:SwiftFormat简介

        本文链接:https://www.haomeiwen.com/subject/snhgtrtx.html