Xcode代码格式化教程,可自定义样式
来源:iOS_小松哥
链接:http://www.jianshu.com/p/a725e24d7835
为什么要格式化代码
当团队内有多人开发的时候,每个人写的代码格式都有自己的喜好,也可能会忙着写代码而忽略了格式的问题。
在之前,我们可能会写完代码后,再一点一点去调格式,很浪费时间。
有了ClangFormat插件后,就可以一键把代码格式化成统一的样式,不仅节省了时间,也使得代码更规范。我们还可以定制自己喜欢的样式。
安装ClangFormat插件
可以手动安装(下载GitHub项目编译),也可以用Alcatraz(插件管理器)安装,都很简单,具体可以看我的文章《Xcode方便开发的插件推荐》。
装好后是下图这样的,我们可以看到它内置了LLVM、Google、Chromium、Mozilla、WebKit五种样式。

使用方法
通过菜单可以看到,它可以格式化选中的文字们,或者格式化选择的文件们。下面演示下LLVM样式下的格式化:

LLVM样式下的格式化
使用自定义样式
1、需要先把上面菜单里面的File选中,因为我们需要让它用我们自己写的配置文件。

选中File
2、在工程目录下创建配置文件.clang-format文件并编辑。.clang-format文件用的是YAML格式:里面要用的字段在后面会详细解释。

让一段代码不受格式化影响
设置快捷键
首先你可以选中菜单中的 Enable Format On Sava,把它点Disable Format On Sava,这样以后每次按⌘+S保存文件时就可以自动格式化了。

我们也可以给一些菜单设置快捷键,使用的时候不用每次去选择各级菜单了。比如我们给Format Selected Text设置快捷键:

设置格式化快捷键
你也可以为其他菜单设置快捷键,其实呢,我用Format Selected Text的时候很少,每次都是想格式化的时候直接⌘+S就行了哈哈哈。
配置文件中属性的含义讲解
下面说一些配置文件的常用的参数介绍,其他的可以看官方文档:Clang-Format Style Options,其中小括号内代表他需的是什么类型的值。
BasedOnStyle (string)
基于哪种样式。除了文件中写出的定制属性外,别的没定制的属性都默认用这种样式的。
可选值有五种:
LLVM:一种遵循LLVM coding standards的样式。
Google:一种遵循Google’s C++ style guide的样式。
Chromium:一种遵循Chromium’s style guide的样式。
Mozilla:一种遵循Mozilla’s style guide的样式。
WebKit:一种遵循WebKit’s style guide的样式。
AccessModifierOffset (int)
访问修饰词 (比如public) 前面额外需要加的缩进长度。默认为0。
AlignConsecutiveAssignments (bool)
如果是true,把连续的赋值操作按=对齐,默认为false。

AlignConsecutiveDeclarations-true
AlignConsecutiveDeclarations (bool)
如果是true,把连续行的变量名对齐。默认为false。

AlignConsecutiveDeclarations-true
AlignTrailingComments (bool)
如果是true,对齐尾部注释。默认为false。

AlignTrailingComments-true
AllowShortCaseLabelsOnASingleLine (bool)
如果是true, 允许一个case在一行写完,默认为false。

AllowShortCaseLabelsOnASingleLine-true
BreakBeforeBraces (string)
大括号前面是否换行,具体可选值看文档。一般用Allman,代表所有大括号都换行。

BreakBeforeBraces-Allman
ColumnLimit (unsigned)
每行最多多少个字符,0不限制
IndentWidth (unsigned)
缩进宽度,默认为2,但是我们一般设置为4。

IndentWidth-4
IndentCaseLabels (bool)
switch的case缩进宽度,一般用true。默认为false,case会和switch对齐。
KeepEmptyLinesAtTheStartOfBlocks (bool)
是否保留block里面开始的空行们。默认为true。

KeepEmptyLinesAtTheStartOfBlocks-true
MaxEmptyLinesToKeep (unsigned)
最多可以有连续几行空行,默认为1。

MaxEmptyLinesToKeep-1
ObjCBlockIndentWidth
OC的block里面的缩进宽度,默认为4。
ObjCSpaceAfterProperty (bool)
OC里面,是否在@property后加空格。默认为false。

