Xcode源自动格式化

时间:2009-10-15 17:43:08

标签: xcode formatting keyboard-shortcuts

作为C#开发人员,我已经高度依赖于Visual Studio 2008中的自动格式化。具体来说,我将使用 CTRL + K D 键盘快捷键,在我草率实现后强制恢复原状。

我现在正在尝试学习Objective-C并且缺少Xcode中的某些功能,但可能没有一个像格式化快捷方式那样痛苦。我的谷歌搜索没有内置任何内容,但似乎有一些黑客攻击。我是否遗漏了某些内容,或者Xcode本身不存在此功能?

20 个答案:

答案 0 :(得分:410)

那是 Ctrl + i

或者低技术,切割然后粘贴。它会重新格式化粘贴。

答案 1 :(得分:125)

不幸的是,Xcode没有像VS或Jalopy那样广泛的Eclipse可用。有一些不同的功能,例如Structure > Re-Indent以及将代码粘贴到源文件时使用的自动格式化。不过,我完全和你在一起;肯定应该在那里帮助解决格式化问题。

答案 2 :(得分:35)

我想推荐值得考虑的两个选项。两者都是新的和不断发展的。

ClangFormat-Xcode(免费) - 在每个cmd + s文件上重新格式化为特定样式并保存,易于在团队中部署

  

使用Clang格式工具格式化代码的Xcode插件   @travisjeffery。

     

使用clang格式,您可以使用Clang将代码格式化为样式   如LLVM,Google,Chromium,Mozilla,WebKit或您自己的配置。

Objective-Clean(付费,尚未尝试) - 如果违反预定义的样式规则,应用程序会引发构建错误 - 可能在团队中很难使用,所以我没有尝试过。

  

使用非常小的设置,您可以让Xcode使用我们的应用程序来强制执行   你的规则。如果你被抓到违反你的一个规则,Xcode   将抛出构建错误并将您带到违规行。

答案 3 :(得分:26)

在xcode中,您可以使用此快捷方式格式化(重新缩进)源代码

  • 命令 + A 选择所有源代码

  • Ctrl + I 重新缩进

希望这有帮助。

答案 4 :(得分:18)

我的个人青睐PrettyC wantabe是不可理解的:http://uncrustify.sourceforge.net/。它有几十亿个选项,所以我建议你下载UniversalIndentGUI_macx,(也在sourceforge上)一个人写的GUI,帮助你按照自己喜欢的方式设置选项。

然后,您可以添加此自定义用户脚本以取消选中所选文本:

#! /bin/sh
#
# uncrustify!
echo -n "%%%{PBXSelection}%%%"
/usr/local/bin/uncrustify -q -c /usr/local/share/uncrustify/geo_uncrustify.cfg -l oc+ <&0
echo -n "%%%{PBXSelection}%%%"

答案 5 :(得分:13)

您可以使用 Command + A 选择所有内容,然后使用 Ctrl + I 格式化所选内容内容。

答案 6 :(得分:9)

Cmd A + Ctrl I

Cmd A 然后右键单击。转到结构 - &gt;重新缩进

答案 7 :(得分:6)

我也觉得xcode应该有这个功能。 所以我做了一个扩展:Swimat

brew cask install swimat进行简单安装 preview

您可以尝试一下,有关详细信息,请参阅https://github.com/Jintin/Swimat

答案 8 :(得分:5)

考虑购买AppCode的许可证,这是一个智能的Objective-C IDE,可以帮助iOS / OS X开发人员。 AppCode与Xcode完全兼容,但在添加powerful features时超越了Xcode。

AppCode来自Intellij IDEAJetBrains IDE的Objective-C变体。他们也是Visual Studio流行的ReSharper扩展的作者,其主要目的似乎是为微软产品带来IDEA体验的绝望尝试。

AppCode正在使用自己的代码分析器,它提供了接近完美的重构和代码导航支持。还有一种能够重新缩进并完全重新格式化代码的能力(尽管在困难的情况下我仍然会遗漏几个格式设置,但大多数情况下效果很好)。

当然,您可以试用试用版。

答案 9 :(得分:4)

您还可以查看https://github.com/octo-online/Xcode-formatter这是一个基于Uncrustify并集成到Xcode中的格式化程序。像魅力一样。

答案 10 :(得分:4)

您可以尝试使用XCode插件https://github.com/benoitsan/BBUncrustifyPlugin-Xcode

只需克隆github存储库,在XCode中打开插件项目并运行它。它将自动安装。在使用formatter插件之前重新启动Xode。

别忘了以前安装uncrustify util。 Homebrew,例如

brew install uncrustify

P.S。保存格式后,您可以打开&#34;#34; Edit&gt;中的功能格式代码&gt; BBUncrustifyPlugin首选项&gt;保存格式

希望这对你有用;-)

答案 11 :(得分:3)

我建议使用ClangFormat。要安装,请按以下步骤操作:

  1. 为XCode安装Alcatraz包管理器 支持Xcode 5+&amp; OS X 10.9 +
  2. 安装后重新启动XCode。
  3. 打开XCode - &gt;窗口菜单 - &gt;包管理器
  4. 搜索(找到)ClangFormat并安装它。安装后再次重启XCode。
  5. 现在在XCode菜单中,您可以使用编辑 - &gt;用于格式化的Clang Format子菜单。
  6. 您可以选择不同类型的格式。此外,通过启用保存格式,您可以获得自动格式化功能。

    enter image description here

