Xcode 用于格式化

Xcode 用于格式化,xcode,formatting,keyboard-shortcuts,Xcode,Formatting,Keyboard Shortcuts,您可以选择不同类型的格式。通过在保存时启用格式化,您还可以获得自动格式化功能 我们可以使用Xcode格式化程序,它使用uncrustify轻松格式化您的源代码,正如您的团队所希望的那样 装置 建议的方法是克隆GitHub项目或从下载该项目,并在Xcode项目中添加CodeFormatter目录,以获得: 基于Xcode快捷方式的代码格式化:在当前工作区中格式化修改源的快捷方式 自动代码格式化:向项目中添加生成阶段,以便在应用程序生成时格式化当前源 所有源格式化:使用一个命令行格式化所有代码 项目

您可以选择不同类型的格式。通过在保存时启用格式化,您还可以获得自动格式化功能


我们可以使用Xcode格式化程序,它使用uncrustify轻松格式化您的源代码,正如您的团队所希望的那样

装置 建议的方法是克隆GitHub项目或从下载该项目,并在Xcode项目中添加CodeFormatter目录,以获得: 基于Xcode快捷方式的代码格式化:在当前工作区中格式化修改源的快捷方式 自动代码格式化:向项目中添加生成阶段,以便在应用程序生成时格式化当前源 所有源格式化:使用一个命令行格式化所有代码 项目共享的格式规则:编辑并使用与项目开发团队相同的配置文件 1) 如何为项目设置代码格式化程序 安装除锈 最简单的方法是使用brew: $brew安装未锈蚀

要安装brew,请执行以下操作: $ruby–e“$(curl–fsSkl raw.github.com/mxcl/homebrew/go)”

检查uncrustify是否位于/usr/local/bin中 $哪一个不生锈

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

检查您的Xcode应用程序是否命名为“Xcode”(默认名称) 您可以在Applications/目录(或自定义Xcode安装目录)中看到此名称。如果您的mac上有多个Xcode实例,请务必小心:确保项目的实例名为“Xcode”! (为什么?此名称用于查找当前打开的Xcode文件。请参阅CodeFormatter/Uncrustify\u opened\u Xcode\u sources.workflow appleScript)。 安装自动机服务Uncrustify\u opened\u Xcode\u sources.workflow 将此文件复制到~/Library/Services/文件夹(如果需要,请创建此文件夹)。小心:双击.workflow文件,您将安装它,但该文件将被删除!请确保为其他用户保留一份副本

如何在生成项目时格式化打开的文件 添加包含以下行的构建阶段“运行脚本”:

sh code格式化程序/scripts/formatOpendSources.sh

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

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

$sh code格式化程序/scripts/formatOpendSources.sh

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

$sh code格式化程序/scripts/formatAllSources.sh路径

路径必须替换为源路径

E:g;如果项目名称为TestApp,则命令将为

$sh code格式化程序/scripts/formatAllSources.sh TestApp

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

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


编辑CodeFormatter/uncrustify_objective_c.cfg打开文本编辑

我正在寻找一种简单的方法。并了解

首先复制json文本并在上或类似的东西上验证它。然后从jsonlint复制,json已经格式化。并将代码粘贴到Xcode上,保留格式,快捷方式shift+option+command+v

Swift-



它提供Xcode扩展和CLI选项。

谢谢,至少我知道我没有遗漏什么。自动识别确实有助于缓解一些痛苦,但我必须研究第三方解决方案。这不应该被选为答案。下面来自@ken的答案是correct@RyanAngilly请注意,这个问题是在哪一年被回答的。从那时起,Xcode改变了很多事情@瑞安航空的肯只描述了如何自动缩进。这不是“格式”(包括空格、新行添加和删除等)的真正含义。缩进可以用control-i修复,这将缩进所有选定的行。谢谢!这很有帮助,尤其是因为菜单实际上没有显示键盘快捷键,但这只显示缩进。移动大括号、处理换行符等等怎么样?它不应该被接受,因为它不能执行代码格式化程序所能处理的所有事情。它只是重新缩进,很好的提示。额外的跛脚,XCode没有这个。是的@powerj1984。我对此也感到失望。它不会在
=
或其他运算符之后添加适当的空格。它所做的只是意图。没有别的了。Mac真的需要向微软学习。在这里的答案中有一些指向Xcode脚本解决方案的好链接,谢谢链接。我也发现了这一点:它涵盖了与链接基本相同的技术。我将尝试一下,看看它的效果如何。使用UniversalIndentGUI的第三方解决方案:类似于这个问题;答案有菜单项和键盘快捷键来重新缩进代码:在过去的5年里,苹果在这方面有没有创新?这个问题是否仍然相关,或者XCode现在已经是格式化代码的一个新的更好的解决方案了?你如何使用这个插件创建自己的格式配置?我对uncrustify有过一些问题,特别是在格式化块方面。这个问题已经被提了4次了-请在回答之前阅读其他答案。另外,CMD+i与转到产品->配置文件相同,但与格式化不同。这在XCode 8上不再可用。是的,你说得对@NathanFiscaletti我已从7.2升级到9.2及以上版本,解决方案不再工作。但我找到了解决办法。我将添加一个新帖子!我安装了Alcatraz,但Xcode 9不再支持ClangFormat插件。
#! /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}%%%"
#!/bin/sh

echo -n "%%%{PBXSelection}%%%"
$YOURPATH_TO_UNCRUSTIFY/uncrustify -q -c $YOURPATH_TO_UNCRUSTIFY_CONFIG/CodeFormatConfig.cfg -l OC+
echo -n "%%%{PBXSelection}%%%"
defaults write com.apple.XCODE PBXIndentOnPaste No
defaults read com.apple.XCODE PBXIndentOnPaste
python -c "import re; open(outfile,'w').write(re.sub('[\t\n\r]','',open(infile).read()).replace(';',';\n').replace('{','{\n').replace('}','}\n'))"
brew install uncrustify