Xcode中的Swift代码折叠/收起

44

我知道在Xcode中可以使用"Shift + Alt + Cmd + Left"来折叠swift代码,但有谁能告诉我如何仅折叠/收起函数而不是属性?还有其他替代方法吗?

默认的折叠方法可以实现效果,但实际上也会隐藏非常重要的信息......

输入图像描述

这就是我想要的!

输入图像描述


我在开发者库中搜索了它,但什么也没找到 :( - KrishnaCA
好像是Xcode的一个bug,会折叠掉一行代码,即使它没有花括号。或许只是我这么觉得。 - Aaron
5个回答

75

Xcode 10的更新内容:

Xcode 10增加了对代码折叠的支持,包括:

  1. 一个新的代码折叠区域,显示编辑器中所有可折叠的多行代码块
  2. 编辑器中新的折叠代码样式,允许您编辑带有折叠代码的行
  3. 支持折叠由大括号括起来的任何代码块
  4. 支持从折叠区域、结构化选择或以下位置折叠代码块:

菜单栏 ► 编辑器 ► 代码折叠 ► 折叠菜单项

enter image description here

看这个快照:

enter image description here


在Xcode 9 beta 1中,代码折叠功能被禁用了,但是在beta发布说明中提到,现在已经可以使用了,在Xcode 9 Beta5中已经可以正常工作: 已在Xcode 9 beta 5中解决 - IDE 以下是具体操作步骤:
  1. 按住键盘上的(command)按钮并将鼠标光标移动/悬停在任何大括号(起始或结束)上。它会自动高亮显示、阻塞区域。
  2. 保持(command)按钮处于按下状态,并单击突出显示的区域。这将启用快速菜单弹出窗口,其中包含折叠选项。
  3. 从菜单列表中选择折叠。它将折叠您的代码并显示3个点,覆盖整个块。
  4. 现在,要再次展开代码块,请释放(command)按钮并单击覆盖块的3个点。

为了便于理解,看一下这张截图:

enter image description here


它的所有键盘快捷键也都可以使用。

Fold                          ⌥ ⌘ ←      option + command + left arrow
Unfold                        ⌥ ⌘ →      option + command + right arrow
Unfold All                    ⌥ U        option + U
Fold Methods & Functions      ⌥ ⌘ ↑      option + command + up arrow
Unfold Methods & Functions    ⌥ ⌘ ↓      option + command + down arrow
Fold Comment Blocks           ⌃ ⇧ ⌘ ↑    control + shift + command + up
Unfold Comment Blocks         ⌃ ⇧ ⌘ ↓    control + shift + command + down
Focus Follows Selection       ⌃ ⌥ ⌘ F    control + option + command + F
Fold All                      ⌘ ⌥ ⇧ ←    command + option + shift + left
Unfold All                    ⌘ ⌥ ⇧ →    command + option + shift + left


Xcode菜单中的代码折叠选项:

菜单栏 ► 编辑 ► 代码折叠 ► "这里是代码折叠选项列表"

这是参考快照:

enter image description here

Xcode快捷键列表中的相同选项

菜单栏 ► Xcode ► 首选项 ► 按键绑定 ► "这里是代码折叠快捷键列表"

enter image description here


1
很好的解释。感谢分享实现它的各种方法。 - Anu Mittal

10

目前还没有只折叠类中函数的选项,我们可以期待在将来的 Xcode 发布版本中增加这些功能。要折叠特定的函数,请将光标放在函数起始行,然后使用 alt + command + left_arrow。使用 alt + command + right_arrow 来展开已折叠的函数。


10

另一种方法如下:

  • 去到 Xcode 偏好设置(command + ,)
  • 选择文本编辑选项卡
  • 勾选代码折叠面板

enter image description here

现在当您查看代码时,您应该能够看到以下内容:

enter image description here

当您将鼠标悬停在折叠面板上时,您应该能够看到一个小箭头,可用于折叠代码块(函数、if-else、循环等)

希望这可以帮助您!


5
目前在9.0版本(9A235)中不可用。 - Alex Hedley
1
谢谢,@Ajil。这将会非常有帮助。 - Anu Mittal

7

使用Code Ribbons使SwiftUI更易管理

这是一个非常好用的功能,但似乎并不被很多开发者所知。特别是在编写SwiftUI代码时,我喜欢在将其重构为单独的视图之前先看到我的代码是否能够工作。

Folding是一个非常方便的工具。

以下是在Xcode 12中的示例。它默认是未激活的,但您需要在首选项中勾选“Code Folding Ribbon”:

进入图像描述

然后您就可以折叠嵌套视图,折叠层数没有限制,并且还带有动画效果:

进入图像描述


非常感谢!如果你在开发SwiftUI,这是一个必备的功能! - Alex

2

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