美文网首页
Swift Format使用优化

Swift Format使用优化

作者: 倔一 | 来源:发表于2019-06-21 10:08 被阅读0次

    开发中经常要讲到代码规范化,code review是一方面,另一方面可以借助一些工具,如Swift Format,做到代码格式化。

    Swift Format 

    github地址 :https://github.com/nicklockwood/SwiftFormat

    Swift Format 使用有四种方式,本文主要讲对第三种build phase的改进方式。

    That depends. There are four ways you can use SwiftFormat:

    1 As a command-line tool that you run manually, or as part of some other toolchain

    2 As a Source Editor Extension that you can invoke via the Editor > SwiftFormat menu within Xcode

    3 As a build phase in your Xcode project, so that it runs every time you press Cmd-R or Cmd-B, or

    4 As a Git pre-commit hook, so that it runs on any files you've changed before you check them in

    2 把脚本放在build phase,会引起的问题就是build之后才整理代码导致breakpoint失效,为了解决这个问题,把执行脚本时机放在pre-action,按下build的时候就会先格式化代码。

    (1)pod引入Swift Foramt,Podfile设置如下,然后cd到工程路径,pod install


    platform :ios, "11.0"

    def app_pods

    pod 'SwiftFormat/CLI', '0.40.4'

    end

    target 'TestFormat' do

        app_pods

    end


    (2)Edit sheme->Build->Pre-action->New Run Script Action,添加脚本文件。

    脚本文件内容如下:


    if [ "${CONFIGURATION}" = "Debug" ]; then

    "${PODS_ROOT}/SwiftFormat/CommandLineTool/swiftformat" --disable unusedArguments,numberFormatting,redundantReturn,andOperator,anyObjectProtocol,trailingClosures,redundantFileprivate --ranges nospace --swiftversion "5.0" "${SRCROOT}/TestFormat/"

    echo "format debug build swift code"

    else

    echo "Not Debug Env, skip format"

    fi


    (3)写入不规范的代码,按下build进行测试。可以看到代码自动规范化了,再进行building。


    class ViewController: UIViewController {

        override func viewDidLoad() {

            super.viewDidLoad()

            // Do any additional setup after loading the view.

        }

    func test(){

            let isTest = false

            if isTest {

                NSLog("testing")

            }

            else{

            }

        }

    }


    class ViewController: UIViewController {

        override func viewDidLoad() {

            super.viewDidLoad()

            // Do any additional setup after loading the view.

        }

        func test() {

            let isTest = false

            if isTest {

                NSLog("testing")

            } else {}

        }

    }


    完整项目地址:https://github.com/jueyi1127/TestFormat

    相关文章

      网友评论

          本文标题:Swift Format使用优化

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