答案 12 :(得分:2)

CTRL + i

是的。

(没有 COMMAND + i

答案 13 :(得分:1)

迅速-https://github.com/nicklockwood/SwiftFormat

它提供了Xcode扩展以及CLI选项。

答案 14 :(得分:1)

我们可以使用Xcode Formatter,它使用uncrustify轻松格式化您的源代码,因为您的团队确实想要!

安装 推荐的方法是克隆GitHub项目或从https://github.com/octo-online/Xcode-formatter下载它并在Xcode项目中添加CodeFormatter目录以获得:     基于Xcode快捷方式的代码格式化:在当前工作空间中格式化已修改源的快捷方式     自动代码格式化:在项目构建时为项目添加构建阶段以格式化当前源     所有源格式化:使用一个命令行格式化所有代码 项目共享的格式规则:编辑并使用与项目开发团队相同的配置文件 1)如何为项目设置代码格式化程序 安装uncrustify 最简单的方法是使用brew: $ brew install uncrustify

安装brew: $ ruby​​ -e“$(curl -fsSkl raw.github.com/mxcl/homebrew/go)”

检查uncrustify是否位于/ usr / local / bin中 $ that uncrustify

如果你的unrustify版本低于0.60,你可能必须手动安装它,因为最近添加了现代的Objective-C语法。 在.xcodeproj文件旁边添加CodeFormatter目录

检查您的Xcode应用程序是否已命名为&#34; Xcode&#34; (默认名称) 您可以在Applications /目录(或您的自定义Xcode安装目录)中看到此名称。如果你的mac上有多个Xcode实例,请小心:确保项目的实际名称是&#34; Xcode&#34;! (为什么这个?这个名字用于查找当前打开的Xcode文件。请参阅CodeFormatter / Uncrustify_opened_Xcode_sources.workflow appleScript)。 安装automator服务Uncrustify_opened_Xcode_sources.workflow 将此文件复制到〜/ Library / Services /文件夹(如果需要,创建此文件夹)。注意:双击.workflow文件,您将安装它,但文件将被删除!请务必将其副本留给其他用户。

如何在构建项目时格式化打开的文件 添加构建阶段&#34;运行脚本&#34;包含以下行:

sh CodeFormatter / scripts / formatOpendSources.sh

如何在命令行中格式化文件

要格式化当前打开的文件,请使用formatOpenedSources.sh:

$ sh CodeFormatter / scripts / formatOpendSources.sh

要格式化所有文件,请使用formatAllSources.sh:

$ sh CodeFormatter / scripts / formatAllSources.sh PATH

PATH必须由您的源路径替换。

E:克;如果项目名称是TestApp,那么命令将是

$ sh CodeFormatter / scripts / formatAllSources.sh TestApp

它将查找项目中的所有文件,并将格式化在uncrustify_objective_c.cfg文件中配置的所有文件。

如何更改格式化程序的规则

使用TextEdit编辑CodeFormatter / uncrustify_objective_c.cfg

答案 15 :(得分:1)

这仅适用于未划分空格的语言,但我的解决方案是删除除空格之外的所有空格,然后在通常描述EOL的字符后面添加换行符(例如将';'替换为'; \ n')然后做无处不在的 ^ + i 解决方案。

我使用Python。

示例代码,只需替换文件名:

python -c "import re; open(outfile,'w').write(re.sub('[\t\n\r]','',open(infile).read()).replace(';',';\n').replace('{','{\n').replace('}','}\n'))"

它并不完美(例如:for loops),但我喜欢它。

答案 16 :(得分:1)

首先,检查XCode首选项“缩进”部分。你可以在那里自定义一些东西...

要获得更精细的控制,请参阅apple中的XCode User Defaults文档。 (可能需要开发人员登录才能查看)。例如,我可以通过在终端输入以下内容来禁用“粘贴缩进”:

defaults write com.apple.XCODE PBXIndentOnPaste No

回读你的设置:

defaults read com.apple.XCODE PBXIndentOnPaste

答案 17 :(得分:1)

如果你的Xcode版本是3.x,你应该使用Uncrustify的“用户脚本”,这里有一个例子:

#!/bin/sh

echo -n "%%%{PBXSelection}%%%"
$YOURPATH_TO_UNCRUSTIFY/uncrustify -q -c $YOURPATH_TO_UNCRUSTIFY_CONFIG/CodeFormatConfig.cfg -l OC+
echo -n "%%%{PBXSelection}%%%"

将上面的内容添加到您的Xcode“用户脚本”中。

如果是Xcode版本4.x,我认为您应该阅读此博客:Code Formatting in Xcode 4

通过这种方式,使用了“Apple服务”,但它不够好,导致体验太慢,有没有人有同样的事情?

为什么苹果放弃“用户脚本”.... xD

答案 18 :(得分:0)

您可以在此路径中查看和更改任何快捷方式:Xcode - &gt;偏好 - &gt;关键绑定。

答案 19 :(得分:0)

我正在寻找一种简单的方法。并查看medium

首先复制json文本并在jsonlint或类似的东西上验证它。然后从jsonlint复制,已经格式化了json。并在Xcode上粘贴代码并保留格式,快捷键 shift + 选项 + 命令 + v