swiftlint swift代码规范检查神器
一大堆的你为什么要用swiftlint,你为什么要codereview,swiftlint到底在做什么,就不多说了,没意义,他就是帮助你写出规范漂亮代码的神器!
- 安装
官方提供了三种安装的方式
- homebrew
brew install swiftlint
- cocoapods
pod 'SwiftLint'
- pkg安装
https://github.com/realm/SwiftLint/releases/tag/0.24.2
使用:
整合 SwiftLint 到 Xcode 体系中去从而可以使警告和错误显示到 IDE 上,只需要在 Xcode 中添加一个新的“Run Script Phase”并且包含如下代码即可:
if which swiftlint >/dev/null; then
swiftlint
else
echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi
或者,脚本看起来应该像这样如果你已经通过 CocoaPods 安装了 SwiftLint:
"${PODS_ROOT}/SwiftLint/swiftlint"
Rules:
swiftlint整合了大约70中的代码规范,你可以选择性的在代码中使用;
我们将目录切换到工程的根目录之下,然后敲击如下命令:
swiftlint autocorrect
然后我们就会发现,所有的空格符Warning都消失了。这都得益于我们刚刚所进行的命令行操作,它会将已知的能够自动修复的Error和Warning都自动修复,大大的减轻了我们的工作量。
但是又出现了一个问题,在项目的根目录之下执行自动纠正,SwiftLint会将Pods文件夹中的Swift文件也一起纠正了,第三方的框架原则上能不动就不动,那么我们该怎么办呢?
这个时候就需要.swiftlint.yml文件了。那么这是一个什么文件呢?在使用SwiftLint的时候,很多时候我们会碰到一些自定义的规则需求,这个时候就需要.swiftlint.yml来解决问题了。
.swiftlint.yml
所谓的.swiftlint.yml其实就是SwiftLint的一个配置文件,我们可以通过这个配置文件来修改约束的规则,以此达到自定义的效果。
创建.swiftlint.yml必须严格按照命名创建,Mac可以直接使用文本编辑器创建,Mac默认不允许创建以.开头的文件名,所以建议大家使用命令行创建文件,然后编辑即可:
touch .swiftlint.yml
创建好之后是不可见的,我们需要设置隐藏文件的可见:
显示:defaults write com.apple.finder AppleShowAllFiles -bool true
隐藏:defaults write com.apple.finder AppleShowAllFiles -bool false
设置好之后重启finder即可看到我们创建的.swiftlint.yml 文件;
使用的时候,将.swiftlint.yml 放在需要执行swiftlint工程的根目录中,整个工程会执行.swiftlint.yml的配置;如果在二级目录同样配置了.swiftlint.yml文件,则会执行二级目录下的配置;
创建一个怎样的.swiftlint.yml文件?:
这个要根据个人的习惯,需要执行哪些约束以及不执行哪些约束,在哪些文件执行哪些文件不执行,下面是我的一个配置,供参考:
included:
- JCFC_Loan_Swift
excluded:
- Pods
cyclomatic_complexity:
warning:
error:
disabled_rules:
- trailing_newline
- opening_brace
- empty_count
- comma
- colon
- force_cast #强制转换
- type_name
# - trailing_semicolon
# - force_try
# - function_body_length
# - nesting
- variable_name
# - operator_whitespace
# - control_statement
# - legacy_constant
- line_length
# - return_arrow_whitespace
# - trailing_whitespace
# - closing_brace
# - statement_position
# - type_body_length
# - todo
# - legacy_constructor
# - valid_docs
# - missing_docs
# - file_length
# - leading_whitespace
identifier_name:
excluded: id
我们也可以在类内部执行注释来屏蔽某一条约束等,具体操作格式如下
// swiftlint:disable colon
let noWarning :String = "" // No warning about colons immediately after variable names!
// swiftlint:enable colon
let hasWarning :String = "" // Warning generated about colons immediately after variable names
好了,开始你的约束之路吧!
swiftlint swift代码规范检查神器的更多相关文章
- SwiftLint:代码规范检查工具介绍
Swift-CodeStyle Checker:SwiftLint 介绍: SwiftLint 是一个用于强制检查 Swift 代码风格和规定的一个工具,基本上以 GitHub's Swift 代码风 ...
- Jenkins系列——使用checkstyle进行代码规范检查【升级版】
1.背景 在<Jenkins系列——使用checkstyle进行代码规范检查>一文中完成了ant实现代码规范检查的例子.但存在以下缺陷: 每个作业都需要配置一个不同的checkstyle ...
- Java-idea-Checkstyle自动化代码规范检查
一.概述 CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具.它能够自动化代码规范检查过程,从而使得开发人员从这项重要,但是枯燥的任务中解脱 ...
- 扩展阿里p3c实现自定义代码规范检查
前段时间fastjson报出了漏洞,只要打开setAutoType特性就会存在风险,自己测试环境的一个项目被揪出来了-_-!.虽然改动很小,但就是觉得憋屈.fastjson还是挺好的,想着禁用的话太 ...
- SwiftLint——Swift代码检查及自动格式化工具
某软不给力,正在做的UWP项目停工了.官方说法是要等到RS2发布新的VOIP架构,再看看是不是给某软面子.虽然Beta用户中发出了几点愤怒的声音,但是木有用.有用的只能是某软的Skype for bu ...
- 玩转Eclipse — 自动代码规范检查工具Checkstyle
大项目都需要小组中的多人共同完成,但是每个人都有自己的编码习惯,甚至很多都是不正确的.那么如何使小组所有开发人员都遵循某些编码规范,以保证项目代码风格的一致性呢?如果硬性地要求每个开发人员在提交代码之 ...
- IDEA 阿里巴巴代码规范检查插件
1.问题概要 大家都想写出规范的代码,可规范的标准是什么勒,估计每个人心中的标准都不是完全一致的 在分工合作越来越精细化的时代,我们需要一个最大程度接近公认的规范,这里我们以阿里巴巴的代码规范作为参考 ...
- Jenkins系列——使用checkstyle进行代码规范检查
1.目标 通过jenkins使用checkstyle对代码进行规范检查并生成html报告. 构建采用shell. 2.环境 checkstyle5.7(如果是Linux版本选用tar.gz格式) ap ...
- Sonarqube C#静态代码规范检查(一)
使用说明 代码规范对于每个开发来说重要也重要,说不重要其实也没那么重要,简单点的vs的code analysis也能提供很多的建议,重量级一点的Resharper不仅能提供建议,还提供了更方便快捷的一 ...
随机推荐
- lua --- 函数的本质
1.lua中的函数是带有此法界定的第一类值. 2.创建一个函数的过程,本质上就是一个创建赋值语句的过程. 常见的创建函数的过程: function fun() print("Hello wo ...
- 第 8 章 容器网络 - 049 - 准备 Overlay 网络实验环境
overlay环境准备 在docker-machine (10.12.31.21)的基础上 docker主机 host1 (10.12.31.22) host2 (10.12.31.23) 在dock ...
- 第 3 章 镜像 - 013 - Dockerfile 构建镜像
第一个 Dockerfile FROM ubuntu RUN apt-get update && apt-get install -y vim 运行 docker build 命令构建 ...
- lumerical中DEVICE和MODE模块的交互使用(真的很干货!!可以自信的说网上绝对找不到比我更详细的步骤了)
几个脚本文件很重要! Lumerical仿真流程: 一.DEVICE: (1).建模并且运行完之后,在脚本提示符下键入以下脚本行以运行plotDopingProfile.lsf如图1(文件名如果索引不 ...
- liunx进程管理之进程介绍
关于进程 process ====================================================================================Wha ...
- Linux简单了解
Linux内核最初只是由芬兰人李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的. Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和U ...
- day 7 -10 集合,文本、文件操作,函数
day7 一.回顾 1.列表和字典在循环里边尽量不要删除元素,很麻烦 2.元组:如果元组里边只有一个逗号,且不加逗号,次元素是什么类型,就是什么类型. 二.集合 ''' 集合:可变的数据类型,它里边的 ...
- Xor-MST CodeForces - 888G (最小生成树,分治)
大意: n结点无向完全图, 给定每个点的点权, 边权为两端点异或值, 求最小生成树
- IDEA如何导入一个web+maven以及如何运行项目
IDEA如何导入一个web+maven以及如何运行项目 然后就可以运行你的maven项目了....
- Hadoop--单点故障修复
nameNode单点故障修复 1.启动虚拟机,启动集群 此时我们将主机hadoop1关机(断掉主机),开始抢救: 1.使用 秘书(secondaryNameNode),成功率不是100% (这里我 ...