• SwiftLint:代码规范检查工具介绍


    Swift-CodeStyle Checker:SwiftLint

    介绍:

    SwiftLint 是一个用于强制检查 Swift 代码风格和规定的一个工具,基本上以 GitHub's Swift 代码风格指南为基础。

    SwiftLint官网: Github地址

    SwiftLint中文博客(推荐): Xcode代码规范之SwiftLint配置

    Swift代码规范: Github 公布的 Swift 代码规范

    Swift Version Support

    这里有一份 SwiftLint 版本和对应该 Swift 版本的对照表作为参考。

    Swift 版本 最后一个 SwiftLint 支持版本
    Swift 1.x SwiftLint 0.1.2
    Swift 2.x SwiftLint 0.18.1
    Swift 3.x SwiftLint 0.25.1
    Swift 4.0-4.1.x SwiftLint 0.28.2
    Swift 4.2.x-5.0 最新的

    安装

    使用 Homebrew

    brew install swiftlint
    

    XCode配置

    安装完成后,需要在Xcode中配置相关设置,才能使 SwiftLint 在 Xcode 中自动检测代码规范。配置也很简单,只需要在 Xcode 的 Build Phases 中新建一个 Run Script Phase 配置项,在里面添加相关代码后,编译即可!

    if which swiftlint >/dev/null; then
      swiftlint
    else
      echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
    fi
    

    多Xcode配置

    如果有多个Xcode在同时使用,需要切换xcode的配置环境:

    //切换到默认Xcode版本
    sudo xcode-select -s '/Applications/Xcode.app/Contents/Developer'
    //切换到其他Xcode版本
    sudo xcode-select -s '/Applications/Xcode 10.1.app/Contents/Developer’
    

    到这一步基本完成安装和基础的操作,正常运行Xcode即可获得CodeStyle的检查结果

    自定义配置

    除了通用的功能,我们还经常要做一些额外的事情,比如:去掉第三方库的检查、去掉或改变一些检查规则等

    新建自定义配置文件

    打开终端, cd 到项目根目录下
    输入: touch .swiftlint.yml
    可以自定义的常用配置:

    disabled_rules: # 禁用指定的规则
      - colon
      - comma
      - control_statement
    opt_in_rules: # 启用指定的规则
      - empty_count
      - missing_docs
      # 可以通过执行如下指令来查找所有可用的规则:
      # swiftlint rules
    included: # 执行 linting 时包含的路径。如果出现这个 `--path` 会被忽略。
      - Source
    excluded: # 执行 linting 时忽略的路径。 优先级比 `included` 更高。
      - Carthage
      - Pods
      - Source/ExcludedFolder
      - Source/ExcludedFile.swift
    

    忽略引入的第三方库

    在.swiftlint.yml文件中输入

    excluded: 
      - Pods
    

    常用的规则修改项(简单模板)

    在.swiftlint.yml文件中输入

    excluded:  # 执行 linting 时忽略的路径。 优先级比 `included` 更高。
      - Pods
    
    disabled_rules: # 执行时排除掉的规则
      - identifier_name    # 命名规则必须按照驼峰原则,与后台传的Json字段命名冲突,建议排除掉
      - trailing_whitespace   # 每一个空行不能有空格,会与Xcode换行后自动对齐生成的空格冲突,建议排除掉
    
    force_cast: warning # 类型判断
    force_try: warning # try语句判断
    
    cyclomatic_complexity: 20 #代码复杂度,默认为10
    
    line_length:  # 单行代码长度,默认error 120
      warning: 120
      error: 200
    
    file_length:  # 文件长度
      warning: 500
      error: 1200
    
    function_body_length: # 函数体长度
      warning: 100
      error: 300
    

    这是一个基础版本,随着项目的开展,可分阶段将规则逐渐严格起来

  • 相关阅读:
    AQS的子类在各个同步工具类中的使用情况
    SpringBoot RabbitMQ 延迟队列代码实现
    Java线程状态、线程start方法源码、多线程、Java线程池、如何停止一个线程
    Java内存模型,为啥线程要有自己的本地内存,CPU高速缓存
    Java内存模型中volatile关键字的作用
    Java内存模型、JVM内存结构和Java对象模型
    搞定springboot项目连接远程服务器上kafka遇到的坑以及完整的例子
    MongoDB导出与导入远程Linux服务器上的数据
    DeferredResult使用方式和场景
    【IT笔试面试题整理】二叉树中和为某一值的路径--从根到叶子节点
  • 原文地址:https://www.cnblogs.com/anywherego/p/11152735.html
Copyright © 2020-2023  润新知