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

  1. brew install swiftlint

XCode配置

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

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

多Xcode配置

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

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

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

自定义配置

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

新建自定义配置文件

打开终端, cd 到项目根目录下

输入: touch .swiftlint.yml

可以自定义的常用配置:

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

忽略引入的第三方库

在.swiftlint.yml文件中输入

  1. excluded:
  2. - Pods

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

在.swiftlint.yml文件中输入

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

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

SwiftLint:代码规范检查工具介绍的更多相关文章

  1. 玩转Eclipse — 自动代码规范检查工具Checkstyle

    大项目都需要小组中的多人共同完成,但是每个人都有自己的编码习惯,甚至很多都是不正确的.那么如何使小组所有开发人员都遵循某些编码规范,以保证项目代码风格的一致性呢?如果硬性地要求每个开发人员在提交代码之 ...

  2. [原创]Java静态代码检查工具介绍

    [原创]Java静态代码检查工具介绍 一  什么是静态代码检查? 静态代码分析是指无需运行被测代码,仅通过分析或检查源程序的语法.结构.过程.接口等来检查程序的正确性,找出代码隐藏的错误和缺陷,如参数 ...

  3. 扩展阿里p3c实现自定义代码规范检查

     前段时间fastjson报出了漏洞,只要打开setAutoType特性就会存在风险,自己测试环境的一个项目被揪出来了-_-!.虽然改动很小,但就是觉得憋屈.fastjson还是挺好的,想着禁用的话太 ...

  4. Java-idea-Checkstyle自动化代码规范检查

    一.概述 CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具.它能够自动化代码规范检查过程,从而使得开发人员从这项重要,但是枯燥的任务中解脱 ...

  5. Jenkins系列——使用checkstyle进行代码规范检查【升级版】

    1.背景 在<Jenkins系列——使用checkstyle进行代码规范检查>一文中完成了ant实现代码规范检查的例子.但存在以下缺陷: 每个作业都需要配置一个不同的checkstyle ...

  6. swiftlint swift代码规范检查神器

    一大堆的你为什么要用swiftlint,你为什么要codereview,swiftlint到底在做什么,就不多说了,没意义,他就是帮助你写出规范漂亮代码的神器! 安装 官方提供了三种安装的方式 hom ...

  7. 四种java代码静态检查工具

    [转载]常用 Java 静态代码分析工具的分析与比较 转载自 开源中国社区 http://www.oschina.net/question/129540_23043       1月16日厦门 OSC ...

  8. python代码风格检查工具──pylint

    pylint是一个python代码检查工具,可以帮助python程序员方便地检查程序代码的语法和风格,通过这个工具,可以使你的python代码尽量保持完美,哈哈.具体可以检查什么东西呢?比如你写了 f ...

  9. Sonarqube C#静态代码规范检查(一)

    使用说明 代码规范对于每个开发来说重要也重要,说不重要其实也没那么重要,简单点的vs的code analysis也能提供很多的建议,重量级一点的Resharper不仅能提供建议,还提供了更方便快捷的一 ...

随机推荐

  1. WPF太阳、地球、月球运动轨迹模拟

    原文:WPF太阳.地球.月球运动轨迹模拟 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/yangyisen0713/article/details/ ...

  2. CefSharp For WPF自定义右键菜单栏

    原文:CefSharp For WPF自定义右键菜单栏 初始化 <!--浏览器--> <cefSharpWPF:ChromiumWebBrowser Name="webBr ...

  3. javascript-DOM学习

    javascript-DOM学习 DOM document(html) object modle document对象(DOM核心对象) dom能用来干什么? 对html元素的样式(颜色.大小.位置等 ...

  4. Java Policy

    # What The policy for a Java™ programming language application environment (specifying which permiss ...

  5. 【windows】常见的系统环境变量,如%appdata%表示什么意思

    原文:[windows]常见的系统环境变量,如%appdata%表示什么意思 1.介绍 %appdata%就代表了C:Users\用户名\AppData\Roaming这个文件夹. “%”是系统变量的 ...

  6. c# Ajax后台动态分页

    创建WebPager类 public static class WebPager { public static string WebPagerAjax(string Idn, bool IsShor ...

  7. 2017-01-11&2017-01-12

    江门警情协作需求. 连续两天搞到超过十点半,所以今天来一并写一下这两天的记录吧. 1.11号明显的进展算是把通讯调通了,还有重新把协作请求的界面按一开始的设想嵌到主界面中. 2.今天12号貌似进展要大 ...

  8. JQuery 判断checkbox是否选中,checkbox全选,获取checkbox选中值

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. 2013 lost connection to mysql server during query

    navicat 导入sql大脚本到mysql数据库报错 解决办法: 修改mysql.ini配置文件: max_allowed_packet=256M wait_timeout=5000

  10. Android零基础入门第27节:正确使用padding和margin

    原文:Android零基础入门第27节:正确使用padding和margin 前面两期我们学习了LinearLayout线性布局的方向.填充模型.权重和对齐,那么本期我们来学习LinearLayout ...