Objective-C Tidy

时间:2008-10-04 16:20:00

标签: objective-c cocoa xcode

我有一个有点混乱的Objective-C代码库。有没有办法让Xcode重新格式化整个项目以符合编码标准(即正确缩进,空格v。制表符等)?还有其他工具可以实现这一目标吗?

8 个答案:

答案 0 :(得分:22)

Uncrustify:http://uncrustify.sourceforge.net/

  

C,C ++,C#,ObjectiveC,D,Java,Pawn和VALA的源代码美化

如果你想要更简单的东西,你可以通过简单地剥离所有的空格/换行符,并在; { {{1}上添加新的换行符来获得某种方式并手动重新缩进代码。它不会是任何接近完美布局的代码,并且重新定义可能是大代码的痛苦,但它将是一致的。

答案 1 :(得分:8)

一个简单但有限的解决方案是Xcode中的Edit-> Format-> Re-Indent,它将应用您当前的缩进设置(Xcode-> Preferences ... - > Indentation)。

答案 2 :(得分:7)

根据此blog postbcpp适用于Objective-C。

此外,工具缩进可能对您有所帮助。它的目标是普通C,但有很多选择可以帮助。我不知道它是否默认出现在OS X上。

NAME
       indent - changes the appearance of a C program by inserting or deleting
       whitespace.

SYNOPSIS
       indent [options] [input-files]

       indent [options] [single-input-file] [-o output-file]

       indent --version

DESCRIPTION
       This man page is generated from the file indent.texinfo.  This is  Ediâ
       tion  of "The indent Manual", for Indent Version , last updated .

       The  indent  program  can  be used to make code easier to read.  It can
       also convert from one style of writing C to another.

       indent understands a substantial amount about the syntax of C,  but  it
       also attempts to cope with incomplete and misformed syntax.

答案 3 :(得分:5)

来自Xcode:

1)更改缩进首选项以匹配您想要的内容。

2)选择要处理的文件并选择全部(cmd-A)

3)向左移动(cmd- [)几次,直到所有线都位于窗口的左边缘。

4)使用重新缩进选择(从编辑 - >格式 - >;或从右键单击上下文菜单)

一次只能处理一个文件,而不是整个项目。也只处理缩进。

答案 4 :(得分:2)

在修改了多个外部格式化程序和弱内部xcode格式化程序之后,我终于以unrustify解决了问题。 Uncrustify具有相当好的Objective-C支持,可以轻松地与xcode集成为用户脚本,并为xcode本身支持的几乎所有语言提供集中格式化器。

unrustify最大的障碍是令人生畏的配置文件。我的建议,取一个提供的样本配置(ben2.cfg非常好),在objc.cfg示例中合并,并根据需要进行调整。

答案 5 :(得分:0)

在不同的环境中使用uncrustify的一种方法是

http://universalindent.sourceforge.net/

答案 6 :(得分:0)

“GTMXcodePlugin”的唯一功能,即 Google Toolbox For Mac Xcode Plugin - 通过有效,安全地修剪空格,很好地整理了Objective-c代码。

  

The GTM Xcode 4 plugin目前只在“编辑”菜单的末尾添加“清理空白”菜单项,以从文本文件中删除不必要的行尾空白。希望我们能尽快添加更多功能。它仅针对Xcode 4.2进行了测试。

答案 7 :(得分:0)

在撰写本文时,最新,最好的方法是SpaceCommander。它基于clang的顶部,并具有许多其他简洁的功能,并在撰写本文时保持活跃。