15

我有一个格式有些混乱的 Objective-C 代码库。有没有办法让 Xcode 重新格式化整个项目以符合编码标准(即正确缩进、空格和制表符等)?是否有其他工具可以完成此任务?

4

8 回答 8

22

去壳: http ://uncrustify.sourceforge.net/

C、C++、C#、ObjectiveC、D、Java、Pawn 和 VLA 的源代码美化器

如果你想要更简单的东西,你可以通过简单地去除所有的空白/换行符,并在 上添加一个新的换行符; { },并手动重新缩进代码来获得一些方法。它不会接近完美布局的代码,并且重新缩进对大代码来说可能是一种痛苦,但它会是一致的。

于 2008-10-04T16:44:02.060 回答
8

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

于 2008-10-04T19:09:18.693 回答
7

根据这篇文,bcpp与 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.
于 2008-10-04T16:36:17.363 回答
5

来自 Xcode:

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

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

3) 左移 (cmd-[) 几次,直到所有行都在窗口的左边缘。

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

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

于 2008-10-04T19:20:19.983 回答
2

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

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

于 2010-02-28T21:53:57.217 回答
0

在不同的上下文中使用 uncrustify 的一种方法是

http://universalindent.sourceforge.net/

于 2011-01-02T21:20:45.547 回答
0

“GTMXcodePlugin”(又名Google Toolbox For Mac Xcode 插件)的唯一功能 - 通过有效且安全地修剪空格,在整理 Objective-c 代码方面做得很好。

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

于 2012-09-13T17:41:08.997 回答
0

在撰写本文时,最新、最好的方法是SpaceCommander。它基于 clang,并具有许多其他简洁的功能,并且在撰写本文时一直在维护和活跃。

于 2017-05-31T16:30:27.887 回答