我该如何在Xcode中像Eclipse或NetBeans那样格式化代码?

45

我该如何在Xcode中像Eclipse或NetBeans一样格式化代码?我在菜单中没有找到任何选项。是否有快捷键可用,或者在Xcode中根本不可用?


我应该说Xcode现在做得更好了!它真的无法与Eclipse、Netbeans或Visual Studio竞争! - itsaboutcode
可能是Xcode源代码自动格式化的重复问题。 - emlai
11个回答

59
在Xcode 4中,它已经被移动到编辑器 > 结构 > 重新缩进命令(并且默认快捷键为CTRL+I)。

13
首先,欢迎来到2021年。虽然这是一个非常老的问题,但仍然有人像我一样访问它,所以我将在一个答案中提供多个可用的解决方案,这些解决方案经过了我两个小时的研究和测试。

重新缩进

正如其他人建议的那样,如果您只想重新缩进代码行,这是其中一个默认解决方案: 前往: 编辑器 -> 结构 -> 重新缩进 或使用快捷键 control + I

使用Xcode扩展程序

我发现并使用了2个扩展程序,对我非常有效。 1) SwiftFormat : 在此处提及安装xcode扩展程序的步骤从自述文件中获取。

像命令行工具一样,您可以通过Homebrew安装SwiftFormat for Xcode 扩展应用程序。 假设您已经安装了Homebrew,请键入:

$ brew install --cask swiftformat-for-xcode

  • 打开刚刚安装的SwiftFormat for Xcode.app。您可以在那里更改格式设置规则。

  • 之后,打开系统偏好设置 -> 扩展程序 -> xcode源代码编辑器并选中SwiftFormat的复选框。

  • 重启Xcode

完成啦!你可以使用三个选项。格式化所选代码、整个文件格式化或仅检查文件。

2) Swimat:(在@Guy Daher的回答中已经提到)安装步骤从readme中获取。

通过homebrew-cask安装

Homebrew最新版本

brew install --cask swimat

  • 类似于上面的扩展安装,打开Swimat.app,如果没有打开,则尝试从系统偏好设置 -> 安全性与隐私 -> 打开swimat应用程序中解决它

  • 打开后,在./bin文件夹中单击安装以使其在全局范围内工作(不确定此步骤是否必要,但我只是这样做了)

  • 重新启动Xcode

现在,您可以转到编辑器 -> swimat -> 格式

太棒了!您已经准备就绪了。

额外不请自来的帮助

您可以简单地设置键绑定以使用任何一个命令。 例如,我已将Android Studio的默认命令设置为重新格式化代码,快捷键为Option+Command+L

附言:如果其他人发现更好的扩展,请在评论中告诉我,我会将其添加到列表中。


这听起来很有前途,作为一个真正的代码格式化工具(难以置信的是,经过这么多年,Xcode竟然没有这样一个基本功能)...你能推荐一个更好的吗(只是为了节省我们在选择时的时间)...对不起,我有点懒 :) - Jiří Křivánek
我大部分时间都使用Swimat。这是我的个人偏好,因为它具有一些特定的功能,并且易于配置。 - Keval Langalia

10

选择一些文本,然后:编辑 -> 格式 -> 重新缩进

您可以在首选项中将此绑定到热键。


这是Xcode内置格式支持的最接近的东西。 - nall
截至2021年,如果有人需要解决方案,请查看我下面的答案:https://dev59.com/I3I_5IYBdhLWcg3wJPdu#66270147 - Keval Langalia
-1,因为这不是任何一种代码格式化方式 - 请查看Android Studio的实际代码格式化功能... - Jiří Křivánek

9
除了重新缩进(编辑>格式>重新缩进)之外,实际上没有其他方法。不过,Xcode支持脚本(在窗口菜单右侧的菜单),因此您可以编写一个脚本,以您喜欢的方式格式化代码。
编辑:以下是一些涉及此主题的链接:

4
以下是在Xcode中格式化代码的快捷方式:
1. 格式化整个代码(整个类/控制器):选择整个代码,然后在Mac上按下+|即可格式化您的代码。
2. 格式化特定的代码块:选择代码,然后按下+]向右移动或按下+[向左移动。
3. 选择代码 --> 转到编辑器 --> 结构 --> 重新缩进。

2

XCode 8扩展

另一种选择是使用像Swimat这样的扩展程序。对我来说很实用。但是,缺点是由于Xcode Extension API的限制,它不能在保存时进行格式化,但他们正在尝试找到解决方法。


2

我个人最喜欢的代码格式化工具是Uncrustify。 它有非常多的选项,因此我建议您下载UniversalIndentGUI,这是一个GUI工具,可以帮助您设置Uncrustify的行为以符合您的喜好。


1

虽然这不是最好的方法,但为了完整起见,如果您剪切然后粘贴代码回来,Xcode将自动为您格式化它。


0

0

^-Icontrol - 大写 i):格式化当前行

-A + ^-I:格式化整个代码文件


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接