问题
I know we can use "Shift + Alt + Cmd + Left" to fold/collapse swift code in Xcode, but can anyone tell me how to fold/collapse for functions only? Not properties? Or any alternative way?
The default folding method does the job, but actually also hide very important information from us......
This is what I wanted!
回答1:
Updates in Xcode 10:
Xcode 10 has increased support for code folding, including:
- A new code folding ribbon showing all of the multi-line foldable blocks of code in the editor
- A new style for folded code in the editor that allows you to edit lines with folded code
- Support for folding any block of code enclosed in curly braces
- Support for folding blocks of code from the folding ribbon, from structured selection, or from the
Menubar ► Editor ► Code Folding ► Fold menu item
Look at this snapshot:
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:
- Press and hold
⌘
(command) button in keyboard and move/hover mouse cursor on any (start or end) braces. It will automatically highlight, block area. - Keep (hold)
⌘
(command) button in pressed condition and click on highlighted area. It will enable quick menu popover window withFold
option. - Select
Fold
from menu list. It will fold your code and shows 3 dots, folding/covering entire block. - 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:
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:
Same options from Xcode Short-cut list:
Menubar ► Xcode ► Preferences ► Key Bindings ► "Here is list of code folding short-keys"
回答2:
As of now there is no option to fold only functions in you class, we may expect these features in future release of Xcode
. To fold specific function you can use alt + command + left_arrow
after placing the cursor in function starting line. Use alt + command + right_arrow
for unfold folded function.
回答3:
Another way to do this would be as below.
- Go to Xcode preferences (command + ,)
- Select the text editing tab
- Check code folding ribbon
Now when you look at your code you should be able to see this :
When you bring your mouse over the folding ribbon you should see a small arrow that can be used to fold code blocks (functions, if-else, loops, etc)
Hope this helps!
回答4:
you can always go to Symbol Navigator
, cmd+2
and enjoy list of all your declarations that swift has organized.
However, if this doesn't satisfy you, and you require to have better control over your functions I recommend you to use function protocols
, they work somewhat similar to header files in C
. you can find out more about function prototypes in(https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Protocols.html#//apple_ref/doc/uid/TP40014097-CH25-ID267)
来源:https://stackoverflow.com/questions/40285997/xcode-swift-code-folding-collapse