Xcode 9展开/折叠大括号{}侧边栏缺失

46

找不到一个在

Xcode ▶ 首选项/文本编辑 ▶ "代码折叠控制器" 框。


Beta版本的漏洞应该报告给Apple Bug Reporter - Raptor
4
现在是2018年,XCode的折叠功能比以往任何时候都更糟糕。我们都想折叠if-else语句,但苹果公司却说不行。 - Dog
@Yakiv Kovalsky - 代码折叠功能在Xcode 10中回归,但方式有所不同。 - Krunal
6个回答

94

Xcode 10更新:

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

  1. 一个显示在编辑器中所有可折叠多行代码块的新代码折叠条
  2. 编辑器中新的折叠代码样式,允许您编辑具有折叠代码的行
  3. 支持折叠任何用大括号括起来的代码块
  4. 支持从折叠条、结构化选择或从菜单栏 Editor ► Code Folding ► Fold选项折叠代码块

enter image description here

看一下这张快照:

enter image description here


Xcode 9

Xcode 9 beta 1中禁用了代码折叠功能,但现在在Xcode 9 Beta5中已经可以使用了,根据beta版本说明:在Xcode 9 beta 5中解决问题 – IDE

以下是如何使用:

  1. 按住键盘上的(命令)按钮并将鼠标光标移动/悬停在任何大括号(开始或结束)上。它会自动突出显示区块区域。
  2. 保持(按住)(命令)按钮处于按下状态,点击突出显示的区域。它将启用快速菜单弹出窗口,其中包含Fold选项。
  3. 从菜单列表中选择Fold。它将折叠您的代码并显示3个点,折叠/覆盖整个块。
  4. 现在,要展开代码块,请释放(命令)按钮并单击折叠块的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 菜单中的代码折叠选项:

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

参考快照如下:

图片描述

Xcode 快捷键中相同的选项:

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

图片描述


2
Xcode 9的“文本编辑”选项卡中缺少此代码折叠功能。我想要它回来 :( - user1039695
2
在 Xcode 9 Beta 6 中,需要按的键似乎是 Command 键(而不是 control)。目前在 Objective-C 中,方法内部块的折叠似乎还无法正常工作,尽管在 Swift 中大多数情况下都可以。 - user2067021
12
长期来看,这对于 if 和 for 语句并不起作用。这是它更为重要的地方。 - strangetimes
1
@Insider 我同意你的看法,但我该怎么说呢,为什么他们要移除这个非常有用的功能/选项呢?我只有替代/解决方案。 - Krunal
4
丢失的丝带让事情变得非常困难。我的意思是,今晚我要找一个新的编辑器。我真的无法相信它不见了。现在我意识到我经常使用它。 - SAHM
显示剩余2条评论

10

我赞同@strangetimes的评论。我按照新的建议格式在Apple Bug Reporter上提交了以下内容。请随意加入自己的意见:

35237858 : Xcode 9.1中的代码折叠只能整个函数/方法折叠

更新,一年后...

Xcode 10中已修复此问题,代码折叠重新回来了。感谢所有向错误报告或其他方面提供帮助的人。

Xcode 9或9.1中改进后的代码折叠似乎只能在整个函数或方法上工作。(今天我在Objective-C中工作。)这并没有什么用处。您知道,函数或方法只有一个大括号深度。它们容易被肉眼识别。我需要代码折叠的地方是长控制流块 - if、else、switch、do、while或松散块。请将其带回来,以便我可以像Xcode 8中的代码折叠一样使用。

那个彩带虽然我认为很好,但其他人不这样做 - 我可以在没有它的情况下生活。但是请让代码折叠适用于所有花括号代码块


谢谢分享。我也刚刚创建了一个建议。36023358:在Xcode 9.2中允许折叠光标所在的代码块 - Daniel
在 Xcode 10 中,折叠和展开功能适用于代码块,不仅限于整个方法。是时候真正开始熟悉 Command-Option-Left Arrow 和 Command-Option-Right Arrow 的使用了。这正是我们大多数人一直在等待的。 - Dog

2

2

这并不是折叠代码,但它可能会帮助你在代码中导航:

如果您想找出哪些括号是一起的,可以单击开始或结束括号后面,然后这两个括号将同时高亮显示一秒钟。或者您可以双击任一括号,从而永久突出显示括号之间的所有内容。


1

7
代码折叠功能尚未添加。这使得处理长函数时非常困难。 - SAHM

0

Xcode 9

正如已经评论的那样,Xcode 9中的代码折叠仅适用于整个函数。我找到的最接近的方法来确定花括号的结束位置(特别是对于长的forif块),是通过双击花括号。这将突出显示该代码块,直到花括号关闭。

当然,在Xcode 10中使用新的代码折叠功能区会更好。


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