Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Code Folding changes in Xcode 9/10 [duplicate]

I know code folding was missing in the early Beta's of Xcode9 and that it is available to fold entire methods with CMD click.

But in Xcode 8 i was able to fold code in blocks (i.e. individual if statements) via Editor >> Code Folding >> Fold but in Xcode 9 this folds the entire method.

Is there a fix/setting i can change to restore the Xcode 8 functionality?

like image 268
joffd Avatar asked Sep 24 '17 06:09

joffd


People also ask

Can you collapse functions in Xcode?

Just to the right of line numbers you will see a new ribbon with up or down arrows next to functions / methods. Pressing these will allow you to expand or collapse functions / methods.

How do I collapse a Swiftui code?

Keep (hold) ⌘ (command) button in pressed condition and click on highlighted area. It will enable quick menu popover window with Fold option. Select Fold from menu list. It will fold your code and shows 3 dots, folding/covering entire block.


3 Answers

Updates in Xcode 10

Xcode 10 has increased support for code folding, including:

  1. A new code folding ribbon showing all of the multi-line foldable blocks of code in the editor
  2. A new style for folded code in the editor that allows you to edit lines with folded code
  3. Support for folding any block of code enclosed in curly braces
  4. Support for folding blocks of code from the folding ribbon, from structured selection, or from the

Menubar ► Editor ► Code Folding ► Fold menu item

enter image description here

Look at this snapshot:

enter image description here


Code folding was disabled in Xcode 9 beta 1, which is working now, in Xcode 9 Beta5 according to beta release note: Resolved in Xcode 9 beta 5 – IDE

Here is how:

  1. Press and hold (command) button in keyboard and move/hover mouse cursor on any (start or end) braces. It will automatically highlight, block area.
  2. Keep (hold) (command) button in pressed condition and click on highlighted area. It will enable quick menu popover window with Fold option.
  3. Select Fold from menu list. It will fold your code and shows 3 dots, folding/covering entire block.
  4. Now, to again unfold your code block, release (command) button and click on 3 dots folding a block.

For easy understanding, look at this snapshot:

enter image description here


It's all keyboard short cuts are also working.

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 


Code folding options from Xcode Menu:

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

Here is ref snapshot:

enter image description here

Same options from Xcode Short-cut list:

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

enter image description here

like image 152
Krunal Avatar answered Sep 23 '22 05:09

Krunal


It is stated in the release notes that it is not supported as of yet.

like image 24
Kaisp Avatar answered Sep 22 '22 05:09

Kaisp


You can fold individual if statements also in Xcode 9 however it folds the entire if - (else) expression.

Put the cursor somewhere within the block and press ⌥⌘←

Unfolded:

enter image description here

Folded:

enter image description here

like image 27
vadian Avatar answered Sep 23 '22 05:09

vadian