iOS 代码格式化管理

虽然在项目创建和团队组建的初期,我们就把公共约定以及一些规范定下来了,并且由于我们的代码是通过Git来做版本控制的,web上直接就支持Markdown格式的readme文件,可以随时看到最新的版本,但是这种规范只能依靠个人的意识,或者通过代码Review来解决,而且做代码Review的时候,你也不好意思总是写上一堆诸如“这里要加个空格”、“那里要加上换行”的评论吧?如果不管,久而久之,会因为每个人的习惯不同,代码呈现出多种风格,看起来也不像一个成熟团队做出来的产品。

为了弥补Xcode代码格式化的短板,我们选择了引入一个第三方的插件:CLangFormat

具体流程:

1. 先安装Package Manager(也可以跳过,看第2步)

官网地址:https://github.com/supermarin/Alcatraz

安装方法:在终端输入:curl -fsSL https://raw.github.com/supermarin/Alcatraz/master/Scripts/install.sh | sh

安装成功后在Xcode的Window里能看到“Package Manager”

2. 安装CLangFormat

GitHub地址:https://github.com/travisjeffery/ClangFormat-Xcode

安装方法:直接在Package Manager里搜索并安装,如果不想安装Package Manager的话,就直接把上面那个GitHub中的代码Clone下来,在Xcode中编译、运行,然后重启Xcode即可。

3.  配置CLangFormat

虽然CLangFormat本身就内置了一些标准化的代码格式化方案,但是同样可以自定义,我们就采用了自定义的方法。

具体的,在工程目录或者workspace目录下创建一个".clang-format"文件,添加类似于以下内容的参数:

# 基础样式
BasedOnStyle: LLVM

# 缩进宽度
IndentWidth: 4

# 圆括号的换行方式
BreakBeforeBraces: Attach

# 支持一行的if
AllowShortIfStatementsOnASingleLine: true

# switch的case缩进
IndentCaseLabels: true

# 针对OC的block的缩进宽度
ObjCBlockIndentWidth: 4

# 针对OC,属性名后加空格
ObjCSpaceAfterProperty: true

# 每行字符的长度
ColumnLimit: 0

# 注释对齐
AlignTrailingComments: true

# 括号后加空格
SpaceAfterCStyleCast: true

然后在Xcode的“Edit”->“CLang Format”中选中“File”,并让倒数第二行显示“Disable Format On Save”(后面这个看实际情况,需不需要在文件随时保存的时候格式化)。

附上CLangFormat的所有可用参数文档:http://clang.llvm.org/docs/ClangFormatStyleOptions.html

时间: 2024-10-13 18:42:24

iOS 代码格式化管理的相关文章

iOS插件详解之----CLangFormat(代码格式化管理插件)(2016.1.12王彬)

iOS插件详解之----CLangFormat(代码格式化管理)(2016.1.12王彬) 虽然在项目创建和团队组建的初期,我们就把公共约定以及一些规范定下来了,并且由于我们的代码是通过Git来做版本控制的,web上直接就支持Markdown格式的readme文件,可以随时看到最新的版本,但是这种规范只能依靠个人的意识,或者通过代码Review来解决,而且做代码Review的时候,你也不好意思总是写上一堆诸如“这里要加个空格”.“那里要加上换行”的评论吧?如果不管,久而久之,会因为每个人的习惯不

ios代码分块管理的一些方法

ios代码分块管理的一些方法 by 伍雪颖 内联的写法: self.backgroundView = ({ UIView *view = [[UIView alloc] initWithFrame:self.view.bounds]; view.backgroundColor = [UIColor redColor]; view.alpha = 0.8f; view; }); [self.view addSubview:self.backgroundView]; block的写法: self.b

iOS 代码格式化插件Clang-Format

