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
这是一个基础版本,随着项目的开展,可分阶段将规则逐渐严格起来
SwiftLint:代码规范检查工具介绍的更多相关文章
- 玩转Eclipse — 自动代码规范检查工具Checkstyle
大项目都需要小组中的多人共同完成,但是每个人都有自己的编码习惯,甚至很多都是不正确的.那么如何使小组所有开发人员都遵循某些编码规范,以保证项目代码风格的一致性呢?如果硬性地要求每个开发人员在提交代码之 ...
- [原创]Java静态代码检查工具介绍
[原创]Java静态代码检查工具介绍 一 什么是静态代码检查? 静态代码分析是指无需运行被测代码,仅通过分析或检查源程序的语法.结构.过程.接口等来检查程序的正确性,找出代码隐藏的错误和缺陷,如参数 ...
- 扩展阿里p3c实现自定义代码规范检查
前段时间fastjson报出了漏洞,只要打开setAutoType特性就会存在风险,自己测试环境的一个项目被揪出来了-_-!.虽然改动很小,但就是觉得憋屈.fastjson还是挺好的,想着禁用的话太 ...
- Java-idea-Checkstyle自动化代码规范检查
一.概述 CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具.它能够自动化代码规范检查过程,从而使得开发人员从这项重要,但是枯燥的任务中解脱 ...
- Jenkins系列——使用checkstyle进行代码规范检查【升级版】
1.背景 在<Jenkins系列——使用checkstyle进行代码规范检查>一文中完成了ant实现代码规范检查的例子.但存在以下缺陷: 每个作业都需要配置一个不同的checkstyle ...
- swiftlint swift代码规范检查神器
一大堆的你为什么要用swiftlint,你为什么要codereview,swiftlint到底在做什么,就不多说了,没意义,他就是帮助你写出规范漂亮代码的神器! 安装 官方提供了三种安装的方式 hom ...
- 四种java代码静态检查工具
[转载]常用 Java 静态代码分析工具的分析与比较 转载自 开源中国社区 http://www.oschina.net/question/129540_23043 1月16日厦门 OSC ...
- python代码风格检查工具──pylint
pylint是一个python代码检查工具,可以帮助python程序员方便地检查程序代码的语法和风格,通过这个工具,可以使你的python代码尽量保持完美,哈哈.具体可以检查什么东西呢?比如你写了 f ...
- Sonarqube C#静态代码规范检查(一)
使用说明 代码规范对于每个开发来说重要也重要,说不重要其实也没那么重要,简单点的vs的code analysis也能提供很多的建议,重量级一点的Resharper不仅能提供建议,还提供了更方便快捷的一 ...
随机推荐
- WPF 3D 平移模型+动画(桥梁检测系统)
原文:WPF 3D 平移模型+动画(桥梁检测系统) 关于WPF 3D,网上有很多旋转的例子,但是关于平移的例子并不是太多.本文并非WPF 3D扫盲篇,因此需要对WPF 3D有一定了解,至少知道View ...
- 注册.NET Framework 到IIS服务器
一.注册.NET 4.0 32位的Windows:--------------------------------------------------------------------------- ...
- ASP UserInfoList 方法1
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="UserInfoList.a ...
- hexo-theme-next
Hexo Next github主页:https://github.com/iissnan/hexo-theme-next 官网地址:http://theme-next.iissnan.com/ 一篇 ...
- Android之Log封装
blog原文地址:http://yuxingxin.com/2015/10/26/AndroidLog/ Github:https://github.com/fallblank/CodeEssay
- RedHat 7.3+ORACLE 12c RAC 使用udev绑定磁盘
在RedHat 7中,很多命令发生了改变,其中使用udev对磁盘绑定的命令也发生了变更,不再使用start_udev,而是改为了udevadm,下面具体介绍如何使用udev对磁盘进行绑定,这里对6和7 ...
- 压缩大文件时如何限制CPU使用率?----几种CPU资源限制方法的测试说明
一.说明 我们的MySQL实例在备份后需要将数据打包压缩,部分低配机器在压缩时容易出现CPU打满导致报警的情况,需要在压缩文件时进行CPU资源的限制. 因此针对此问题进行了相关测试,就有了此文章. 二 ...
- JS解析Json 数据并跳转到一个新页面,取消A 标签跳转
JS解析Json 数据并跳转到一个新页面,代码如下 $.getJSON("http://api.cn.abb.com/common/api/staff/employee/" + o ...
- Collection was modified; enumeration operation may not execute.的异常处理
Collection was modified; enumeration operation may not execute.的异常处理 在运行程序时遇到这样一段异常,仔细检查后发现是使用Foreac ...
- QT 设置应用程序图标和可执行程序图标(另有setWindowTitle和setWindowIcon)
首先准备个ICO图标.例如:myappico.ico用记事本新建个文件里面就写一行:IDI_ICON1 ICON DISCARDABLE "/images/myap ...