Xcode 9/10 中的代码折叠更改

Code Folding changes in Xcode 9/10

我知道 Xcode9 的早期 Beta 中缺少代码折叠,并且可以通过单击 CMD 来折叠整个方法。

但在 Xcode 8 中,我能够通过 Editor >> Code Folding >> Fold 将代码折叠成块(即单独的 if 语句),但在 Xcode 9 这折叠了整个方法。

是否有 fix/setting 我可以更改以恢复 Xcode 8 功能?

您也可以在 Xcode 9 中折叠单个 if 语句,但是它会折叠整个 if - (else) 表达式。

将光标放在块内的某个位置,然后按 ⌥⌘←

展开:

折叠:

发行说明中表示目前还不支持。

更新在Xcode 10

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

  1. 一个新的代码折叠功能区,显示编辑器中的所有多行可折叠代码块
  2. 编辑器中折叠代码的新样式,允许您使用折叠代码编辑行
  3. 支持折叠任何用花括号括起来的代码块
  4. 支持折叠功能区、结构化选择或
  5. 中的折叠代码块

Menubar ► Editor ► Code Folding ► Fold menu item

看看这个快照:


代码折叠在 Xcode 9 beta 1 中被禁用,根据 beta 发行说明,在 Xcode 9 Beta5 中现在可以正常工作:Resolved in Xcode 9 beta 5 – IDE

方法如下:

  1. 按住键盘上的 (命令)按钮并在任何(开始或结束)大括号上按住 move/hover 鼠标光标。会自动高亮,遮挡区域。
  2. 保持(按住)(命令)按钮处于按下状态并单击突出显示的区域。它将使用 Fold 选项启用快速菜单弹出窗口 window。
  3. Select Fold 从菜单列表。它将折叠您的代码并显示 3 个点,folding/covering 整个块。
  4. 现在,要再次展开您的代码块,请释放 (命令)按钮并单击折叠块的 3 个点。

为了便于理解,看这个快照:


所有键盘快捷键也都有效。

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 菜单的代码折叠选项:

Menubar ▶ Editor ▶ Code Folding ▶ "Here is list of code folding options"

这是参考快照:

来自 Xcode 快捷方式列表的相同选项:

Menubar ▶ Xcode ▶ Preferences ▶ Key Bindings ▶ "Here is list of code folding short-keys"