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 ...
随机推荐
- html5 canvas防微博旋转
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- [iOS微博项目 - 2.4] - 重新安排app启动步骤
github: https://github.com/hellovoidworld/HVWWeibo A.app启动步骤 1.加入了授权步骤之后,最先要判断app内是否已经登陆了账号 2.在程序启 ...
- 分享吉林大学机械科学与工程学院,zhao jun 博士的Halcon学习过程及知识分享
分享吉林大学机械科学与工程学院,zhao jun 博士的Halcon学习过程及知识分享 全文转载zhao jun 博士的新浪博客,版权为zhaojun博士所有 原文地址:http://blog.sin ...
- Unity3d:加载Format是RGB24位的图片失败(加载图片显示问号)
问题描述:加载图片显示是个红色的问号,调试发现,Texture的Format=RGB24的都加载失败,ARGB32位的都能成功,按照常规,首先去度娘,看是否有人遇到和我同样的问题,结果一无所获.将用N ...
- ANSI_NULLS 和 QUOTED_IDENTIFIER
1 ANSI_NULLS 当 SET ANSI_NULLS 为 ON 时,对空值进行等于 (=) 或不等于 (<>) 比较时取值为 FALSE 例如:SELECT * from t ...
- 【转】Android中View的绘制过程 onMeasure方法简述 附有自定义View例子
Android中View的绘制过程 当Activity获得焦点时,它将被要求绘制自己的布局,Android framework将会处理绘制过程,Activity只需提供它的布局的根节点. 绘制过程从布 ...
- OC:属性、点语法、KVC
//属性的属性 属性定义在一个 .h文件里,在这个.h文件里可以定义实例变量(就是这个类的特征),也可以通过 @protery(属性约束关键字) 属性名字类型 属性名 来定义一些属性,在prope ...
- Codeforces Gym 100531G Grave 水题
Problem G. Grave 题目连接: http://codeforces.com/gym/100531/attachments Description Gerard develops a Ha ...
- Oracle 数据文件管理
1.手工改变数据文件的大小 SQL>conn / as sysdba SQL>Createtablespace exampletb Datafile 'E:\ examp01.dbf' s ...
- mysqldump 安全 --skip-add-drop-table
[root@localhost data]# mysqldump -uroot --master-data=2 -p --single-transaction --skip-add-drop-ta ...