zoukankan      html  css  js  c++  java
  • 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
    

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

  • 相关阅读:
    基于 Android NDK 的学习之旅-----序言
    音乐播放时跳动的音符
    WebView中实现文件下载功能
    Android组件——使用DrawerLayout仿网易新闻v4.4侧滑菜单
    android webview中的音乐的暂停与播放
    Android 使用Fragment界面向下跳转并一级级返回
    Fragment使用LocalBroadcastManager接收广播消息
    android WebView总 结
    解决方式:QSqlDatabase: an instance of QCoreApplication is required for loading driver plugins
    Android学习十九:ContentProvider初步
  • 原文地址:https://www.cnblogs.com/anywherego/p/11152735.html
Copyright © 2011-2022 走看看