【问题标题】:How to set Xcode plugin for code auto formatting [closed]如何为代码自动格式化设置 Xcode 插件 [关闭]
【发布时间】:2009-02-18 15:23:34
【问题描述】:

我正在寻找一个插件来在 XCode 中自动格式化 Objective-c 代码,拥有一组可选的样式格式也会很有帮助,

我的目标是遵循 Google 的代码约定:http://google-styleguide.googlecode.com/svn/trunk/objcguide.xml 作为开始,不胜感激。

【问题讨论】:

  • objclean.com 是一个看起来像您需要的新工具。
  • 我试试看,看起来不错。谢谢@Casper。

标签: objective-c xcode


【解决方案1】:

2013 年 4 月更新

正如 Roger Nolan 和 rcw3 所建议的,您可以使用Uncrustify 走得更远。最新发布版本可以在here下载。


集成到 Xcode

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

  • Xcode 4.6 及更高版本

Benoît Bourdon 的 BBUncrustifyPlugin-Xcode

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

截至 2013 年 4 月 2 日,Uncrustify 0.60 和 Uncrustify 配置文件包含在插件中。要使用自定义 Uncrustify 配置文件,请务必阅读标题为“如何自定义 Uncrustify 配置?”的部分。 README.md.

注意:要从命令行使用 Uncrustify,例如作为 git 挂钩的一部分,我建议独立构建和安装 Uncrustify。为了保持一致性,我还建议将插件附带的 Uncrustify 版本替换为独立构建和安装的 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

乔纳·威廉姆斯的Code Formatting in Xcode 4

  • Xcode 3.x

乔纳·威廉姆斯的Code Formatting in Xcode


Uncrustify 配置文件示例

我用于 Objective-C 的 Uncrustify 0.60 配置文件位于 here


为新版本的 Uncrustify 更新 Uncrustify 配置文件

要为新版本的 Uncrustify 更新 Uncrustify 配置文件,请启动终端并输入:

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

要查看对 Uncrustify 配置所做的更改,请在终端类型中:

diff uncrustify.cfg.old uncrustify.cfg

查看 Uncrustify 配置文件的文档版本

要查看 Uncrustify 配置文件的文档版本,请启动终端并键入:

uncrustify -c uncrustify.cfg --show-config

【讨论】:

  • 试了下来,感觉非常非常不错。 @mmorris,你有更新的 uncrustify_obj_c.cfg 文件吗?
  • @LiangWang 从答案中获取提供的配置,然后使用--update-config 选项运行uncrustify(在答案中解释)。 sort 两个版本的配置文件。 diff 排序后的配置文件。 diff 输出突出显示了新的配置选项。运行 uncrustify--show-config 以查找新的配置选项。使用任何所需的更改更新新的配置文件。
  • 我更喜欢 uncrustify 作为系统服务,这样它就可以在任何地方使用(TextEdit、BBEdit 等!),您可以为其分配一个全局热键(command-option-control-I)。我刚刚使用 Automator 创建了一个“运行 Shell 脚本”工作流程:“/usr/local/bin/uncrustify -q -c /usr/local/share/uncrustify/uncrustify.cfg -l OC+”和“服务接收选定的”文本"' 并检查'输出替换选定的文本'。然后将工作流放入您的“~/Library/Services/”文件夹中。
  • 示例 Uncrustify 0.60 配置的链接已损坏。
  • @dbainbridge 示例 Uncrustify 0.60 配置的链接已恢复。
【解决方案2】:

XCode 有一个内置的代码格式化程序——它有点基础,但可以重新缩进你的代码。首先在 Xcode (as mouviciel suggests) 中设置缩进首选项。然后选择要重新设计的源并选择 Edit |格式 |重新缩进。

如果你想走得更远,Hackertoys 有 adding uncrustify support 到 Xcode 的说明。这个我没试过。

【讨论】:

    【解决方案3】:

    Jetbrains 的 AppCode 有一个非常好的代码格式化程序。就我的口味而言,uncrustify 感觉太老套了。

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

          部分答案是可以在 Xcode 中将一些小东西设置为 2 空格缩进。请参阅 Xcode 工作区指南中的 Indentation Preferences

          【讨论】:

            猜你喜欢
            • 2019-11-17
            • 2023-03-24
            • 2013-05-23
            • 2010-12-07
            • 2011-01-15
            • 2010-09-07
            • 2016-08-20
            相关资源
            最近更新 更多