如何设置Xcode插件的代码自动格式化

我正在寻找一个插件来在XCode中自动格式化Objective-C代码,如果有一组可选的样式格式,

我打算遵循Google的代码惯例: http : //google-styleguide.googlecode.com/svn/trunk/objcguide.xml作为开始,任何帮助表示赞赏。

于2013年4月更新

正如Roger Nolan和rcw3所build议的那样,您可以使用Uncrustify进一步研究 。 最新版本可以在这里下载。


整合到Xcode

集成到Xcode取决于安装的Xcode的版本。

  • Xcode 4.6及更新版本

BenoîtBourdon的BBUncrustifyPlugin-Xcode

这个插件提供了从Xcode的“编辑”菜单(“Uncrustify Selected Files”,“Uncrustify Active File”和“Uncrustify Selected Lines”)访问Uncrustify的权限。 只需构build项目并编译并安装插件。

截至2013年4月2日,Uncrustify 0.60和Uncrustifyconfiguration文件都包含在插件中。 要使用自定义的Uncrustifyconfiguration文件,请确保阅读标题为“如何自定义Uncrustifyconfiguration? README.md 。

注意:要从命令行使用Uncrustify(例如作为git钩子的一部分),我build议独立构build和安装Uncrustify 。 为了一致起见,我还build议使用与独立构build和安装的Uncrustify版本的链接replace插件附带的Uncrustify版本。 以下是如何做到这一点:

cd ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins/UncrustifyPlugin.xcplugin/Contents/Resources mv uncrustify uncrustify.orig ln -s /usr/local/bin/uncrustify uncrustify 
  • Xcode 4.x

Jonah Williams 在Xcode 4中的代码格式

  • Xcode 3.x

Jonah Williams 在Xcode中的代码格式


示例Uncrustifyconfiguration文件

我用于Objective-C的Uncrustify 0.60configuration文件位于此处 。


更新Uncrustify新版本的Uncrustifyconfiguration文件

要为新版本的Uncrustify更新Uncrustifyconfiguration文件,请启动一个terminal并input:

 mv uncrustify.cfg uncrustify.cfg.old uncrustify -c uncrustify.cfg.old --update-config > uncrustify.cfg 

要查看对Uncrustifyconfiguration所做的更改,请在terminaltypes中:

 diff uncrustify.cfg.old uncrustify.cfg 

查看Uncrustifyconfiguration文件的logging版本

要查看Uncrustifyconfiguration文件的logging版本,请启动一个terminal并键入:

 uncrustify -c uncrustify.cfg --show-config 

XCode内置了一个代码格式化程序 – 它有一点基础,但可以重新缩进你的代码。 首先在Xcode中设置缩进首选项( 如mouviciel所示 )。 然后select您要重新安排的来源,然后select编辑| 格式| 重新排版。

如果你想更进一步,Hackertoys有指示为Xcode 添加uncrustify支持 。 我没有试过这个。

来自Jetbrains的AppCode有一个非常好的代码格式化程序。 对于我的口味uncrustify感觉太hacky。

经过修改多个外部格式化程序和弱的内部xcode格式化程序,我终于解决了uncrustify。 Uncrustify具有相当不错的Objective-C支持,可以很容易地与xcode集成为一个用户脚本,并为几乎所有xcode原生支持的语言提供了一个集中的格式化器。

xcode最大的障碍是令人生畏的configuration文件。 我的build议,采取一个提供的示例configuration(ben2.cfg是非常好的),在objc.cfg示例合并,并根据需要调整。

据说, bcpp在obj-c上工作得很好,而且它也有一个TextMate插件。

部分答案是可以在Xcode中设置一些小的事物,作为2-space缩进。 请参阅Xcode工作区指南中的缩进首选项 。