使用Uncrustify强化Xcode的源代码自动格式化功能

Xcode的源代码自动格式化比起Eclipse和Visual Studio(尤其是再挂上Visual Assist X)来说可以说是比较弱智,除了Structure里的简单Re-Indent外就没有什么能美化代码格式的方法了,今天由于实在忍受不了默认的大括号位置,决定找找有没有能代码格式美化的方法。

首先,看了下Xcode的偏好设置,果然没有像Eclipse那样自带设置代码格式的选项,于是开始查找有没有像AStyle之类的外挂工具能整合进Xcode用的,最后,幸运的发现了这个叫Uncrustify的工具,看网上很多人提到用这个配合Xcode进行源代码格式化处理。起初找到的整合方式是做成Services在Xcode中调用,并可以设置快捷键,如这里提到的方法:http://by-igotit.com/2012/03/auto-format-objective-c-code-in-xcode-with-uncrustify.html,刚想实验一下,又发现了github上的一个封装好的插件项目:https://github.com/benoitsan/BBUncrustifyPlugin-Xcode,比较了一下,感觉前者做法不如后者的Xcode插件方式专业,当然后者的项目页上提到只支持Xcode 4.6以上(包括目前还在beta中得5),不过也提到了有支持3的fork,不过我想现在应该没什么人还在用3了吧。

按照说明的方法下载下zip的项目,直接编译就会安装好插件了,然后重启Xcode就能看到Edit菜单多了3个新的选项:Uncrustify Selected Files, Uncrustify Active File, Uncrustify Selected Lines,字面意思不难理解,用起来也还算方便,支持undo,还可以设置对应的快捷键!

接下来得工作就是按自己的“口味”调整代码格式风格,这个插件的格式配置读取方式是这样:默认会使用位于~/Library/Application Support/Developer/Shared/Xcode/Plug-ins中的插件包内Resource中的uncrustify.cfg配置文件,如果需要自定义的话,可以有以下两种方式:

1.用户级自定义:将配置文件复制到~/.uncrustifyconfig, ~/uncrustify.cfg或~/.uncrustify/uncrustify.cfg,并进行修改。

2.项目级自定义:同样是复制配置文件,但是会在Xcode项目文件中以从里到外的顺序查找,配置文件位置结构如下

|-- workspace.xcworkspace
|-- uncrustify.cfg
|-- project folder
|---- project.xcodeproj
|---- Third Party Library Folder
|------ uncrustify.cfg
|-- An other project folder
|---- An other project.xcodeproj
|---- uncrustify.cfg

可以说自定义的方式还是非常全面的,不过一般自定义一个当前用户级的就可以了。修改配置文件可以直接用任何文本编辑器打开直接修改,或者用项目首页中提到的UncrustifyX可视化工具(传送门:https://github.com/ryanmaxwell/UncrustifyX)进行修改,推荐后者,比较直观!

博主友情提示:

如在您的评论中需要提及如QQ号、微信号、电子邮件地址或其他隐私敏感信息,欢迎通过>>博主专用加密工具v2<<加密后发布,原文只有博主可以看到。