作为C#开发人员,我已经高度依赖于Visual Studio 2008中的自动格式化。具体来说,我将使用 CTRL + K , D 键盘快捷键,在我草率实现后强制恢复原状。
我现在正在尝试学习Objective-C并且缺少Xcode中的某些功能,但可能没有一个像格式化快捷方式那样痛苦。我的谷歌搜索没有内置任何内容,但似乎有一些黑客攻击。我是否遗漏了某些内容,或者Xcode本身不存在此功能?
答案 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
进行简单安装
您可以尝试一下,有关详细信息,请参阅https://github.com/Jintin/Swimat。
答案 8 :(得分:5)
考虑购买AppCode的许可证,这是一个智能的Objective-C IDE,可以帮助iOS / OS X开发人员。 AppCode与Xcode完全兼容,但在添加powerful features时超越了Xcode。
AppCode来自Intellij IDEA的JetBrains 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。要安装,请按以下步骤操作:
答案 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)