如何更好的格式化Objective-C代码

为啥是更好的

在一个大型的软件项目中,你不能保证所有的代码都是由你一个人编写,即使都是自己编写,你也很难保证所写的每一行代码都格式统一。所以这里往往需要一个可以自动格式化代码的工具,以便让你自己的或者其他人写的代码看起来排版整洁,赏心悦目。

xcode是开发Apple生态环境下各种软件的必备工具,但是这个工具的辅助功能相对与Eclipse之类的IDE来说,还是比较少。我甚至更进一步认为这玩意是Apple雇的几个大学实习生做出来的玩意,经常失去响应啊,变成一个僵死进程。对于格式化代码这个现在要说的功能,写java用过Eclipse的人都知道可以导入代码格式文件来实现可以定制的代码排版功能。而在xcode里,只有通过Re-Indent这一个调整缩进的功能,显然不够用。

Uncrustify

什么是Uncrustify呢?用官方主页上的一句话来定义就是:

a highly configurable,easily modifiable source code beautifier.

翻译过来大概意思就是一个高度可定制可修改的代码美化器。按照这个工具的方法有很多种,这里推荐使用Homebrew,熟悉Apple历史的人都知道,最早的Apple I就是在家酿电脑俱乐部诞生的,HomeBrew当时就是家醸电脑俱乐部的意思。安装方式在官方主页的最下面,运行一条ruby指令:

ruby <(curl -fsSkL raw.github.com/mxcl/homebrew/go)

安装好Homebrew后,用这条命令按照Uncrustify

brew install uncrustify

详细的Automate配置步骤可以参考这篇文章,如果不想自己配置可以下载已经配置好的workflow,复制到~/Library/Services/,并解压就可以了,如果你的电脑里面没有这个文件夹,可以自己通过mkdir指令来新建这个文件夹:

mkdir ~/Library/Services
mv Uncrustify-Objective-C.workflow.tar.gz ~/Library/Services/
cd ~/Library/Services/
tar zxvf Uncrustify-Objective-C.workflow.tar.gz

下载针对Objective-C语言的配置文件,移动道~/目录下,并更名为.uncrustify_obj_c.cfg,注意目标文件名前面有个.,正常情况下你通过finder是看不到这个文件夹的,可以通过如下指令来显示:

defaults write com.apple.finder AppleShowAllFiles TRUE 
killall Finder

集成xcode

如果上面已经完成,在xcode里面选择一段代码,右键选择Services里面应该可以看到Uncrustify Objective-C选项了。选择后,就可以格式化所选的代码。如果你觉得不烦烦的话,每次都可以选中后进行以上操作,但是必然有不那么蛋疼的方式。

点屏幕左上角的苹果图标,选 System Preferences – Keyboard – Keyboard Shortcuts – Services,在Text分区里,找到刚添加的服务Uncrustify Objective-C,给这个服务加上快捷键。注意不要和Xcode里其它快捷键冲突,推荐设置为:control+shift+f貌似是Eclipse格式化的快捷键,好吧我又穿越了。

one more thing

大家如果有兴趣可以去研究下那个cfg文件的配置,里面决定了代码排版的行为,详细到函数签名和小括号之间是否应该空格都可以自由选择。配置变量名里面含有oc的是针对objectiec-c语言的特别情况,其他应该是所有语言通用的。

转载于:https://www.cnblogs.com/lostplesed/archive/2012/08/23/2653351.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值