ObjCSpaceBeforeProtocolList-true
PointerAlignment (string)
指针的位置。默认为Right。
可选值:
Left:NSString* name
Middle:NSString * name
Right:NSString *name
SpaceBeforeAssignmentOperators (bool)
= 前面是否有空格。默认为true。
SpaceBeforeParens (string)
是否在(前面加空格。默认ControlStatements。
可选值:
Never: 从来不在(前面加空格。
ControlStatements:在控制语句(for/if/while…)的(前面加空格。
Always:总会在(前面加空格。

SpaceBeforeParens-ControlStatements
SpaceInEmptyParentheses (bool)
是否在()里面插入一个空格。默认false。
SpacesBeforeTrailingComments (unsigned)
在尾部//注释前面加几个空格。

SpacesBeforeTrailingComments-3
SpacesInAngles (bool)
是否在后边和>前边插入空格,默认为false。

SpacesInAngles-true
SpacesInContainerLiterals (bool)
@[]里面,是否在 [ 后和 ] 前加空格。默认为true。

SpacesInContainerLiterals-true
SpacesInParentheses (bool)
是否在(后面和)前面加空格,默认为false。

SpacesInParentheses-true
当项目里面有多种语言时,我们可以分别设置样式:
---
# 我们默认用 LLVM 样式, 缩进宽度为4。
BasedOnStyle: LLVM
IndentWidth: 4
---
Language: Cpp
# C++ 设置星号左对齐。
PointerAlignment: Left
---
Language: JavaScript
# JavaScript 每行字符限制设置为100。
ColumnLimit: 100
---
Language: Proto
# 不格式化Proto文件。
DisableFormat: true
...
这个是我在用的.clang-format文件。大家可以下载下来自己修改一下再用。
Xcode代码格式化教程,可自定义样式的更多相关文章
- 超详细的Xcode代码格式化教程,可自定义样式。
超详细的Xcode代码格式化教程,可自定义样式. 为什么要格式化代码 当团队内有多人开发的时候,每个人写的代码格式都有自己的喜好,也可能会忙着写代码而忽略了格式的问题.在之前,我们可能会写完代码后,再 ...
- 超详细的Xcode代码格式化教程,可自定义样式
为什么要格式化代码 当团队内有多人开发的时候,每个人写的代码格式都有自己的喜好,也可能会忙着写代码而忽略了格式的问题. 在之前,我们可能会写完代码后,再一点一点去调格式,很浪费时间. 有了ClangF ...
- iOS开发-xCode代码格式化xAlign
xCode默认是可以进行代码格式化的,能满足基础开发需求,如果想要个性一些代码对齐方式宏对齐,等号对齐,属性对齐,xAlign就提供了以上三种功能,参考文中效果~ 基础效果 等号对齐: 属性对齐: 宏 ...
- [转]Xcode的快捷键及代码格式化
Xcode比较常用的快捷键,特别是红色标注的,很常用.1. 文件CMD + N: 新文件CMD + SHIFT + N: 新项目CMD + O: 打开CMD + S: 保存CMD+OPt+S:保存所有 ...
- Xcode的快捷键及代码格式化
1. 文件CMD + N: 新文件 CMD + SHIFT + N: 新项目CMD + O: 打开 CMD + S: 保存 CMD+OPt+S:保存所有文件 CMD + SHIFT + S: 另存为 ...
- Prettier-Code Formater代码格式化插件使用教程
目录 Prettier-Code Formater代码格式化插件使用教程 插件的安装 插件的使用 方式一: 配置VScode代码格式化后, 结合VScode快捷键使用 方式二: CLI中使用命令行的方 ...
- ModernUI教程:如何从MUI样式中派生自定义样式
下面的步骤用来说明怎么样去创建一个基于MUI的自定义样式.让我们创建一个字体颜色显示为红色的按钮样式. 可视化显示如下: 因为我们并没有明确生命继承自MUI风格,它还是采用WPF的默认风格.我们需要设 ...
- Xcode 快捷键及代码格式化
按住apple键点击类名就可以定位到这个类中查看相关定义(在日后的开发中我们会经常这么来做,毕竟要记住iOS开发中所有的API是不现实的,有些API我们可以通过这种方法来查找) PS:下面都是网上百度 ...
- ActionBar官方教程(11)自定义ActionBar的样式(含重要的样式属性表及练习示例)
Styling the Action Bar If you want to implement a visual design that represents your app's brand, th ...
随机推荐
- 新工程软连接到原来的工程的out目录后,可以直接编译模块
P508B_App_old_developer/alps$ ln -s ../../P508B_App/alps/out 连接后,第一次编译后要加分支 ./mk hedy89_we_jb2 mm p ...
- SQL Server 字符串函数
字符串函数 在开发T-SQL时,经常会需要对字符串进行各种各样的操作,下面介绍常用的字符串函数. 1.获取字符的ASCII码 ASCII ASCII码是对字符的标准编码.要获取字符的ASCII码就可以 ...
- 第三百三十三天 how can I 坚持
为什么感觉那么累呢,老想睡觉. 晚上勇江请吃饭,其实内心是拒绝的,好伐,老想回家尽快睡觉. 今天说是要搞oauth认证的东西,看的一头雾水. 想的太简单了.其实也不难.apache的东西,都封装好的. ...
- UVALive 7455 Linear Ecosystem (高斯消元)
Linear Ecosystem 题目链接: http://acm.hust.edu.cn/vjudge/contest/127401#problem/B Description http://7xj ...
- pureMVC学习之一
//1var MainWindow: TMainWindow;begin Application.Initialize; Application.MainFormOnTaskbar := Tru ...
- JDBC 常用驱动类及url格式
1. oracle <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</ ...
- Apache服务器配置默认首页文件名和网站路径
默认首页的配置: 第一种:直接修改apache服务器的配置文件./conf/httpd.conf中的DirectoryIndex,如:(项目web以index.php为首页) <IfModule ...
- sessionStorage 、localStorage 和 cookie 之间的区别
sessionStorage 和 localStorage 是HTML5 Web Storage API 提供的,可以方便的在web请求之间保存数据.有了本地数据,就可以避免数据在浏览器和服务器间不必 ...
- 用html5的canvas生成图片并保存到本地
原文:http://www.2cto.com/kf/201209/156169.html 前端的代码: [javascript] function drawArrow(angle) { ...
- 不间断图片滚动JS
(从已经死了一次又一次终于挂掉的百度空间人工抢救出来的,发表日期 2014-05-07) MSClass是一款通用不间断滚动JS封装类,几乎支持目前所有流行风格的图片或文字滚动,横向/竖向/连续/间断 ...