参考:http://blog.csdn.net/zhangao0086/article/details/42872263 最近笔者在接手同事的项目,发现项目经过多人手后,每人个的代码格式风格又有点差异导致代码显示很乱,Google了一番,发现有一个iOS代码格式插件Clang-Format,相当的给力. 配置CLangFormat 虽然CLangFormat本身就内置了一些标准化的代码格式化方案,但是同样可以自定义,我们就采用了自定义的方法. 具体的,在工程目录或者workspace目录下创建一

iOS开发-xCode代码格式化xAlign

xCode默认是可以进行代码格式化的,能满足基础开发需求,如果想要个性一些代码对齐方式宏对齐,等号对齐,属性对齐,xAlign就提供了以上三种功能,参考文中效果~ 基础效果 等号对齐: 属性对齐: 宏对齐: 插件安装 1.控制台命令 curl -fsSL http://qfi.sh/XAlign/build/install.sh | sh 2.手动安装下载插件包:XAlign.xcplugin,将下载的插件放在~/Library/Application Support/Developer/Sha

如何把iOS代码编译为Android应用

新闻 <iPhone 6/6 Plus中国销量曝光:单月销量650万>:据iSuppli Corp.中国研究总监王阳爆料,iPhone 6和iPhone 6 Plus在国内受欢迎的情况大大超过预期,苹果在中国的单月销量在11月超过了650万台,全年在中国的销量将超过4000万台. 教程 < Date parsing performance on iOS>:文章介绍了一个关于格式化时间的”黑科技“,作者使用 sqlite 替换 NSDateFormatter,提高了16倍的转换效率.

说说iOS与内存管理(上)

http://www.cocoachina.com/ios/20150625/12234.html 说起内存管理,看似老生常谈,而真正掌握内存管理的核心其实并不简单.ARC/MRR以及“谁分配谁就负责释放”这种基本原则是很重要的,但不是本文要讨论的重点.之前本人还没在小站发过相关的文章,本篇文章中,我本人是想结合实际开发和调试中遇到的一些细节问题,来谈谈iOS的内存管理内在机制和调试方法. 上一篇文章已经是4月份的了,时间飞快又过去了好久,小站5月份没有文章更新,罪过罪过.最近小站的站长我又转换

[编写高质量iOS代码的52个有效方法](十)Grand Central Dispatch(GCD)

[编写高质量iOS代码的52个有效方法](十)Grand Central Dispatch(GCD) 参考书籍:<Effective Objective-C 2.0> [英] Matt Galloway 先睹为快 41.多用派发队列,少用同步锁 42.多用GCD,少用performSelector系列方法 43.掌握GCD及操作队列的使用时机 44.通过Dispatch Group机制,根据系统资源状况来执行任务 45.使用dispatch_once来执行只需要运行一次的线程安全代码 46.不

我的女神——简洁实用的iOS代码调试框架

我的女神--简洁实用的iOS代码调试框架 一.引言 这篇博客的起源是接手了公司的一个已经完成的项目,来做代码优化,项目工程很大,并且引入了很多公司内部的SDK,要搞清楚公司内部的这套框架,的确不是件容易的事,并且由于这个项目是多人开发的,在调试阶段会打印出巨量的调试信息,使得浏览有用信息变的十分困难,更加恐怖的是,很多信息是SDK中的调试打印,将这些都进行注销是非常费劲甚至不可能的事,于是便有了这样一些需求:首先,我需要清楚了解各个controller之间的跳转关系,需要快速的弄清每个stroy

编写高质量的iOS代码--Effective Objective-C 2.0 读书笔记

编写高质量的iOS代码--Effective Objective-C 2.0 读书笔记 这本书年初刷完,感觉不错,介绍了很多小点,都是平日不怎么关注的. 第1章 熟悉Objective-C 这章没什么好介绍 第1条:了解Objective-C语言的起源 第2条:在类的头文件中尽量少引入其他头文件 第3条:多用字面量语法,少用与之等价的方法 第4条:多用类型常量,少用#define预处理指令 要理解为啥要少用#define预处理指令. 然后具体用哪个, 自己定吧 第5条:用枚举表示状态.选项.状态